mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
issue #9090 : Limit the fix to windows since getting a portable simple
time function on non-windows isn't quite simple.
This commit is contained in:
parent
6ebc8f3f38
commit
620e36419a
1 changed files with 20 additions and 1 deletions
|
@ -751,6 +751,14 @@ internal_select(PySocketSockObject *s, int writing)
|
|||
}
|
||||
END_SELECT_LOOP(s)
|
||||
*/
|
||||
#ifdef _WIN32
|
||||
/* _PyTime_floattime is exported from timemodule.c which is a builtin on windows
|
||||
* but not on linux. The problem we are fixing is mostly a windows problem so
|
||||
* we leave it at that.
|
||||
*/
|
||||
#define HAVE_PYTIME_FLOATTIME
|
||||
#endif
|
||||
#ifdef HAVE_PYTIME_FLOATTIME
|
||||
PyAPI_FUNC(double) _PyTime_floattime(void); /* defined in timemodule.c */
|
||||
#define BEGIN_SELECT_LOOP(s) \
|
||||
{ \
|
||||
|
@ -768,7 +776,18 @@ PyAPI_FUNC(double) _PyTime_floattime(void); /* defined in timemodule.c */
|
|||
break; \
|
||||
interval = deadline - _PyTime_floattime(); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
#else
|
||||
#define BEGIN_SELECT_LOOP(s) \
|
||||
{ \
|
||||
double interval = s->sock_timeout; \
|
||||
do { \
|
||||
errno = 0; \
|
||||
|
||||
#define END_SELECT_LOOP(s) \
|
||||
} while(0); \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize a new socket object. */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue