+static void msg_queue_insert(struct uevent_msg *msg)
+{
+ msg->queue_time = time(NULL);
+
+ /* run all events with a timeout set immediately */
+ if (msg->timeout != 0) {
+ list_add_tail(&msg->node, &running_list);
+ udev_event_run(msg);
+ return;
+ }
+
+ list_add_tail(&msg->node, &exec_list);
+ run_exec_q = 1;
+}
+
+/* runs event and removes event from run queue when finished */