<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Just fyi Tony, in Win32, we call Self() frequently -- for every lock/unlock. On Pthread we call Self() rarely -- your recent change.<BR>
My change removes the locking in Win32 Self().<BR>
Very soon I'll try to make Win32 like Pthread -- moving most of the state from the traced T to the untraced Activation, thereby removing nearly all calls to Self(), its locking therefore rare, then go back to being like pthread and not being lock-free.<BR>
<BR>
It is tempting to use a rwlock, except I noticed a very direct statement in pthread docs that rwlock is slower than mutex.<BR>
Maybe we can write one that is faster but for now..<BR>
<BR>
I'm still not keen on the global joinMu..any overly large lock..but I think it is valuable to have Win32 threads and pthreads be more similar than different and I'll end up with it.<BR>
<BR>
Another change to consider, but I suspect it is terrible perf, is change the thread local to just be the index into slots.<BR>
That way there aren't the two split records.<BR>
But that probably involves adding a lot of traced references back to where they aren't and would be very very bad?<BR>
(perf, and circularities within gc?)<BR>
<BR>
- Jay<BR><BR> </body>
</html>