aboutsummaryrefslogtreecommitdiff
path: root/miscutils/inotifyd.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-11-29 09:07:24 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-11-29 09:07:24 +0000
commitd723fb155d3db4152a4781dff550cd0f0ce290b5 (patch)
tree69f903e904b664a1f6cc79208a7ad2b77b47f657 /miscutils/inotifyd.c
parentd16950ded91446a23a6ceef35fb3e100400301d9 (diff)
downloadbusybox-d723fb155d3db4152a4781dff550cd0f0ce290b5.tar.gz
inotifyd: save resourses by closing unused inotify descriptors
Diffstat (limited to 'miscutils/inotifyd.c')
-rw-r--r--miscutils/inotifyd.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/miscutils/inotifyd.c b/miscutils/inotifyd.c
index fdf2a2c2b..d6b5d246b 100644
--- a/miscutils/inotifyd.c
+++ b/miscutils/inotifyd.c
@@ -53,9 +53,6 @@ enum {
MASK_BITS = sizeof(mask_names) - 1
};
-extern int inotify_init(void);
-extern int inotify_add_watch(int fd, const char *path, uint32_t mask);
-
int inotifyd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int inotifyd_main(int argc, char **argv)
{
@@ -160,9 +157,11 @@ int inotifyd_main(int argc, char **argv)
args[3] = ie->len ? ie->name : NULL;
wait4pid(xspawn((char **)args));
// we are done if all files got final x event
- if (ie->mask & 0x8000)
+ if (ie->mask & 0x8000) {
if (--argc <= 0)
goto done;
+ inotify_rm_watch(pfd.fd, ie->wd);
+ }
}
// next event
i = sizeof(struct inotify_event) + ie->len;