1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

vm: handle interrupts on backwards jumps

* libguile/vm-i-system.c (BR, br): Handle interrupts on backwards jumps,
  so we can Ctrl-C an endless loop.
This commit is contained in:
Andy Wingo 2009-12-11 11:17:03 +01:00
parent e8c3777214
commit 5b09b37f81

View file

@ -466,6 +466,8 @@ VM_DEFINE_INSTRUCTION (34, long_toplevel_set, "long-toplevel-set", 2, 1, 0)
FETCH_OFFSET (offset); \
if (p) \
ip += offset; \
if (offset < 0) \
VM_HANDLE_INTERRUPTS; \
NULLSTACK (1); \
DROP (); \
NEXT; \
@ -476,6 +478,8 @@ VM_DEFINE_INSTRUCTION (35, br, "br", 3, 0, 0)
scm_t_int32 offset;
FETCH_OFFSET (offset);
ip += offset;
if (offset < 0)
VM_HANDLE_INTERRUPTS;
NEXT;
}