summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/event.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/event.py')
-rw-r--r--bitbake/lib/bb/event.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index f3efae9bdf..fb355089a3 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -26,6 +26,7 @@ import os, sys
26import warnings 26import warnings
27import pickle 27import pickle
28import logging 28import logging
29import atexit
29import bb.utils 30import bb.utils
30 31
31# This is the pid for which we should generate the event. This is set when 32# This is the pid for which we should generate the event. This is set when
@@ -74,7 +75,27 @@ def fire_class_handlers(event, d):
74 h(event) 75 h(event)
75 del event.data 76 del event.data
76 77
78ui_queue = []
79@atexit.register
80def print_ui_queue():
81 """If we're exiting before a UI has been spawned, display any queued
82 LogRecords to the console."""
83 logger = logging.getLogger("BitBake")
84 if not _ui_handlers:
85 console = logging.StreamHandler(sys.stdout)
86 console.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
87 logger.handlers = [console]
88 while ui_queue:
89 event, d = ui_queue.pop()
90 if isinstance(event, logging.LogRecord):
91 logger.handle(event)
92
77def fire_ui_handlers(event, d): 93def fire_ui_handlers(event, d):
94 if not _ui_handlers:
95 # No UI handlers registered yet, queue up the messages
96 ui_queue.append((event, d))
97 return
98
78 errors = [] 99 errors = []
79 for h in _ui_handlers: 100 for h in _ui_handlers:
80 #print "Sending event %s" % event 101 #print "Sending event %s" % event