Hey Doug,

The following words in io/windows/nt/socket.factor call handle-socket- 
error!=0/f:

bind-socket
listen-socket
(accept)
<client>

This word throws an error.

Now, our usual idiom is

... <client> [ ... ] with-stream

or

... accept [ ... ] with-stream

However this idiom does not work if an error is thrown while the  
socket is still being constructed by <client> and accept!

You need to refactor your initialization code for <client> and accept  
so that it closes the socket and frees all resources before throwing  
anything. I don't want to try this refactoring myself since I don't  
have Windows to test it on.

I recall you mentioned a few weeks ago (accept) had some kind of  
resource leak; this could be it.

The Unix code (which I fixed) had the same issue. The code looked  
'correct' during previous reviews. So I don't blame you :-)

Have fun,

Slava

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to