bitbake: cooker.py: Remove global scope class event handlers
Its confusing when an event handler in for example a bbclass receives events for a recipe which doesn't use the class. This is due to the class event handlers having confusing scope. Worse, the issue is not deterministic and the events a handler will see depends on the parse order. To avoid these issues, remove the class event handler global scope and only have class handlers recieve events for recipes using the class. (Bitbake rev: 7fb95f3d133e440d463d2faa7151c731f8e1ae96) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8bef99d3c8
commit
0130b4c269
|
@ -1455,6 +1455,7 @@ class Parser(multiprocessing.Process):
|
|||
self.init = init
|
||||
multiprocessing.Process.__init__(self)
|
||||
self.context = bb.utils._context.copy()
|
||||
self.handlers = bb.event._handlers.copy()
|
||||
|
||||
def run(self):
|
||||
if self.init:
|
||||
|
@ -1490,6 +1491,7 @@ class Parser(multiprocessing.Process):
|
|||
def parse(self, filename, appends, caches_array):
|
||||
try:
|
||||
bb.utils._context = self.context.copy()
|
||||
bb.event._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]
|
||||
|
|
Loading…
Reference in New Issue