summaryrefslogtreecommitdiff
path: root/poky/bitbake/lib/bb/event.py
diff options
context:
space:
mode:
Diffstat (limited to 'poky/bitbake/lib/bb/event.py')
-rw-r--r--poky/bitbake/lib/bb/event.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index 8b05f93e2f..37cc630c63 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -69,6 +69,7 @@ _eventfilter = None
_uiready = False
_thread_lock = threading.Lock()
_heartbeat_enabled = False
+_should_exit = threading.Event()
def enable_threadlock():
# Always needed now
@@ -86,6 +87,16 @@ def disable_heartbeat():
global _heartbeat_enabled
_heartbeat_enabled = False
+#
+# In long running code, this function should be called periodically
+# to check if we should exit due to an interuption (.e.g Ctrl+C from the UI)
+#
+def check_for_interrupts(d):
+ global _should_exit
+ if _should_exit.is_set():
+ bb.warn("Exiting due to interrupt.")
+ raise bb.BBHandledException()
+
def execute_handler(name, handler, event, d):
event.data = d
try: