diff options
| author | rpj <rpj> | 2003-09-01 04:53:45 +0000 | 
|---|---|---|
| committer | rpj <rpj> | 2003-09-01 04:53:45 +0000 | 
| commit | a5f3d62017a8e705016d0083a24837d6a56f178d (patch) | |
| tree | 9bf9e8208ddb23ddda41c7ca31887929e58ca49a | |
| parent | bea8978fb8ab1a6d106fc6761b50fb55a98373d4 (diff) | |
Reuse the thread struct on failure.
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | pthread_self.c | 3 | 
2 files changed, 7 insertions, 1 deletions
| @@ -1,3 +1,8 @@ +2003-09-01  Ross Johnson  <rpj@callisto.canberra.edu.au>
 +
 +	* pthread_self.c (pthread_self): The newly aquired pthread_t must be
 +	assigned to the reuse stack, not freed, if the routine fails somehow.
 +
  2003-08-13  Ross Johnson  <rpj@ise.canberra.edu.au>
  	* pthread_getschedparam.c (pthread_getschedparam): An invalid thread ID
 diff --git a/pthread_self.c b/pthread_self.c index bd67e83..e7a81b8 100644 --- a/pthread_self.c +++ b/pthread_self.c @@ -110,7 +110,8 @@ pthread_self (void)  			       FALSE,  			       DUPLICATE_SAME_ACCESS ) )  	    { -	      free( self ); +	      /* Thread structs are never freed. */ +	      ptw32_threadReusePush(self);  	      return (NULL);  	    }  #endif | 
