Здравствуйте, Voinov, Вы писали:
V>Есть серверное приложение с кучей одинаковых потоков. В каждом потоке в начале вызывается CoInitialize, а в конце CoUninitialize. Сами потоки выполняют некоторые скрипты, где могут создаваться различные COM объекты. Изредка вызов CoUninitialize зависает и не даёт потоку нормально завершиться. При этом стек вызовов имеет такой вид:
V>...
V># 0x7769174C, CreateErrorInfo+3085, <no source info>, ole32
V># 0x776BCE40, CoUninitialize+407, <no source info>, ole32
V># 0x776BCDF2, CoUninitialize+329, <no source info>, ole32
V># 0x00409AB1, ScriptThreadProc+577, scriptthread.cpp [.text+0x00008AB1] 94+0, surrogate
V>Т.е. оно зависает в каком-то Sleep, вызываемом из NdrEncapsulatedUnionMarshall.
V>Сталкивался ли кто-нибудь с подобным и как это можно побороть?
Посмотри здесь решение
Бага в CoUninitializeАвтор: Коваленко Дмитрий
Дата: 18.09.06