diff options
-rw-r--r-- | lib/bb/command.py | 2 | ||||
-rw-r--r-- | lib/bb/cooker.py | 17 |
2 files changed, 12 insertions, 7 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py index c44c7a6a5..a9232455c 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -78,6 +78,7 @@ class Command: if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'): return None, "Not able to execute not readonly commands in readonly mode" try: + self.cooker.process_inotify_updates() if getattr(command_method, 'needconfig', False): self.cooker.updateCacheSync() result = command_method(self, commandline) @@ -98,6 +99,7 @@ class Command: def runAsyncCommand(self): try: + self.cooker.process_inotify_updates() if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown): # updateCache will trigger a shutdown of the parser # and then raise BBHandledException triggering an exit diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index ea4df266f..77b7f3dde 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -205,15 +205,11 @@ class BBCooker: self.inotify_modified_files = [] - def _process_inotify_updates(server, notifier_list, abort): - for n in notifier_list: - if n.check_events(timeout=0): - # read notified events and enqeue them - n.read_events() - n.process_events() + def _process_inotify_updates(server, cooker, abort): + cooker.process_inotify_updates() return 1.0 - self.configuration.server_register_idlecallback(_process_inotify_updates, [self.confignotifier, self.notifier]) + self.configuration.server_register_idlecallback(_process_inotify_updates, self) # TOSTOP must not be set or our children will hang when they output try: @@ -241,6 +237,13 @@ class BBCooker: os.write(readypipe, b"ready") os.close(readypipe) + def process_inotify_updates(self): + for n in [self.confignotifier, self.notifier]: + if n.check_events(timeout=0): + # read notified events and enqeue them + n.read_events() + n.process_events() + def config_notifications(self, event): if event.maskname == "IN_Q_OVERFLOW": bb.warn("inotify event queue overflowed, invalidating caches.") |