Example #1
0
static rb_pid_t SysFork (
)
{
  rb_pid_t pid = rb_fork(0, 0, 0, Qnil);
  if (pid == 0) rb_thread_atfork();
  return pid;
}
static GPid
client_custom_fork (MilterClient *client)
{
#ifdef HAVE_RB_FORK
    int status;
    return (GPid)rb_fork(&status, NULL, NULL, Qnil);
#else
    VALUE pid;

    pid = rb_funcall2(rb_mKernel, rb_intern("fork"), 0, 0);
    if (NIL_P(pid)) {
        return (GPid)0;
    } else {
        return (GPid)NUM2INT(pid);
    }
#endif
}