From 06c6db7929c75f576a395fb442abe447b833fc3b Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 28 Jan 2011 10:21:41 +0000 Subject: [PATCH] bitbake/runqueue.py: Avoid starvation of events to the server The server UI was reading 1024 bytes, then sleeping for 0.25 seconds. Since most new LogRecord events are larger than this it leads to a build up of data which is only processed slowly, leading to a bottleneck and a slow down of all bitbake processes. Thanks to Dongxiao Xu for the great work in debugging this. A large value has been left in for the read() command just to ensure some fairness amongst process handling if a task tries to log truly huge amounts of data to the server, or goes crazy and ensures the main loop doesn't stall. Signed-off-by: Richard Purdie --- bitbake/lib/bb/runqueue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index b9d89ec082..a3f444c2ab 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1637,7 +1637,7 @@ class runQueuePipe(): def read(self): start = len(self.queue) try: - self.queue = self.queue + self.input.read(1024) + self.queue = self.queue + self.input.read(102400) except (OSError, IOError): pass end = len(self.queue)