Don't crash in DirectedYield16 if no other task is running.

This commit is contained in:
Alexandre Julliard 2002-12-13 00:39:17 +00:00
parent 15344ee7c9
commit df357055e2

View file

@ -720,18 +720,20 @@ void WINAPI DirectedYield16( HTASK16 hTask )
{
TDB *pCurTask = TASK_GetCurrent();
if (pCurTask->flags & TDBF_WIN32)
if (!pCurTask) OldYield16();
else
{
FIXME("called for Win32 thread (%04x)!\n", NtCurrentTeb()->teb_sel);
return;
if (pCurTask->flags & TDBF_WIN32)
{
FIXME("called for Win32 thread (%04x)!\n", NtCurrentTeb()->teb_sel);
return;
}
TRACE("%04x: DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
pCurTask->hYieldTo = hTask;
OldYield16();
TRACE("%04x: back from DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
}
TRACE("%04x: DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
pCurTask->hYieldTo = hTask;
OldYield16();
TRACE("%04x: back from DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
}
/***********************************************************************