If you're talking about the standard socket module, I'm not aware that
it uses IOCP on Windows. Are you asking this just in the abstract, or
do you know of a Python implementation that uses IOCP to implement the
standard socket type?

As to the design of the async I/O library (which I am still working
on!), I cannot guarantee anything, and the issue will probably be moot
-- the API won't have the same kind of timeout as the current socket
object (it will have other ways to set deadlines though).

Confusedly yours,

--Guido

On Mon, Nov 26, 2012 at 3:49 AM, Kristján Valur Jónsson
<krist...@ccpgames.com> wrote:
> Regarding the recent discussion on python-ideas about asyncronous IO, I‘d
> like to ask a question about python socket‘s Timeout feature.
>
> Specifically this:  Is it a documented or a guaranteed feature that a
> send/receive operation that times out with a socket.timeout error is
> re-startable on that socket?
>
>
>
> The reason I ask is that depending on the implementation, a timeout may
> leave a socket in an undefined state.
>
> As it is implemented in the standard cPython implementation, the timeout
> feature is done with an internal select() call.  Thus, if the select() call
> times out, socket send/receive is not even called, so a retry is possible
> without issue.
>
> However, other implementations of python sockets, e.g. ones that rely on IO
> completion, may not have the luxury of using select.  For example, on
> Windows, there is no way to abort an IOCP socket call, so a timeout must be
> implemented by aborting the wait.  Dealing with the resulting race can be an
> interesting challenge.
>
>
>
> K
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/guido%40python.org
>



-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to