| plan 9 kernel history: overview | file list | diff list |
1990/0509/port/proc.c (diff list | history)
| 1990/0424/sys/src/9/port/proc.c:410,417 – 1990/0509/sys/src/9/port/proc.c:410,444 (short | long | prev | next) | ||
|
Keep at most NBROKEN Broken processes around.
rsc Mon Mar 20 17:14:02 2006 | ||
| 1990/0227 | } out: if(!freemem){ | |
| 1990/0509 | /* * weird thing: keep at most NBROKEN around */ #define NBROKEN 4 static struct{ Lock; int n; Proc *p[NBROKEN]; }broken; int b; lock(&broken); if(broken.n == NBROKEN){ ready(broken.p[0]); memcpy(&broken.p[0], &broken.p[1], sizeof(Proc*)*(NBROKEN-1)); --broken.n; } broken.p[broken.n++] = c; unlock(&broken); | |
| 1990/03081 | c->state = Broken; | |
| 1990/0227 | sched(); /* until someone lets us go */ | |
| 1990/0509 | lock(&broken); for(b=0; b<NBROKEN; b++) if(broken.p[b] == c){ broken.n--; memcpy(&broken.p[b], &broken.p[b+1], sizeof(Proc*)*(NBROKEN-(b+1))); break; } unlock(&broken); | |
| 1990/0227 | freesegs(-1); | |
| 1990/03081 | closepgrp(c->pgrp); | |
| 1990/0227 | close(u->dot); | |