mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
avoid tls gets when handling interrupts in the vm
* libguile/__scm.h (SCM_ASYNC_TICK_WITH_CODE): Redefine to take a scm_i_thread* as well. OK to do because it's within a BUILDING_LIBGUILE block. * libguile/vm-engine.c (vm_engine): Cache the scm_i_thread* instead of the dynstate, so we can use the thread for ticks. * libguile/vm-engine.h (VM_HANDLE_INTERRUPTS): Tick with the scm_i_thread* local var, to avoid excessive tls calls. * libguile/vm-i-system.c: Fix dynstate users to use current_thread->dynamic_state.
This commit is contained in:
parent
a2230b653b
commit
a2a6c0e319
4 changed files with 8 additions and 8 deletions
|
@ -52,7 +52,7 @@ VM_NAME (SCM vm, SCM program, SCM *argv, int nargs)
|
|||
#endif
|
||||
SCM *stack_limit = vp->stack_limit; /* stack limit address */
|
||||
|
||||
SCM dynstate = SCM_I_CURRENT_THREAD->dynamic_state;
|
||||
scm_i_thread *current_thread = SCM_I_CURRENT_THREAD;
|
||||
scm_t_int64 vm_cookie = vp->cookie++;
|
||||
|
||||
/* Internal variables */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue