Proposal: Add an atomic IORef replacement operation

David Feuer david.feuer at gmail.com
Mon Jun 25 01:00:39 UTC 2018


Yes, you're absolutely right about the name. My proposal is thus amended.

On Sun, Jun 24, 2018, 7:38 PM Dr.Koster <drkoster at qq.com> wrote:

> +1, BTW. let's call it atomicSwapIORef to keep sync with MVar/TVar's
> counterpart.
>
> 发自我的iPhone
>
>
> ------------------ Original ------------------
> *From:* David Feuer <david.feuer at gmail.com>
> *Date:* Sat,Jun 23,2018 4:15 PM
> *To:* Haskell Libraries <libraries at haskell.org>
> *Subject:* Re: Proposal: Add an atomic IORef replacement operation
>
> Currently, atomicWriteIORef is implemented using atomicModifyIORef. This
> is not ideal: the latter allocates memory while the former shouldn't need
> to. In the process of writing alternative implementations, I realized that
> we can efficiently support an atomic operation that replaces the value in
> an IORef, returning the previous value. I propose that we add, to
> Data.IORef, a function to do so:
>
> atomicReplaceIORef :: IORef a -> a -> IO a
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180624/81313fba/attachment.html>


More information about the Libraries mailing list