mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-03 13:20:26 +02:00
handle interrupts in mv-call, return/values
* libguile/vm-i-system.c (mv-call, return/values): Interrupt before entering and leaving MV frames as well as normal frames.
This commit is contained in:
parent
d5f9864ffc
commit
7d94e4af98
1 changed files with 4 additions and 0 deletions
|
@ -917,6 +917,8 @@ VM_DEFINE_INSTRUCTION (58, mv_call, "mv-call", 4, -1, 1)
|
||||||
vm_mv_call:
|
vm_mv_call:
|
||||||
x = sp[-nargs];
|
x = sp[-nargs];
|
||||||
|
|
||||||
|
VM_HANDLE_INTERRUPTS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Subprogram call
|
* Subprogram call
|
||||||
*/
|
*/
|
||||||
|
@ -1127,6 +1129,8 @@ VM_DEFINE_INSTRUCTION (64, return_values, "return/values", 1, -1, -1)
|
||||||
EXIT_HOOK ();
|
EXIT_HOOK ();
|
||||||
RETURN_HOOK ();
|
RETURN_HOOK ();
|
||||||
|
|
||||||
|
VM_HANDLE_INTERRUPTS;
|
||||||
|
|
||||||
if (nvalues != 1 && SCM_FRAME_MV_RETURN_ADDRESS (fp))
|
if (nvalues != 1 && SCM_FRAME_MV_RETURN_ADDRESS (fp))
|
||||||
{
|
{
|
||||||
/* A multiply-valued continuation */
|
/* A multiply-valued continuation */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue