summaryrefslogtreecommitdiff
path: root/emu/port/dis.c
diff options
context:
space:
mode:
Diffstat (limited to 'emu/port/dis.c')
-rw-r--r--emu/port/dis.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/emu/port/dis.c b/emu/port/dis.c
index 72fd52ab..7f8db7b2 100644
--- a/emu/port/dis.c
+++ b/emu/port/dis.c
@@ -238,10 +238,8 @@ delprog(Prog *p, char *msg)
}
p->state = 0xdeadbeef;
free(o->user);
- if(p->killstr)
- free(p->killstr);
- if(p->exstr)
- free(p->exstr);
+ free(p->killstr);
+ free(p->exstr);
free(p);
}
@@ -558,8 +556,12 @@ killgrp(Prog *p, char *msg)
/* interpreter has been acquired */
g = p->group;
- if(g == nil || g->head == nil || g->flags & Pkilled)
+ if(g == nil || g->head == nil)
return 0;
+ while(g->flags & Pkilled){
+ release();
+ acquire();
+ }
npid = 0;
for(f = g->head; f != nil; f = f->grpnext)
if(f->group != g)