diff options
author | Marius Vollmer <mvo@zagadka.de> | 2004-01-04 23:36:49 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2004-01-04 23:36:49 +0000 |
commit | b57a0953fe589a52a5460526e1eda42b8a10e6a1 (patch) | |
tree | a63fdba73fefabe854e5d52a3196115c317cd70a /libguile/async.c | |
parent | e0499207154aa2ceff06e7679cd94afc25b3001e (diff) | |
download | guile-b57a0953fe589a52a5460526e1eda42b8a10e6a1.tar.gz |
(scm_with_blocked_asyncs, scm_with_unblocked_asyncs): New.
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 |