
As it seems from code runTCPServer registers socket close and TCPClient runs it in bracket so all open resources should be closed. It my last try I add _ <- register $ killThread tId after forking serverSrc $$ clientSink, to kill outter thread explicilty otherwise it closes thread with error.
Is this the expected behaviour or are resources not being closed?
In 'strace' log it seems that both sockets is closed. So I think that computation is closed before reaching the end because src $$ sink closed with error. If you want to run action at the end you can register it -- Alexander V Vershilov Sat, Mar 10, 2012 at 05:43:12AM +0000, grant wrote
I've tried running the code with runTCPServer first but I get "recv: invalid argument (Bad file descriptor)" on ubuntu (virtualbox) and when running on windows I get "Network.Socket.ByteString.recv: failed (Unknown error)".
Also, it seems odd that when I run this code https://gist.github.com/2010354 that it doesn't print "END serverSrc clientSink". Is this the expected behaviour or are resources not being closed? Again the same thing happens when running on Ubuntu.
{- here is the output ... C:\haskell>netproxy4 START clientSrc serverSink START serverSrc clientSink END clientSrc serverSink START serverSrc clientSink START clientSrc serverSink END clientSrc serverSink -}
Thanks for any ideas. Grant
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe