| 1 | Index: libs/libmyth/mythcontext.cpp
|
|---|
| 2 | ===================================================================
|
|---|
| 3 | --- libs/libmyth/mythcontext.cpp (revision 13591)
|
|---|
| 4 | +++ libs/libmyth/mythcontext.cpp (working copy)
|
|---|
| 5 | @@ -284,7 +284,7 @@
|
|---|
| 6 |
|
|---|
| 7 | DisplayRes *display_res;
|
|---|
| 8 |
|
|---|
| 9 | - QMutex *m_priv_mutex;
|
|---|
| 10 | + QMutex m_priv_mutex;
|
|---|
| 11 | queue<MythPrivRequest> m_priv_requests;
|
|---|
| 12 | QWaitCondition m_priv_queued;
|
|---|
| 13 |
|
|---|
| 14 | @@ -321,7 +321,6 @@
|
|---|
| 15 | m_logenable(-1), m_logmaxcount(-1), m_logprintlevel(-1),
|
|---|
| 16 | screensaverEnabled(false),
|
|---|
| 17 | display_res(NULL),
|
|---|
| 18 | - m_priv_mutex(new QMutex(true)),
|
|---|
| 19 | useSettingsCache(false)
|
|---|
| 20 | {
|
|---|
| 21 | GetInstallPrefixPath( m_installprefix, m_installlibdir );
|
|---|
| 22 | @@ -462,8 +461,6 @@
|
|---|
| 23 | serverSock->DownRef();
|
|---|
| 24 | if (eventSock)
|
|---|
| 25 | eventSock->DownRef();
|
|---|
| 26 | - if (m_priv_mutex)
|
|---|
| 27 | - delete m_priv_mutex;
|
|---|
| 28 | if (screensaver)
|
|---|
| 29 | delete screensaver;
|
|---|
| 30 | }
|
|---|
| 31 | @@ -2874,24 +2871,22 @@
|
|---|
| 32 |
|
|---|
| 33 | void MythContext::addPrivRequest(MythPrivRequest::Type t, void *data)
|
|---|
| 34 | {
|
|---|
| 35 | - QMutexLocker lockit(d->m_priv_mutex);
|
|---|
| 36 | + QMutexLocker lockit(&d->m_priv_mutex);
|
|---|
| 37 | d->m_priv_requests.push(MythPrivRequest(t, data));
|
|---|
| 38 | d->m_priv_queued.wakeAll();
|
|---|
| 39 | }
|
|---|
| 40 |
|
|---|
| 41 | void MythContext::waitPrivRequest() const
|
|---|
| 42 | {
|
|---|
| 43 | - while (true)
|
|---|
| 44 | - {
|
|---|
| 45 | - d->m_priv_queued.wait();
|
|---|
| 46 | - if (!d->m_priv_requests.empty())
|
|---|
| 47 | - return;
|
|---|
| 48 | - }
|
|---|
| 49 | + d->m_priv_mutex.lock();
|
|---|
| 50 | + while (d->m_priv_requests.empty())
|
|---|
| 51 | + d->m_priv_queued.wait(&d->m_priv_mutex);
|
|---|
| 52 | + d->m_priv_mutex.unlock();
|
|---|
| 53 | }
|
|---|
| 54 |
|
|---|
| 55 | MythPrivRequest MythContext::popPrivRequest()
|
|---|
| 56 | {
|
|---|
| 57 | - QMutexLocker lockit(d->m_priv_mutex);
|
|---|
| 58 | + QMutexLocker lockit(&d->m_priv_mutex);
|
|---|
| 59 | MythPrivRequest ret_val(MythPrivRequest::PrivEnd, NULL);
|
|---|
| 60 | if (!d->m_priv_requests.empty()) {
|
|---|
| 61 | ret_val = d->m_priv_requests.front();
|
|---|