these could have caused memory corruption due to invalid accesses to the next field. all should be fixed now; I found the errors with fgrep -r '__lock(&', which is bogus since the argument should be an array.
11 lines
227 B
C
11 lines
227 B
C
#include "pthread_impl.h"
|
|
|
|
int pthread_detach(pthread_t t)
|
|
{
|
|
/* Cannot detach a thread that's already exiting */
|
|
if (a_swap(t->exitlock, 1))
|
|
return pthread_join(t, 0);
|
|
t->detached = 2;
|
|
__unlock(t->exitlock);
|
|
return 0;
|
|
}
|