*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

Reply via email to