Ticket #4828: haiku_ticket4828.diff

File haiku_ticket4828.diff, 618 bytes (added by v, 15 years ago)

updated patch

  • src/system/libroot/posix/pthread/pthread.c

     
    191191int
    192192pthread_detach(pthread_t thread)
    193193{
    194     if (atomic_or(&thread->flags, THREAD_DETACHED) & THREAD_DEAD)
     194    int32 flags;
     195
     196    if(thread == NULL)
     197        return B_BAD_VALUE;
     198
     199    flags = atomic_or(&thread->flags, THREAD_DETACHED);
     200    if (flags & THREAD_DETACHED)
     201        return B_OK;
     202
     203    if (flags & THREAD_DEAD)
    195204        free(thread);
    196205
    197     return 0;
     206    return B_OK;
    198207}
    199208
    200209