Site icon EfmSoft

Что означает код NTSTATUS 0xC000070D (STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED)?

 
Предыдущий Следующий
STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED

STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED

Что означает STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED

STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED означает, что thread pool не смог выполнить отложенный ReleaseMutex, зарегистрированный для момента возврата из callback.

Что проверить

Сначала проследите жизненный цикл конкретного mutex: кто его создал, какой поток получил владение, где вызван ReleaseMutexWhenCallbackReturns и не был ли handle закрыт раньше завершения callback.

  • Mutex может освободить только владеющий им поток.
  • Не сочетайте для одного захвата прямой ReleaseMutex и отложенное освобождение при возврате callback.
  • Проверьте все ветви отмены и обработки ошибок: handle должен оставаться действительным до завершения зарегистрированного cleanup.

Этот статус важен как нарушение контракта синхронизации. После него нельзя предполагать ни корректное освобождение mutex, ни сохранение прежнего владения; состояние нужно установить явно, иначе следующий callback может зависнуть или войти в защищаемый участок одновременно с другим потоком.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version