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.
scm_i_thread_root when USE_THREADS is defined. Use scm_root
otherwise.
* scmsigs.c (take_signal): Only call scm_i_thread_root when
USE_THREADS is defined. Use scm_root otherwise.
(scm_sigaction_for_thread): Ignore THREAD argument when
USE_THREADS is not defined. Also, move THREAD argument defaulting
out of HAVE_SIGACTION section, which was a bug.
scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
scm_c_call_with_unblocked_asyncs): New prototypes.
(scm_mask_signals, scm_unmask_signals): Deprecated.
(scm_mask_ints): Turned into a macro.
* async.c (scm_mask_ints): Removed.
(scm_run_asyncs): Do not set scm_mask_ints while running an async.
this should not be necessary.
(scm_async_click): Test block_asyncs instead of scm_mask_ints.
(scm_mask_signals, scm_unmask_signals): Deprecated. Emit
deprecation warning and check for errornous use. Set block_asyncs
instead of scm_mask_ints.
(increase_block, decrease_block, scm_call_with_blocked_asyncs,
scm_call_with_unblocked_asyncs, scm_c_call_with_blocked_asyncs,
scm_c_call_with_unblocked_asyncs): New.
cell to SCM_BOOL_F, not SCM_EOL.
(scm_i_queue_async_cell): Queue the cell at the end of the list,
and only if the handler procedure is not already present.
(scm_system_async_mark_for_thread): Initialize cdr of handler cell
with SCM_BOOL_F.
* scmsigs.c (scm_sigaction_for_thread): Likewise.
* *.c: add space after commas everywhere.
* *.c: use SCM_VECTOR_SET everywhere, where a vector is written.
Document cases where SCM_WRITABLE_VELTS() is used.
* vectors.h (SCM_VELTS): prepare for write barrier, and let
SCM_VELTS() return a const pointer
(SCM_VECTOR_SET): add macro.
* autogen.sh (mscripts): find and check version number of
autoconf. Complain if 2.53 is not found.
and we don't want that.
(INCLUDES): Removed all -I options except for the root source
directory and the root build directory.
* *.*: Change includes so that they always use the "prefixes"
libguile/, qt/, guile-readline/, or libltdl/.
(Thanks to Tim Mooney.)
pretending to be a C struct is not helthy, and is not needed here
anyway, as asyncs happily fit in one heap cell.
* async.c: reflect the fact that asyncs are now represented by
single heap cell each.
is possible to reinsert it by defining GUILE_OLD_ASYNC_CLICK in
__scm.h. Let's try this out and dump the old code after the
threads reorganization.
(set-tick-rate, set-switch-rate): Conditionally removed.