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): data = b"" + pickle.dumps(event) + b"" try: worker_pipe_lock.acquire() - worker_pipe.write(data) + while(len(data)): + written = worker_pipe.write(data) + data = data[written:] worker_pipe_lock.release() except IOError: sigterm_handler(None, None) @@ -321,7 +323,9 @@ class runQueueWorkerPipe(): end = len(self.queue) index = self.queue.find(b"") while index != -1: - worker_fire_prepickled(self.queue[:index+8]) + msg = self.queue[:index+8] + assert msg.startswith(b"") and msg.count(b"") == 1 + worker_fire_prepickled(msg) self.queue = self.queue[index+8:] index = self.queue.find(b"") return (end > start)