endpoint fixes for RS

This commit is contained in:
Ben Gras 2006-03-08 14:38:35 +00:00
parent acb804f0bd
commit 6c2a1bac7b

View file

@ -206,12 +206,14 @@ PUBLIC void do_exit(message *m_ptr)
*/ */
for (rp=BEG_RPROC_ADDR; rp<END_RPROC_ADDR; rp++) { for (rp=BEG_RPROC_ADDR; rp<END_RPROC_ADDR; rp++) {
if ((rp->r_flags & RS_IN_USE) && rp->r_pid == exit_pid) { if ((rp->r_flags & RS_IN_USE) && rp->r_pid == exit_pid) {
int proc;
proc = _ENDPOINT_P(rp->r_proc_nr_e);
rproc_ptr[rp->r_proc_nr_e] = NULL; /* invalidate */ rproc_ptr[proc] = NULL; /* invalidate */
if ((rp->r_flags & RS_EXITING) || shutting_down) { if ((rp->r_flags & RS_EXITING) || shutting_down) {
rp->r_flags = 0; /* release slot */ rp->r_flags = 0; /* release slot */
rproc_ptr[rp->r_proc_nr_e] = NULL; rproc_ptr[proc] = NULL;
} }
else if(rp->r_flags & RS_REFRESHING) { else if(rp->r_flags & RS_REFRESHING) {
rp->r_restarts = -1; /* reset counter */ rp->r_restarts = -1; /* reset counter */