You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2010/05/04 22:47:55 UTC
svn commit: r941035 -
/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp
Author: tabish
Date: Tue May 4 20:47:55 2010
New Revision: 941035
URL: http://svn.apache.org/viewvc?rev=941035&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQCPP-277
Apply some user supplied suggestions to the Windows Thread code to try and fix a hang on Windows.
Modified:
activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp
Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp?rev=941035&r1=941034&r2=941035&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/decaf/lang/Thread.cpp Tue May 4 20:47:55 2010
@@ -117,6 +117,8 @@ namespace lang{
#ifdef HAVE_PTHREAD_H
pthread_attr_destroy( &attributes );
+ #else
+ ::CloseHandle( handle );
#endif
}
@@ -205,17 +207,13 @@ namespace{
::TlsSetValue( currentThreadKey, NULL );
+ properties->state = Thread::TERMINATED;
+
#ifndef _WIN32_WCE
_endthreadex( 0 );
#else
ExitThread( 0 );
#endif
-
- ::CloseHandle( properties->handle );
-
- properties->state = Thread::TERMINATED;
-
- return NULL;
}
#endif
@@ -420,7 +418,7 @@ void Thread::join() throw( decaf::lang::
void* theReturn = 0;
pthread_join( properties->handle, &theReturn );
#else
- Thread::join( INFINITE, 0 );
+ ::WaitForSingleObject( properties->handle, INFINITE );
#endif
}
}