Search code examples
linuxpthreadsdetach

When is it safe to call pthread_attr_destroy?


I am using pthreads on Linux. From the documentation, it is not clear to me when it is safe to call pthread_attr_destroy on the attributes I use to create a new thread? Can I do it immediately after pthread_create returns or do I have to wait until the thread is joined or detached?

Thanks in advance, Christoph


Solution

  • The thread attribute is copied in pthread_create, so it should be destroyed after pthread_create call.

    Requires reading between lines here http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_create.html:

    If the attributes specified by attr are modified later, the thread's attributes shall not be affected.