mirror of
https://github.com/dborth/snes9xgx.git
synced 2024-12-18 07:11:50 +01:00
prevent lockups on exit
This commit is contained in:
parent
7a0bfd2e44
commit
0f9ce7ec3b
@ -317,6 +317,8 @@ UpdateGUI (void *arg)
|
||||
* progress bar showing % completion, or a throbber that only shows that an
|
||||
* action is in progress.
|
||||
***************************************************************************/
|
||||
static int progsleep = 0;
|
||||
|
||||
static void
|
||||
ProgressWindow(char *title, char *msg)
|
||||
{
|
||||
@ -379,7 +381,17 @@ ProgressWindow(char *title, char *msg)
|
||||
promptWindow.Append(&throbberImg);
|
||||
}
|
||||
|
||||
usleep(400000); // wait to see if progress flag changes soon
|
||||
// wait to see if progress flag changes soon
|
||||
progsleep = 400000;
|
||||
|
||||
while(progsleep > 0)
|
||||
{
|
||||
if(!showProgress)
|
||||
break;
|
||||
usleep(THREAD_SLEEP);
|
||||
progsleep -= THREAD_SLEEP;
|
||||
}
|
||||
|
||||
if(!showProgress)
|
||||
return;
|
||||
|
||||
@ -395,7 +407,15 @@ ProgressWindow(char *title, char *msg)
|
||||
|
||||
while(showProgress)
|
||||
{
|
||||
usleep(20000);
|
||||
progsleep = 20000;
|
||||
|
||||
while(progsleep > 0)
|
||||
{
|
||||
if(!showProgress)
|
||||
break;
|
||||
usleep(THREAD_SLEEP);
|
||||
progsleep -= THREAD_SLEEP;
|
||||
}
|
||||
|
||||
if(showProgress == 1)
|
||||
{
|
||||
@ -471,7 +491,7 @@ CancelAction()
|
||||
void
|
||||
ShowProgress (const char *msg, int done, int total)
|
||||
{
|
||||
if(!mainWindow)
|
||||
if(!mainWindow || ExitRequested || ShutdownRequested)
|
||||
return;
|
||||
|
||||
if(total < (256*1024))
|
||||
@ -502,7 +522,7 @@ ShowProgress (const char *msg, int done, int total)
|
||||
void
|
||||
ShowAction (const char *msg)
|
||||
{
|
||||
if(!mainWindow)
|
||||
if(!mainWindow || ExitRequested || ShutdownRequested)
|
||||
return;
|
||||
|
||||
if(showProgress != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user