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.h | |
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.h')
-rw-r--r-- | libguile/async.h | 3 |
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 */ |