<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Ok, I can't argue with that.<br><br> - Jay<br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">CC: mika@async.caltech.edu; dragisha@m3w.org; m3devel@elegosoft.com<br>From: antony.hosking@gmail.com<br>Subject: Re: [M3devel] swaping user threads for kernel threads w/o rebuilding everything?<br>Date: Sat, 28 Apr 2012 19:58:28 -0500<br>To: jay.krell@cornell.edu<br><br><div>I'm just being conservative.  Let's fix bugs before refactoring further.</div><div><br>Sent from my iPad</div><div><br>On Apr 28, 2012, at 6:59 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:<br><br></div><div></div><blockquote><div>

<style><!--
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Tahoma;}

--></style>
<div dir="ltr">
To repeat myself: It'd be nice if both sets of code was compiled/linked together and the threading model was selectable via a command line switch and/or link-time option.<br>I understand that would inhibit inlining via function pointers/dynamic linking.<br>Inlining that we surely don't do anyway and whose analog doesn't occur in other C/C++ systems.<br>Taking/releasing a lock would always incur a function call through a pointer.<br><br><br>As it is, you can't even swap m3core.so out, because the types are too different. You have to recompile or at least relink everything.<br><br><br>I could do the work, but I believe so far that Tony doesn't want it.<br><br><br><br> - Jay<br><br><br><div><div id="ecxSkyDrivePlaceholder"></div>> To: <a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a><br>> Date: Sat, 28 Apr 2012 09:50:38 -0700<br>> From: <a href="mailto:mika@async.caltech.edu">mika@async.caltech.edu</a><br>> CC: <a href="mailto:m3devel@elegosoft.com">m3devel@elegosoft.com</a><br>> Subject: Re: [M3devel] Mika's thread test, -tests read<br>> <br>> <br>> Yes I have done it with user threads on CM3.  <br>> <br>> (BTW, that is the configuration I always use on Darwin and Linux for "work".)<br>> <br>> There are a few ways of doing the configuration.  The main thing is that the<br>> file <br>> <br>> m3-libs/m3core/src/thread/m3makefile<br>> <br>> contains the code >>><br>> <br>> include_dir ("Common")<br>> <br>> <br>> if equal (OS_TYPE, "WIN32") or equal(TARGET, "NT386")<br>>     include_dir ("WIN32")<br>> else<br>>     if (NO_USER_THREADS contains TARGET) or ((not defined("NOPTHREAD")) and USE_PTHREADS{TARGET})<br>>         include_dir("PTHREAD")<br>>     else<br>>         include_dir (OS_TYPE)<br>>     end<br>> end<br>> <br>> <<<<br>> <br>> NO_USER_THREADS and USE_PTHREADS come from the config file.<br>> <br>>      Mika<br>> <br>> =?utf-8?Q?Dragi=C5=A1a_Duri=C4=87?= writes:<br>> >Mika said it does not happen with user threads. But he also said he is =<br>> >using pm3 mostly=E2=80=A6 So question is - did he run it with cm3, any =<br>> >version, with user threads.<br>> ><br>> >What are build parameters for cm3 with user threads?=20<br>> ><br>> >On Apr 28, 2012, at 2:58 PM, Antony Hosking wrote:<br>> ><br>> >> That means it is even more serious.<br>> >> Can we verify that it only happens with pthread threading?<br>> >>=20<br>> >> Sent from my iPad<br>> >>=20<br>> >> On Apr 28, 2012, at 1:49 AM, Dragi=C5=A1a Duri=C4=87 =<br>> ><<a href="mailto:dragisha@m3w.org">dragisha@m3w.org</a>> wrote:<br>> >>=20<br>> >>> It's not only AMD64_* if it's any consolation: :)<br></div>                                          </div>
</div></blockquote></div>                                       </div></body>
</html>