- /* finally terminate the deadlock manager */
- if(db_deadlock_pid != -1 && kill(db_deadlock_pid, SIGTERM) < 0)
- fatal(errno, "error killing deadlock manager");
- db_deadlock_pid = -1;
+ if(db_deadlock_pid != -1) {
+ /* shut down the deadlock manager */
+ if(kill(db_deadlock_pid, SIGTERM) < 0)
+ fatal(errno, "error killing deadlock manager");
+ while(waitpid(db_deadlock_pid, &err, 0) == -1 && errno == EINTR)
+ ;
+ if(ev)
+ ev_child_cancel(ev, db_deadlock_pid);
+ db_deadlock_pid = -1;
+ }