scsh-users
[Top] [All Lists]

Quick Solution: Signal Problem on Solaris 2.5

To: scsh-bugs@martigny.ai.mit.edu
Subject: Quick Solution: Signal Problem on Solaris 2.5
From: euler@lavielle.com
Date: 31 Oct 1997 09:57:14 +0100
Cc: pf@hc.ti.com
Sender: euler@lavielle.com
pf@lakeshore.asic.sc.ti.COM (Paul Fuqua) writes:
>      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.

I stumbled across the same problem a few days ago, but did not yet have the
time to post it as it seemed noone else used this. A quick solution: Use 65
instead of wait/poll, e.g.
  (wait p 65)
I don't know whether 64 or 65 would be right, 65 works for me.

The "correct" solution is to change the constants in the file
scsh/solaris/waitcodes.scm.

The file currently contains:
> ;;; These definitions are for NeXTSTEP.
> [...]
> (define wait/poll               1)      ; Don't hang if nothing to wait for.
> (define wait/stopped-children   2)      ; Report on suspended subprocs, too.

Whereas /usr/include/sys/wait.h says (Note the numbers are octal):

> #define WUNTRACED       0004  /* wait for processes stopped by signals */
> #define WNOHANG         0100  /* non blocking form of wait    */
>  
> #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
>  
> #define WEXITED         0001  /* wait for processes that have exited  */
> #define WTRAPPED        0002  /* wait for processes stopped while tracing */
> #define WSTOPPED        WUNTRACED /* backwards compatibility */
> #define WCONTINUED      0010  /* wait for processes continued */
> #define WNOWAIT         0200  /* non destructive form of wait */

Which constants have to be or'ed together to get the intended behaviour?
wait/poll = WNOHANG or wait/poll = WNOHANG logior WEXITED?
I don't know.

Yours

Lutz Euler
-- 
Lavielle EDV Systemberatung GmbH & Co.   Tel.:  ++49 40 / 658088
Lotharstrasse 2b, D-22041 Hamburg        Fax.:  ++49 40 / 65808-202
http://www.lavielle.de/                  Email: euler@lavielle.com


<Prev in Thread] Current Thread [Next in Thread>