From 6a0edd7cce28d9a62350e4db39e1b2d1ce27ae4b Mon Sep 17 00:00:00 2001 From: Pixel Date: Wed, 9 Nov 2011 19:21:10 +0100 Subject: Securing a bit more the thread-joining. --- src/Threads.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/Threads.cc') diff --git a/src/Threads.cc b/src/Threads.cc index 5f07040..f6578ed 100644 --- a/src/Threads.cc +++ b/src/Threads.cc @@ -1,6 +1,7 @@ #include "Exceptions.h" #include "Threads.h" #include "Local.h" +#include "Atomic.h" namespace Balau { @@ -38,10 +39,8 @@ Balau::Thread::~Thread() { void * Balau::Thread::join() { void * r = NULL; - if (!m_joined) { - m_joined = true; + if (Atomic::CmpXChgBool(&m_joined, true, false)) pthread_join(m_thread, &r); - } return r; } -- cgit v1.2.3