Proposal: add new forms of unsafePerformIO and
unsafeInterleaveIO
Stefan O'Rear
stefanor at cox.net
Thu Feb 14 17:18:09 EST 2008
On Thu, Feb 14, 2008 at 10:54:37AM +0000, Duncan Coutts wrote:
> This version of 'unsafePerformIO' is slightly more efficient, because it
> omits the check that the IO is only being performed by a single thread.
> Hence, when you write 'unsafeDupablePerformIO', there is a possibility
> that the IO action may be performed multiple times (on a
> multiprocessor), and you should therefore ensure that it gives the same
> results each time.
>
> unsafeDupablePerformIO :: IO a -> a
>
> TODO: Actually, unsafeDupableInterleaveIO is not yet documented,
> that will have to be fixed.
>
> unsafeDupableInterleaveIO :: IO a -> IO a
I propose that unsafeDupablePerformIO be renamed to unsafePerformIO,
since it satisfies all of the properties guaranteed of unsafePerformIO.
GHC's unsafePerformIO guarantees more, and should be called
unsafePerformIOAtMostOnce or something.
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/libraries/attachments/20080214/753920d6/attachment.bin
More information about the Libraries
mailing list