Ticket #3473 (closed bug: fixed)
System.Posix.Semaphore shouldn't create finalizers with Foreign.newForeignPtr
|Reported by:||kaol||Owned by:||simonmar|
|Type of failure:||Difficulty:||Unknown|
|Test Case:||Blocked By:|
Running this program
import System.Posix.Semaphore main = do s <- semOpen "c" (OpenSemFlags True False) 0666 1 semThreadWait s v <- semGetValue s putStrLn "Type!" a <- getLine putStrLn $ "OK, " ++ a semPost s
fails like this:
Type! abc OK, abc sem: error: a C finalizer called back into Haskell. This was previously allowed, but is disallowed in GHC 6.10.2 and later. To create finalizers that may call back into Haskll, use Foreign.Concurrent.newForeignPtr instead of Foreign.newForeignPtr.
The attached patch for libraries/unix/System/Posix/Semaphore.hsc should fix this.
Note: See TracTickets for help on using tickets.