diff options
| -rwxr-xr-x | bitbake/bin/bitbake-worker | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker index 9334f11fb8..40da7a0c2b 100755 --- a/bitbake/bin/bitbake-worker +++ b/bitbake/bin/bitbake-worker | |||
| @@ -118,7 +118,9 @@ def worker_child_fire(event, d): | |||
| 118 | data = b"<event>" + pickle.dumps(event) + b"</event>" | 118 | data = b"<event>" + pickle.dumps(event) + b"</event>" |
| 119 | try: | 119 | try: |
| 120 | worker_pipe_lock.acquire() | 120 | worker_pipe_lock.acquire() |
| 121 | worker_pipe.write(data) | 121 | while(len(data)): |
| 122 | written = worker_pipe.write(data) | ||
| 123 | data = data[written:] | ||
| 122 | worker_pipe_lock.release() | 124 | worker_pipe_lock.release() |
| 123 | except IOError: | 125 | except IOError: |
| 124 | sigterm_handler(None, None) | 126 | sigterm_handler(None, None) |
| @@ -321,7 +323,9 @@ class runQueueWorkerPipe(): | |||
| 321 | end = len(self.queue) | 323 | end = len(self.queue) |
| 322 | index = self.queue.find(b"</event>") | 324 | index = self.queue.find(b"</event>") |
| 323 | while index != -1: | 325 | while index != -1: |
| 324 | worker_fire_prepickled(self.queue[:index+8]) | 326 | msg = self.queue[:index+8] |
| 327 | assert msg.startswith(b"<event>") and msg.count(b"<event>") == 1 | ||
| 328 | worker_fire_prepickled(msg) | ||
| 325 | self.queue = self.queue[index+8:] | 329 | self.queue = self.queue[index+8:] |
| 326 | index = self.queue.find(b"</event>") | 330 | index = self.queue.find(b"</event>") |
| 327 | return (end > start) | 331 | return (end > start) |
