This may be an old problem. If so, my apologies.
I've discovered that signal-process, wait, signal-process-group,
and wait-process-group do not work the way I expect using scsh 0.5.1
under Solaris 2.5.1. Specifically, wait will hang until the process
exits, even with wait/poll specified, and signal-process will hang
uninterruptibly forever. The same code has no problems on FreeBSD
2.2.1+.
Example:
(define p (& (xterm)))
(wait p wait/poll) --> hangs until xterm exits.
(signal-process p signal/stop) --> stops xterm and hangs uninterruptibly
(wait-process-group p wait/poll) --> #f, #t
(signal-process-group p signal/stop) --> error "no such process" in signal-pid
(On FreeBSD, wait returns #f, signal-process sends the signal and
returns, and the -process-group functions act the same as on Solaris 2.)
Maybe I'm doing something dumb, so I'll accept suggestions on how
to do what I want, which is to fork off a process that does something
useful, and suspend it and resume it at certain times so we can scavenge
cycles without annoying people. I'm actually using fork and exec-path,
but & makes a simpler example.
Paul Fuqua
Texas Instruments, Dallas, Texas pf@hc.ti.com
|