mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2000-06-10 Ulrich Drepper <drepper@redhat.com> * pthread.c (__pthread_create_2_1): Optimize a bit. * internals.h (invalid_handle): Also test for p_terminated != 0. (nonexisting_handle): New function. Same as old invalid_handle. * join.c (pthread_join): Use nonexisting_handle instead of invalid_handle to test for acceptable thread handle. Reported by Permaine Cheung <pcheung@cygnus.com>.
This commit is contained in:
@ -500,6 +500,7 @@ int __pthread_create_2_1(pthread_t *thread, const pthread_attr_t *attr,
|
||||
{
|
||||
pthread_descr self = thread_self();
|
||||
struct pthread_request request;
|
||||
int retval;
|
||||
if (__pthread_manager_request < 0) {
|
||||
if (__pthread_initialize_manager() < 0) return EAGAIN;
|
||||
}
|
||||
@ -512,9 +513,10 @@ int __pthread_create_2_1(pthread_t *thread, const pthread_attr_t *attr,
|
||||
&request.req_args.create.mask);
|
||||
__libc_write(__pthread_manager_request, (char *) &request, sizeof(request));
|
||||
suspend(self);
|
||||
if (THREAD_GETMEM(self, p_retcode) == 0)
|
||||
retval = THREAD_GETMEM(self, p_retcode;
|
||||
if (retval == 0)
|
||||
*thread = (pthread_t) THREAD_GETMEM(self, p_retval);
|
||||
return THREAD_GETMEM(self, p_retcode);
|
||||
return retval;
|
||||
}
|
||||
|
||||
versioned_symbol (libpthread, __pthread_create_2_1, pthread_create, GLIBC_2_1);
|
||||
|
Reference in New Issue
Block a user