[Haskell-cafe] Thread scheduling and GHC.Conc

Jake Foell jacobrfoell at eaton.com
Thu Dec 18 16:08:04 EST 2008


using ghc v6.8.2
Problem:
I am creating a program that forks two other lightweight threads.  One
of the forked threads seems to be stuck or dead after running
successfully for a non-trivial amount of time.  I am receiving no
error messages.
Questions:
What is the best way to diagnose this problem? (perhaps a ghc upgrade to
a version that includes processStatus?)
Does the runtime system ensure that no thread will starve for processor
time?

My initial diagnosis:
by looking at log files that this program produces, it seems that the
thread in question is failing while receiving a response from a server.
Here is a simplified exerpt:
        h <- connectTo server port
        appendFile file "Connection Established\n"
        hPutStr h httpRequestString
        hFlush h
        reply <- hGetContents h
        appendFile file reply
If I look at the tail of file that is created, I see something similar
to this:
        ...
        Connection Established
        here is the response...
        Connection Established
Answers to my questions and/or any advice would be appreciated. thanks


More information about the Haskell-Cafe mailing list