From: Francis Cianfrocca Date: 2006-05-21T20:43:51+09:00 Subject: Re: sysread changes behavior in the presence of threads? ------=_Part_182280_2032248.1148211829236 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Content-Disposition: inline It's a Windows issue, nothing to do with Ruby. I haven't looked at how Boos= t implements them, but if I have a chance I will. The problem is with timed condwaits. As you know Windows uses different synch primitives than Unix. It's one of those tiny breaches of atomicity that you'll occasionally see i= f you run enough trials on a machine with enough multiprocessors. Once I spen= t a Saturday morning trying to write a proper condvar for Windows in assemble= r but I gave up when it occurred to me that I really should get a life instead. ;-) On 5/21/06, Bill Kelly wrote: > > From: "Francis Cianfrocca" > > > > I started working on it the other day, will complete when I have time. > Hope > > you're not running Windows ;-). Condition variables don't work perfectl= y > on > > Windows. > > The relevant applications are multi-platform: OS X; Linux; and yes, > Windows. > > Your mention of condition variables not working reliably(?) on > Windows has certainly piqued my interest. Are you referring to > Ruby's condition variables? Or some fundamental Windows flaw? > Our C++ app uses boost::condition variables on all platforms. > Definitely interested to know if there's some glitch in Ruby > and/or Windows I should be aware of. > > > Thanks, > > Bill > > > > ------=_Part_182280_2032248.1148211829236--