<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'>I thought these problems were all fixed by now. :(<BR> <BR> <BR>Maybe cooperative suspend will help.<BR>I know that seems like a non-sequiter, but I know<BR>that SuspendThread and GetThreadContext on Windows don't do what you'd expect<BR>and as a result our x86-on-amd64 code isn't correct.<BR> <BR> <BR> - Jay<br><br><br> <BR><div>> To: jay.krell@cornell.edu<br>> CC: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] rpath woes<br>> Date: Fri, 5 Jun 2015 17:32:10 -0700<br>> From: mika@async.caltech.edu<br>> <br>> I think I've mentioned this on this mailing list about a hundred times, but...<br>> <br>> the pthreads implementation of Modula-3 threads doesn't work on most OSes.<br>> <br>> As far as I know the only OS where it is truly reliably working is AMD64_LINUX.<br>> <br>> I certainly haven't tested all targets.<br>> <br>> User-level threads work everywhere.<br>> <br>> Except for AMD64_LINUX I would not suggest putting anything important to<br>> use Modula-3 threads built on pthreads.  They work... until they don't.<br>> <br>> Anyone wishing to work on this and fix it, please don't change the<br>> AMD64_LINUX code at all unless you know exactly, precisely what you<br>> are doing.  It is very very difficult to debug the subtle bugs that<br>> get introduced.<br>> <br>> As far as I know there's no problem with C pthreads on FreeBSD.<br>> <br>>      Mika<br>> <br>> Jay writes:<br>> >Posix threads from C? From Modula-3? <br>> ><br>> > - Jay<br>> ><br>> >On Jun 5, 2015, at 8:42 AM, <mika@async.caltech.edu> wrote:<br>> ><br>> >> Jay K writes:<br>> >>> --_da40b763-6cc9-48e7-9a39-2f2565af44c7_<br>> >>> Content-Type: text/plain; charset="iso-8859-1"<br>> >>> Content-Transfer-Encoding: quoted-printable<br>> >>> <br>> >>> The FreeBSD4 users were surprisingly vocal surprisingly recently.<br>> >>> So I put some work into it.<br>> >>> I agree it is an old system.<br>> >> <br>> >> I think you mean "the FreeBSD4 user"... I was actually running FreeBSD 5,<br>> >> but the 4.x config worked well.  <br>> >> <br>> >> I've since upgraded to 10.0-RELEASE.  And don't use it much anymore<br>> >> because posix threads (still) don't work right on FreeBSD.  I spent a <br>> >> considerable effort to get them working right on Debian, which they<br>> >> now do, but didn't have the time to figure it out for a bunch of <br>> >> other OSes as well.  It's really pretty nice to have them working<br>> >> correctly.  They aren't perfect (a bit too much locking over garbage<br>> >> collection issues) but they don't ever seem to crash.  On problems<br>> >> with lots of parallelism you do get some parallel speedup, even.<br>> >> <br>> >>     Mika<br></div>                                           </div></body>
</html>