| #include "oslib/osmodule.h" |
| #include "oslib/taskwindow.h" |
| int riscos_sleep(double delay) |
| os_t starttime, endtime, time; /* monotonic times (centiseconds) */ |
| starttime = os_read_monotonic_time(); |
| if (starttime + 100.0*delay >INT_MAX) |
| endtime = (os_t)(starttime + 100.0*delay); |
| /* allocate (in RMA) and set pollword for xupcall_sleep */ |
| pollword = osmodule_alloc(4); |
| while ( time<endtime && time>=starttime ) { |
| xupcall_sleep (pollword, &claimed); |
| if (PyErr_CheckSignals()) { |
| time = os_read_monotonic_time(); |
| /* deallocate pollword */ |