
On 10-jun-04, at 17:33, Gracjan Polak wrote:
foreign import stdcall "windows.h &UnmapViewOfFile" funptrUnmapViewOfFile :: FunPtr (Ptr a -> IO ())
[...]
finview <- newForeignPtr funptrUnmapViewOfFile view return finview
Strangely enough my finalizer run always this time, no need to say performGC or yield'ing at the end of main. But it crashes my program :(
That's why I stopped using the newForeignPtr from Foreign.ForeignPtr. It also crashed. I wrote: foreign import ccall "..." finaliserCreator :: IO (FunPtr (Ptr a -> IO ())) and then finaliser <- finaliserCreator That's why I wrote: "I don't know how to make a FunPtr". I thought I knew, but then it crashed.
Any ideas where to go now?
Sorry. As I said before, the Concurrent ForeignPtr works for me. On Windows. But it may be so that the finalisers are not called at the end of the program but only at GC time. For my application this is no problem. Arjan