<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Tony I agree my code was "awkward" (what I'd really like is for cm3 to output .h files<BR>
so that interop can be "natural", reliable, clear, idiomatic, correct.. but until then..)<BR>
(And if such .h files were output, I'd just write the entire signal handler in C.)<BR>
 <BR>
However I found the meaning and correctness of my code clearer.<BR>
In particular I was getting the registers into the stack keeping<BR>
the stack below their location.<BR>
 <BR>
 <BR>
In your case, you know, sem_post/sigsuspend will overwrite part of that.<BR>
 <BR>
 <BR>
Now, I grant, it isn't all clear -- your code has a high chance of being correct.<BR>
The (current) registers probably are already higher up the signal call stack.<BR>
So the stack pointer for the signal handler itself probably suffices -- what<BR>
you were using prior to yesterday.<BR>
 <BR>
"Briefly: I like the way I had it." (except, again, yes the C <=> Modula-3 interop is "awkard").<BR>
 <BR>
?<BR>
 <BR>
 - Jay<BR><BR> <BR>> Date: Thu, 26 Nov 2009 19:44:24 +0000<BR>> To: m3commit@elegosoft.com<BR>> From: hosking@elego.de<BR>> Subject: [M3commit] CVS Update: cm3<BR>> <BR>> CVSROOT: /usr/cvs<BR>> Changes by: hosking@birch. 09/11/26 19:44:24<BR>> <BR>> Modified files:<BR>> cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3 <BR>> ThreadPThread.m3 <BR>> ThreadPThreadC.c <BR>> <BR>> Log message:<BR>> Refactor slightly to avoid need for awkward SignalHandlerC call.<BR>> <BR>                                        </body>
</html>