diff options
Diffstat (limited to 'bitbake/lib/bb/command.py')
| -rw-r--r-- | bitbake/lib/bb/command.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 732327d84d..0706b89271 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py | |||
| @@ -60,7 +60,7 @@ class Command: | |||
| 60 | # FIXME Add lock for this | 60 | # FIXME Add lock for this |
| 61 | self.currentAsyncCommand = None | 61 | self.currentAsyncCommand = None |
| 62 | 62 | ||
| 63 | def runCommand(self, commandline, ro_only = False): | 63 | def runCommand(self, commandline, process_server, ro_only=False): |
| 64 | command = commandline.pop(0) | 64 | command = commandline.pop(0) |
| 65 | 65 | ||
| 66 | # Ensure cooker is ready for commands | 66 | # Ensure cooker is ready for commands |
| @@ -84,7 +84,7 @@ class Command: | |||
| 84 | if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'): | 84 | if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'): |
| 85 | return None, "Not able to execute not readonly commands in readonly mode" | 85 | return None, "Not able to execute not readonly commands in readonly mode" |
| 86 | try: | 86 | try: |
| 87 | self.cooker.process_inotify_updates() | 87 | self.cooker.process_inotify_updates_apply() |
| 88 | if getattr(command_method, 'needconfig', True): | 88 | if getattr(command_method, 'needconfig', True): |
| 89 | self.cooker.updateCacheSync() | 89 | self.cooker.updateCacheSync() |
| 90 | result = command_method(self, commandline) | 90 | result = command_method(self, commandline) |
| @@ -100,7 +100,10 @@ class Command: | |||
| 100 | else: | 100 | else: |
| 101 | return result, None | 101 | return result, None |
| 102 | if self.currentAsyncCommand is not None: | 102 | if self.currentAsyncCommand is not None: |
| 103 | return None, "Busy (%s in progress)" % self.currentAsyncCommand[0] | 103 | # Wait for the idle loop to have cleared (30s max) |
| 104 | process_server.wait_for_idle(timeout=30) | ||
| 105 | if self.currentAsyncCommand is not None: | ||
| 106 | return None, "Busy (%s in progress)" % self.currentAsyncCommand[0] | ||
| 104 | if command not in CommandsAsync.__dict__: | 107 | if command not in CommandsAsync.__dict__: |
| 105 | return None, "No such command" | 108 | return None, "No such command" |
| 106 | self.currentAsyncCommand = (command, commandline) | 109 | self.currentAsyncCommand = (command, commandline) |
| @@ -109,7 +112,7 @@ class Command: | |||
| 109 | 112 | ||
| 110 | def runAsyncCommand(self): | 113 | def runAsyncCommand(self): |
| 111 | try: | 114 | try: |
| 112 | self.cooker.process_inotify_updates() | 115 | self.cooker.process_inotify_updates_apply() |
| 113 | if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown): | 116 | if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown): |
| 114 | # updateCache will trigger a shutdown of the parser | 117 | # updateCache will trigger a shutdown of the parser |
| 115 | # and then raise BBHandledException triggering an exit | 118 | # and then raise BBHandledException triggering an exit |
