Changeset f61257601 in mythtv
- Timestamp:
- 07/24/12 16:13:16 (5 years ago)
- Branches:
- master, beta/0.28, devel/027candidates, devel/dbus-screensaver, devel/eit-encoding-fixes, devel/ffmpeg-resync, devel/housekeeper, devel/http_ssl, devel/iptv, devel/logging, devel/lvr/rpi, devel/lvr/startup, devel/mythsocket, devel/mythsystem, devel/newvaapi, devel/opengl, devel/resync-ffmpeg28, devel/rpi, devel/scheduler, fixes/0.27, fixes/0.28, fixes/29, personal/stuartm/mheg-debug
- Children:
- 50957d5b6
- Parents:
- 38257011f7
- git-author:
- Daniel Thor Kristjansson <dkristjansson@…> (07/24/12 16:13:16)
- git-committer:
- Daniel Thor Kristjansson <dkristjansson@…> (07/24/12 16:13:16)
- Location:
- mythtv/libs/libmythtv/recorders
- Files:
-
- 2 edited
-
streamhandler.cpp (modified) (5 diffs)
-
streamhandler.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mythtv/libs/libmythtv/recorders/streamhandler.cpp
r38257011f7 rf61257601 27 27 StreamHandler::~StreamHandler() 28 28 { 29 if (!_stream_data_list.empty()) 30 { 31 LOG(VB_GENERAL, LOG_ERR, LOC + "dtor & _stream_data_list not empty"); 29 QMutexLocker locker(&_add_rm_lock); 30 31 { 32 QMutexLocker locker2(&_listener_lock); 33 if (!_stream_data_list.empty()) 34 { 35 LOG(VB_GENERAL, LOG_ERR, LOC + 36 "dtor & _stream_data_list not empty"); 37 } 32 38 } 33 39 … … 42 48 QString output_file) 43 49 { 50 QMutexLocker locker(&_add_rm_lock); 51 44 52 LOG(VB_RECORD, LOG_INFO, LOC + QString("AddListener(0x%1) -- begin") 45 53 .arg((uint64_t)data,0,16)); … … 94 102 void StreamHandler::RemoveListener(MPEGStreamData *data) 95 103 { 104 QMutexLocker locker(&_add_rm_lock); 105 96 106 LOG(VB_RECORD, LOG_INFO, LOC + QString("RemoveListener(0x%1) -- begin") 97 107 .arg((uint64_t)data,0,16)); … … 159 169 _running_state_changed.wait(&_start_stop_lock, 100); 160 170 161 if (!_running_desired)162 {163 LOG(VB_GENERAL, LOG_WARNING, LOC +164 "Programmer Error: Stop called before Start finished");165 }166 167 171 if (_error) 168 172 { … … 176 180 QMutexLocker locker(&_start_stop_lock); 177 181 178 do 179 { 180 SetRunningDesired(false); 181 while (!_running_desired && _running) 182 _running_state_changed.wait(&_start_stop_lock, 100); 183 if (_running_desired) 184 { 185 LOG(VB_GENERAL, LOG_WARNING, LOC + 186 "Programmer Error: Start called before Stop finished"); 187 } 188 } while (_running_desired); 182 SetRunningDesired(false); 183 while (_running) 184 _running_state_changed.wait(&_start_stop_lock, 100); 189 185 190 186 wait(); -
mythtv/libs/libmythtv/recorders/streamhandler.h
r549a54a83c rf61257601 46 46 47 47 // locking order 48 // _pid_lock -> _listener_lock -> _start_stop_lock 48 // _pid_lock -> _listener_lock 49 // _add_rm_lock -> _listener_lock 50 // -> _start_stop_lock 49 51 50 52 class StreamHandler : protected MThread, public DeviceReaderCB … … 102 104 bool _allow_section_reader; 103 105 106 QMutex _add_rm_lock; 107 104 108 mutable QMutex _start_stop_lock; 105 109 volatile bool _running_desired;
Note: See TracChangeset
for help on using the changeset viewer.
