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

@ -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)