diff options
Diffstat (limited to 'vxd_async.c')
| -rw-r--r-- | vxd_async.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/vxd_async.c b/vxd_async.c index 7027ec2..6c42256 100644 --- a/vxd_async.c +++ b/vxd_async.c @@ -71,7 +71,7 @@ void __stdcall async_timeout(DWORD tardiness, DWORD refdata) DWORD act = *curtime;
DWORD delta;
- void *curctx = _GetCurrentContext();
+ //void *curctx = _GetCurrentContext();
//dbg_printf("CTX: %lX, device CTX: %lX\n", curctx, DeviceCTX);
//_ContextSwitch(DeviceCTX);
@@ -90,8 +90,12 @@ void __stdcall async_timeout(DWORD tardiness, DWORD refdata) burned = *curtime - act;
delta = calc_delta(burned);
- Set_Async_Time_Out(delta, refdata+1, async_timeout_proc);
- _ContextSwitch(curctx);
+ if(!Set_Async_Time_Out(delta, refdata+1, async_timeout_proc))
+ {
+ delta = calc_delta(0);
+ Set_Async_Time_Out(delta, refdata+1, async_timeout_proc);
+ }
+ //_ContextSwitch(curctx);
//dbg_printf("... set (%d)!\n", delta);
}
|
