< Previous by Date Date Index Next by Date >
  Thread Index  

[reSIProcate-users] DUM thread is deadlock in resip::Condition


It's seems the Dispatcher::post() will be got deadlock on Windows 10(also windows server 2012) with the large calls for load test in 1 hour ~ a fer houws,  the DUM thread call stack is:

Dum thread >  Dispatcher::post() > mFifo.add > mCondition.signal, the thread is blocked  on below line that never return then DUM thread is dead.

res = WaitForSingleObject(reinterpret_cast<HANDLE>(m_gate), INFINITE).

This deadlock is easy to replicated in our product - after start test, it will be appears in 10 - 1 hour, now we are using the std::unique_lock and std::condition_variable to instead of resip::Lock and resip::Condition in all resip FIFO, so far it works fine.

Note, the deadlock doesn't appears on Linux.