diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-01-28 10:21:41 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-01-28 10:21:41 +0000 |
commit | 06c6db7929c75f576a395fb442abe447b833fc3b (patch) | |
tree | c62b8db28f74cc9cce6e84a7a70bab1be4fa986f | |
parent | 754047b6ec01df5f3159cce93b17b8493d0af5e1 (diff) | |
download | openembedded-core-06c6db7929c75f576a395fb442abe447b833fc3b.tar.gz openembedded-core-06c6db7929c75f576a395fb442abe447b833fc3b.tar.bz2 openembedded-core-06c6db7929c75f576a395fb442abe447b833fc3b.zip |
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 <dongxiao.xu@intel.com> 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 <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 2 |
1 files changed, 1 insertions, 1 deletions
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) |