| Commit message (Expand) | Author | Age | Files | Lines |
* | * __scm.h (SCM_ALLOW_INTS_ONLY): Removed....(SCM_NONREC_CRITICAL_SECTION_START,
SCM_NONREC_CRITICAL_SECTION_END, SCM_REC_CRITICAL_SECTION_START,
SCM_REC_CRITICAL_SECTION_END): New macros.
(SCM_CRITICAL_SECTION_START/END): Defined here.
* eval.c: Insert SOURCE_SECTION_START / SOURCE_SECTION_END around
the three calls to scm_m_expand_body.
* gc.h: #include "libguile/pthread-threads.h";
(SCM_FREELIST_CREATE, SCM_FREELIST_LOC): New macros.
* gc.c (scm_i_freelist, scm_i_freelist2): Defined to be of type
scm_t_key;
* gc.c, gc-freelist.c, inline.h: Use SCM_FREELIST_LOC for freelist
access.
* gc-freelist.c (scm_gc_init_freelist): Create freelist keys.
* gc-freelist.c, threads.c (really_launch): Use
SCM_FREELIST_CREATE.
* gc-malloc.c (scm_realloc, scm_gc_register_collectable_memory):
* gc.c (scm_i_expensive_validation_check, scm_gc,
scm_gc_for_newcell): Put threads to sleep before doing GC-related
heap administration so that those pieces of code are executed
single-threaded. We might consider rewriting these code sections
in terms of a "call_gc_code_singly_threaded" construct instead of
calling the pair of scm_i_thread_put_to_sleep () and
scm_i_thread_wake_up (). Also, we would want to have as many of
these sections eleminated.
* init.c (scm_init_guile_1): Call scm_threads_prehistory.
* inline.h: #include "libguile/threads.h"
* pthread-threads.h: Macros now conform more closely to the
pthreads interface. Some of them now take a second argument.
* threads.c, threads.h: Many changes.
* configure.in: Temporarily replaced "copt" threads option with new
option "pthreads".
(USE_PTHREAD_THREADS): Define if pthreads configured.
| Mikael Djurfeldt | 2002-12-09 | 17 | -483/+981 |
* | *** empty log message *** | Rob Browning | 2002-12-09 | 1 | -0/+17 |
* | * Makefile.am (schemelibdir): VERSION -> GUILE_EFFECTIVE_VERSION....(libpath.h): use GUILE_EFFECTIVE_VERSION to compute
SCM_LIBRARY_DIR.
(version.h): generate this here rather than configure.in. This
approach tracks source edits better (i.e. more immediately).
Might be worth considering for other .in files too.
| Rob Browning | 2002-12-09 | 1 | -3/+16 |
* | * version.c (scm_effective_version): new function, also add...effective-version.
| Rob Browning | 2002-12-09 | 1 | -0/+25 |
* | * version.h.in (SCM_MICRO_VERSION): use @--@ substitution now....(SCM_MINOR_VERSION): use @--@ substitution now.
(SCM_MICRO_VERSION): use @--@ substitution now.
(scm_effective_version): new function prototype.
| Rob Browning | 2002-12-09 | 1 | -3/+4 |
* | *** empty log message *** | Marius Vollmer | 2002-12-02 | 1 | -0/+43 |
* | (SCM_VALIDATE_THREAD): Moved to threads.h. | Marius Vollmer | 2002-12-02 | 1 | -2/+0 |
* | * threads.h: Do not include "libguile/coop-defs.h". Include..."libguile/pthread-threads.h" for USE_COPT_THREADS. Removed
(previously deprecated) C level thread API prototypes. They are
now in the thread package specific headers, "null-threads.h" and
"pthread-threads.h".
(SCM_VALIDATE_THREAD, SCM_VALIDATE_MUTEX, SCM_VALIDATE_CONDVAR):
New.
(scm_threads_init): Removed.
(SCM_CRITICAL_SECTION_START, SCM_CRITICAL_SECTION_END,
SCM_THREAD_SWITCHING_CODE, scm_i_switch_counter,
SCM_I_THREAD_SWITCH_COUNT): Define here.
(scm_single_thread_p): Removed.
(scm_call_with_new_thread): Take two args directly instead of list
of two args.
(scm_i_thread_data, scm_i_set_thread_data, SCM_THREAD_LOCAL_DATA,
SCM_SET_THREAD_LOCAL_DATA): Define here.
* threads.c: Merged with "coop-pthreads.c".
| Marius Vollmer | 2002-12-02 | 2 | -172/+1011 |
* | * pthread-threads.h: New, implement pthread-like API by deferring to...pthread itself.
| Marius Vollmer | 2002-12-02 | 1 | -0/+99 |
* | * null-threads.h: Implement pthread-like API as a set of macros. | Marius Vollmer | 2002-12-02 | 1 | -8/+89 |
* | (libguile_la_SOURCES): Removed iselect.c....(noinst_HEADERS): Removed coop-threads.c, coop-threads.h, coop.c,
null-threads.c, coop-pthreads.c.
(modinclude_HEADERS): Removed coop-defs.h, coop-pthreads.h. Added
pthread-threads.h.
| Marius Vollmer | 2002-12-02 | 1 | -8/+6 |
* | (scm_init_guile_1): Do not call scm_init_iselect, which has been lost...in the reorganization.
| Marius Vollmer | 2002-12-02 | 1 | -1/+0 |
* | * eval.h (scm_t_trampoline_1, scm_t_trampoline_2): New types....* eval.c, eval.h (scm_trampoline_1, scm_trampoline_2): New functions.
* eval.c (call_subr2_2, call_lsubr_2, call_closure_2): New functions;
(map, for-each): Handle also application on two args as a special
case; Use trampolines.
* sort.c (scm_cmp_function): Choose subr2less for scm_tc7_subr_2o;
(subr2oless): Removed.
(scm_restricted_vector_sort_x): Use scm_return_first to keep the
vector GC protected.
* eval.c (check_map_args): Use scm_out_of_range_pos instead of
scm_out_of_range.
| Mikael Djurfeldt | 2002-12-01 | 4 | -24/+284 |
* | * evalext.[ch] (scm_m_undefine, undefine): Deprecated. | Dirk Herrmann | 2002-11-24 | 3 | -1/+8 |
* | * debug.c (scm_make_iloc): Added missing "return". | Mikael Djurfeldt | 2002-11-17 | 2 | -2/+8 |
* | *** empty log message *** | Marius Vollmer | 2002-11-17 | 1 | -0/+5 |
* | (scm_eval_string_in_module): Validate second arg to be a module....Thanks to Arno Peters!
| Marius Vollmer | 2002-11-17 | 1 | -0/+2 |
* | * .cvsignore: remove goops.c | Dirk Herrmann | 2002-11-16 | 2 | -1/+4 |
* | * modules.c (scm_env_top_level, scm_lookup_closure_module,...module_variable, scm_module_lookup_closure,
scm_module_transformer, scm_sym2var, scm_module_reverse_lookup,
scm_system_module_env_p): Don't compare SCM values with C
operators == or !=. Avoid SCM_IMP predicates. Prefer !SCM_FALSEP
over SCM_NFALSEP.
| Dirk Herrmann | 2002-11-16 | 2 | -16/+25 |
* | * eval.h (SCM_MAKE_ILOC): New macro....* debug.c (scm_make_iloc): Use SCM_MAKE_ILOC instead of computing
the iloc bitpattern here.
| Dirk Herrmann | 2002-11-16 | 3 | -4/+14 |
* | * coop-pthreads.c, coop-pthreads.h: scm_internal_select should be...part of the API, otherwise it's difficult to write Guile
extensions using non-blocking I/O => moved #include
"libguile/iselect.h" from coop-pthreads.c --> coop-pthreads.h.
* coop-pthreads.c (scm_unlock_mutex): Changed s_lock_mutex -->
s_unlock_mutex.
| Mikael Djurfeldt | 2002-11-14 | 3 | -3/+13 |
* | *** empty log message *** | Marius Vollmer | 2002-11-10 | 1 | -0/+8 |
* | (USE_THREADS, GUILE_ISELECT): Do not define here. They are defined in...configure.in.
| Marius Vollmer | 2002-11-10 | 1 | -9/+0 |
* | Removed SCM_API from function definitions. SCM_API is only for...declarations.
| Marius Vollmer | 2002-11-10 | 1 | -10/+10 |
* | * coop-pthreads.h: Added support for thread specific data to the...generic C API for the coop-pthreads case.
| Mikael Djurfeldt | 2002-11-07 | 2 | -0/+16 |
* | * threads.c, threads.h (scm_cond_broadcast): Added missing function. | Mikael Djurfeldt | 2002-11-07 | 2 | -0/+8 |
* | * threads.c, threads.h (scm_cond_init): Undo unintentional API...change.
| Mikael Djurfeldt | 2002-11-07 | 3 | -2/+7 |
* | *** empty log message *** | Marius Vollmer | 2002-11-04 | 1 | -0/+5 |
* | (coop_next_runnable_thread): Removed, wich should have happened when...GUILE_ISELECT was hard-wired.
| Marius Vollmer | 2002-11-04 | 1 | -35/+1 |
* | *** empty log message *** | Marius Vollmer | 2002-11-03 | 1 | -0/+10 |
* | * __scm.h (USE_THREADS, GUILE_ISELECT): Define when...SCM_DEBUG_DEPRECATED. Removed their use thru-out Guile.
| Marius Vollmer | 2002-11-03 | 18 | -273/+25 |
* | (libguile_la_SOURCES): Added threads.c...(DOT_DOC_FILES): Added threads.doc.
(DOT_X_FILES): Added threads.x.
(EXTRA_libguile_la_SOURCES): Removed threads.c.
(noinst_HEADERS): Added coop-pthreads.c.
(modinclude_HEADERS): Added coop-pthreads.h.
| Marius Vollmer | 2002-11-03 | 1 | -12/+12 |
* | (scm_integer_expt): Make 0^z == 0 for z != 0. Also for reals. | Marius Vollmer | 2002-11-03 | 1 | -1/+1 |
* | *** empty log message *** | Marius Vollmer | 2002-11-03 | 1 | -0/+3 |
* | Include "_scm.h" before testing HAVE_UNISTD_H. Thanks to Bill...Schottstaedt!
| Marius Vollmer | 2002-11-03 | 1 | -1/+2 |
* | *** empty log message *** | Marius Vollmer | 2002-11-03 | 1 | -0/+2 |
* | (scm_integer_expt): Make 0^z == 0 for z != 0. | Marius Vollmer | 2002-11-03 | 1 | -1/+2 |
* | *** empty log message *** | Marius Vollmer | 2002-11-03 | 1 | -0/+13 |
* | (HAVE_RESTARTABLE_SYSCALLS): Do define even when...SCM_COPT_THREADS is defined.
(SCM_SYSCALL): Use EINTR-expection version when SCM_COPT_THREADS
is defined.
| Marius Vollmer | 2002-11-03 | 1 | -5/+3 |
* | Some harmless renamings of internal stuff....(create_thread): New, generalized version of
scm_call_with_new_thread.
(scm_call_with_new_thread): Use it.
(scm_spawn_thread): New, use create_thread.
| Marius Vollmer | 2002-11-03 | 1 | -179/+83 |
* | *** empty log message *** | Marius Vollmer | 2002-11-02 | 1 | -0/+10 |
* | Redone completely, you might start testing it now. | Marius Vollmer | 2002-11-02 | 2 | -288/+460 |
* | Include <errno.h< so that SCM_SYSCALL is correctly...defined when HAVE_RESTARTABLE_SYSCALLS is not defined.
(HAVE_RESTARTABLE_SYSCALLS): Do not define when USE_COPT_THREADS
is defined.
| Marius Vollmer | 2002-11-02 | 1 | -1/+8 |
* | Closer, but not there. | Marius Vollmer | 2002-10-30 | 1 | -85/+142 |
* | Updated, but still totally unusable. | Marius Vollmer | 2002-10-30 | 2 | -520/+508 |
* | *** empty log message *** | Marius Vollmer | 2002-10-27 | 1 | -1/+127 |
* | * coop-pthreads.h, coop-pthreads.c: New, but unfinished. | Marius Vollmer | 2002-10-27 | 2 | -0/+1032 |
* | (signal_cell_handlers, install_handler_data,...scm_delq_spine_x, really_install_handler, install_handler): New
scheme for triggering signal handlers, to simplify take_signal.
(take_signal): Simplified, to avoid race conditions.
(scm_sigaction_for_thread): Use new Scheme. Validate that thread
hasn't exited yet.
| Marius Vollmer | 2002-10-27 | 1 | -20/+153 |
* | (scm_async_click): Reset pending_asyncs, handle...signal_asyncs. Don't set cdr of a non-signal async to #f.
(scm_i_queue_async_cell): Do not check cdr of cell for #f, queue
always. Set pending_asyncs.
(scm_system_async_mark_for_thread): Check that thread has not
exited.
(scm_unmask_signals, decrease_block): Call scm_async_click after
block_asyncs becomes zero.
| Marius Vollmer | 2002-10-27 | 1 | -30/+46 |
* | * __scm.h (SCM_ASYNC_CLICK): Check pending_asyncs instead of...active_asyncs.
* root.h (scm_root_state): Added pending_asyncs and signal_asyncs
fields.
* root.c (root_mark): Mark them.
(make_root): Initialize them.
| Marius Vollmer | 2002-10-27 | 3 | -1/+8 |