summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/command.py2
-rw-r--r--bitbake/lib/bb/cooker.py17
2 files changed, 12 insertions, 7 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
index c44c7a6a5e..a9232455cc 100644
--- a/bitbake/lib/bb/command.py
+++ b/bitbake/lib/bb/command.py
@@ -78,6 +78,7 @@ class Command:
78 if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'): 78 if not hasattr(command_method, 'readonly') or False == getattr(command_method, 'readonly'):
79 return None, "Not able to execute not readonly commands in readonly mode" 79 return None, "Not able to execute not readonly commands in readonly mode"
80 try: 80 try:
81 self.cooker.process_inotify_updates()
81 if getattr(command_method, 'needconfig', False): 82 if getattr(command_method, 'needconfig', False):
82 self.cooker.updateCacheSync() 83 self.cooker.updateCacheSync()
83 result = command_method(self, commandline) 84 result = command_method(self, commandline)
@@ -98,6 +99,7 @@ class Command:
98 99
99 def runAsyncCommand(self): 100 def runAsyncCommand(self):
100 try: 101 try:
102 self.cooker.process_inotify_updates()
101 if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown): 103 if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
102 # updateCache will trigger a shutdown of the parser 104 # updateCache will trigger a shutdown of the parser
103 # and then raise BBHandledException triggering an exit 105 # and then raise BBHandledException triggering an exit
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index ea4df266f5..77b7f3dde1 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -205,15 +205,11 @@ class BBCooker:
205 205
206 self.inotify_modified_files = [] 206 self.inotify_modified_files = []
207 207
208 def _process_inotify_updates(server, notifier_list, abort): 208 def _process_inotify_updates(server, cooker, abort):
209 for n in notifier_list: 209 cooker.process_inotify_updates()
210 if n.check_events(timeout=0):
211 # read notified events and enqeue them
212 n.read_events()
213 n.process_events()
214 return 1.0 210 return 1.0
215 211
216 self.configuration.server_register_idlecallback(_process_inotify_updates, [self.confignotifier, self.notifier]) 212 self.configuration.server_register_idlecallback(_process_inotify_updates, self)
217 213
218 # TOSTOP must not be set or our children will hang when they output 214 # TOSTOP must not be set or our children will hang when they output
219 try: 215 try:
@@ -241,6 +237,13 @@ class BBCooker:
241 os.write(readypipe, b"ready") 237 os.write(readypipe, b"ready")
242 os.close(readypipe) 238 os.close(readypipe)
243 239
240 def process_inotify_updates(self):
241 for n in [self.confignotifier, self.notifier]:
242 if n.check_events(timeout=0):
243 # read notified events and enqeue them
244 n.read_events()
245 n.process_events()
246
244 def config_notifications(self, event): 247 def config_notifications(self, event):
245 if event.maskname == "IN_Q_OVERFLOW": 248 if event.maskname == "IN_Q_OVERFLOW":
246 bb.warn("inotify event queue overflowed, invalidating caches.") 249 bb.warn("inotify event queue overflowed, invalidating caches.")