udevd: don't free event when killing the worker, wait until it has been reaped

This will allow us to clean up the device when we are notified about the worker being killed.

Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
Tom Gundersen 2015-03-11 22:27:46 +01:00 committed by Anthony G. Basile
parent 5ddef03da1
commit f5d1fa66a1

View File

@ -1363,12 +1363,8 @@ int main(int argc, char *argv[]) {
kill(worker->pid, SIGKILL);
worker->state = WORKER_KILLED;
/* drop reference taken for state 'running' */
worker_unref(worker);
log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath);
worker->event->exitcode = -64;
event_queue_delete(worker->event);
worker->event = NULL;
} else if (!worker->event_warned) {
log_warning("worker ["PID_FMT"] %s is taking a long time", worker->pid, worker->event->devpath);
worker->event_warned = true;