Changes in uspace/lib/libc/generic/time.c [d9ece1cb:c61d34b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/generic/time.c
rd9ece1cb rc61d34b 40 40 #include <unistd.h> 41 41 #include <atomic.h> 42 #include <futex.h> 42 43 #include <sysinfo.h> 43 44 #include <ipc/services.h> 44 #include <libc.h>45 45 46 46 #include <sysinfo.h> … … 191 191 int usleep(unsigned long usec) 192 192 { 193 (void) __SYSCALL1(SYS_THREAD_USLEEP, usec); 193 atomic_t futex = FUTEX_INITIALIZER; 194 195 futex_initialize(&futex, 0); 196 futex_down_timeout(&futex, usec, 0); 194 197 return 0; 195 198 } … … 198 201 unsigned int sleep(unsigned int seconds) 199 202 { 203 atomic_t futex = FUTEX_INITIALIZER; 204 205 futex_initialize(&futex, 0); 206 200 207 /* Sleep in 1000 second steps to support 201 208 full argument range */ … … 203 210 unsigned int period = (seconds > 1000) ? 1000 : seconds; 204 211 205 usleep(period * 1000000);212 futex_down_timeout(&futex, period * 1000000, 0); 206 213 seconds -= period; 207 214 }
Note:
See TracChangeset
for help on using the changeset viewer.