mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
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.
This commit is contained in:
parent
2480761bde
commit
7f7169847e
6 changed files with 62 additions and 71 deletions
|
@ -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...
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue