summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/event.py7
-rw-r--r--bitbake/lib/bb/parse/ast.py4
2 files changed, 10 insertions, 1 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index 6fb37128ea..9b4a4f97b5 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -227,6 +227,13 @@ def remove(name, handler):
227 """Remove an Event handler""" 227 """Remove an Event handler"""
228 _handlers.pop(name) 228 _handlers.pop(name)
229 229
230def get_handlers():
231 return _handlers
232
233def set_handlers(handlers):
234 global _handlers
235 _handlers = handlers
236
230def set_eventfilter(func): 237def set_eventfilter(func):
231 global _eventfilter 238 global _eventfilter
232 _eventfilter = func 239 _eventfilter = func
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py
index 548929f63d..8b9baa764c 100644
--- a/bitbake/lib/bb/parse/ast.py
+++ b/bitbake/lib/bb/parse/ast.py
@@ -306,7 +306,8 @@ def handleInherit(statements, filename, lineno, m):
306 statements.append(InheritNode(filename, lineno, classes)) 306 statements.append(InheritNode(filename, lineno, classes))
307 307
308def finalize(fn, d, variant = None): 308def finalize(fn, d, variant = None):
309 all_handlers = {} 309 saved_handlers = bb.event.get_handlers().copy()
310
310 for var in d.getVar('__BBHANDLERS', False) or []: 311 for var in d.getVar('__BBHANDLERS', False) or []:
311 # try to add the handler 312 # try to add the handler
312 handlerfn = d.getVarFlag(var, "filename", False) 313 handlerfn = d.getVarFlag(var, "filename", False)
@@ -331,6 +332,7 @@ def finalize(fn, d, variant = None):
331 d.setVar('BBINCLUDED', bb.parse.get_file_depends(d)) 332 d.setVar('BBINCLUDED', bb.parse.get_file_depends(d))
332 333
333 bb.event.fire(bb.event.RecipeParsed(fn), d) 334 bb.event.fire(bb.event.RecipeParsed(fn), d)
335 bb.event.set_handlers(saved_handlers)
334 336
335def _create_variants(datastores, names, function, onlyfinalise): 337def _create_variants(datastores, names, function, onlyfinalise):
336 def create_variant(name, orig_d, arg = None): 338 def create_variant(name, orig_d, arg = None):