RE: [Haskell-cafe] Project postmortem

On 02 December 2005 12:11, Tomasz Zielonka wrote:
On Fri, Dec 02, 2005 at 11:20:54AM -0000, Simon Marlow wrote:
If anyone is interested, this turned out to be a bug in the Network.BSD module, namely that getHostByName isn't thread safe because it is based on the C library function gethostbyname(), which returns data in a single static area.
Workarounds are:
- do your own mutual exclusion locking around getHostByName and any function that calls it (eg. connectTo).
- use Network.Alt (http://www.cs.helsinki.fi/u/ekarttun/network-alt/), which has a thread-safe implementation of getHostByName.
- wait for 6.4.2, which will contain a fix for this bug (we don't have a fix committed yet, Einar Karttunen has kindly offered to look into it).
Do I understand correctly that another workaround is - don't compile your programs with -threaded ?
No, the bug isn't related to -threaded. It still occurs without -threaded. Cheers, Simon

On Fri, Dec 02, 2005 at 12:39:25PM -0000, Simon Marlow wrote:
Do I understand correctly that another workaround is - don't compile your programs with -threaded ?
No, the bug isn't related to -threaded. It still occurs without -threaded.
Let's check that now I understand - so the sequence call gethostbyname read the returned hostent is written in Haskell, and many such sequences can be interleaved when using Concurrent Haskell? Best regards Tomasz -- I am searching for a programmer who is good at least in some of [Haskell, ML, C++, Linux, FreeBSD, math] for work in Warsaw, Poland
participants (2)
-
Simon Marlow
-
Tomasz Zielonka