diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-09 12:54:34 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-09 23:43:30 +0100 |
commit | bf76cd7e5881adf264b8ba64e27a5b6ca9df4fde (patch) | |
tree | 56ec0d6488b06789ee3f68eb152a522b58d49901 /lib/bb/command.py | |
parent | 4d508d35a224e3a25d2d59c8415ab7985964b14f (diff) | |
download | bitbake-bf76cd7e5881adf264b8ba64e27a5b6ca9df4fde.tar.gz |
cooker: Ensure we handle inotify before running the next command
The inotify watch events are handled "at idle" which could in theory mean
a command could run before any preceeding inotify events have been processed.
This leads to a theoretical race window where those events may have a
signficicant effect on the command.
Add a mechanism to allow us to ensure all pending events are processed before
running commands.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/command.py')
-rw-r--r-- | lib/bb/command.py | 2 |
1 files changed, 2 insertions, 0 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 |