summaryrefslogtreecommitdiffstats
path: root/Modules/timemodule.c
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2003-01-19 04:54:58 (GMT)
committerTim Peters <tim.peters@gmail.com>2003-01-19 04:54:58 (GMT)
commit513a1cd103ba2b67ad88dc58a185fc7b514078bd (patch)
tree8f8663660589d709e270ee0dcf6689cf6909218b /Modules/timemodule.c
parent80cebc16aa800ec5740e4b9c8b6508bae4cca434 (diff)
downloadcpython-513a1cd103ba2b67ad88dc58a185fc7b514078bd.zip
cpython-513a1cd103ba2b67ad88dc58a185fc7b514078bd.tar.gz
cpython-513a1cd103ba2b67ad88dc58a185fc7b514078bd.tar.bz2
Windows flavor of floatsleep(): folded long lines, introduced a temp
var for clarity.
Diffstat (limited to 'Modules/timemodule.c')
-rw-r--r--Modules/timemodule.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index c688091..745ba8c 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -455,7 +455,7 @@ time_strptime(PyObject *self, PyObject *args)
{
PyObject *strptime_module = PyImport_ImportModule("_strptime");
- if (!strptime_module)
+ if (!strptime_module)
return NULL;
return PyObject_CallMethod(strptime_module, "strptime", "O", args);
}
@@ -811,26 +811,31 @@ floatsleep(double secs)
#elif defined(MS_WINDOWS)
{
double millisecs = secs * 1000.0;
+ unsigned long ul_millis;
+
if (millisecs > (double)ULONG_MAX) {
- PyErr_SetString(PyExc_OverflowError, "sleep length is too large");
+ PyErr_SetString(PyExc_OverflowError,
+ "sleep length is too large");
return -1;
}
Py_BEGIN_ALLOW_THREADS
- /* allow sleep(0) to maintain win32 semantics, and as decreed by
- Guido, only the main thread can be interrupted. */
- if ((unsigned long)millisecs==0 || main_thread != PyThread_get_thread_ident())
- Sleep((unsigned long)millisecs);
+ /* Allow sleep(0) to maintain win32 semantics, and as decreed
+ * by Guido, only the main thread can be interrupted.
+ */
+ ul_millis = (unsigned long)millisecs;
+ if (ul_millis == 0 ||
+ main_thread != PyThread_get_thread_ident())
+ Sleep(ul_millis);
else {
DWORD rc;
ResetEvent(hInterruptEvent);
- rc = WaitForSingleObject(hInterruptEvent, (unsigned long)millisecs);
- if (rc==WAIT_OBJECT_0) {
- /* yield to make sure real Python signal handler called */
+ rc = WaitForSingleObject(hInterruptEvent, ul_millis);
+ if (rc == WAIT_OBJECT_0) {
+ /* Yield to make sure real Python signal
+ * handler called.
+ */
Sleep(1);
Py_BLOCK_THREADS
- /* PyErr_SetFromErrno() does the "right thing" wrt signals
- if errno=EINTR
- */
errno = EINTR;
PyErr_SetFromErrno(PyExc_IOError);
return -1;