summaryrefslogtreecommitdiffstats
path: root/sbin/devd/devd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/devd/devd.cc')
-rw-r--r--sbin/devd/devd.cc6
1 files changed, 4 insertions, 2 deletions
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);
OpenPOWER on IntegriCloud