<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Imagine you are a somewhat prolific fairly happy C or C++ programmer. The whole world is unsafe, but recieves a fair amount of static checking and is therefore largely correct and perhaps doesn't even suffer much from the lack of safety.<BR>
 <BR>
 void* GetFoo(void); <BR>
 void* GetBar(void); <BR>
 <BR>
or<BR>
 <BR>
 Foo_t* GetFoo(void); <BR>
 Bar_t* GetBar(void); <BR>
 <BR>
?<BR>
 <BR>
Definitely the second.<BR>
 <BR>
Perhaps perhaps perhaps perhaps a function should be able to be declared to return an UNTRACED REF Foo.Something, without actually importing Foo or defining Something?<BR>
 <BR>
Clearly the safety of an /interface/ is more subtle than a boolean.<BR>
Some functions may be safe and others unsafe.<BR>
Even some uses of functions.<BR>
Imagine for example:<BR>
 <BR>
PROCEDURE GetFoo(): UNTRACED REF Foo.Something;<BR>
 <BR>
Perhas a safe function could call this function, as long as it only compares the return value to NIL?<BR>
Actually storing it in a variable would require IMPORT Foo, and if FOO is declared UNSAFE, then that would<BR>
pollute the caller. Or maybe merely declaring a variable of UNTRACED is enough to wreck safety?<BR>
 <BR>
Either way, I do grant, that it probably isn't worth deciding or making any language changes whatsoever.<BR>
 <BR>
It should suffice for programmers to partition any given bunch of code conceptual interface Foo<BR>
 <BR>
into SAFE INTERFACE Foo and UNSAFE INTERFACE FooF or FooInternal or FooUnsafe.<BR>
 <BR>
I think I shall rename ThreadUnsafe to ThreadInternal amd merge the two ThreadInternals into one,<BR>
as long as the contents of each exist in all of them, even though, granted, there<BR>
aren't callers of all of them.<BR>
"Unsafe" is shorter but "Internal" seems maybe better.<BR>
 <BR>
ThreadF will remain safe and very small.<BR>
We could move its resulting lone function into Thread, but I think it isn't worth breaking<BR>
any callers outside m3core.<BR>
 <BR>
Furthermore I'll endeavor to remove ADDRESS as a return type in ThreadInternal, replacing<BR>
it with actual types, in order to remove casts, and make the unsafe code get just a little<BR>
bit more static safety/checking.<BR>
 <BR>
 - Jay<BR><BR> <BR>
