[Haskell-cafe] network-conduit proxy

Alexander V Vershilov alexander.vershilov at gmail.com
Sat Mar 10 10:07:52 CET 2012


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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: Digital signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120310/a7c79e9d/attachment.pgp>


More information about the Haskell-Cafe mailing list