<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
ps: I think there might be a problem here if the compiler is aggressive.<BR>
But I haven't been able to prove it.<BR>
Maybe the LOCK implying volatile makes it ok?<BR>
Maybe the compiler won't inline anything with a volatile local??<BR>
 <BR>
 - Jay<BR><BR> <BR>> From: jay.krell@cornell.edu<BR>> To: hosking@cs.purdue.edu<BR>> Date: Mon, 9 Nov 2009 00:14:01 +0000<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] ThreadBase/RunThread<BR>> <BR>> <BR>> I think another problem is that pthread_setspecific_activations + LOCK in the same function might not mix.<BR>> <BR>> pthread_setspecific_activations only occurs twice in the code base, very special.<BR>> <BR>> It should be left alone.<BR>> <BR>> <BR>> <BR>> - Jay<BR>> <BR>> <BR>> <BR>> <BR>> CC: m3devel@elegosoft.com<BR>> From: hosking@cs.purdue.edu<BR>> To: jay.krell@cornell.edu<BR>> Subject: Re: ThreadBase/RunThread<BR>> Date: Sun, 8 Nov 2009 19:08:12 -0500<BR>> <BR>> <BR>> <BR>> <BR>> <BR>> There should be no traced references manipulated in ThreadBase.<BR>> <BR>> <BR>> In RunThread, self is kept live by simply holding it on the stack.<BR>> <BR>> <BR>> You will probably have trouble eliminating the slots array. We need a global to hang on to the traced Thread.T. How else do you propose to associate untraced pthreads with their traced Thread.T?<BR>> <BR>> <BR>> On 8 Nov 2009, at 18:05, Jay K wrote:<BR>> <BR>> ThreadBase/RunThread -- something seems a little off to me here.<BR>> <BR>> <BR>> I merged the functions.<BR>> Stuff is supposed to work asif there is arbitrary inlining.<BR>> At least until/unless we get a pragma to mark a function as not inlinable or a direct language feature analogous to "volatile" to preserve locals -- currently inserting try does it but that's an implementation detail I think<BR>                                        </body>
</html>