<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
I need to go back and study that. It implies I missed something big when I made the change.<BR>
I could have sworn I looked at the functions and decided one could not be implemented<BR>
on top of the other but it sounds like I missed one. Hold on.<BR>
 <BR>
DoesWaitPidYield is not the problem really though.<BR>
We agree, at its worst, it would be cloned, in regular Modula-3 code (not quake).<BR>
At its best, it would be gone.<BR>
 <BR>
The bigger change is sharing the SchedulerPosix implementation on Win32 threads for Cygwin.<BR>
 <BR>
 - Jay<BR><BR>

<HR id=stopSpelling>
<BR>
From: hosking@cs.purdue.edu<BR>To: jay.krell@cornell.edu<BR>Date: Mon, 12 Jan 2009 17:49:55 +1100<BR>CC: m3devel@elegosoft.com; m3commit@elegosoft.com<BR>Subject: Re: [M3commit] [M3devel] CVS Update: cm3<BR><BR>Why do you need DoesWaitPidYield?  As I mentioned in another post, fixing sysutils to use a properly scheduled version of waitpid is trivial. I don't think you need all this DoesWaitPidYield junk.<BR>
<DIV><BR></DIV>
<DIV>Frankly, I think the threads code is now a mess and needs to be reverted.</DIV>
<DIV>
<DIV><BR></DIV>
<DIV>
<DIV><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV style="WORD-WRAP: break-word"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate"><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV>On 12 Jan 2009, at 17:44, Jay wrote:</DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></DIV>
<DIV><BR class=EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN class=EC_Apple-style-span style="WORD-SPACING: 0px; FONT: 12px Helvetica; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate">
<DIV class=EC_hmmessage style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">I basically agree here.<BR>I view thread.quake as temporary.<BR>Once m3core (that you bootstrap from) has SchedulerPosix.DoesWaitPidYield, sysutils can use it itself.<BR>  Or some other fix involving sysutils not knowing this (it sounds like you an easy one that I missed).<BR> <BR>And then the code that is generated when building m3core can be the exact checked in code, was my intention.<BR> <BR>I guess what I could/should have done is just put in SchedulerPosix.DoesWaitYield, wait some amount of time, and then move sysutils over it, not fix sysutils asap.<BR> <BR>I can go ahead and do that now -- "fix" m3core, re-"break" (slow down) sysutils, and then at whatever time, have sysutils use the new function.<BR> <BR>I had noticed cygwin builds seeming to take way way longer than I remember, like >12 hours instead of <1hour. I didn't track down if this is the cause.<BR> <BR> - Jay<BR><BR>> From:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>> To:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:jkrell@elego.de">jkrell@elego.de</A><BR>> Date: Mon, 12 Jan 2009 11:18:29 +1100<BR>> CC:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A>;<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:m3commit@elegosoft.com">m3commit@elegosoft.com</A><BR>> Subject: Re: [M3devel] [M3commit] CVS Update: cm3<BR>><SPAN class=EC_Apple-converted-space> </SPAN><BR>> I really hate the idea that thread.quake exists.<BR>><SPAN class=EC_Apple-converted-space> </SPAN><BR>> Screw sysutils working against old m3core versions. sysutils doing<SPAN class=EC_Apple-converted-space> </SPAN><BR>> thread-related scheduling is a big hack, and should be killed now<SPAN class=EC_Apple-converted-space> </SPAN><BR>> before it infects others. I don't want to see thread-dependent code<SPAN class=EC_Apple-converted-space> </SPAN><BR>> outside of m3core. We really need to come to consensus on this before<SPAN class=EC_Apple-converted-space> </SPAN><BR>> you do more damage to the core thread libraries.<BR>><SPAN class=EC_Apple-converted-space> </SPAN><BR>> I feel strongly about this!<BR>><SPAN class=EC_Apple-converted-space> </SPAN><BR>> -- Tony<BR>><SPAN class=EC_Apple-converted-space> </SPAN><BR><BR></DIV></SPAN></BLOCKQUOTE></DIV><BR></DIV></DIV></body>
</html>