Bug fix: Wake up curl thread at exit of viewer.
This commit is contained in:
@@ -841,10 +841,7 @@ class AICurlThread : public LLThread
|
|||||||
virtual ~AICurlThread();
|
virtual ~AICurlThread();
|
||||||
|
|
||||||
// MAIN-THREAD
|
// MAIN-THREAD
|
||||||
void wakeup_thread(void);
|
void wakeup_thread(bool stop_thread = false);
|
||||||
|
|
||||||
// MAIN-THREAD
|
|
||||||
void stop_thread(void) { mRunning = false; wakeup_thread(); }
|
|
||||||
|
|
||||||
// MAIN-THREAD
|
// MAIN-THREAD
|
||||||
apr_status_t join_thread(void);
|
apr_status_t join_thread(void);
|
||||||
@@ -1071,7 +1068,7 @@ void AICurlThread::cleanup_wakeup_fds(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MAIN-THREAD
|
// MAIN-THREAD
|
||||||
void AICurlThread::wakeup_thread(void)
|
void AICurlThread::wakeup_thread(bool stop_thread)
|
||||||
{
|
{
|
||||||
DoutEntering(dc::curl, "AICurlThread::wakeup_thread");
|
DoutEntering(dc::curl, "AICurlThread::wakeup_thread");
|
||||||
llassert(is_main_thread());
|
llassert(is_main_thread());
|
||||||
@@ -1080,6 +1077,10 @@ void AICurlThread::wakeup_thread(void)
|
|||||||
if (!mRunning)
|
if (!mRunning)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Last time we are run?
|
||||||
|
if (stop_thread)
|
||||||
|
mRunning = false;
|
||||||
|
|
||||||
// Try if curl thread is still awake and if so, pass the new commands directly.
|
// Try if curl thread is still awake and if so, pass the new commands directly.
|
||||||
if (mWakeUpMutex.tryLock())
|
if (mWakeUpMutex.tryLock())
|
||||||
{
|
{
|
||||||
@@ -1857,7 +1858,7 @@ void stopCurlThread(void)
|
|||||||
using curlthread::AICurlThread;
|
using curlthread::AICurlThread;
|
||||||
if (AICurlThread::sInstance)
|
if (AICurlThread::sInstance)
|
||||||
{
|
{
|
||||||
AICurlThread::sInstance->stop_thread();
|
AICurlThread::sInstance->wakeup_thread(true);
|
||||||
int count = 401;
|
int count = 401;
|
||||||
while(--count && !AICurlThread::sInstance->isStopped())
|
while(--count && !AICurlThread::sInstance->isStopped())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user