changeset: 95458:7f54676348d3 user: Victor Stinner date: Mon Apr 06 23:06:01 2015 +0200 files: Modules/socketmodule.c description: Issue #23834: Fix initial value of the socket timeout Use _PyTime_FromSeconds() to initialize the default socket timeout to -1 second, instead of -1 nanosecond which causes rounding issues in internal_select(). diff -r c8815035116b -r 7f54676348d3 Modules/socketmodule.c --- a/Modules/socketmodule.c Mon Apr 06 22:52:44 2015 +0300 +++ b/Modules/socketmodule.c Mon Apr 06 23:06:01 2015 +0200 @@ -2292,7 +2292,7 @@ if (block == -1 && PyErr_Occurred()) return NULL; - s->sock_timeout = block ? -1 : 0; + s->sock_timeout = _PyTime_FromSeconds(block ? -1 : 0); internal_setblocking(s, block); Py_INCREF(Py_None); @@ -4162,7 +4162,7 @@ new = type->tp_alloc(type, 0); if (new != NULL) { ((PySocketSockObject *)new)->sock_fd = -1; - ((PySocketSockObject *)new)->sock_timeout = -1; + ((PySocketSockObject *)new)->sock_timeout = _PyTime_FromSeconds(-1); ((PySocketSockObject *)new)->errorhandler = &set_error; } return new;