summaryrefslogtreecommitdiff
path: root/libguile/async.h
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.h
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.h')
-rw-r--r--libguile/async.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libguile/async.h b/libguile/async.h
index 343cc2ae6..1a40a83bd 100644
--- a/libguile/async.h
+++ b/libguile/async.h
@@ -46,6 +46,9 @@ SCM_API void *scm_c_call_with_unblocked_asyncs (void *(*p) (void *d), void *d);
SCM_API void scm_dynwind_block_asyncs (void);
SCM_API void scm_dynwind_unblock_asyncs (void);
+SCM_INTERNAL void scm_i_async_push (scm_i_thread *t, SCM proc);
+SCM_INTERNAL SCM scm_i_async_pop (scm_i_thread *t);
+
SCM_INTERNAL void scm_init_async (void);
#endif /* SCM_ASYNC_H */