diff options
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 11 |
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) | |||
| 4704 | #endif | 4704 | #endif |
| 4705 | } | 4705 | } |
| 4706 | 4706 | ||
| 4707 | /* This is a trampoline function that flushes registers to the stack, | ||
| 4708 | and then calls FUNC. ARG is passed through to FUNC verbatim. | ||
| 4709 | |||
| 4710 | This function must be called whenever Emacs is about to release the | ||
| 4711 | global interpreter lock. This lets the garbage collector easily | ||
| 4712 | find roots in registers on threads that are not actively running | ||
| 4713 | Lisp. | ||
| 4714 | |||
| 4715 | It is invalid to run any Lisp code or to allocate any GC memory | ||
| 4716 | from FUNC. */ | ||
| 4717 | |||
| 4707 | void | 4718 | void |
| 4708 | flush_stack_call_func (void (*func) (void *arg), void *arg) | 4719 | flush_stack_call_func (void (*func) (void *arg), void *arg) |
| 4709 | { | 4720 | { |