if (__pthread_exit_requested) {
if (__builtin_expect (__pthread_exit_requested, 0)) {
static void pthread_handle_sigcancel(int sig){  pthread_descr self = thread_self();  sigjmp_buf * jmpbuf;  if (self == &__pthread_manager_thread)    {      __pthread_manager_sighandler(sig);      return;    }  if (__pthread_exit_requested) {    /* Main thread should accumulate times for thread manager and its       children, so that timings for main thread account for all threads. */    if (self == __pthread_main_thread)      waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);    _exit(__pthread_exit_code);  }  if (THREAD_GETMEM(self, p_canceled)      && THREAD_GETMEM(self, p_cancelstate) == PTHREAD_CANCEL_ENABLE) {    if (THREAD_GETMEM(self, p_canceltype) == PTHREAD_CANCEL_ASYNCHRONOUS)      pthread_exit(PTHREAD_CANCELED);    jmpbuf = THREAD_GETMEM(self, p_cancel_jmp);    if (jmpbuf != NULL) {      THREAD_SETMEM(self, p_cancel_jmp, NULL);      siglongjmp(*jmpbuf, 1);    }  }}