| Предыдущий | Следующий |
| 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 может зависнуть или войти в защищаемый участок одновременно с другим потоком.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
