<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
short story:<BR>
I think we should have SchedulerPosix.IOWait and SchedulerPosix.IOAlertWait, but not SchedulerPosix.WaitProces, on Win32. With the CARDINAL changed back to INTEGER.<BR>
As well, as before, I'd like to only have one implementation of this. Currently there are two identical copies, due to Cygwin. But this proposal is for regular Win32.<BR>
<BR>
<BR>
long story:<BR>
Win32 has select, for sockets. Instead of a bitset, it uses an array of 64, so doesn't have the problem that poll fixes.<BR>
<BR>
SocketPosix.m3 makes sockets non-blocking and uses IOWait and IOAlertWait.<BR>
SocketPosix.Connect/Accept are alertable.<BR>
SocketWin32.Connect/Accept are not alertable.<BR>
That seems wrong, eh?<BR>
I assume this difference is due to original implementers not realizing their options on Win32.<BR>
I assume this difference would be good to remove.<BR><BR>
<BR>
IOWait is merely a call to select (assuming kernel threads).<BR>
In rewritten-in-C, I can easily just #ifdef and call select on Win32.<BR>
IOAlertWait is implemented by polling via select/poll for up to a maximum of a second at a time, testing alert between each.<BR>
It is this code that I don't think should be duplicated. We already have two copies of it due to Cygwin.<BR>
(I think we might be able to do better on Win32 though, by using Win32 alerting as part of Modula-3 alerting, but for the time being, sharing code with Posix that polls every second would be ok.)<BR>
<BR>
<BR>
- Jay<BR> </body>
</html>