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:
parent
4ae4988931
commit
08584310ee
4 changed files with 60 additions and 16 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue