bitbake: cooker/cookerdata/event: Improve class handlers management
Similarly to the execution context changes, establish better lifetime management API of the class event handlers. (Bitbake rev: 54e35a6cceead9521f8b1dacd48e55064e85c8bd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
ea34691791
commit
507d5cc2cc
|
@ -1455,7 +1455,7 @@ class Parser(multiprocessing.Process):
|
|||
self.init = init
|
||||
multiprocessing.Process.__init__(self)
|
||||
self.context = bb.utils.get_context().copy()
|
||||
self.handlers = bb.event._handlers.copy()
|
||||
self.handlers = bb.event.get_class_handlers().copy()
|
||||
|
||||
def run(self):
|
||||
if self.init:
|
||||
|
@ -1492,7 +1492,7 @@ class Parser(multiprocessing.Process):
|
|||
try:
|
||||
# Reset our environment and handlers to the original settings
|
||||
bb.utils.set_context(self.context.copy())
|
||||
bb.event._handlers = self.handlers.copy()
|
||||
bb.event.set_class_handlers(self.handlers.copy())
|
||||
return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array)
|
||||
except Exception as exc:
|
||||
tb = sys.exc_info()[2]
|
||||
|
|
|
@ -174,6 +174,7 @@ class CookerDataBuilder(object):
|
|||
self.tracking = params.tracking
|
||||
|
||||
bb.utils.set_context(bb.utils.clean_context())
|
||||
bb.event.set_class_handlers(bb.event.clean_class_handlers())
|
||||
self.data = bb.data.init()
|
||||
if self.tracking:
|
||||
self.data.enableTracking()
|
||||
|
|
|
@ -50,8 +50,17 @@ class Event(object):
|
|||
Registered = 10
|
||||
AlreadyRegistered = 14
|
||||
|
||||
def get_class_handlers():
|
||||
return _handlers
|
||||
|
||||
def set_class_handlers(h):
|
||||
_handlers = h
|
||||
|
||||
def clean_class_handlers():
|
||||
return bb.compat.OrderedDict()
|
||||
|
||||
# Internal
|
||||
_handlers = bb.compat.OrderedDict()
|
||||
_handlers = clean_class_handlers()
|
||||
_ui_handlers = {}
|
||||
_ui_handler_seq = 0
|
||||
|
||||
|
|
Loading…
Reference in New Issue