From f27125f98f6487e881a957726da895aebd799f0d Mon Sep 17 00:00:00 2001 From: "chris_friesen@sympatico.ca" Date: Wed, 31 Mar 2004 23:03:07 -0800 Subject: [PATCH] udevd race conditions and performance, assorted cleanups This patch covers a number of areas: 1) sysfs.h is fixed up to use the common dbg() macro. This fixes the case where DEBUG is defined but USE_LOG isn't. 2) udevstart.c is modified to include the proper headers, rather than getting them indirectly which can break depending on Makefile flags 3) udevd.c gets some major changes: a) I added a pipe from the signal handler. This fixes the race conditions that I mentioned earlier. Basically, the point of the pipe is to force the select() call to return immediately if a signal handler fired before we actually started the select() call. This then lets us run the appropriate code based on flags set in the signal handler proper. b) I added a number of flags to coalesce calls to common routines. This should make things slightly more efficient. c) since most calls will tend to come in with a sequence number larger than what has been received, I switched msg_queue_insert() to scan the msg_list backwards to improve performance. filename="udevd.diff" --- udevstart.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'udevstart.c') diff --git a/udevstart.c b/udevstart.c index 40dbaf2475..eda6355b53 100644 --- a/udevstart.c +++ b/udevstart.c @@ -29,6 +29,8 @@ #include #include #include +#include +#include #include "logging.h" -- cgit v1.2.3-54-g00ecf