From 4e047c3e4686a7fa47e2fb6d5eba63fd93cad288 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Mon, 7 Mar 2005 21:42:02 +0000 Subject: [PATCH] Include "libguile/async.h" for SCM_CRITICAL_SECTION_START/END. --- libguile/ChangeLog | 36 ++++++++++++++++++++++++++++++++++++ libguile/deprecated.c | 1 + libguile/goops.c | 1 + libguile/guardians.c | 1 + libguile/keywords.c | 1 + libguile/objprop.c | 1 + libguile/ports.c | 1 + libguile/smob.c | 1 + libguile/srcprop.c | 1 + libguile/stime.c | 1 + libguile/struct.c | 1 + 11 files changed, 46 insertions(+) diff --git a/libguile/ChangeLog b/libguile/ChangeLog index d7b5836a9..f6fa2cdef 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,39 @@ +2005-03-07 Marius Vollmer + + * threads.h, async.h, threads.c (SCM_CRITICAL_SECTION_START, + SCM_CRITICAL_SECTION_END): Moved here from threads.h since now + they also block/unblock execution of asyncs and call + scm_async_click which is declared in async.h but threads.h can not + include async.h since async.h already includes threads.h. + (scm_i_critical_section_level): New, for checking mistakes in the + use of the SCM_CRITICAL_SECTION_* macros. + (scm_i_critical_section_mutex): Make it a recursive mutex so that + critical sections can be nested. + + * throw.c (scm_ithrow): Abort when scm_i_critical_section_level is + not zero. + + * threads.h, threads.c (scm_frame_lock_mutex): New. + (scm_frame_critical_section): Take mutex as argument. + (framed_critical_section_mutex): New, used as default for above. + (scm_init_threads): Initialize it. + (scm_threads_prehistory): Do not initialize thread_admin_mutex and + scm_i_critical_section_mutex; both are initialized statically. + + * continuation.c, deprecated.c, goops.c, guardians.c keywords.c, + libguile_la-arrays.loT, objprop.c, ports.c, smob.c, sort.s, + srcprop.c, stime.c, struct.c, throw.c: Include "libguile/async.h" + for SCM_CRITICAL_SECTION_START/END. + + * debug.c (scm_debug_options): Replace + SCM_CRITICAL_SECTION_START/END with a frame and + scm_frame_critical_section. + + * continuations.c (scm_make_continuation): No longer a critical + section. + (scm_dynthrow): Abort when scm_i_critical_section_level is + not zero. + 2005-03-04 Marius Vollmer * threads.c (scm_try_mutex): Renamed argument for consistency. diff --git a/libguile/deprecated.c b/libguile/deprecated.c index 685fa2cf1..1ada46e78 100644 --- a/libguile/deprecated.c +++ b/libguile/deprecated.c @@ -20,6 +20,7 @@ */ #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/deprecated.h" #include "libguile/discouraged.h" #include "libguile/deprecation.h" diff --git a/libguile/goops.c b/libguile/goops.c index b1aa22176..86d486abc 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -28,6 +28,7 @@ #include "libguile/_scm.h" #include "libguile/alist.h" +#include "libguile/async.h" #include "libguile/chars.h" #include "libguile/debug.h" #include "libguile/dynl.h" diff --git a/libguile/guardians.c b/libguile/guardians.c index 4d4f5a140..5ea384903 100644 --- a/libguile/guardians.c +++ b/libguile/guardians.c @@ -35,6 +35,7 @@ #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/ports.h" #include "libguile/print.h" #include "libguile/smob.h" diff --git a/libguile/keywords.c b/libguile/keywords.c index f6b570348..17da78c82 100644 --- a/libguile/keywords.c +++ b/libguile/keywords.c @@ -21,6 +21,7 @@ #include #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/ports.h" #include "libguile/root.h" #include "libguile/smob.h" diff --git a/libguile/objprop.c b/libguile/objprop.c index 55f4b7fb8..7135e2cf1 100644 --- a/libguile/objprop.c +++ b/libguile/objprop.c @@ -19,6 +19,7 @@ #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/hashtab.h" #include "libguile/alist.h" #include "libguile/root.h" diff --git a/libguile/ports.c b/libguile/ports.c index 5fe2e0763..94182bfc0 100644 --- a/libguile/ports.c +++ b/libguile/ports.c @@ -27,6 +27,7 @@ #include #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/eval.h" #include "libguile/objects.h" #include "libguile/goops.h" diff --git a/libguile/smob.c b/libguile/smob.c index 8ad641992..ce0b6488e 100644 --- a/libguile/smob.c +++ b/libguile/smob.c @@ -26,6 +26,7 @@ #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/objects.h" #include "libguile/goops.h" #include "libguile/ports.h" diff --git a/libguile/srcprop.c b/libguile/srcprop.c index 1aed54d41..a0847c891 100644 --- a/libguile/srcprop.c +++ b/libguile/srcprop.c @@ -21,6 +21,7 @@ #include #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/smob.h" #include "libguile/alist.h" #include "libguile/debug.h" diff --git a/libguile/stime.c b/libguile/stime.c index b44b2d0cb..fcd02f46f 100644 --- a/libguile/stime.c +++ b/libguile/stime.c @@ -44,6 +44,7 @@ #include #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/feature.h" #include "libguile/strings.h" #include "libguile/vectors.h" diff --git a/libguile/struct.c b/libguile/struct.c index f54a77c38..b7635a319 100644 --- a/libguile/struct.c +++ b/libguile/struct.c @@ -21,6 +21,7 @@ #endif #include "libguile/_scm.h" +#include "libguile/async.h" #include "libguile/chars.h" #include "libguile/eval.h" #include "libguile/alist.h" -- 2.20.1