
8 Dec
2006
8 Dec
'06
6:44 p.m.
I had asked:
If I use a network accept inside a block:
block ( ... (clientSocket, sockAddr) <- accept serverSocket ... )
and the 'accept' unblocks a pending asynchronous exception and the exception gets thrown, does this mean that the 'accept' won't have accepted a network connection?
Aha, I finally noticed this in this in the Control.Exception documentation:
With takeMVar interruptible, however, we can be safe in the knowledge that the thread can receive exceptions *right up until the point when the takeMVar succeeds*. Similar arguments apply for other interruptible operations like openFile.
(emphasis added) Which answers my question! :-)