/* coalescing: drop this event if it is a dupe of the previous */
        last = inotify_dev_get_event(dev);

        if (last && last->event.mask == mask && last->event.wd == wd &&

                        last->event.cookie == cookie) {
                const char *lastname = last->name;

                if (!name && !lastname)
                        goto out;

                if (name && lastname && !strcmp(lastname, name))

                        goto out;
        }
Inotify combines events that apply to the same inode and that are received concurrently. So if your program assumes the timestamp of an event to be included in its definition, then chances are that it'll fail every now and then.