Yield to VOS during pause (fixes hang)

This commit is contained in:
elasota
2019-12-27 23:02:01 -05:00
parent 61738e4e7c
commit 9b79eeeb81

View File

@@ -91,6 +91,7 @@ void DoPause (void)
do do
{ {
GetKeys(theKeys); GetKeys(theKeys);
Delay(1, nullptr);
} }
while ((isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kEscape))) || while ((isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kEscape))) ||
(!isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kTab)))); (!isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kTab))));
@@ -104,6 +105,8 @@ void DoPause (void)
paused = false; paused = false;
else if (BitTst(theKeys, PL_KEY_EITHER_SPECIAL(kControl))) else if (BitTst(theKeys, PL_KEY_EITHER_SPECIAL(kControl)))
DoCommandKey(); DoCommandKey();
Delay(1, nullptr);
} }
CopyBits((BitMap *)*GetGWorldPixMap(workSrcMap), CopyBits((BitMap *)*GetGWorldPixMap(workSrcMap),
@@ -113,6 +116,7 @@ void DoPause (void)
do do
{ {
GetKeys(theKeys); GetKeys(theKeys);
Delay(1, nullptr);
} }
while ((isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kEscape))) || while ((isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kEscape))) ||
(!isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kTab)))); (!isEscPauseKey && BitTst(theKeys, PL_KEY_SPECIAL(kTab))));