<br><br><div class="gmail_quote">On Sat, May 5, 2012 at 8:28 AM, Colin Putney <span dir="ltr"><<a href="mailto:colin@wiresong.com" target="_blank">colin@wiresong.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> Maybe this has something to do with what I found out a few years ago:<br>
> <a href="http://forum.world.st/Squeak-3-9-8-VM-problem-td105550.html" target="_blank">http://forum.world.st/Squeak-3-9-8-VM-problem-td105550.html</a><br>
<br>
Hi Andeas, that's exactly the issue I ran into; I'll try your fix. Thanks!<br>
<span class="HOEnZb"><font color="#888888"><br>
Colin<br></font></span></blockquote><div><br></div><div>and Colin, the solution is #define signal(a, b) sigset(a, b). From <a href="http://www.linuxmisc.com/3-linux/56c371addec84c45.htm">http://www.linuxmisc.com/3-linux/56c371addec84c45.htm</a> </div>
<div><br></div><div>"It's amazing that there is so much misunderstanding about this. </div><div>If you want the old SunOS4.1 semantics of "signal", use "sigset" in </div><div>your Solaris 2.x programs. </div>
<div>i.e. sigset(SIGTERM, my_catch_it_fn); </div><div>This works just as "signal" used to in SunOX4.1. Signal will be caught </div><div>"reliably", i.e. new instances will be held until the current when is </div>
<div>completely handled, i.e. until the handler function finishes. At that </div><div>point, the hadnler will be automatically reinstalled. </div><div>If you are porting a SunOS4.1 program with 80,000 "signal" calls, just </div>
<div>#define signal(a, b) sigset(a, b) </div><div>Do NOT use "signal" in Solaris 2.x. Even if you reinstall the handler within </div><div>the hadnler itself, it is possible to receive two signals in such quick </div>
<div>succession that you're program gets blown away before your handler is </div><div>reinstalled. </div><div>Phew! By the way, this has been in SysV since 1987-ish. Solaris 2.x is SysV. </div><div>NOW, if you want "fancier", signal handling, you can use the sigaction / </div>
<div>sigsetmask stuff instead. Here you can automatically hold a whole set </div><div>of signals immediately upon receiving a single one. </div><div>Marc Rossner </div><div>Taos Mountain Software"</div></div><br><br clear="all">
<div><br></div>-- <br>best,<div>Eliot</div><br>