diff options
author | rpj <rpj> | 2011-03-07 01:23:25 +0000 |
---|---|---|
committer | rpj <rpj> | 2011-03-07 01:23:25 +0000 |
commit | 247469c6f6a16681491ac3ee213e57efcdda6153 (patch) | |
tree | 524cb8b1365cea86e12d8bee9b1a2bd93df4e6a4 /ptw32_threadStart.c | |
parent | a39dab139b7c301ffd5a5592c292123c54e686cd (diff) |
exception handling and c++ casts
Diffstat (limited to 'ptw32_threadStart.c')
-rw-r--r-- | ptw32_threadStart.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/ptw32_threadStart.c b/ptw32_threadStart.c index 8dcede3..3bc7ede 100644 --- a/ptw32_threadStart.c +++ b/ptw32_threadStart.c @@ -299,20 +299,11 @@ ptw32_threadStart (void *vthreadParms) { /* * A system unexpected exception has occurred running the user's - * terminate routine. We get control back within this block - cleanup - * and release the exception out of thread scope. + * terminate routine. We get control back within this block + * and exit with a substitue status. If the thread was not + * cancelled then this indicates the unhandled exception. */ status = sp->exitStatus = PTHREAD_CANCELED; - (void) pthread_mutex_lock (&sp->cancelLock); - sp->state = PThreadStateException; - (void) pthread_mutex_unlock (&sp->cancelLock); - (void) pthread_win32_thread_detach_np (); - (void) set_terminate (ptw32_oldTerminate); - throw; - - /* - * Never reached. - */ } (void) set_terminate (ptw32_oldTerminate); |