<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
You might want to throttle the number of outstanding promises.<BR>
If only Posix provided good functions for e.g. finding the number of processors.<BR>
Or if NT or Posix made it easy to discover the number of spindles backing a path,<BR>
or to easily measure system utilization and backing down when it gets near 100%.<BR>
You know, an idle machine should be maxed out, but no more.<BR>
A machine with an interactive user should reserve CPU/memory/I/O for forground activity..<BR>
I don't I've ever seen this stuff done well though.<BR>
 <BR>
 - Jay<BR><BR> <BR>
> Date: Tue, 15 Feb 2011 02:30:18 +0000<BR>> To: m3commit@elegosoft.com<BR>> From: mika@elego.de<BR>> Subject: [M3commit] CVS Update: cm3<BR>> <BR>> CVSROOT: /usr/cvs<BR>> Changes by: mika@birch. 11/02/15 02:30:18<BR>> <BR>> Modified files:<BR>> cm3/m3-sys/m3quake/src/: QMachine.i3 QMachine.m3 m3makefile <BR>> Added files:<BR>> cm3/m3-sys/m3quake/src/: QPromise.i3 QPromise.m3 <BR>> <BR>> Log message:<BR>> Add support for the QMachine to be able to record (certain) Process.Creates as "promises" rather than executing them on the fly.<BR>> <BR>> The purpose of this modification is to allow parallelization of the CM3 compiler. The vast majority of the runtime of the compilation of a typical Modula-3 program is spent in the part "promised" here (when using the GCC backend).<BR>> <BR>                                       </body>
</html>