diff --git a/src/OpenThreads/pthreads/PThread.cpp b/src/OpenThreads/pthreads/PThread.cpp index f74529045..3b6b6e838 100644 --- a/src/OpenThreads/pthreads/PThread.cpp +++ b/src/OpenThreads/pthreads/PThread.cpp @@ -603,6 +603,12 @@ bool Thread::isRunning() // int Thread::start() { + PThreadPrivateData *pd = static_cast (_prvData); + if (pd->isRunning()) + { + return 0; + } + int status; pthread_attr_t thread_attr; @@ -612,8 +618,6 @@ int Thread::start() { return status; } - PThreadPrivateData *pd = static_cast (_prvData); - //------------------------------------------------------------------------- // Set the stack size if requested, but not less than a platform reasonable // value. diff --git a/src/OpenThreads/win32/Win32Thread.cpp b/src/OpenThreads/win32/Win32Thread.cpp index b0110dd41..ce1db0b73 100644 --- a/src/OpenThreads/win32/Win32Thread.cpp +++ b/src/OpenThreads/win32/Win32Thread.cpp @@ -334,6 +334,11 @@ bool Thread::isRunning() { int Thread::start() { Win32ThreadPrivateData *pd = static_cast (_prvData); + if (pd->isRunning) + { + return 0; + } + //------------------------------------------------------------------------- // Prohibit the stack size from being changed. // (bb 5/13/2005) it actually doesn't matter.