<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Should we use pthread_join?<div><br></div><div><a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html" target="_blank">http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html</a><br><br>"it is a convenience and you can do X"</div><div><br></div><div>And we do that X.</div><div><br></div><div>I ask for one or two reasons.</div><div><br></div><div>In making ThreadWin32.m3 resemble ThreadPThread.m3 more, there is usually no loss of efficiency.</div><div>However this is an area where I percieve, just from the design/implementation, some loss.</div><div><br></div><div>So, wondering..I noticed pthread_join exists.</div><div><br></div><div>I suspect if we used pthread_join, then both Win32 could still resemble pthread, but regain the efficiency.</div><div>In particular, so that multiple independent joins do not contend on the same mutex.</div><div><br></div><div>Is there the problem of:</div><div><br></div><div><a href="http://man7.org/linux/man-pages/man3/pthread_join.3.html" target="_blank">http://man7.org/linux/man-pages/man3/pthread_join.3.html</a></div><div><br></div><div>"<span style="color: rgb(24, 24, 24); font-family: monospace, courier; font-size: 12pt;"> Joining with a thread that has previously been joined results in</span></div><pre style="margin-left: 8px; font-family: monospace, courier; color: rgb(24, 24, 24);">       undefined behavior."</pre><pre style="margin-left: 8px; font-family: monospace, courier; color: rgb(24, 24, 24);"><br></pre><pre style="margin-left: 8px; font-family: monospace, courier; color: rgb(24, 24, 24);">yes we want it to be well defined to raise an exception?</pre><div>Thoughts?</div><div><br></div><div> - Jay</div><div><br></div>                                      </div></body>
</html>