summaryrefslogtreecommitdiff
path: root/ptw32_threadStart.c
diff options
context:
space:
mode:
authorrpj <rpj>2011-03-07 01:23:25 +0000
committerrpj <rpj>2011-03-07 01:23:25 +0000
commit247469c6f6a16681491ac3ee213e57efcdda6153 (patch)
tree524cb8b1365cea86e12d8bee9b1a2bd93df4e6a4 /ptw32_threadStart.c
parenta39dab139b7c301ffd5a5592c292123c54e686cd (diff)
exception handling and c++ casts
Diffstat (limited to 'ptw32_threadStart.c')
-rw-r--r--ptw32_threadStart.c15
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);