| Предыдущий | Следующий |
| STATUS_TRUST_FAILURE | STATUS_NETLOGON_NOT_STARTED |
STATUS_MUTANT_LIMIT_EXCEEDED
Счётчик рекурсии mutant достиг ограничения реализации
Поток, уже владеющий mutex или mutant, может рекурсивно захватить тот же объект; каждому успешному захвату должно соответствовать освобождение. STATUS_MUTANT_LIMIT_EXCEEDED означает, что учёт рекурсивного владения достиг максимума вместо блокировки на другом владельце.
Обычно такой результат указывает на неконтролируемую рекурсию, цикл повторов с повторным захватом без раскрутки или отсутствующее освобождение во внутреннем пути. Сохраните поток-владелец и стеки последовательных захватов. Увеличение лимита цикла или замена на семафор не исправят инвариант вложенности. Полезная диагностическая точка — первый захват без соответствующего освобождения.
Что проверить
- Записывайте глубину захвата и поток-владелец mutant.
- Найдите рекурсивные пути или повторы, повторно захватывающие объект до освобождения.
- Сравните обычные и исключительные выходы на предмет сбалансированных освобождений.
Ссылки
- Microsoft: объекты-мьютексы
- ReactOS: реализация исполнительного mutant
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.