summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-05-23 10:48:26 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-05-24 10:34:52 +0100
commit0130b4c2691ddee3867df9de5a2852b2bcf1f617 (patch)
treebfbefbcf873869752d132877104c656851895a86
parent8bef99d3c85f48ff409eaebb964b1c45b203bdcf (diff)
downloadpoky-0130b4c2691ddee3867df9de5a2852b2bcf1f617.tar.gz
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>
-rw-r--r--bitbake/lib/bb/cooker.py2
1 files changed, 2 insertions, 0 deletions
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):
1455 self.init = init 1455 self.init = init
1456 multiprocessing.Process.__init__(self) 1456 multiprocessing.Process.__init__(self)
1457 self.context = bb.utils._context.copy() 1457 self.context = bb.utils._context.copy()
1458 self.handlers = bb.event._handlers.copy()
1458 1459
1459 def run(self): 1460 def run(self):
1460 if self.init: 1461 if self.init:
@@ -1490,6 +1491,7 @@ class Parser(multiprocessing.Process):
1490 def parse(self, filename, appends, caches_array): 1491 def parse(self, filename, appends, caches_array):
1491 try: 1492 try:
1492 bb.utils._context = self.context.copy() 1493 bb.utils._context = self.context.copy()
1494 bb.event._handlers = self.handlers.copy()
1493 return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array) 1495 return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array)
1494 except Exception as exc: 1496 except Exception as exc:
1495 tb = sys.exc_info()[2] 1497 tb = sys.exc_info()[2]