02a24a144d
The second increment of refcnt must occur before pthread_create or a subtle possibility of a double free() occurs if the thread runs immediately and self-joins before the second inc. Also use atomic ops for joinable flag to ensure that concurrent joins will error properly.