From 71f3be54cc12a1c9e53cbfdca4d66f54cbcf7930 Mon Sep 17 00:00:00 2001 From: imp Date: Fri, 25 Apr 2003 02:13:42 +0000 Subject: Change default to be 'process all events before calling daemon.' Also, put a small work around into devd to prevent a hang on boot this would cause because select used to return 2 rather than 0 for no evetnts due to a bug I fixed a few days ago in subr_bus.c. I'll remove this workaround May 7th. You have until then to upgrade your kernel if you want to run a new devd with an older kernel. --- sbin/devd/devd.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sbin/devd') diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc index d8bb436..c962f2f 100644 --- a/sbin/devd/devd.cc +++ b/sbin/devd/devd.cc @@ -72,7 +72,7 @@ static const char detach = '-'; int Dflag; int dflag; -int nflag = 1; +int nflag; int romeo_must_die = 0; static void event_loop(void); @@ -696,7 +696,9 @@ event_loop(void) FD_SET(fd, &fds); rv = select(fd + 1, &fds, &fds, &fds, &tv); // No events -> we've processed all pending events - if (rv == 0) { + // == 2 is a kernel bug, but we hang if we don't + // make allowances for a while. + if (rv == 0 || rv == 2) { if (Dflag) fprintf(stderr, "Calling daemon\n"); daemon(0, 0); -- cgit v1.1