q = gotsig; while (pendingsigs = 0, barrier(), (p = memchr(q, 1, NSIG - 1))) { *p = 0; p = trap[p - q + 1];
pendingsigs = 0; barrier();  for (i = 0, q = gotsig; i < NSIG - 1; i++, q++) { if (!*q) continue; *q = 0;  p = trap[i + 1];
dotrap(void){	char *p;	char *q;	int savestatus;	savestatus = exitstatus;	q = gotsig;	while (pendingsigs = 0, barrier(), (p = memchr(q, 1, NSIG - 1))) {		*p = 0;		p = trap[p - q + 1];		if (!p)			continue;		evalstring(p);		exitstatus = savestatus;	}}