Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, 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>>Сталкивался ли кто-нибудь с подобным и как это можно побороть?
Vi2>Посмотри здесь решение Бага в CoUninitializeАвтор: Коваленко Дмитрий
Дата: 18.09.06
Спасибо, но к сожалению, не прокатило. Есть ещё идеи?