Project

General

Profile

Feature #6757 ยป 0001-process.c-add-Process.getsid.patch

fumiyas (Fumiyasu SATOH), 07/20/2012 11:47 AM

View differences:

configure.in
getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\
getpriority getrlimit setrlimit sysconf close getpwnam_r getgrnam_r\
dlopen sigprocmask sigaction sigsetjmp _setjmp _longjmp\
setsid telldir seekdir fchmod cosh sinh tanh log2 round llabs\
getsid setsid telldir seekdir fchmod cosh sinh tanh log2 round llabs\
setuid setgid daemon select_large_fdset setenv unsetenv\
mktime timegm gmtime_r clock_gettime gettimeofday poll ppoll\
pread sendfile shutdown sigaltstack dl_iterate_phdr\
process.c
#endif
#ifdef HAVE_GETSID
/*
* call-seq:
* Process.getsid(pid) -> integer
*
* Returns the session ID for this process. Not available on
* all platforms.
*
* Process.getsid(0) #=> 27422
* Process.getsid(Process.pid()) #=> 27422
*/
static VALUE
proc_getsid(VALUE obj, VALUE pid)
{
rb_pid_t sid;
rb_secure(2);
sid = getsid(NUM2PIDT(pid));
if (sid < 0) rb_sys_fail(0);
return PIDT2NUM(sid);
}
#else
#define proc_getsid rb_f_notimplement
#endif
#if defined(HAVE_SETSID) || (defined(HAVE_SETPGRP) && defined(TIOCNOTTY))
#if !defined(HAVE_SETSID)
static rb_pid_t ruby_setsid(void);
......
rb_define_module_function(rb_mProcess, "getpgid", proc_getpgid, 1);
rb_define_module_function(rb_mProcess, "setpgid", proc_setpgid, 2);
rb_define_module_function(rb_mProcess, "getsid", proc_getsid, 1);
rb_define_module_function(rb_mProcess, "setsid", proc_setsid, 0);
rb_define_module_function(rb_mProcess, "getpriority", proc_getpriority, 2);
    (1-1/1)