1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

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".
This commit is contained in:
Andy Wingo 2016-11-18 23:04:57 +01:00
parent 4ae4988931
commit 08584310ee
4 changed files with 60 additions and 16 deletions

View file

@ -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 */