IO-AIO

 view release on metacpan or  search on metacpan

libeio/xthread.h  view on Meta::CPAN

#endif

#ifndef X_STACKSIZE
# define X_STACKSIZE sizeof (void *) * 4096
#endif

static int
xthread_create (xthread_t *tid, void *(*proc)(void *), void *arg)
{
  int retval;
  sigset_t fullsigset, oldsigset;
  pthread_attr_t attr;

  pthread_attr_init (&attr);
  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
  pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN < X_STACKSIZE ? X_STACKSIZE : PTHREAD_STACK_MIN);
#ifdef PTHREAD_SCOPE_PROCESS
  pthread_attr_setscope (&attr, PTHREAD_SCOPE_PROCESS);
#endif

  sigfillset (&fullsigset);

  pthread_sigmask (SIG_SETMASK, &fullsigset, &oldsigset);
  retval = pthread_create (tid, &attr, proc, arg) == 0;
  pthread_sigmask (SIG_SETMASK, &oldsigset, 0);

  pthread_attr_destroy (&attr);

  return retval;
}

#define respipe_read(a,b,c)  read  ((a), (b), (c))
#define respipe_write(a,b,c) write ((a), (b), (c))
#define respipe_close(a)     close ((a))



( run in 2.713 seconds using v1.01-cache-2.11-cpan-71847e10f99 )