X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FConcurrent.hs;h=e0f2faaa9532a57b6a0701cc132fc2ae3c035bec;hb=refs%2Fheads%2Fmaster;hp=13e4b46d05f4adaf1512508119b349c5fe9c3a1c;hpb=fa23cee469fdaf28d10bce331fb7cccaccf3dfba;p=ghc-base.git diff --git a/Foreign/Concurrent.hs b/Foreign/Concurrent.hs index 13e4b46..e0f2faa 100644 --- a/Foreign/Concurrent.hs +++ b/Foreign/Concurrent.hs @@ -1,4 +1,5 @@ -{-# OPTIONS_GHC -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude #-} + ----------------------------------------------------------------------------- -- | -- Module : Foreign.Concurrent @@ -28,7 +29,7 @@ module Foreign.Concurrent ) where #ifdef __GLASGOW_HASKELL__ -import GHC.IOBase ( IO ) +import GHC.IO ( IO ) import GHC.Ptr ( Ptr ) import GHC.ForeignPtr ( ForeignPtr ) import qualified GHC.ForeignPtr @@ -39,10 +40,9 @@ newForeignPtr :: Ptr a -> IO () -> IO (ForeignPtr a) -- ^Turns a plain memory reference into a foreign object by associating -- a finalizer - given by the monadic operation - with the reference. -- The finalizer will be executed after the last reference to the --- foreign object is dropped. Note that there is no guarantee on how --- soon the finalizer is executed after the last reference was dropped; --- this depends on the details of the Haskell storage manager. The only --- guarantee is that the finalizer runs before the program terminates. +-- foreign object is dropped. There is no guarantee of promptness, and +-- in fact there is no guarantee that the finalizer will eventually +-- run at all. newForeignPtr = GHC.ForeignPtr.newConcForeignPtr addForeignPtrFinalizer :: ForeignPtr a -> IO () -> IO ()