summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/cooker.py4
-rw-r--r--bitbake/lib/bb/cookerdata.py1
-rw-r--r--bitbake/lib/bb/event.py11
3 files changed, 13 insertions, 3 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index e8686475b9..4c0b569439 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -1455,7 +1455,7 @@ class Parser(multiprocessing.Process):
1455 self.init = init 1455 self.init = init
1456 multiprocessing.Process.__init__(self) 1456 multiprocessing.Process.__init__(self)
1457 self.context = bb.utils.get_context().copy() 1457 self.context = bb.utils.get_context().copy()
1458 self.handlers = bb.event._handlers.copy() 1458 self.handlers = bb.event.get_class_handlers().copy()
1459 1459
1460 def run(self): 1460 def run(self):
1461 if self.init: 1461 if self.init:
@@ -1492,7 +1492,7 @@ class Parser(multiprocessing.Process):
1492 try: 1492 try:
1493 # Reset our environment and handlers to the original settings 1493 # Reset our environment and handlers to the original settings
1494 bb.utils.set_context(self.context.copy()) 1494 bb.utils.set_context(self.context.copy())
1495 bb.event._handlers = self.handlers.copy() 1495 bb.event.set_class_handlers(self.handlers.copy())
1496 return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array) 1496 return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array)
1497 except Exception as exc: 1497 except Exception as exc:
1498 tb = sys.exc_info()[2] 1498 tb = sys.exc_info()[2]
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index de4331050d..2247f8d3bd 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -174,6 +174,7 @@ class CookerDataBuilder(object):
174 self.tracking = params.tracking 174 self.tracking = params.tracking
175 175
176 bb.utils.set_context(bb.utils.clean_context()) 176 bb.utils.set_context(bb.utils.clean_context())
177 bb.event.set_class_handlers(bb.event.clean_class_handlers())
177 self.data = bb.data.init() 178 self.data = bb.data.init()
178 if self.tracking: 179 if self.tracking:
179 self.data.enableTracking() 180 self.data.enableTracking()
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 11c063fcc8..2826e3554f 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -50,8 +50,17 @@ class Event(object):
50Registered = 10 50Registered = 10
51AlreadyRegistered = 14 51AlreadyRegistered = 14
52 52
53def get_class_handlers():
54 return _handlers
55
56def set_class_handlers(h):
57 _handlers = h
58
59def clean_class_handlers():
60 return bb.compat.OrderedDict()
61
53# Internal 62# Internal
54_handlers = bb.compat.OrderedDict() 63_handlers = clean_class_handlers()
55_ui_handlers = {} 64_ui_handlers = {}
56_ui_handler_seq = 0 65_ui_handler_seq = 0
57 66