From 0130b4c2691ddee3867df9de5a2852b2bcf1f617 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 23 May 2013 10:48:26 +0100 Subject: [PATCH] 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 --- bitbake/lib/bb/cooker.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index eed489f5d4..41f70ab95a 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -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]