ruby-changes:15285
From: nobu <ko1@a...>
Date: Fri, 2 Apr 2010 08:25:32 +0900 (JST)
Subject: [ruby-changes:15285] Ruby:r27170 (trunk): * process.c (ruby_setsid): split from proc_setsid.
nobu 2010-04-02 08:25:10 +0900 (Fri, 02 Apr 2010) New Revision: 27170 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27170 Log: * process.c (ruby_setsid): split from proc_setsid. Modified files: trunk/ChangeLog trunk/process.c Index: ChangeLog =================================================================== --- ChangeLog (revision 27169) +++ ChangeLog (revision 27170) @@ -1,5 +1,7 @@ -Fri Apr 2 08:22:51 2010 Nobuyoshi Nakada <nobu@r...> +Fri Apr 2 08:24:56 2010 Nobuyoshi Nakada <nobu@r...> + * process.c (ruby_setsid): split from proc_setsid. + * process.c (proc_daemon): use EXIT_SUCCESS instead of magic number. Fri Apr 2 07:00:28 2010 Nobuyoshi Nakada <nobu@r...> Index: process.c =================================================================== --- process.c (revision 27169) +++ process.c (revision 27170) @@ -3389,6 +3389,10 @@ #if defined(HAVE_SETSID) || (defined(HAVE_SETPGRP) && defined(TIOCNOTTY)) +#if !defined(HAVE_SETSID) +static rb_pid_t ruby_setsid(void); +#define setsid() ruby_setsid() +#endif /* * call-seq: * Process.setsid => fixnum @@ -3403,18 +3407,22 @@ static VALUE proc_setsid(void) { -#if defined(HAVE_SETSID) rb_pid_t pid; rb_secure(2); pid = setsid(); if (pid < 0) rb_sys_fail(0); return PIDT2NUM(pid); -#elif defined(HAVE_SETPGRP) && defined(TIOCNOTTY) +} + +#if !defined(HAVE_SETSID) +#define HAVE_SETSID 1 +static rb_pid_t +ruby_setsid(void) +{ rb_pid_t pid; int ret; - rb_secure(2); pid = getpid(); #if defined(SETPGRP_VOID) ret = setpgrp(); @@ -3424,15 +3432,15 @@ #else ret = setpgrp(0, pid); #endif - if (ret == -1) rb_sys_fail(0); + if (ret == -1) return -1; if ((fd = open("/dev/tty", O_RDWR)) >= 0) { ioctl(fd, TIOCNOTTY, NULL); close(fd); } - return PIDT2NUM(pid); + return pid; +} #endif -} #else #define proc_setsid rb_f_notimplement #endif @@ -4531,7 +4539,7 @@ return INT2FIX(maxgroups); } -#if defined(HAVE_DAEMON) || defined(HAVE_FORK) +#if defined(HAVE_DAEMON) || (defined(HAVE_FORK) && defined(HAVE_SETSID)) /* * call-seq: * Process.daemon() => 0 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/