diff --git a/mythtv/programs/mythbackend/scheduler.cpp b/mythtv/programs/mythbackend/scheduler.cpp index 9111936b341..095a72904d4 100644 --- a/mythtv/programs/mythbackend/scheduler.cpp +++ b/mythtv/programs/mythbackend/scheduler.cpp @@ -59,7 +59,6 @@ Scheduler::Scheduler(bool runthread, QMap *tvList, recordTable(tmptable), priorityTable("powerpriority"), schedLock(), - m_queueLock(), reclist_changed(false), specsched(master_sched), schedulingEnabled(true), @@ -1644,7 +1643,7 @@ void Scheduler::GetAllScheduled(QStringList &strList) void Scheduler::Reschedule(const QStringList &request) { - QMutexLocker locker(&m_queueLock); + QMutexLocker locker(&schedLock); reschedQueue.enqueue(request); reschedWait.wakeOne(); } @@ -1789,11 +1788,11 @@ void Scheduler::run(void) // wait for slaves to connect sleep(3); + QMutexLocker lockit(&schedLock); + ClearRequestQueue(); EnqueueMatch(0, 0, 0, QDateTime(), "SchedulerInit"); - QMutexLocker lockit(&schedLock); - int prerollseconds = 0; int wakeThreshold = 300; int idleTimeoutSecs = 0; @@ -2122,9 +2121,7 @@ bool Scheduler::HandleReschedule(void) while (HaveQueuedRequests()) { - m_queueLock.lock(); QStringList request = reschedQueue.dequeue(); - m_queueLock.unlock(); QStringList tokens; if (request.size() >= 1) tokens = request[0].split(' ', QString::SkipEmptyParts); diff --git a/mythtv/programs/mythbackend/scheduler.h b/mythtv/programs/mythbackend/scheduler.h index fedab8f77fd..605c81c2f33 100644 --- a/mythtv/programs/mythbackend/scheduler.h +++ b/mythtv/programs/mythbackend/scheduler.h @@ -185,27 +185,21 @@ class Scheduler : public MThread, public MythScheduler void EnqueueMatch(uint recordid, uint sourceid, uint mplexid, const QDateTime maxstarttime, const QString &why) - { QMutexLocker locker(&m_queueLock); - reschedQueue.enqueue(ScheduledRecording::BuildMatchRequest(recordid, - sourceid, mplexid, maxstarttime, why)); }; + { reschedQueue.enqueue(ScheduledRecording::BuildMatchRequest(recordid, + sourceid, mplexid, maxstarttime, why)); }; void EnqueueCheck(const RecordingInfo &recinfo, const QString &why) - { QMutexLocker locker(&m_queueLock); - reschedQueue.enqueue(ScheduledRecording::BuildCheckRequest(recinfo, - why)); }; + { reschedQueue.enqueue(ScheduledRecording::BuildCheckRequest(recinfo, + why)); }; void EnqueuePlace(const QString &why) - { QMutexLocker locker(&m_queueLock); - reschedQueue.enqueue(ScheduledRecording::BuildPlaceRequest(why)); }; + { reschedQueue.enqueue(ScheduledRecording::BuildPlaceRequest(why)); }; bool HaveQueuedRequests(void) - { QMutexLocker locker(&m_queueLock); return !reschedQueue.empty(); }; + { return !reschedQueue.empty(); }; void ClearRequestQueue(void) - { QMutexLocker locker(&m_queueLock); reschedQueue.clear(); }; - - + { reschedQueue.clear(); }; MythDeque reschedQueue; mutable QMutex schedLock; - mutable QMutex m_queueLock; QMutex recordmatchLock; QWaitCondition reschedWait; RecList reclist;