<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
 > And calling Thread.Fork several times on a single Thread.Closure is<BR> > also idempotent?<BR><BR>
Waiting for and getting a result is idempotent, nearly always.<BR>
Requesting that work be done may or not be idempotent, depending on the instructions.<BR>
 "Increase bank balance by $10" vs. "Set bank balance to $10".<BR>
 <BR>
 - Jay<BR><BR> <BR>> To: jay.krell@cornell.edu<BR>> Date: Tue, 3 Nov 2009 07:17:11 -0800<BR>> From: mika@async.async.caltech.edu<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] join twice?<BR>> <BR>> Jay K writes:<BR>> ><BR>> > <5788D8FB-8E44-4F62-BF49-9804E173C8A9@cs.purdue.edu><BR>> > <BR>> ><BR>> > <4AEFF851.1E75.00D7.1@scires.com><BR>> >MIME-Version: 1.0<BR>> ><BR>> >--_e29f769b-4ae0-4e1d-9ac5-2f25246d5025_<BR>> >Content-Type: text/plain; charset="iso-8859-1"<BR>> >Content-Transfer-Encoding: quoted-printable<BR>> ><BR>> ><BR>> >To me..with a Win32 background..join means "wait for thread to finish".<BR>> ><BR>> >And there is a separate action "get thread result".<BR>> ><BR>> >You could consider these one merged operation "wait for thread to finish an=<BR>> >d get its result".<BR>> ><BR>> >In either case=2C it is reasonable to allow it multiple times.<BR>> ><BR>> >Waiting for a thread to finish that has already finished is just fast.<BR>> ><BR>> >Getting a thread result that you already got is also easy albeit usually un=<BR>> >necessary.<BR>> <BR>> And calling Thread.Fork several times on a single Thread.Closure is<BR>> also idempotent?<BR>> <BR>> It may be "reasonable" to allow such things, but they almost always<BR>> signal bugs in the calling code. Changing the specification to make them<BR>> legal is in my opinion losing a valuable opportunity for preventing bugs.<BR>> Note the Modula-3 philosophy, not everything reasonable (for a C<BR>> programmer's definition of "reasonable", at least) is legal.<BR>> <BR>> Mika<BR>> <BR>                                         </body>
</html>