ยปCore Development>Code coverage>RISCOS/sleep.c

Python code coverage for RISCOS/sleep.c

#countcontent
1n/a#include "oslib/osmodule.h"
2n/a#include <stdio.h>
3n/a#include "kernel.h"
4n/a#include <limits.h>
5n/a#include <errno.h>
6n/a#include "oslib/taskwindow.h"
7n/a#include "Python.h"
8n/a
9n/a
10n/aint riscos_sleep(double delay)
11n/a{
12n/a os_t starttime, endtime, time; /* monotonic times (centiseconds) */
13n/a int *pollword, ret;
14n/a osbool claimed;
15n/a
16n/a /* calculate end time */
17n/a starttime = os_read_monotonic_time();
18n/a if (starttime + 100.0*delay >INT_MAX)
19n/a endtime = INT_MAX;
20n/a else
21n/a endtime = (os_t)(starttime + 100.0*delay);
22n/a
23n/a /* allocate (in RMA) and set pollword for xupcall_sleep */
24n/a pollword = osmodule_alloc(4);
25n/a *pollword = 1;
26n/a
27n/a time = starttime;
28n/a ret = 0;
29n/a while ( time<endtime && time>=starttime ) {
30n/a xupcall_sleep (pollword, &claimed);
31n/a if (PyErr_CheckSignals()) {
32n/a ret = 1;
33n/a break;
34n/a }
35n/a time = os_read_monotonic_time();
36n/a }
37n/a
38n/a /* deallocate pollword */
39n/a osmodule_free(pollword);
40n/a return ret;
41n/a}