Constantly people complain that the runtime does not catch their mistakes. They are hiding behind this requirement in the POSIX specification (for pthread_join in this case, also applies to pthread_kill and similar functions): The pthread_join() function shall fail if: [...] ESRCH No thread could…