Hi, I'm running into a problem using server code (running on a UNIX domain socket) that I basically snatched from Simon Marlow's web server:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mainLoop sock defUser getMs = do putStrLn "Accepting connections..." installHandler sigPIPE Ignore Nothing loop (0::Int) where loop n = do (connection, peerAddress) <- accept sock h <- socketToHandle connection ReadWriteMode forkIO ( (talk n getMs defUser h `finally` goodBye n h) `Exception.catch` (\e -> putStrLn ("Exception: " ++ show e)) ) loop (n+1) goodBye n h = do putStrLn (show n ++ ": finished") hClose h ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ After processing a random number of connections, the server dies with Fail: invalid argument Action: accept Reason: Invalid argument after finishing the last connection. For the record, here is the code that is executed for each connection: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ talk n getMs user h = do hSetBuffering h LineBuffering putStrLn (show n ++ ": ") str <- hGetLine h lstr <- hGetLine h putStrLn ("...: " ++ lstr) -- last output before core dump let msglength = read (takeWhile isDigit (drop 1 lstr)) rawmsg <- hGetContents h putStrLn ("Got " ++ show (length msg) ++ " characters") ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The machine is Linux kailua 2.4.18-4GB #1 Wed Mar 27 13:57:05 UTC 2002 i686 unknown The problem seems to go away if I switch to INET sockets, so I'm also including my initialization code: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ withSocketsDo $ do sock <- socket AF_UNIX Stream 0 bindSocket sock (SockAddrUnix path) listen sock maxListenQueue getMs <- initializeAll mainLoop sock defUser getMs ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Peter _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users