mirror of
https://github.com/spiffcode/hostile-takeover.git
synced 2026-06-06 10:24:58 -06:00
fix exit race condition prevents game state saving
This commit is contained in:
parent
24359365c2
commit
c3e42fe2d6
@ -135,9 +135,9 @@ bool MessageQueue::Get(Message *pmsg, long64 ctWait)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageQueue::Post(Message *pmsg, int idCoalesce)
|
void MessageQueue::Post(Message *pmsg, int idCoalesce, bool fEvenIfStopping)
|
||||||
{
|
{
|
||||||
if (stop_)
|
if (stop_ && !fEvenIfStopping)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Copy message before putting in queue
|
// Copy message before putting in queue
|
||||||
|
|||||||
@ -60,7 +60,7 @@ public:
|
|||||||
virtual void Stop();
|
virtual void Stop();
|
||||||
virtual bool IsStopping();
|
virtual bool IsStopping();
|
||||||
virtual bool Get(Message *pmsg, long64 ctWait = kctForever);
|
virtual bool Get(Message *pmsg, long64 ctWait = kctForever);
|
||||||
virtual void Post(Message *pmsg, int idCoalesce = -1);
|
virtual void Post(Message *pmsg, int idCoalesce = -1, bool fEvenIfStopping = false);
|
||||||
virtual void Post(int id, MessageHandler *handler,
|
virtual void Post(int id, MessageHandler *handler,
|
||||||
MessageData *data = NULL) {
|
MessageData *data = NULL) {
|
||||||
Message msg;
|
Message msg;
|
||||||
|
|||||||
@ -89,7 +89,7 @@ void HostSuspendModalLoop(DibBitmap *pbm)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (msg.id == kidmAppTerminate) {
|
if (msg.id == kidmAppTerminate) {
|
||||||
thread.Post(&msg);
|
thread.Post(&msg, -1, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
thread.Dispatch(&msg);
|
thread.Dispatch(&msg);
|
||||||
@ -129,8 +129,8 @@ bool ProcessMessage(base::Message *pmsg, Event *pevt)
|
|||||||
case kidmMouseMove2:
|
case kidmMouseMove2:
|
||||||
pevt->eType = penMoveEvent2;
|
pevt->eType = penMoveEvent2;
|
||||||
pevt->ff = kfEvtFinger;
|
pevt->ff = kfEvtFinger;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kidmAppTerminate:
|
case kidmAppTerminate:
|
||||||
pevt->eType = appStopEvent;
|
pevt->eType = appStopEvent;
|
||||||
pevt->ff = 0;
|
pevt->ff = 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user