summaryrefslogtreecommitdiff
path: root/libguile/async.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2016-11-18 23:04:57 +0100
committerAndy Wingo <wingo@pobox.com>2016-11-19 13:32:45 +0100
commit08584310ee5fc254854ef98bb2c5f4da3063f9c9 (patch)
treef7fe0b216045a17daf5590c4ab47127ac83adf3b /libguile/async.c
parent4ae49889317f31f664a161035e14ad534624dc50 (diff)
downloadguile-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.c4
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)