__pthread_manager_adjust_prio(__pthread_main_thread->p_priority);
int __pthread_manager(void *arg){  int reqfd = (int)arg;  sigset_t mask;  fd_set readfds;  struct timeval timeout;  int n;  struct pthread_request request;  /* If we have special thread_self processing, initialize it.  */#ifdef INIT_THREAD_SELF  INIT_THREAD_SELF(&__pthread_manager_thread);#endif  /* Set the error variable.  */  __pthread_manager_thread.p_errnop = &__pthread_manager_thread.p_errno;  __pthread_manager_thread.p_h_errnop = &__pthread_manager_thread.p_h_errno;  /* Block all signals except PTHREAD_SIG_RESTART */  sigfillset(&mask);  sigdelset(&mask, PTHREAD_SIG_RESTART);  sigprocmask(SIG_SETMASK, &mask, NULL);  /* Enter server loop */  while(1) {    FD_ZERO(&readfds);    FD_SET(reqfd, &readfds);    timeout.tv_sec = 2;    timeout.tv_usec = 0;    n = __select(reqfd + 1, &readfds, NULL, NULL, &timeout);    /* Check for termination of the main thread */    if (getppid() == 1) {      pthread_kill_all_threads(SIGKILL, 0);      _exit(0);    }    /* Check for dead children */    if (terminated_children) {      terminated_children = 0;      pthread_reap_children();    }    /* Read and execute request */    if (n == 1 && FD_ISSET(reqfd, &readfds)) {      n = __libc_read(reqfd, (char *)&request, sizeof(request));      ASSERT(n == sizeof(request));      switch(request.req_kind) {      case REQ_CREATE:        request.req_thread->p_retcode =          pthread_handle_create((pthread_t *) &request.req_thread->p_retval,                                request.req_args.create.attr,                                request.req_args.create.fn,                                request.req_args.create.arg,                                &request.req_args.create.mask,                                request.req_thread->p_pid);        restart(request.req_thread);        break;      case REQ_FREE:        pthread_handle_free(request.req_args.free.thread);        break;      case REQ_PROCESS_EXIT:        pthread_handle_exit(request.req_thread,                            request.req_args.exit.code);        break;      case REQ_MAIN_THREAD_EXIT:        main_thread_exiting = 1;        if (__pthread_main_thread->p_nextlive == __pthread_main_thread) {          restart(__pthread_main_thread);          return 0;        }        break;      }    }  }}