pthread_detach() returns zero when it completes successfully.
Any other return value indicates that an error occurred. When any of the following
conditions is detected, pthread_detach() fails and returns
the corresponding value.
is not a valid thread.
is not a valid, undetached thread in the current process.