[mythtv] [BUG?] Endless waiting for thread...

Kevin Kuphal kuphal at dls.net
Thu Mar 10 02:30:54 UTC 2005


Isaac Richards wrote:

>Nope.  Really need to fix the actual bug - ie., whatever's keeping things from 
>returning threads to the pool.  If it's just covered up like this, then it'll 
>eventually have way too many threads running at once and cause other 
>problems.
>  
>
Understandable.  Is it possible for the thread pool to be exhausted 
normally?  I would guess this could happen regularly when more than 5 
sockets are open.  What I'm curious about is that there is really only 
one place that puts threads back in the pool and this is surrounded by 
locks.  The readSocket also has locks around the part which checks for 
an empty pool and gets a new thread.  Is it possible that read socket 
(despite the usleep(50)) loops so quickly that the QMutex doesn't get a 
chance to see the unlock and in essence locks the MarkUnused function 
from ever getting a lock in order to replenish the queue?  When I saw 
this error, the loop was executing very quickly:

2005-03-07 22:21:32.326 waiting for a thread..
2005-03-07 22:21:32.346 waiting for a thread..

Is this a possible occurance?  I guess logically it would seem not 
possible as the mutex unlock should unblock the waiting lock call in 
MarkUnused but who knows what really happens in there...

Kevin




More information about the mythtv-dev mailing list