Added BECOME-SESSION-LEADER.
This commit is contained in:
parent
4ae0a89c53
commit
f244b7532f
|
@ -273,6 +273,19 @@ scheme_value df_setpgid(long nargs, scheme_value *args)
|
|||
return ret1;
|
||||
}
|
||||
|
||||
scheme_value df_setsid(long nargs, scheme_value *args)
|
||||
{
|
||||
extern pid_t setsid(void);
|
||||
scheme_value ret1;
|
||||
pid_t r1;
|
||||
|
||||
cig_check_nargs(1, nargs, "setsid");
|
||||
r1 = setsid();
|
||||
ret1 = errno_or_false(r1);
|
||||
VECTOR_REF(*args,0) = ENTER_FIXNUM(r1);
|
||||
return ret1;
|
||||
}
|
||||
|
||||
scheme_value df_umask(long nargs, scheme_value *args)
|
||||
{
|
||||
|
||||
|
|
|
@ -210,7 +210,8 @@
|
|||
(define-foreign parent-pid (getppid) pid_t)
|
||||
|
||||
|
||||
;;; Process Groups -dalbertz
|
||||
;;; Process groups and session ids
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define-foreign process-group (getpgrp) pid_t)
|
||||
(define-foreign %set-process-group/errno
|
||||
|
@ -220,12 +221,22 @@
|
|||
(define-simple-errno-syscall (%set-process-group pid pgrp)
|
||||
%set-process-group/errno)
|
||||
|
||||
|
||||
(define (set-process-group arg1 . maybe-arg2)
|
||||
(receive (pid pgrp) (if (null? maybe-arg2)
|
||||
(values (pid) arg1)
|
||||
(values arg1 (car maybe-arg2)))
|
||||
(%set-process-group pid pgrp)))
|
||||
|
||||
|
||||
(define-foreign become-session-leader/errno (setsid)
|
||||
(multi-rep (to-scheme pid_t errno_or_false)
|
||||
pid_t))
|
||||
|
||||
(define-errno-syscall (become-session-leader) become-session-leader/errno
|
||||
sid)
|
||||
|
||||
|
||||
;;; UMASK
|
||||
|
||||
(define-foreign set-umask (umask (mode_t mask)) no-declare ; integer on SunOS
|
||||
|
@ -665,7 +676,6 @@
|
|||
integer))
|
||||
|
||||
|
||||
|
||||
;;; Signals (rather incomplete)
|
||||
;;; ---------------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue