summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-03-11 22:27:46 +0100
committerTom Gundersen <teg@jklm.no>2015-03-12 12:03:50 +0100
commit090b6bc5205b924df4be3239b2f7d9c097fbb705 (patch)
tree2ca59c1e6f76fff25b6be5144d10252612ef6c3c /src
parent8f0f13f04555d3bc67511d2e334c667cef7e8971 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/udev/udevd.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index c01fb4bb9..9426edca2 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -1414,12 +1414,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;