calling back to Haskell from several C threads

Bulat Ziganshin bulatz at HotPOP.com
Tue Apr 12 10:31:40 EDT 2005


attached program crashes under GHC-6.2.1/mingw32 and GHC-6.4/mingw32

algorithm:

1. we create several threads with forkOS
2. each thread calls C function
3. C function in each thread made several calls back to Haskell
4. called Haskell functions do some work with memory
5. all these threads ended because C functions returns
6. we create another several threads...

after repeating these steps several times program crashes

may be, this error is due to the following from "The GHC Commentary - Supporting multi-threaded interoperation.htm":
> Note: As of 20020413, the implementation of the RTS API only serializes access to the allocator between multiple OS threads wanting to call into Haskell (via the RTS API.) It does not coordinate this access to the allocator with that of the OS worker thread that's currently executing within the RTS. This weakness/bug is scheduled to be tackled as part of an overhaul/reworking of the RTS API itself.

  

-- 
Best regards,
 Bulat                          mailto:bulatz at HotPOP.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mtest.zip
Type: application/x-zip-compressed
Size: 1223 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/glasgow-haskell-bugs/attachments/20050412/d7ca7e3a/mtest.bin


More information about the Glasgow-haskell-bugs mailing list