aboutsummaryrefslogtreecommitdiff
path: root/src/jthread/win32
diff options
context:
space:
mode:
authorsapier <Sapier at GMX dot net>2013-11-30 01:51:54 +0100
committersapier <Sapier at GMX dot net>2013-11-30 02:15:31 +0100
commitd19a69cd0d22dfbe802286baf8b33ebb8c6f4fa2 (patch)
tree813d0cf5a003d6b9e7966c20878a2b131299564d /src/jthread/win32
parentd02ce1cf4d5d283cc6045771612e5b351740e07e (diff)
downloadminetest-d19a69cd0d22dfbe802286baf8b33ebb8c6f4fa2.tar.gz
minetest-d19a69cd0d22dfbe802286baf8b33ebb8c6f4fa2.tar.bz2
minetest-d19a69cd0d22dfbe802286baf8b33ebb8c6f4fa2.zip
Fix broken thread stop handling
Diffstat (limited to 'src/jthread/win32')
-rw-r--r--src/jthread/win32/jthread.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/jthread/win32/jthread.cpp b/src/jthread/win32/jthread.cpp
index 1cf4f93a3..e56c16271 100644
--- a/src/jthread/win32/jthread.cpp
+++ b/src/jthread/win32/jthread.cpp
@@ -35,6 +35,7 @@ JThread::JThread()
{
retval = NULL;
mutexinit = false;
+ requeststop = false;
running = false;
}
@@ -45,7 +46,7 @@ JThread::~JThread()
void JThread::Stop() {
runningmutex.Lock();
- running = false;
+ requeststop = false;
runningmutex.Unlock();
}
@@ -76,6 +77,7 @@ int JThread::Start()
runningmutex.Unlock();
return ERR_JTHREAD_ALREADYRUNNING;
}
+ requeststop = false;e
runningmutex.Unlock();
continuemutex.Lock();
@@ -134,6 +136,15 @@ bool JThread::IsRunning()
return r;
}
+bool JThread::StopRequested() {
+ bool r;
+
+ runningmutex.Lock();
+ r = requeststop;
+ runningmutex.Unlock();
+ return r;
+}
+
void *JThread::GetReturnValue()
{
void *val;