if (pthread_initialize_manager() < 0) return EAGAIN;
if (__pthread_initialize_manager() < 0) return EAGAIN;
int __pthread_create_2_1(pthread_t *thread, const pthread_attr_t *attr,			 void * (*start_routine)(void *), void *arg){  pthread_descr self = thread_self();  struct pthread_request request;  if (__pthread_manager_request < 0) {    if (pthread_initialize_manager() < 0) return EAGAIN;  }  request.req_thread = self;  request.req_kind = REQ_CREATE;  request.req_args.create.attr = attr;  request.req_args.create.fn = start_routine;  request.req_args.create.arg = arg;  sigprocmask(SIG_SETMASK, (const sigset_t *) NULL,              &request.req_args.create.mask);  __libc_write(__pthread_manager_request, (char *) &request, sizeof(request));  suspend(self);  if (self->p_retcode == 0) *thread = (pthread_t) self->p_retval;  return self->p_retcode;}