[mythtv-commits] mythtv commit: r26526 - in trunk/mythtv/libs by beirdo

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Sun Sep 26 06:41:01 UTC 2010


      Author: beirdo
        Date: 2010-09-26 06:41:01 +0000 (Sun, 26 Sep 2010)
New Revision: 26526
   Changeset: http://svn.mythtv.org/trac/changeset/26526

Log:

Added kMSProcessEvents to myth_system to allow for previous behavior where 
blocking the UI thread with MYTH_SYSTEM_DONT_BLOCK_PARENT would be the only
time that we would process the UI events while we wait for the PID to finish.
This allows us to selectively process the events when running in the UI
thread.

This should fix the deadlock that markk saw earlier where checking the status
of pulseaudio, if some particular events come in while we are waiting, we may
deadlock.  This was due to the timerEvent in tv_play.cpp using
GetPlayerWriteLock in the keyEvent handling, and the pulseaudio handling runs
inside that lock.  Some events (in particular DONE_RECORDING) have code that
use GetPlayerReadLock, and this causes a deadlock.

For this particular call to myth_system, I have disabled processing of events
to keep this particular deadlock from happening.  There may be other places
that require this treatment as well.



Modified:

   trunk/mythtv/libs/libmyth/util.cpp
   trunk/mythtv/libs/libmythdb/mythcorecontext.cpp
   trunk/mythtv/libs/libmythdb/mythsystem.cpp
   trunk/mythtv/libs/libmythdb/mythsystem.h
   trunk/mythtv/libs/libmythtv/previewgenerator.cpp
   trunk/mythtv/libs/libmythui/screensaver-x11.cpp




More information about the mythtv-commits mailing list