/[guile]/guile/guile-core/libguile/ChangeLog
ViewVC logotype

Diff of /guile/guile-core/libguile/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1717 by mvo, Mon Oct 21 12:14:24 2002 UTC revision 1.1718 by mvo, Sun Oct 27 20:26:44 2002 UTC
# Line 1  Line 1 
1    2002-10-27  Marius Vollmer  <mvo@zagadka.ping.de>
2    
3            * scmsigs.c (signal_cell_handlers, install_handler_data,
4            scm_delq_spine_x, really_install_handler, install_handler): New
5            scheme for triggering signal handlers, to simplify take_signal.
6            (take_signal): Simplified, to avoid race conditions.
7            (scm_sigaction_for_thread): Use new Scheme.  Validate that thread
8            hasn't exited yet.
9            
10            * async.c (scm_async_click): Reset pending_asyncs, handle
11            signal_asyncs.  Don't set cdr of a non-signal async to #f.
12            (scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
13            always.  Set pending_asyncs.
14            (scm_system_async_mark_for_thread): Check that thread has not
15            exited.
16            (scm_unmask_signals, decrease_block): Call scm_async_click after
17            block_asyncs becomes zero.
18            
19            * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of
20            active_asyncs.
21    
22            * root.h (scm_root_state): Added pending_asyncs and signal_asyncs
23            fields.
24            * root.c (root_mark): Mark them.
25            (make_root): Initialize them.
26            
27            * iselect.c, iselect.h: Replaced GUILE_ISELECT with
28            USE_COOP_THREADS.
29            (scm_internal_select): Define one version for USE_COOP_THREADS and
30            one for USE_NULL_THREADS.
31            (scm_init_iselect): Likewise.
32            
33            * inline.h (scm_cell, scm_double_cell): Also allow
34            USE_COPT_THREADS to not protect the slot initializers.
35            
36            * init.c (scm_init_guile_1): Call scm_init_thread_procs.  This is
37            because threads need to be initialized before the stack, but
38            gsubrs such as scm_timed_condition_variable_wait can only be
39            created later.
40    
41            * threads.h: Include "coop-pthreads.h" when requested.
42            (scm_threads_make_mutex, scm_threads_lock_mutex,
43            scm_threads_unlock_mutex, scm_threads_monitor): Removed, they were
44            not implemented anyway.
45            (scm_init_thread_procs, scm_try_mutex,
46            scm_timed_condition_variable_wait,
47            scm_broadcast_condition_variable, scm_c_thread_exited_p,
48            scm_thread_exited_p): New prototypes.
49            (struct timespec): Define if not already defined.
50            (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
51            scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
52            scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
53            scm_cond_broadcast, scm_cond_destroy): Declarations moved here and
54            deprecated.
55    
56            * threads.c: Include <errno.h>.  Include "coop-pthreads.c" when
57            requested.
58            (scm_thread_exited_p): New.
59            (scm_try_mutex, scm_broadcast_condition_variable): Newly
60            registered procedures.
61            (scm_wait_condition_variable, scm_timed_wait_condition_variable):
62            Use the latter as the procedure for "wait-condition-variable",
63            thus offering a optional timeout parameter to Scheme.
64            (scm_wait_condition_variable): Implement in terms of
65            scm_timed_wait_condition_variable.
66            (scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
67            scm_mutex_unlock, scm_mutex_destroy, scm_cond_init,
68            scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
69            scm_cond_broadcast, scm_cond_destroy): Implement in terms of
70            scm_make_mutex, etc, and deprecate.
71            (scm_init_threads): Do not create smobs, leave this to
72            scm_threads_init.  Do not include "threads.x" file.
73            (scm_init_thread_procs): New, include "threads.x" here.
74    
75            * null-threads.h (scm_null_mutex, scm_null_mutex_init,
76            scm_null_mutex_lock, scm_null_mutex_unlock,
77            scm_null_mutex_destroy, scm_null_condvar, scm_null_condvar_init,
78            scm_null_condvar_wait, scm_null_condvar_signal,
79            scm_null_condvar_destroy): Removed.
80            (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock, scm_cond_init,
81            scm_cond_wait, scm_cond_signal, scm_cond_broadcast,
82            scm_cond_destory): Do not define, they are now deprecated and
83            handled by threads.{h,c}.
84            
85            * null-threads.c (scm_null_mutex, scm_null_cond): Define here.
86            (scm_threads_init): Create smobs here, using the appropriate
87            sizes.
88            (block): Removed, now unused.
89            (scm_c_thread_exited_p): New.
90            (scm_null_mutex_init, scm_null_mutex_lock, scm_null_mutex_unlock,
91            scm_null_mutex_destroy, scm_null_condvar_init,
92            scm_null_condvar_wait, scm_null_condvar_signal,
93            scm_null_condvar_destroy): Removed and updated users to do their
94            task directly.
95            (scm_try_mutex, timeval_subtract,
96            scm_timed_wait_condition_variable,
97            scm_broadcast_condition_variable): New.
98            (scm_wait_condition_variable): Removed.
99    
100            * coop-defs.h (coop_m): Added 'level' field.
101            (scm_t_mutex, scm_mutex_init, scm_mutex_lock, scm_mutex_trylock,
102            scm_mutex_unlock, scm_mutex_destroy, scm_t_cond, scm_cond_init,
103            scm_cond_wait, scm_cond_timedwait, scm_cond_signal,
104            scm_cond_broadcast, scm_cond_destroy, struct timespec): Do not
105            define.
106            (coop_condition_variable_broadcast): New.
107    
108            * coop-threads.c (scm_threads_init): Create smobs here, using the
109            appropriate sizes.
110            (scm_c_thread_exited_p, scm_try_mutex,
111            scm_timed_wait_condition_variable,
112            scm_broadcast_condition_variable): New.
113            (scm_wait_condition_variable): Removed.
114    
115            * coop.c (coop_new_mutex_init): Initialize level.
116            (coop_mutex_trylock, coop_mutex_lock, coop_mutex_unlock): maintain
117            level.
118            (coop_condition_variable_signal): Renamed to
119            coop_condition_variable_broadcast and reimplemented in terms of
120            that.  Thus...
121            (coop_condition_variable_broadcast): New.
122    
123            * goops.c (hell_mutex): Reimplemented using scm_make_mutex, etc.
124    
125            * coop-pthreads.h, coop-pthreads.c: New, but unfinished.
126            
127  2002-10-21  Marius Vollmer  <mvo@zagadka.ping.de>  2002-10-21  Marius Vollmer  <mvo@zagadka.ping.de>
128    
129          * null-threads.c: Include <time.h>.  Also, use <...> for inclusion          * null-threads.c: Include <time.h>.  Also, use <...> for inclusion
# Line 5  Line 131 
131    
132          * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):          * async.c, goops.h, modules.h, validate.h (SCM_MAKE_VALIDATE_MSG):
133          New.  Use it instead of SCM_MAKE_VALIDATE in lots of places to          New.  Use it instead of SCM_MAKE_VALIDATE in lots of places to
134          gove better error messages.  Thanks to Bill Schottstaedt!          give better error messages.  Thanks to Bill Schottstaedt!
135    
136  2002-10-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>  2002-10-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>
137    

Legend:
Removed from v.1.1717  
changed lines
  Added in v.1.1718

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26