diff options
Diffstat (limited to 'bitbake/lib/bb/event.py')
-rw-r--r-- | bitbake/lib/bb/event.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 8b05f93e2f..37cc630c63 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
@@ -69,6 +69,7 @@ _eventfilter = None | |||
69 | _uiready = False | 69 | _uiready = False |
70 | _thread_lock = threading.Lock() | 70 | _thread_lock = threading.Lock() |
71 | _heartbeat_enabled = False | 71 | _heartbeat_enabled = False |
72 | _should_exit = threading.Event() | ||
72 | 73 | ||
73 | def enable_threadlock(): | 74 | def enable_threadlock(): |
74 | # Always needed now | 75 | # Always needed now |
@@ -86,6 +87,16 @@ def disable_heartbeat(): | |||
86 | global _heartbeat_enabled | 87 | global _heartbeat_enabled |
87 | _heartbeat_enabled = False | 88 | _heartbeat_enabled = False |
88 | 89 | ||
90 | # | ||
91 | # In long running code, this function should be called periodically | ||
92 | # to check if we should exit due to an interuption (.e.g Ctrl+C from the UI) | ||
93 | # | ||
94 | def check_for_interrupts(d): | ||
95 | global _should_exit | ||
96 | if _should_exit.is_set(): | ||
97 | bb.warn("Exiting due to interrupt.") | ||
98 | raise bb.BBHandledException() | ||
99 | |||
89 | def execute_handler(name, handler, event, d): | 100 | def execute_handler(name, handler, event, d): |
90 | event.data = d | 101 | event.data = d |
91 | try: | 102 | try: |