X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bus%2Fdir-watch-inotify.c;h=49ebc721b0b904a8183a505b368de7049bca90cf;hb=7d9239c9c78cb6d0b9c282376fcf3cda1de23209;hp=2e9be98871278da7ce815312fe426ef703692b9a;hpb=2460ddfdb2c1980226593e1af42117b38d5be7dc;p=platform%2Fupstream%2Fdbus.git diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c index 2e9be98..49ebc72 100644 --- a/bus/dir-watch-inotify.c +++ b/bus/dir-watch-inotify.c @@ -22,11 +22,15 @@ * */ +/* Be careful, this file is not Linux-only: QNX also uses it */ + #include #include #include #include +/* QNX's inotify is broken, and requires stdint.h to be manually included first */ +#include #include #include #include @@ -55,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; }