* coop-defs.h (coop_m): Added 'level' field.
authorMarius Vollmer <mvo@zagadka.de>
Sun, 27 Oct 2002 20:12:07 +0000 (20:12 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Sun, 27 Oct 2002 20:12:07 +0000 (20:12 +0000)
commit79cd5b8edac67485e9b88b3b0abf8068f54cf900
treed6e86ec59a7754e49ca604a9b4fc8ccca68e3bdc
parent026f9e6654d32cb4ce2b0c02b5f0b82d561e1551
* coop-defs.h (coop_m): Added 'level' field.
(scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
define.
(coop_condition_variable_broadcast): New.

* coop-threads.c (scm_threads_init): Create smobs here, using the
appropriate sizes.
(scm_c_thread_exited_p, scm_try_mutex,
scm_timed_wait_condition_variable,
scm_broadcast_condition_variable): New.
(scm_wait_condition_variable): Removed.

* coop.c (coop_new_mutex_init): Initialize level.
(coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
level.
(coop_condition_variable_signal): Renamed to
coop_condition_variable_broadcast and reimplemented in terms of
that.  Thus...
(coop_condition_variable_broadcast): New.
libguile/coop-defs.h
libguile/coop-threads.c
libguile/coop.c