<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
SIG_DFL and SIG_IGN are effectively duplicated twice for every platform.<BR>
Once in Usignal.i3, once in RTSignal.m3.<BR>
<BR>
1) The duplication in RTSignal.m3 I would think wouldn't be needed if module initialization occurs in a "correct" order. ?<BR>
<BR>
2) The duplication in RTSignal.m3 could be eliminated if all platforms defined Usiginal.SIG_DFL, SIG_IGN, like Darwin and Solaris do -- a constant integer that you must LOOPHOLE instead of a correctly type variable that gets initialized (the variables have multiple correct types besides, due to signal handlers having at least three possible prototypes, ANSI C, BSD, and POSIX).<BR>
<BR>
Perhaps Usignal could provide both a constant integer for folks to LOOPHOLE, and a typed initialized variable.<BR>
<BR>
Since both sides are system-dependent, there isn't a "disconnect", porters just have to check both copies.<BR>
Apparently the values are always the same across all platforms, but that might be a coincidence of sorts. I rather suspect in the old days, people copied C header content around a lot to other C code, leading to values like becoming impossible to change, including constants and types, not just the arguably "easier" function prototypes.<BR>
<BR>
Anyway, my inclination is rewrite the small number of clients in C, fixing both this, and reducing the cloned headers. -- As well stopping the duplication of RTSignal.m3, of which there are 37 nearly identical copies, or roughly 3 variants duplicated 37 times (again, ANSI, BSD, POSIX).<BR>
<BR>
Other clients I see are:<BR>
<BR>
C:\dev2\cm3.2\m3-libs\m3core\src\float\DS3100\FloatMode.m3(360): ELSIF (p = Usignal.SIG_DFL) THEN<BR>C:\dev2\cm3.2\m3-libs\m3core\src\float\IRIX5\FloatMode.m3(361): ELSIF (p = Usignal.SIG_DFL) THEN<BR><BR>C:\dev2\cm3.2\m3-libs\m3core\src\float\DS3100\FloatMode.m3(358): IF (p = Usignal.SIG_IGN) THEN<BR>C:\dev2\cm3.2\m3-libs\m3core\src\float\IRIX5\FloatMode.m3(359): IF (p = Usignal.SIG_IGN) THEN<BR><BR>
but these are dead for multiple reasons.<BR>
The platforms are dead/dormant, and platform-specific FloatMode is dead in general, though perhaps should not be. (I do have a machine running Irix so hope to get that building/working before much longer...DS3100 no.)<BR>
<BR>
- Jay<BR></body>
</html>