[mythtv-commits] Re: Ticket #326: RingBuffer remains paused while dummyrec is filing it.

MythTV mythtv at cvs.mythtv.org
Thu Sep 15 18:58:36 UTC 2005

#326: RingBuffer remains paused while dummyrec is filing it.
 Reporter:  danielk  |        Owner:  danielk 
     Type:  defect   |       Status:  assigned
 Priority:  blocker  |    Milestone:  0.19    
Component:  mythtv   |      Version:  head    
 Severity:  high     |   Resolution:          
       Cc:           |  
Changes (by danielk):

  * status:  new => assigned


 The locking problem is not as easy to fix as it first appeared because we
 can't release that QMutex in the event loop because it is not in the
 thread that locks it.

 But it is causing both the unresponsiveness on channel change problem and
 the channel change from unlocked channel problem. Basically this lock is
 being held when it shouldn't preventing the ringbuffer from sending data
 to a remote frontend, and it is also not released in certain cases on
 channel changes when there is no signal.

 I'm not sure if pthread mutexes have this restriction but QMutex objects
 can only be unlocked by the thread that locked it so
 RingBufferInfo::Unpause() must be called by the same thread that calls
 RingBufferInfo::Pause() or it simply doesn't unlock the mutex...

Ticket URL: <http://cvs.mythtv.org/trac/ticket/326>
MythTV <http://www.mythtv.org/>

More information about the mythtv-commits mailing list