+
+oplist_delete(oplp, op)
+ LIST_OF_OPERATIONS oplp;
+ register OPERATION op;
+{
+ register OPERATION *s;
+ register int c;
+
+ for (s = oplp->op, c=oplp->count; c; --c, ++s) {
+ if (*s == op) {
+ while (c > 0) {
+ *s = *(s+1);
+ ++s;
+ --c;
+ }
+ oplp->count--;
+ return;
+ }
+ }
+ abort();
+}
+
+
+void reapchild()
+{
+ union wait status;
+ int pid;
+
+ if (takedown)
+ return;
+ while ((pid = wait3(&status, WNOHANG, (struct rusage *)0)) > 0) {
+ if (status.w_termsig == 0 && status.w_retcode == 0)
+ com_err(whoami, 0, "dcm started successfully");
+ else
+ com_err(whoami, 0, "%d: startdcm exits with signal %d status %d",
+ pid, status.w_termsig, status.w_retcode);
+ }
+}