diff -urpN busybox-1.18.0/runit/runsvdir.c busybox-1.18.0-runsvdir/runit/runsvdir.c --- busybox-1.18.0/runit/runsvdir.c 2010-11-22 21:43:22.000000000 +0100 +++ busybox-1.18.0-runsvdir/runit/runsvdir.c 2010-12-06 01:27:56.926036992 +0100 @@ -312,8 +312,11 @@ int runsvdir_main(int argc UNUSED_PARAM, last_mtime = s.st_mtime; last_dev = s.st_dev; last_ino = s.st_ino; - //if (now <= mtime) - // sleep(1); + /* if the svdir changed this very second, wait until the + * next second, because we won't be able to detect more + * changes within this second */ + while (time(NULL) == last_mtime) + usleep(100000); need_rescan = do_rescan(); while (fchdir(curdir) == -1) { warn2_cannot("change directory, pausing", "");