Mercurial > dwindows
comparison os2/dw.c @ 477:923b46b0716c
Had #ifdef __EMX__ round the wrong way in dw_main_sleep(); now fixed.
author | mhessling@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 13 Oct 2003 10:37:24 +0000 |
parents | a84ee39e7aea |
children | ea099ba917c6 |
comparison
equal
deleted
inserted
replaced
476:a84ee39e7aea | 477:923b46b0716c |
---|---|
3327 */ | 3327 */ |
3328 void API dw_main_sleep(int milliseconds) | 3328 void API dw_main_sleep(int milliseconds) |
3329 { | 3329 { |
3330 QMSG qmsg; | 3330 QMSG qmsg; |
3331 #ifdef __EMX__ | 3331 #ifdef __EMX__ |
3332 double start = (double)clock(); | 3332 struct timeval tv, start; |
3333 | 3333 |
3334 while(((clock() - start) / (CLOCKS_PER_SEC/1000)) <= milliseconds) | 3334 gettimeofday(&start, NULL); |
3335 gettimeofday(&tv, NULL); | |
3336 | |
3337 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) | |
3335 { | 3338 { |
3336 if(WinPeekMsg(dwhab, &qmsg, 0, 0, 0, PM_NOREMOVE)) | 3339 if(WinPeekMsg(dwhab, &qmsg, 0, 0, 0, PM_NOREMOVE)) |
3337 { | 3340 { |
3338 WinGetMsg(dwhab, &qmsg, 0, 0, 0); | 3341 WinGetMsg(dwhab, &qmsg, 0, 0, 0); |
3339 if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) | 3342 if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) |
3340 _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); | 3343 _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); |
3341 WinDispatchMsg(dwhab, &qmsg); | 3344 WinDispatchMsg(dwhab, &qmsg); |
3342 } | 3345 } |
3343 else | 3346 else |
3344 DosSleep(1); | 3347 DosSleep(1); |
3348 gettimeofday(&tv, NULL); | |
3345 } | 3349 } |
3346 #else | 3350 #else |
3347 struct timeval tv, start; | 3351 double start = (double)clock(); |
3348 | 3352 |
3349 gettimeofday(&start, NULL); | 3353 while(((clock() - start) / (CLOCKS_PER_SEC/1000)) <= milliseconds) |
3350 gettimeofday(&tv, NULL); | |
3351 | |
3352 while(((tv.tv_sec - start.tv_sec)*1000) + ((tv.tv_usec - start.tv_usec)/1000) <= milliseconds) | |
3353 { | 3354 { |
3354 if(WinPeekMsg(dwhab, &qmsg, 0, 0, 0, PM_NOREMOVE)) | 3355 if(WinPeekMsg(dwhab, &qmsg, 0, 0, 0, PM_NOREMOVE)) |
3355 { | 3356 { |
3356 WinGetMsg(dwhab, &qmsg, 0, 0, 0); | 3357 WinGetMsg(dwhab, &qmsg, 0, 0, 0); |
3357 if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) | 3358 if(qmsg.msg == WM_TIMER && qmsg.hwnd == NULLHANDLE) |
3358 _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); | 3359 _run_event(qmsg.hwnd, qmsg.msg, qmsg.mp1, qmsg.mp2); |
3359 WinDispatchMsg(dwhab, &qmsg); | 3360 WinDispatchMsg(dwhab, &qmsg); |
3360 } | 3361 } |
3361 else | 3362 else |
3362 DosSleep(1); | 3363 DosSleep(1); |
3363 gettimeofday(&tv, NULL); | |
3364 } | 3364 } |
3365 #endif | 3365 #endif |
3366 } | 3366 } |
3367 | 3367 |
3368 /* | 3368 /* |