diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-28 05:45:59 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-28 05:45:59 +0000 |
| commit | 3a4b1cd8fc0fe0c52b4beb300ced54ddc730e164 (patch) | |
| tree | 60619d671d69a2535828be0197d6037bf55b4c94 | |
| parent | 0494eeffa4a4b47f814f7584d5406e5b2e069d9b (diff) | |
| download | qmmp-3a4b1cd8fc0fe0c52b4beb300ced54ddc730e164.tar.gz qmmp-3a4b1cd8fc0fe0c52b4beb300ced54ddc730e164.tar.bz2 qmmp-3a4b1cd8fc0fe0c52b4beb300ced54ddc730e164.zip | |
fixed possible freezes
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3484 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.cpp | 3 | ||||
| -rw-r--r-- | src/plugins/Transports/mms/mmsstreamreader.cpp | 3 | ||||
| -rw-r--r-- | src/qmmp/qmmpaudioengine.cpp | 6 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/plugins/Transports/http/httpstreamreader.cpp b/src/plugins/Transports/http/httpstreamreader.cpp index adf9916e7..3141dce77 100644 --- a/src/plugins/Transports/http/httpstreamreader.cpp +++ b/src/plugins/Transports/http/httpstreamreader.cpp @@ -262,7 +262,8 @@ void HttpStreamReader::abort() } m_stream.aborted = true; m_mutex.unlock(); - m_thread->wait(); + if(m_thread->isRunning()) + m_thread->wait(); if (m_handle) { curl_easy_cleanup(m_handle); diff --git a/src/plugins/Transports/mms/mmsstreamreader.cpp b/src/plugins/Transports/mms/mmsstreamreader.cpp index 8bc9e9790..1e4e46d86 100644 --- a/src/plugins/Transports/mms/mmsstreamreader.cpp +++ b/src/plugins/Transports/mms/mmsstreamreader.cpp @@ -123,7 +123,8 @@ void MMSStreamReader::abort() } m_aborted = true; m_mutex.unlock(); - m_thread->wait(); + if(m_thread->isRunning()) + m_thread->wait(); m_ready = false; if (m_handle) mmsx_close(m_handle); diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index b66d6b0c4..71f2fbc7c 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -256,7 +256,8 @@ void QmmpAudioEngine::stop() if (m_output) m_output->recycler()->cond()->wakeAll(); - wait(); + if(isRunning()) + wait(); if (m_output) { @@ -269,7 +270,8 @@ void QmmpAudioEngine::stop() if (m_output) { m_output->recycler()->cond()->wakeAll(); - m_output->wait(); + if(m_output->isRunning()) + m_output->wait(); delete m_output; m_output = 0; } |
