summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-12-20 23:12:34 +0100
committerAndy Wingo <wingo@pobox.com>2009-12-20 23:24:39 +0100
commit7d94e4af9840c1f273ded31c3a39a6bb6a0496a5 (patch)
tree9dee82f64251cf42e42cd84352f9e05d8a835825 /libguile/vm-i-system.c
parentd5f9864ffc30701af0e393b692fb0bded8c6a95a (diff)
downloadguile-7d94e4af9840c1f273ded31c3a39a6bb6a0496a5.tar.gz
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.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index 09da85f9e..a12f46570 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -917,6 +917,8 @@ VM_DEFINE_INSTRUCTION (58, mv_call, "mv-call", 4, -1, 1)
vm_mv_call:
x = sp[-nargs];
+ VM_HANDLE_INTERRUPTS;
+
/*
* Subprogram call
*/
@@ -1127,6 +1129,8 @@ VM_DEFINE_INSTRUCTION (64, return_values, "return/values", 1, -1, -1)
EXIT_HOOK ();
RETURN_HOOK ();
+ VM_HANDLE_INTERRUPTS;
+
if (nvalues != 1 && SCM_FRAME_MV_RETURN_ADDRESS (fp))
{
/* A multiply-valued continuation */