Hi,

The ev_stat inotify backend can miss files events while the ev_stat
notification callback execute. If additional changes occurs before the
main libev loop resume, the events will be lost.

This is due to the following stat_timer_cb() code:

      #if EV_USE_INOTIFY
        if (fs_fd >= 0)
          {
            infy_del (EV_A_ w);
            infy_add (EV_A_ w);
            ev_stat_stat (EV_A_ w); /* avoid race... */
          }
      #endif

Removing the call to ev_stat_stat() fixes the problem. 


Additionally, could you detail why it is necessary to call infy_del() /
infy_add() on the notified descriptor ?


Regards,

-- 
Yoann Vandoorselaere | Directeur Technique/CTO | PreludeIDS Technologies
Tel: +33 (0)1 40 24 65 10                      Fax: +33 (0)1 40 24 65 28
http://www.prelude-ids.com


_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev

Reply via email to