Bugfix: Always release the Win16Lock in TASK_Reschedule.

This commit is contained in:
Ulrich Weigand 1999-04-15 15:30:33 +00:00 committed by Alexandre Julliard
parent e5811f0eb1
commit d1e2239ff0

View file

@ -780,8 +780,13 @@ BOOL TASK_Reschedule(void)
if (hTask == hCurrentTask)
{
TRACE(task, "returning to the current task(%04x)\n", hTask );
return FALSE; /* Nothing to do */
/* Allow Win32 threads to thunk down even while a Win16 task is
in a tight PeekMessage() or Yield() loop ... */
SYSLEVEL_ReleaseWin16Lock();
SYSLEVEL_RestoreWin16Lock();
TRACE(task, "returning to the current task(%04x)\n", hTask );
return FALSE; /* Nothing to do */
}
pNewTask = (TDB *)GlobalLock16( hTask );
TRACE(task, "Switching to task %04x (%.8s)\n",