From 485e2ce45fa62b39e597b7164164c8666b0f602f Mon Sep 17 00:00:00 2001 From: Chengwei Yang Date: Tue, 20 Aug 2013 14:15:51 +0800 Subject: [PATCH 02/10] Cleanup: polish inotify backend At previous, it will do get pid and print a verbose string per inotify event, and then do send signal to the daemon. This patch changes the behavior to get pid and print a verbose string one time. --- bus/dir-watch-inotify.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c index d684831..0558ec8 100644 --- a/bus/dir-watch-inotify.c +++ b/bus/dir-watch-inotify.c @@ -60,31 +60,31 @@ _handle_inotify_watch (DBusWatch *passed_watch, unsigned int flags, void *data) ssize_t ret = 0; int i = 0; pid_t pid; - dbus_bool_t have_change = FALSE; + pid = _dbus_getpid (); ret = read (inotify_fd, buffer, INOTIFY_BUF_LEN); if (ret < 0) _dbus_verbose ("Error reading inotify event: '%s'\n", _dbus_strerror(errno)); else if (!ret) _dbus_verbose ("Error reading inotify event: buffer too small\n"); + else + { + _dbus_verbose ("Sending SIGHUP signal on reception of %d inotify event(s)\n", (int)ret); + (void) kill (pid, SIGHUP); + } +#ifdef DBUS_ENABLE_VERBOSE_MODE while (i < ret) { struct inotify_event *ev; - pid = _dbus_getpid (); ev = (struct inotify_event *) &buffer[i]; i += INOTIFY_EVENT_SIZE + ev->len; -#ifdef DBUS_ENABLE_VERBOSE_MODE if (ev->len) _dbus_verbose ("event name: '%s'\n", ev->name); _dbus_verbose ("inotify event: wd=%d mask=%u cookie=%u len=%u\n", ev->wd, ev->mask, ev->cookie, ev->len); -#endif - _dbus_verbose ("Sending SIGHUP signal on reception of a inotify event\n"); - have_change = TRUE; } - if (have_change) - (void) kill (pid, SIGHUP); +#endif return TRUE; } -- 1.7.9.5