+ retcode = select ( fd_max + 1, &rfds, NULL, &efds, timeout );
+
+ if ( retcode < 0 ) {
+ pnd_log ( pndn_error, "ERROR: notify: select failed: %d\n", errno );
+ if ( errno == EINTR )
+ retcode = 0;
+
+ break;
+ }
+ idle = ( retcode == 0 );
+
+ if ( dbh && FD_ISSET ( fd_dbus, &efds ) ) {
+ pnd_log ( pndn_error, "ERROR: notify: dbus fd error\n" );
+ pnd_dbusnotify_shutdown ( dbh );
+ dbh = NULL;
+ }
+
+ if ( nh && FD_ISSET ( fd_inotify, &efds ) ) {
+ pnd_log ( pndn_error, "ERROR: notify: inotify fd error\n" );
+ pnd_notify_shutdown ( nh );
+ nh = NULL;
+ }
+
+ if ( dbh && FD_ISSET ( fd_dbus, &rfds ) ) {
+ watch_dbus |= pnd_dbusnotify_rediscover_p ( dbh );
+ if ( watch_dbus && nh ) {
+ // will restart inotify (see below), drop all events
+ pnd_notify_shutdown ( nh );
+ nh = NULL;
+ }
+ }
+
+ if ( nh && FD_ISSET ( fd_inotify, &rfds ) ) {
+ watch_inotify |= pnd_notify_rediscover_p ( nh );
+ }