summaryrefslogtreecommitdiff
path: root/udevstart.c
diff options
context:
space:
mode:
authorchris_friesen@sympatico.ca <chris_friesen@sympatico.ca>2004-03-31 23:03:07 -0800
committerGreg KH <gregkh@suse.de>2005-04-26 21:35:13 -0700
commitf27125f98f6487e881a957726da895aebd799f0d (patch)
tree7c4c9ed2f78dc37a338964b17940466b04d1fea3 /udevstart.c
parent7b9b18392182e5cfa5d731288e8592549bdf67df (diff)
[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"
Diffstat (limited to 'udevstart.c')
-rw-r--r--udevstart.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/udevstart.c b/udevstart.c
index 40dbaf2475..eda6355b53 100644
--- a/udevstart.c
+++ b/udevstart.c
@@ -29,6 +29,8 @@
#include <ctype.h>
#include <dirent.h>
#include <sys/wait.h>
+#include <sys/types.h>
+#include <unistd.h>
#include "logging.h"