source: python/vendor/Python-2.7.6/RISCOS/sleep.c

Last change on this file was 388, checked in by dmik, 11 years ago

python: Update vendor to 2.7.6.

  • Property svn:eol-style set to native
File size: 964 bytes
Line 
1#include "oslib/osmodule.h"
2#include <stdio.h>
3#include "kernel.h"
4#include <limits.h>
5#include <errno.h>
6#include "oslib/taskwindow.h"
7#include "Python.h"
8
9
10int riscos_sleep(double delay)
11{
12 os_t starttime, endtime, time; /* monotonic times (centiseconds) */
13 int *pollword, ret;
14 osbool claimed;
15
16 /* calculate end time */
17 starttime = os_read_monotonic_time();
18 if (starttime + 100.0*delay >INT_MAX)
19 endtime = INT_MAX;
20 else
21 endtime = (os_t)(starttime + 100.0*delay);
22
23 /* allocate (in RMA) and set pollword for xupcall_sleep */
24 pollword = osmodule_alloc(4);
25 *pollword = 1;
26
27 time = starttime;
28 ret = 0;
29 while ( time<endtime && time>=starttime ) {
30 xupcall_sleep (pollword, &claimed);
31 if (PyErr_CheckSignals()) {
32 ret = 1;
33 break;
34 }
35 time = os_read_monotonic_time();
36 }
37
38 /* deallocate pollword */
39 osmodule_free(pollword);
40 return ret;
41}
Note: See TracBrowser for help on using the repository browser.