<HR id=stopSpelling>
From: hosking@cs.purdue.edu<BR>To: jay.krell@cornell.edu<BR>Date: Sat, 12 Sep 2009 07:38:43 -0400<BR>CC: m3devel@elegosoft.com<BR>Subject: Re: [M3devel] RC merge<BR><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV><SPAN style="FONT-SIZE: medium" class=EC_Apple-style-span><FONT class=EC_Apple-style-span color=#0000ff face="'Gill Sans'">But in this case the caller is highly privileged code that is already UNSAFE, so who cares?</FONT></SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></DIV></SPAN></DIV><BR>
<DIV>
<DIV>On 11 Sep 2009, at 23:37, <A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A> wrote:</DIV><BR class=EC_Apple-interchange-newline>
<BLOCKQUOTE>
<DIV>
<DIV>I don't like the caller to have to cast.<BR><BR> - Jay (phone<SPAN class=EC_Apple-style-span>)</SPAN></DIV>
<DIV><BR>On Sep 11, 2009, at 7:19 PM, Tony Hosking <<A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A>> wrote:<BR><BR></DIV>
<DIV></DIV>
<BLOCKQUOTE>
<DIV>Yes, that was exactly my intention.  I wasn't quite sure what your problem was with the code I had returning ADDRESS, but was willing to accede.  It is "safe", but you can't use the result unless in UNSAFE code.
<DIV><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV><FONT class=EC_Apple-style-span color=#0000ff><FONT class=EC_Apple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=EC_Apple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span><SPAN class=EC_Apple-converted-space> </SPAN>|<SPAN class=EC_Apple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_Apple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_Apple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=EC_Apple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span>Office</SPAN></SPAN></FONT><FONT class=EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_Apple-style-span> +1 765 494 6001 |<SPAN class=EC_Apple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=EC_Apple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_Apple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_Apple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_Apple-style-span><SPAN class=EC_Apple-converted-space> </SPAN>+1 765 427 5484</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=EC_Apple-style-span face=GillSans-Light><BR class=EC_khtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=EC_Apple-interchange-newline></SPAN></DIV></SPAN></DIV></SPAN><BR class=EC_Apple-interchange-newline></DIV><BR>
<DIV>
<DIV>On 11 Sep 2009, at 17:33, Jay K wrote:</DIV><BR class=EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_hmmessage>ps: I think there's another funny thing here:<BR>I think you can have:<BR><BR>INTERFACE FooInterface;<BR><BR>PROCEDURE SafeFunction();<BR>PROCEDURE UnsafeFunction()=ADDRESS;<BR><BR>END FooInterface.<BR><BR>Despite being in a safe interface, UnsafeFunction either can't be called<BR>from safe code, or at least its return value can't be used? Or at least<BR>can't be done anything with but compare to NIL?<BR>I think.<BR>Therefore this interface could be said to be "partially unsafe".<BR><BR>Perhaps not a useful middle ground though.<BR><BR> - Jay<BR><BR>
<HR id=EC_stopSpelling>
From:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu"></A><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>To:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu"></A><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>CC:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com"></A><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Subject: RE: [M3devel] RC merge<BR>Date: Fri, 11 Sep 2009 21:26:00 +0000<BR><BR>Yes and no. I agree I made a small mess. I'm not sure you have quite described how it should be.<BR><BR>I propose a few options:<BR> 1 - asis, probably not<BR> 2 - rename/merge ThreadUnsafe to ThreadInternal<BR> 3 - move the part that external folks use, probably just MyId, to Thread, and then move ThreadUnsafe back to ThreadF, maybe ThreadInternal to ThreadF too<BR><BR>2 at least removes one interface that I added, reducing the three similar ThreadF, ThreadUnsafe, ThreadInternal, to just two, ThreadF and ThreadInternal<BR><BR>3 maybe gratuitously breaks folks but is a clean result<BR><BR> 4 - like you said, make all ThreadF users unsafe; but IF it is just MyId, and I'm not sure it is, which seems harmless, right? seems wrong to make them unsafe.<BR><BR> - Jay<BR><BR>
<HR id=EC_EC_stopSpelling>
From:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu"></A><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>To:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu"></A><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>Date: Fri, 11 Sep 2009 16:51:11 -0400<BR>CC:<SPAN class=EC_Apple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com"></A><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Subject: Re: [M3devel] RC merge<BR><BR>
<DIV>Sorry, it looks like my commit failed last night because of need to merge with your ThreadUnsafe stuff.</DIV>
<DIV><BR></DIV>
<DIV>FYI, we really should think about making ThreadF UNSAFE since anyone invoking on it is exposed to dangerous parts of the run-time system.  Is there any need for it really to be safe?</DIV>
<DIV><BR></DIV>
<DIV>On 11 Sep 2009, at 16:05, Jay K wrote:
<DIV><BR class=EC_EC_EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_EC_EC_hmmessage>Tony I'll double check if I see the hang. NT386 still crashes.<BR><BR><A href="http://www.modula3.com/cm3/ChangeLog-2009"></A><A href="http://www.modula3.com/cm3/ChangeLog-2009">http://www.modula3.com/cm3/ChangeLog-2009</A><BR><BR>"<BR>2009-09-08 05:54 hosking<BR><PRE><BR>  * m3-libs/m3core/src/: convert/CConvert.m3,<BR>    runtime/common/RTAllocator.m3, runtime/common/RTCollector.m3,<BR>    runtime/common/RTCollectorSRC.i3, runtime/common/RTHeapInfo.m3,<BR>    runtime/common/RTHeapRep.i3, runtime/common/RTHeapRep.m3,<BR>    runtime/common/RTHeapStats.m3, runtime/common/RTLinker.m3,<BR>    runtime/common/RTOS.i3, runtime/ex_frame/RTExFrame.m3,<BR>    runtime/ex_stack/RTExStack.m3, thread/POSIX/ThreadF.i3,<BR>    thread/POSIX/ThreadPosix.m3, thread/PTHREAD/ThreadF.i3,<BR>    thread/PTHREAD/ThreadPThread.m3, thread/WIN32/ThreadF.i3,<BR>    thread/WIN32/ThreadWin32.m3:<BR><BR>  Tidy up use of thread.inCritical to only occur in allocation sequences and in<BR>  thread stoppage.  This simplifies reasoning.  Refactored use of heap lock<BR>  in the process.  This may be better implemented on PTHREAD targets using a<BR>  recursive pthread mutex instead of one we roll ourselves from a non-recursive<BR>  mutex.<BR><BR>  Still witnessing random hangs in Juno and mentor on I386_DARWIN.<BR>  Strange, I thought this was working previously.<BR>  I wonder if there is some sort of race in the GUI code somewhere?<BR>"<BR><BR>??</PRE>-  Jay<BR><BR><BR>
<HR id=EC_EC_EC_stopSpelling>
From:<SPAN class=EC_EC_EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu"></A><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>To:<SPAN class=EC_EC_EC_Apple-converted-space> </SPAN><A href="mailto:jay.krell@cornell.edu"></A><A href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</A><BR>Date: Fri, 11 Sep 2009 12:46:19 -0400<BR>CC:<SPAN class=EC_EC_EC_Apple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com"></A><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Subject: Re: [M3devel] RC merge<BR><BR>No, the hangs in Juno and mentor are no longer there.  I cannot reproduce them on I386_DARWIN.<BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span>
<DIV><SPAN style="FONT-SIZE: medium" class=EC_EC_EC_EC_Apple-style-span><FONT class=EC_EC_EC_EC_Apple-style-span color=#0000ff face="'Gill Sans'"><BR></FONT></SPAN></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DIV></SPAN></DIV></SPAN></DIV>
<DIV>
<DIV>On 11 Sep 2009, at 10:24, Jay K wrote:</DIV><BR class=EC_EC_EC_EC_Apple-interchange-newline>
<BLOCKQUOTE><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_Apple-style-span>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 10pt" class=EC_EC_EC_EC_hmmessage>But the hangs are still present, right? Worth merging without that fixed?<BR> <BR>How does one do it easily?<BR>I wish we used Perforce. :(<BR><BR> - Jay<BR><BR> <BR>
<HR id=EC_EC_EC_EC_stopSpelling>
From:<SPAN class=EC_EC_EC_EC_Apple-converted-space> </SPAN><A href="mailto:hosking@cs.purdue.edu"></A><A href="mailto:hosking@cs.purdue.edu">hosking@cs.purdue.edu</A><BR>To:<SPAN class=EC_EC_EC_EC_Apple-converted-space> </SPAN><A href="mailto:m3devel@elegosoft.com"></A><A href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</A><BR>Date: Fri, 11 Sep 2009 09:45:23 -0400<BR>Subject: [M3devel] RC merge<BR><BR>Can someone merge my recent deep fixes to pthreads threading over to the release branch?  I won't get a chance to do so until next Monday at the earliest.<BR>
<DIV><BR>
<DIV><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span>
<DIV style="WORD-WRAP: break-word"><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 12px Helvetica; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px" class=EC_EC_EC_EC_EC_Apple-style-span>
<DIV><FONT class=EC_EC_EC_EC_EC_Apple-style-span color=#0000ff><FONT class=EC_EC_EC_EC_EC_Apple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span>Antony Hosking</SPAN></SPAN></FONT></FONT><FONT class=EC_EC_EC_EC_EC_Apple-style-span face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN class=EC_EC_EC_EC_EC_Apple-converted-space> </SPAN>|<SPAN class=EC_EC_EC_EC_EC_Apple-converted-space> </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span>Associate Professor</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'" class=EC_EC_EC_EC_EC_Apple-style-span> | Computer Science | Purdue University</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=EC_EC_EC_EC_EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_EC_EC_EC_EC_Apple-style-span>305 N. University Street | West Lafayette | IN 47907 | USA</SPAN></FONT></DIV>
<DIV><FONT class=EC_EC_EC_EC_EC_Apple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span>Office</SPAN></SPAN></FONT><FONT class=EC_EC_EC_EC_EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_EC_EC_EC_EC_Apple-style-span> +1 765 494 6001 |<SPAN class=EC_EC_EC_EC_EC_Apple-converted-space> </SPAN></SPAN></SPAN></FONT><FONT class=EC_EC_EC_EC_EC_Apple-style-span color=#0000ff face="Gill Sans"><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: 'Gill Sans'; COLOR: rgb(0,0,255)" class=EC_EC_EC_EC_EC_Apple-style-span>Mobile</SPAN></SPAN></FONT><FONT class=EC_EC_EC_EC_EC_Apple-style-span face=GillSans-Light><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN style="FONT-FAMILY: GillSans-Light" class=EC_EC_EC_EC_EC_Apple-style-span><SPAN class=EC_EC_EC_EC_EC_Apple-converted-space> </SPAN>+1 765 427 5484</SPAN></SPAN></FONT></DIV>
<DIV><FONT class=EC_EC_EC_EC_EC_Apple-style-span face=GillSans-Light><BR class=EC_EC_EC_EC_EC_khtml-block-placeholder></FONT></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN><BR class=EC_EC_EC_EC_EC_Apple-interchange-newline></SPAN></DIV></SPAN></DIV></SPAN><BR class=EC_EC_EC_EC_EC_Apple-interchange-newline></DIV><BR></DIV></DIV></SPAN><BR class=EC_EC_EC_EC_Apple-interchange-newline></BLOCKQUOTE></DIV><BR></DIV></SPAN><BR class=EC_EC_EC_Apple-interchange-newline></BLOCKQUOTE></DIV><BR></DIV></DIV></SPAN><BR class=EC_Apple-interchange-newline></BLOCKQUOTE></DIV><BR></DIV></DIV></BLOCKQUOTE></DIV></BLOCKQUOTE></DIV><BR></body>
</html>