diff options
author | Andy Wingo <wingo@pobox.com> | 2016-11-18 23:04:57 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-11-19 13:32:45 +0100 |
commit | 08584310ee5fc254854ef98bb2c5f4da3063f9c9 (patch) | |
tree | f7fe0b216045a17daf5590c4ab47127ac83adf3b /libguile/async.c | |
parent | 4ae49889317f31f664a161035e14ad534624dc50 (diff) | |
download | guile-08584310ee5fc254854ef98bb2c5f4da3063f9c9.tar.gz |
Inline interrupts
* libguile/async.c:
* libguile/async.h (scm_i_async_push, scm_i_async_pop): Make internally
available.
* libguile/vm-engine.c (vm_engine): Invoke interrupts inline. Add
return-from-interrupt instruction.
* libguile/vm.c (vm_handle_interrupt_code): New "builtin".
Diffstat (limited to 'libguile/async.c')
-rw-r--r-- | libguile/async.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/async.c b/libguile/async.c index 9123ec7c1..b9dc78442 100644 --- a/libguile/async.c +++ b/libguile/async.c @@ -55,7 +55,7 @@ * list in the order they were added to the list. */ -static void +void scm_i_async_push (scm_i_thread *t, SCM proc) { SCM asyncs; @@ -101,7 +101,7 @@ scm_i_async_push (scm_i_thread *t, SCM proc) } /* Precondition: there are pending asyncs. */ -static SCM +SCM scm_i_async_pop (scm_i_thread *t) { while (1) |