Include "libguile/async.h" for SCM_CRITICAL_SECTION_START/END.
authorMarius Vollmer <mvo@zagadka.de>
Mon, 7 Mar 2005 21:42:02 +0000 (21:42 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Mon, 7 Mar 2005 21:42:02 +0000 (21:42 +0000)
libguile/ChangeLog
libguile/deprecated.c
libguile/goops.c
libguile/guardians.c
libguile/keywords.c
libguile/objprop.c
libguile/ports.c
libguile/smob.c
libguile/srcprop.c
libguile/stime.c
libguile/struct.c

index d7b5836..f6fa2cd 100644 (file)
@@ -1,3 +1,39 @@
+2005-03-07  Marius Vollmer  <mvo@zagadka.de>
+
+       * 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  <marius.vollmer@uni-dortmund.de>
 
        * threads.c (scm_try_mutex): Renamed argument for consistency.
index 685fa2c..1ada46e 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/deprecated.h"
 #include "libguile/discouraged.h"
 #include "libguile/deprecation.h"
index b1aa221..86d486a 100644 (file)
@@ -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"
index 4d4f5a1..5ea3849 100644 (file)
@@ -35,6 +35,7 @@
 
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/ports.h"
 #include "libguile/print.h"
 #include "libguile/smob.h"
index f6b5703..17da78c 100644 (file)
@@ -21,6 +21,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/ports.h"
 #include "libguile/root.h"
 #include "libguile/smob.h"
index 55f4b7f..7135e2c 100644 (file)
@@ -19,6 +19,7 @@
 \f
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/hashtab.h"
 #include "libguile/alist.h"
 #include "libguile/root.h"
index 5fe2e07..94182bf 100644 (file)
@@ -27,6 +27,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/eval.h"
 #include "libguile/objects.h"
 #include "libguile/goops.h"
index 8ad6419..ce0b648 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "libguile/_scm.h"
 
+#include "libguile/async.h"
 #include "libguile/objects.h"
 #include "libguile/goops.h"
 #include "libguile/ports.h"
index 1aed54d..a0847c8 100644 (file)
@@ -21,6 +21,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/smob.h"
 #include "libguile/alist.h"
 #include "libguile/debug.h"
index b44b2d0..fcd02f4 100644 (file)
@@ -44,6 +44,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/async.h"
 #include "libguile/feature.h"
 #include "libguile/strings.h"
 #include "libguile/vectors.h"
index f54a77c..b7635a3 100644 (file)
@@ -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"