diff options
Diffstat (limited to 'private.c')
-rw-r--r-- | private.c | 24 |
1 files changed, 14 insertions, 10 deletions
@@ -147,7 +147,7 @@ _pthread_threadStart (ThreadParms * threadParms) void *(*start) (void *); void *arg; - int status; + void * status; tid = threadParms->tid; start = threadParms->start; @@ -165,7 +165,7 @@ _pthread_threadStart (ThreadParms * threadParms) * Run the caller's routine; */ (*start) (arg); - status = 0; + status = (void *) 0; } __except (EXCEPTION_EXECUTE_HANDLER) { @@ -173,7 +173,7 @@ _pthread_threadStart (ThreadParms * threadParms) * A system unexpected exception had occurred running the user's * routine. We get control back within this block. */ - status = -1; + status = PTHREAD_CANCELED; } #else /* _MSC_VER */ @@ -186,14 +186,14 @@ _pthread_threadStart (ThreadParms * threadParms) * Run the caller's routine; */ (*start) (arg); - status = 0; + status = (void *) 0; } catch (Pthread_exception) { /* * Thread was cancelled. */ - status = -1; + status = PTHREAD_CANCELED; } catch (...) { @@ -201,24 +201,28 @@ _pthread_threadStart (ThreadParms * threadParms) * A system unexpected exception had occurred running the user's * routine. We get control back within this block. */ - status = -1; + status = PTHREAD_CANCELED; } #else /* __cplusplus */ /* - * Run the caller's routine; + * Run the caller's routine; no cancelation or other exceptions will + * be honoured. */ (*start) (arg); - status = 0; + status = (void *) 0; #endif /* __cplusplus */ #endif /* _WIN32 */ - pthread_exit ((void *) status); + pthread_exit (status); - return ((void *) status); + /* + * Never reached. + */ + return (status); } /* threadStart */ |