diff options
Diffstat (limited to 'libguile/async.c')
-rw-r--r-- | libguile/async.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libguile/async.c b/libguile/async.c index 2edfa8329..ff4c9fc5a 100644 --- a/libguile/async.c +++ b/libguile/async.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2004 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -364,6 +364,24 @@ scm_c_call_with_unblocked_asyncs (void *(*proc) (void *data), void *data) data, NULL); } +void +scm_with_blocked_asyncs () +{ + scm_on_rewind (increase_block, NULL, SCM_F_WIND_EXPLICITELY); + scm_on_unwind (decrease_block, NULL, SCM_F_WIND_EXPLICITELY); +} + +void +scm_with_unblocked_asyncs () +{ + if (scm_root->block_asyncs == 0) + scm_misc_error ("scm_with_unblocked_asyncs", + "asyncs already unblocked", SCM_EOL); + scm_on_rewind (decrease_block, NULL, SCM_F_WIND_EXPLICITELY); + scm_on_unwind (increase_block, NULL, SCM_F_WIND_EXPLICITELY); +} + + void |