#4039: problems with semaphores in ghc-6.10.4 unix-2.3.2.0
-------------------------------+--------------------------------------------
Reporter: bastl | Owner:
Type: bug | Status: new
Priority: normal | Component: libraries/unix
Version: 6.10.4 | Keywords: unix semaphores newForeignPtr
Os: Linux | Testcase:
Architecture: x86_64 (amd64) | Failure: None/Unknown
-------------------------------+--------------------------------------------
module Main ( main ) where
import System ( getArgs )
import Control.Monad
import Data.List
import System.Posix.Semaphore
import System.Posix.Files
main = do
c <- liftM (head . head) getArgs
putStrLn $ "Writing " ++ [c] ++ " to file foo"
s <- semOpen "fooSemaphor" (OpenSemFlags True False) ownerModes 1
semWait s
appendFile "foo" $ replicate 99999999 c
semPost s
semUnlink "fooSemaphor"
putStrLn $ "Done writing " ++ [c]
When called like this "./locking2 a & ./locking2 b" I get:
locking2: fooSemaphor: semUnlink: does not exist (No such file or
directory)
locking2: 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.
I dont know what this means, but it looks as if some things are going
wrong internally.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4039>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs