*first write first On Fri, Jun 29, 2018 at 12:19 PM Carter Schonwald < [email protected]> wrote:
> i'm a little confused, whats the order of reads here? > Mvars have write wins, whats the order here? last writer runs first, > first writer runs last? (wouldn't there be starvation issues?) > > On Fri, Jun 29, 2018 at 11:51 AM Joachim Breitner < > [email protected]> wrote: > >> Hi, >> >> when reading the subject I was expecting something like this: >> >> -- | Creates an empty IVar >> newIVar :: IO (IVar a) >> >> -- | pure! but blocks until the IVar is written >> readIVar :: IVar a -> a >> >> -- | tries to write to an IVar. >> -- Succeeds if it is empty (returning True) >> -- Does nothing if it has been written to (returning False) >> writeIVar :: IVar a -> a -> IO Bool >> >> Alternatively: >> >> -- | all in one >> newIVar :: IO (a, a -> IO Bool) >> >> >> Essentially a thunk, but with explicit control over filling it. >> In fact, people have implemented something like this using C-- hacks >> before: https://github.com/twanvl/unsafe-sequence >> >> > This would make MonadFix's implementation much nicer, I think :) >> >> This would suffice for MonadFix, right? >> >> Sorry for derailing the thread :-) >> >> Cheers, >> Joachim >> >> -- >> Joachim Breitner >> [email protected] >> http://www.joachim-breitner.de/ >> _______________________________________________ >> ghc-devs mailing list >> [email protected] >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> >
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
