Приложение зависает в SysUtils -> DoneMonitorSupport при выходе
Я пишу очень потоковое приложение, которое зависает при выходе.
Мы проследили в системные блоки и нашли место, где программа входит в бесконечный цикл. Это'вSysUtils линия 19868 -> DoneMonitorSupport -> CleanEventList: Я
repeat until InterlockedCompareExchange(EventCache[I].Lock, 1, 0) = 0;
Мы искали решение онлайн и нашли пару отчетов о контроле качества:
http://qc.embarcadero.com/wc/qcmain.aspx?d=95194http://qc.embarcadero.com/wc/qcmain.aspx?d=90487К сожалению, этикажется, не относится к моей ситуации, как яне использовать либоTThreadList или жеTMonitor.I»
Я почти уверен, что все мои потоки закончились и были уничтожены, поскольку все они наследуются от базового потока, который ведет счет создания / уничтожения.
Кто-нибудь сталкивался с подобным поведением раньше? Знаете ли вы какие-либо стратегии для обнаружения, где может лежать коренная причина?