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.py13
1 files changed, 3 insertions, 10 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 2826e3554f..d73067fcf9 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -33,11 +33,12 @@ import atexit
33import traceback 33import traceback
34import bb.utils 34import bb.utils
35import bb.compat 35import bb.compat
36import bb.exceptions
36 37
37# This is the pid for which we should generate the event. This is set when 38# This is the pid for which we should generate the event. This is set when
38# the runqueue forks off. 39# the runqueue forks off.
39worker_pid = 0 40worker_pid = 0
40worker_pipe = None 41worker_fire = None
41 42
42logger = logging.getLogger('BitBake.Event') 43logger = logging.getLogger('BitBake.Event')
43 44
@@ -150,20 +151,12 @@ def fire(event, d):
150 # don't have a datastore so the datastore context isn't a problem. 151 # don't have a datastore so the datastore context isn't a problem.
151 152
152 fire_class_handlers(event, d) 153 fire_class_handlers(event, d)
153 if worker_pid != 0: 154 if worker_fire:
154 worker_fire(event, d) 155 worker_fire(event, d)
155 else: 156 else:
156 fire_ui_handlers(event, d) 157 fire_ui_handlers(event, d)
157 158
158def worker_fire(event, d):
159 data = "<event>" + pickle.dumps(event) + "</event>"
160 worker_pipe.write(data)
161
162def fire_from_worker(event, d): 159def fire_from_worker(event, d):
163 if not event.startswith("<event>") or not event.endswith("</event>"):
164 print("Error, not an event %s" % event)
165 return
166 event = pickle.loads(event[7:-8])
167 fire_ui_handlers(event, d) 160 fire_ui_handlers(event, d)
168 161
169noop = lambda _: None 162noop = lambda _: None