890b447785
This commit adds directory monitor for the Installed Packages Repository in order to catch, through dnofity, repository change events and signal repositories_updated() once locks are released. Given the current Python limitations in supporting dnotify without getting dirt, DirectoryMonitor dispatches SIGIO to the callback for both installed repository directory change and RigoDaemon executable. It is up to the code determine what effectively changed. Moreover, enabling DN_MULTISHOT causes the signal handler to be kept alive until the dnotified file descriptors are explicitly closed (DirectoryMonitor.close()). This is of course sub-optimal because we get called more than needed, but still much better than polling.