summaryrefslogtreecommitdiff
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 9b5f2955aa5..5de7d384a49 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4704,6 +4704,17 @@ mark_stack (char *bottom, char *end)
#endif
}
+/* This is a trampoline function that flushes registers to the stack,
+ and then calls FUNC. ARG is passed through to FUNC verbatim.
+
+ This function must be called whenever Emacs is about to release the
+ global interpreter lock. This lets the garbage collector easily
+ find roots in registers on threads that are not actively running
+ Lisp.
+
+ It is invalid to run any Lisp code or to allocate any GC memory
+ from FUNC. */
+
void
flush_stack_call_func (void (*func) (void *arg), void *arg)
{