diff options
author | Eric Lammerts | 2010-12-06 01:26:26 +0100 |
---|---|---|
committer | Denys Vlasenko | 2010-12-06 01:26:26 +0100 |
commit | 31905f94777ae6e7181e9fbcc0cc7c4cf70abfaf (patch) | |
tree | 0d54c18cbd2b34e554a3e959bd153e689cfc74ff /runit/runsvdir.c | |
parent | c60e88a5b9d750993f8e25a322ad7f6f09db8bda (diff) | |
download | busybox-31905f94777ae6e7181e9fbcc0cc7c4cf70abfaf.zip busybox-31905f94777ae6e7181e9fbcc0cc7c4cf70abfaf.tar.gz |
runsvdir: do not miss closely spaced service dir changes
Signed-off-by: Eric Lammerts <busybox@lists.lammerts.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'runit/runsvdir.c')
-rw-r--r-- | runit/runsvdir.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/runit/runsvdir.c b/runit/runsvdir.c index e77eeff..1666642 100644 --- a/runit/runsvdir.c +++ b/runit/runsvdir.c @@ -312,8 +312,11 @@ int runsvdir_main(int argc UNUSED_PARAM, char **argv) 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", ""); |