diff options
author | Andy Wingo <wingo@pobox.com> | 2018-06-24 09:32:11 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-06-25 17:49:50 +0200 |
commit | 7f7169847ee047d585b7c9ca6c56e991aaf74edc (patch) | |
tree | 3fddcad520b143bcb1da2a04ee8c85d2fffcfdcc /libguile/control.c | |
parent | 2480761bde7d55ef05cc11eb49902ede84c70a0a (diff) | |
download | guile-7f7169847ee047d585b7c9ca6c56e991aaf74edc.tar.gz |
Eagerly initialize thread VM; remove scm_the_vm
* libguile/threads.c (thread_mark): Unconditionally call
scm_i_vm_mark_stack.
(guilify_self_1): Eagerly prepare the thread stack, before entering
Guile mode. It's only a page of mmap, after all.
* libguile/vm.c (scm_i_vm_prepare_stack): Rename from init_vm.
(thread_vm, scm_the_vm): Remove.
(VM_DEFINE_HOOK, scm_vm_trace_level, scm_set_vm_trace_level_x)
(scm_vm_engine, scm_c_set_vm_engine_x, scm_i_capture_current_stack)
(scm_call_n, scm_call_with_stack_overflow_handler): Adapt to get VM
from thread.
(scm_i_vm_free_stack): Memset the whole thing to 0 when we're done.
* libguile/control.c (scm_abort_to_prompt_star)
* libguile/eval.c (eval):
* libguile/throw.c (catch, abort_to_prompt): Get VM from thread.
Diffstat (limited to 'libguile/control.c')
-rw-r--r-- | libguile/control.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/control.c b/libguile/control.c index e472b4839..760539163 100644 --- a/libguile/control.c +++ b/libguile/control.c @@ -204,7 +204,7 @@ SCM_DEFINE (scm_abort_to_prompt_star, "abort-to-prompt*", 2, 0, 0, for (i = 0; i < n; i++, args = scm_cdr (args)) argv[i] = scm_car (args); - scm_c_abort (scm_the_vm (), tag, n, argv, NULL); + scm_c_abort (&SCM_I_CURRENT_THREAD->vm, tag, n, argv, NULL); /* Oh, what, you're still here? The abort must have been reinstated. Actually, that's quite impossible, given that we're already in C-land here, so... |