[Haskell-cafe] Race condition possible?

Peter Verswyvelen bugfact at gmail.com
Sun Feb 15 07:25:13 EST 2009


I'm not sure what you mean with "Time on different cores does not progress
monotonically". Time could come from a dedicated clock device. E.g. in the
broadcast television sector a time signal is distributed across all hardware
components to keep them all in sync within some margin, or you could use the
clock from a local sound card, etc. I guess each operating system provides
such a clock.
I'm also not sure about the performance penalty. One would surely get a
penalty with a global lock on the clock (serializing time), but I think the
problem  can be solved with a local lock per stream. But I would have to
think about this more before claiming such things :-)

Maybe you could elaborate a bit more on your claims?






On Sun, Feb 15, 2009 at 5:38 AM, Bryan O'Sullivan <bos at serpentine.com>wrote:

> 2009/2/14 Peter Verswyvelen <bugfact at gmail.com>
>
>> If you have two streams of time/value pairs - using MVars as write-once
>> sampling variables - and both streams are fed from another thread (e.g.
>> timers firing), and you want to merge these two streams into a single stream
>> with monotonic time stamps, then you want to be able to check if at time t
>> an occurrence exists in a stream.
>>
>
> What you want to do isn't actually achievable on multi-processor machines
> without some form of mutual exclusion. Time on different cores does not
> progress monotonically, and you'll pay an enormous performance penalty to do
> what you want to do (the nature of which is somewhat unclear).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090215/6cb88265/attachment.htm


More information about the Haskell-Cafe mailing list