From acfa1f528ec59324ef2079bce5774105ecfd84e7 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Wed, 9 Oct 2002 22:49:00 +0000 Subject: [PATCH] *** empty log message *** --- NEWS | 28 ++++++++++++++++++++++++++++ doc/ref/ChangeLog | 4 ++++ ice-9/ChangeLog | 7 +++++++ libguile/ChangeLog | 28 ++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+) diff --git a/NEWS b/NEWS index ac8394ef7..5965d7383 100644 --- a/NEWS +++ b/NEWS @@ -50,6 +50,23 @@ You can now pass any zero-argument procedure to 'system-async-mark'. The function 'system-async' will just return its argument unchanged now. +** New functions 'call-with-blocked-asyncs' and + 'call-with-unblocked-asyncs' + +The expression (call-with-blocked-asyncs PROC) will call PROC and will +block execution of system asyncs for the current thread by one level +while PROC runs. Likewise, call-with-unblocked-asyncs will call a +procedure and will unblock the execution of system asyncs by one +level for the current thread. + +Only system asyncs are affected by these functions. + +** The functions 'mask-signals' and 'unmask-signals' are deprecated. + +Use 'call-with-blocked-asyncs' or 'call-with-unblocked-asyncs' +instead. Those functions are easier to use correctly and can be +nested. + ** New function 'unsetenv'. ** New macro 'define-syntax-public'. @@ -138,6 +155,17 @@ during evaluation, but prior to evaluation. * Changes to the C interface +** The value 'scm_mask_ints' is no longer writable. + +Previously, you could set scm_mask_ints directly. This is no longer +possible. Use scm_c_call_with_blocked_asyncs and +scm_c_call_with_unblocked_asyncs instead. + +** New functions scm_c_call_with_blocked_asyncs and + scm_c_call_with_unblocked_asyncs + +Like scm_call_with_blocked_asyncs etc. but for C functions. + ** New snarfer macro SCM_DEFINE_PUBLIC. This is like SCM_DEFINE, but also calls scm_c_export for the defined diff --git a/doc/ref/ChangeLog b/doc/ref/ChangeLog index 455386db6..95d75db5e 100644 --- a/doc/ref/ChangeLog +++ b/doc/ref/ChangeLog @@ -1,3 +1,7 @@ +2002-10-10 Marius Vollmer + + * scheme-scheduling.texi (System Asyncs): Updated. + 2002-10-07 Marius Vollmer * scheme-scheduling.texi (Asyncs): Updated. diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index ef37fda7e..f99793a1a 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,10 @@ +2002-10-10 Marius Vollmer + + * boot-9.scm (top-repl): Use 2 as the limit when saving the stack. + (error-catching-loop): use call-with-blocked-asyncs and + call-with-unblocked-asyncs instead of mask-signals and + unmask-signals. + 2002-10-09 Neil Jerram * buffered-input.scm (make-buffered-input-port): Build an diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 794115fb9..05793eb53 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,31 @@ +2002-10-10 Marius Vollmer + + * root.h (scm_root_state): Added 'block_async' slot. + (scm_active_asyncs): Removed abbrev. + * root.c (scm_make_root): Initialize 'block_asyncs' slot. + + * __scm.h (SCM_ASYNC_TICK): Do without the scm_active_asyncs + abbrev. + + * async.h (scm_call_with_blocked_asyncs, + scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs, + scm_c_call_with_unblocked_asyncs): New prototypes. + (scm_mask_signals, scm_unmask_signals): Deprecated. + (scm_mask_ints): Turned into a macro. + * async.c (scm_mask_ints): Removed. + (scm_run_asyncs): Do not set scm_mask_ints while running an async. + this should not be necessary. + (scm_async_click): Test block_asyncs instead of scm_mask_ints. + (scm_mask_signals, scm_unmask_signals): Deprecated. Emit + deprecation warning and check for errornous use. Set block_asyncs + instead of scm_mask_ints. + (increase_block, decrease_block, scm_call_with_blocked_asyncs, + scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs, + scm_c_call_with_unblocked_asyncs): New. + + * script.c (scm_compile_shell_switches): Do not set scm_mask_ints. + Asyncs are enabled by default. + 2002-10-09 Neil Jerram * vports.c (scm_make_soft_port): Allow vector argument to carry a