summaryrefslogtreecommitdiffstats
path: root/vxd_async.c
diff options
context:
space:
mode:
authorJaroslav Hensl <[email protected]>2026-05-10 16:57:06 +0200
committerJaroslav Hensl <[email protected]>2026-05-10 16:57:06 +0200
commit0755608c75c2c0f70978c46ef757746583d6348d (patch)
tree093f69ef88d6ad2416ab28a1e3591c7b7e9db2c8 /vxd_async.c
parentd921dcce330c3e17e5e05da0b11e50454fedbd08 (diff)
VESA: real HW fixesHEADmain
Diffstat (limited to 'vxd_async.c')
-rw-r--r--vxd_async.c10
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);
}