From: Chengwei Yang Date: Fri, 23 Aug 2013 08:52:38 +0000 (+0800) Subject: Cleanup: polish inotify backend X-Git-Tag: dbus-1.8.2~190 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=77819311093eb7a7d9a0faa1d54d01db1e72df42;p=platform%2Fupstream%2Fdbus.git 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. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68303 Reviewed-by: Simon McVittie --- diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c index d684831..862c386 100644 --- a/bus/dir-watch-inotify.c +++ b/bus/dir-watch-inotify.c @@ -59,32 +59,30 @@ _handle_inotify_watch (DBusWatch *passed_watch, unsigned int flags, void *data) char buffer[INOTIFY_BUF_LEN]; ssize_t ret = 0; int i = 0; - pid_t pid; - dbus_bool_t have_change = FALSE; 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 %ld inotify event(s)\n", (long) ret); + (void) kill (_dbus_getpid(), 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; }