summaryrefslogtreecommitdiff
path: root/src/itree.c
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2022-10-07 19:15:07 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2022-10-07 19:15:07 -0400
commit208de5de59ae85887d637ec93690e17c418a7ab6 (patch)
treee9eec61511ad71ea6661045d6a96c3882d5f7f01 /src/itree.c
parent780d3d8df2e9222a4643f0d0e9caf7628085d7bf (diff)
downloademacs-208de5de59ae85887d637ec93690e17c418a7ab6.tar.gz
itree: Try and detect non-local exits during itree iterations
* src/itree.c (itree_busy_p): New function. * src/eval.c (signal_or_quit): Use it. * src/itree.h (itree_busy_p): Declare it.
Diffstat (limited to 'src/itree.c')
-rw-r--r--src/itree.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/itree.c b/src/itree.c
index d955c575390..de16af5b0c2 100644
--- a/src/itree.c
+++ b/src/itree.c
@@ -725,6 +725,12 @@ interval_tree_validate (struct interval_tree *tree, struct interval_node *node)
return node;
}
+bool
+itree_busy_p (void)
+{
+ return (iter && iter->running);
+}
+
/* Start a generator iterating all intervals in [BEGIN,END) in the
given ORDER. Only one iterator per tree can be running at any
time.