nullFile__ :: FILE_OBJECT
nullFile__ =
#ifndef __PARALLEL_HASKELL__
- unsafePerformIO (makeForeignObj nullAddr)
+ unsafePerformIO (makeForeignObj nullAddr (return ()))
#else
nullAddr
#endif
\begin{code}
foreign import "libHS_cbits" "freeStdFileObject" unsafe
- freeStdFileObject :: FILE_OBJECT -> IO ()
+ freeStdFileObject :: Addr -> IO ()
foreign import "libHS_cbits" "freeFileObject" unsafe
- freeFileObject :: FILE_OBJECT -> IO ()
+ freeFileObject :: Addr -> IO ()
\end{code}
(0::Int){-writeable-} -- ConcHask: SAFE, won't block
#ifndef __PARALLEL_HASKELL__
- fo <- makeForeignObj fo
- addForeignFinalizer fo (freeStdFileObject fo)
+ fo <- makeForeignObj fo (freeStdFileObject fo)
#endif
#ifdef __HUGS__
(1::Int){-readable-} -- ConcHask: SAFE, won't block
#ifndef __PARALLEL_HASKELL__
- fo <- makeForeignObj fo
- addForeignFinalizer fo (freeStdFileObject fo)
+ fo <- makeForeignObj fo (freeStdFileObject fo)
#endif
(bm, bf_size) <- getBMode__ fo
mkBuffer__ fo bf_size
(0::Int){-writeable-} -- ConcHask: SAFE, won't block
#ifndef __PARALLEL_HASKELL__
- fo <- makeForeignObj fo
- addForeignFinalizer fo (freeStdFileObject fo)
+ fo <- makeForeignObj fo (freeStdFileObject fo)
#endif
hdl <- newHandle (Handle__ fo WriteHandle NoBuffering "stderr")
-- when stderr and stdout are both connected to a terminal, ensure
(binary::Int) -- ConcHask: SAFE, won't block
if fo /= nullAddr then do
#ifndef __PARALLEL_HASKELL__
- fo <- makeForeignObj fo
- addForeignFinalizer fo (freeFileObject fo)
+ fo <- makeForeignObj fo (freeFileObject fo)
#endif
(bm, bf_size) <- getBMode__ fo
mkBuffer__ fo bf_size