games/galaxy: fix exit race condition by pausing the galaxy before threadexitsall
This commit is contained in:
parent
85b8d253d4
commit
b2b80a3da5
2 changed files with 15 additions and 6 deletions
|
@ -442,7 +442,7 @@ domenu(void)
|
|||
G *= z;
|
||||
break;
|
||||
case EXIT:
|
||||
threadexitsall(nil);
|
||||
quit(nil);
|
||||
break;
|
||||
}
|
||||
drawglxy();
|
||||
|
@ -496,14 +496,14 @@ kbdthread(void*)
|
|||
|
||||
for(;;) {
|
||||
recv(realkc->c, &r);
|
||||
if(r == Kdel) {
|
||||
threadexitsall(nil);
|
||||
}
|
||||
if(r == Kdel)
|
||||
quit(nil);
|
||||
|
||||
if(kc.c != nil)
|
||||
send(kc.c, &r);
|
||||
else switch(r) {
|
||||
case 'q':
|
||||
threadexitsall(nil);
|
||||
quit(nil);
|
||||
break;
|
||||
case 's':
|
||||
stats ^= 1;
|
||||
|
@ -538,10 +538,17 @@ tovector(Point p)
|
|||
return v;
|
||||
}
|
||||
|
||||
void
|
||||
quit(char *e)
|
||||
{
|
||||
pause(0, 0);
|
||||
threadexitsall(e);
|
||||
}
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "Usage: %s [-t throttle] [-G gravity] [-ε smooth] [-i] [file]\n", argv0);
|
||||
fprint(2, "Usage: %s [-t throttle] [-G gravity] [-ε smooth] [-p extraproc] [-i] [file]\n", argv0);
|
||||
threadexitsall("usage");
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,8 @@ enum {
|
|||
BODY,
|
||||
};
|
||||
|
||||
void quit(char*);
|
||||
|
||||
Image *randcol(void);
|
||||
Point topoint(Vector);
|
||||
Vector tovector(Point);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue