Lines Matching refs:pp
98 register Pid_t* pp;
138 while (pp = (Pid_t*)hashnext(pos))
140 n += sfsprintf(m + n, sizeof(state->buf) - n, "%6d %ld", pp->pid, pp->expire - cs.time);
141 for (np = pp->notify; np; np = np->next)
163 else if (pp = (Pid_t*)hashlook(state->pids, (char*)&pid, HASH_LOOKUP, NiL))
168 np = pp->notify;
186 np->next = pp->notify;
187 pp->notify = np;
192 else if (pp = (Pid_t*)hashlook(state->pids, NiL, HASH_CREATE|HASH_SIZE(sizeof(Pid_t)), NiL))
194 pp->pid = pid;
198 np->next = pp->notify;
199 pp->notify = np;
200 pp->expire = cs.time + (pp->decay = state->expire);
204 cswakeup(pp->decay * 1000L);
220 register Pid_t* pp;
232 while (pp = (Pid_t*)hashnext(pos))
234 if (pp->expire <= cs.time)
236 if (kill(pp->pid, 0) && errno == ESRCH)
238 n = sfsprintf(state->msg, sizeof(state->msg), "%u\n", pp->pid);
239 np = pp->notify;
247 hashlook(state->pids, (char*)&pp->pid, HASH_DELETE, NiL);
251 if (pp->decay < state->decay)
252 pp->decay <<= 1;
253 pp->expire = cs.time + pp->decay;
255 if (pp->expire < wakeup)
256 wakeup = pp->expire;