diff options
author | Guido van Rossum <guido@python.org> | 2002-06-13 15:07:44 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2002-06-13 15:07:44 (GMT) |
commit | 11ba094957ed72d0ecc9e50e79d138a0770df6e3 (patch) | |
tree | 029b200e2794fdb9231f42cc77d3120b81ac5c96 /Modules/socketmodule.h | |
parent | dfad1a9039df367c9a403e2b777fe2690f3b5b88 (diff) | |
download | cpython-11ba094957ed72d0ecc9e50e79d138a0770df6e3.zip cpython-11ba094957ed72d0ecc9e50e79d138a0770df6e3.tar.gz cpython-11ba094957ed72d0ecc9e50e79d138a0770df6e3.tar.bz2 |
Major overhaul of timeout sockets:
- setblocking(0) and settimeout(0) are now equivalent, and ditto for
setblocking(1) and settimeout(None).
- Don't raise an exception from internal_select(); let the final call
report the error (this means you will get an EAGAIN error instead of
an ETIMEDOUT error -- I don't care).
- Move the select to inside the Py_{BEGIN,END}_ALLOW_THREADS brackets,
so other theads can run (this was a bug in the original code).
- Redid the retry logic in connect() and connect_ex() to avoid masking
errors. This probably doesn't work for Windows yet; I'll fix that
next. It may also fail on other platforms, depending on what
retrying a connect does; I need help with this.
- Get rid of the retry logic in accept(). I don't think it was needed
at all. But I may be wrong.
Diffstat (limited to 'Modules/socketmodule.h')
-rw-r--r-- | Modules/socketmodule.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h index 0c6cd1b..936acac 100644 --- a/Modules/socketmodule.h +++ b/Modules/socketmodule.h @@ -83,9 +83,8 @@ typedef struct { PyObject *(*errorhandler)(void); /* Error handler; checks errno, returns NULL and sets a Python exception */ - int sock_blocking; /* Flag indicated whether the - socket is in blocking mode */ - double sock_timeout; /* Operation timeout value */ + double sock_timeout; /* Operation timeout in seconds; + 0.0 means non-blocking */ } PySocketSockObject; /* --- C API ----------------------------------------------------*/ |