| Commit message (Expand) | Author | Age | Files | Lines |
* | Check for working profiling and virtual itimers...* configure.ac (HAVE_USABLE_GETITIMER_PROF, HAVE_USABLE_GETITIMER_VIRTUAL): new tests
* doc/ref/posix.texi (setitimer, getitimer): document provided? 'ITIMER_VIRTUAL and 'ITIMER_PROF
* doc/ref/statprof.texi (statprof): document ITIMER_PROF requirements
* libguile/scmsigs.c (scm_setitimer, scm_getitimer): document (provided? 'ITIMER_VIRTUAL) and (provided? 'ITIMER_PROF)
(scm_init_scmsigs): add features ITIMER_VIRTUAL and ITIMER_PROF
* test-suite/tests/asyncs.test ("prevention via sigprof"): throw when unsupported
* test-suite/tests/signals.test: throw when not supported
* test-suite/tests/statprof.test: throw when not supported
| Mike Gran | 2017-03-06 | 1 | -5/+22 |
* | Remove thread-exited? check in sigaction...* libguile/scmsigs.c (scm_sigaction_for_thread): Remove check that
thread hadn't exited. This check was racy as it's always possible
that the other thread exits between checking it or even after the
signal handler is installed.
| Andy Wingo | 2017-01-08 | 1 | -5/+1 |
* | Fix --without-threads...* libguile/dynl.c:
* libguile/gc.c:
* libguile/keywords.c:
* libguile/scmsigs.c:
* libguile/stime.c: Use scm_i_dynamic_link instead of scm_dynamic_link
so that things compile in without-threads configurations.
| Andy Wingo | 2016-12-07 | 1 | -1/+1 |
* | Deprecate dynamic roots...* libguile/root.h:
* libguile/root.c: Remove these files.
* libguile/deprecated.h:
* libguile/deprecated.c (scm_internal_cwdr, scm_call_with_dynamic_root)
(scm_dynamic_root, scm_apply_with_dynamic_root): Deprecate.
Remove all root.h usage, which was vestigial.
* module/ice-9/serialize.scm: Use (current-thread) instead
of (dynamic-root).
| Andy Wingo | 2016-11-21 | 1 | -1/+0 |
* | Remove last critical section use...* libguile/scmsigs.c (signal_handler_lock): New variable.
(scm_sigaction_for_thread): Block asyncs and use a mutex instead of
using scm_dynwind_critical_section.
| Andy Wingo | 2016-11-01 | 1 | -1/+4 |
* | sigaction critical section refactor....* libguile/scmsigs.c (scm_sigaction_for_thread): Use critical section
dynwinds instead of SCM_CRITICAL_SECTION_START.
| Andy Wingo | 2016-11-01 | 1 | -4/+9 |
* | Use atomics for async interrupts...* libguile/__scm.h (SCM_TICK): Always define as scm_async_tick().
* libguile/error.c (scm_syserror, scm_syserror_msg):
* libguile/fports.c (fport_read, fport_write):
* libguile/_scm.h (SCM_SYSCALL): Replace SCM_ASYNC_TICK with
scm_async_tick ().
(SCM_ASYNC_TICK, SCM_ASYNC_TICK_WITH_CODE)
(SCM_ASYNC_TICK_WITH_GUARD_CODE): Remove internal definitions. We
inline into vm-engine.c, the only place where it matters.
* libguile/async.h:
* libguile/async.c (scm_async_tick, scm_i_setup_sleep):
(scm_i_reset_sleep, scm_system_async_mark_for_thread):
* libguile/threads.h (struct scm_thread_wake_data):
* libguile/threads.h (scm_i_thread):
* libguile/threads.c (block_self, guilify_self_1, scm_std_select):
Rewrite to use sequentially-consistent atomic references.
* libguile/atomics-internal.h (scm_atomic_set_pointer):
(scm_atomic_ref_pointer): New definitions.
* libguile/finalizers.c (queue_finalizer_async): We can allocate, so
just use scm_system_async_mark_for_thread instead of the set-cdr!
shenanigans.
* libguile/scmsigs.c (take_signal):
* libguile/gc.c (queue_after_gc_hook): Adapt to new asyncs mechanism.
Can't allocate but we're just manipulating the current thread when no
other threads are running so we should be good.
* libguile/vm-engine.c (VM_HANDLE_INTERRUPTS): Inline the async_tick
business.
| Andy Wingo | 2016-10-26 | 1 | -3/+2 |
* | Fix ,profile in pure modules...* libguile/scmsigs.c (close_1): Make the async closure in an environment
where `lambda' has its usual meaning. Fixes #21013.
| Andy Wingo | 2016-06-24 | 1 | -2/+4 |
* | Merge branch 'stable-2.0'...Conflicts:
GUILE-VERSION
NEWS
guile-readline/ice-9/readline.scm
libguile/async.c
libguile/backtrace.c
libguile/deprecated.h
libguile/gc-malloc.c
libguile/gdbint.c
libguile/init.c
libguile/ioext.c
libguile/mallocs.c
libguile/print.c
libguile/rw.c
libguile/scmsigs.c
libguile/script.c
libguile/simpos.c
libguile/snarf.h
libguile/strports.c
libguile/threads.c
libguile/vm-i-scheme.c
libguile/vm-i-system.c
module/srfi/srfi-18.scm
test-suite/Makefile.am
test-suite/standalone/test-num2integral.c
| Mark H Weaver | 2014-04-25 | 1 | -3/+2 |
|\ |
|
| * | Rely on Gnulib for <unistd.h>....* libguile/async.c:
* libguile/backtrace.c:
* libguile/error.c:
* libguile/filesys.c:
* libguile/fports.c:
* libguile/gc-malloc.c:
* libguile/gc.c:
* libguile/gdbint.c:
* libguile/init.c:
* libguile/ioext.c:
* libguile/load.c:
* libguile/mallocs.c:
* libguile/mkstemp.c:
* libguile/ports.c:
* libguile/posix.c:
* libguile/r6rs-ports.c:
* libguile/random.c:
* libguile/rw.c:
* libguile/scmsigs.c:
* libguile/script.c:
* libguile/simpos.c:
* libguile/socket.c:
* libguile/stime.c:
* libguile/strports.c:
* libguile/threads.c: Unconditionally include <unistd.h>.
| Mark H Weaver | 2014-02-27 | 1 | -3/+2 |
* | | Fix setitimer documentation. Allow microseconds >= 1e6....* doc/ref/posix.texi (Signals): Fix the documentation for setitimer; it
was wrong.
* libguile/scmsigs.c (pack_tv): New helper. Allow usecs >= 1e6.
(unpack_tv): New helper.
(scm_setitimer): Use the new helpers.
* test-suite/tests/signals.test: Add setitimer tests.
| Andy Wingo | 2014-02-28 | 1 | -9/+22 |
* | | Merge commit 'c8e839cfeb647aca034b9bcd5a321d419dedca1f' | Andy Wingo | 2014-02-07 | 1 | -1/+1 |
|\| |
|
| * | Don't check HAVE_ALARM, which no longer exists....* libguile/scmsigs.c (scm_alarm): Remove check for HAVE_ALARM.
Conditionalize only on HAVE_DECL_ALARM.
| Mark H Weaver | 2014-02-03 | 1 | -1/+1 |
* | | Remove tests and shims for pre-7.2 bdw-gc....* configure.ac: Remove checks for symbols present in bdw-gc 7.2.
* libguile/finalizers.c:
* libguile/gc-malloc.c:
* libguile/gc.c:
* libguile/guardians.c:
* libguile/scmsigs.c:
* libguile/threads.c: Remove shims.
| Andy Wingo | 2013-11-22 | 1 | -22/+0 |
* | | Merge remote-tracking branch 'origin/stable-2.0'...Conflicts:
configure.ac
libguile/deprecated.c
libguile/deprecated.h
libguile/filesys.h
libguile/fluids.c
libguile/fports.c
libguile/gc.c
libguile/guile.c
libguile/numbers.c
libguile/objcodes.c
libguile/r6rs-ports.c
libguile/smob.c
libguile/socket.c
libguile/threads.h
module/language/scheme/decompile-tree-il.scm
module/language/tree-il/peval.scm
test-suite/tests/syncase.test
| Mark H Weaver | 2013-03-28 | 1 | -20/+14 |
|\| |
|
| * | portability simplification with scmsigs.c and alarm...* configure.ac (alarm): Check for decl.
* libguile/scmsigs.c: Reorder includes to put system includes first.
Fixes include order on mingw. Remove #define for alarm, as we will
use HAVE_DECL_ALARM. Remove #defines for sleep and usleep, as they
are not used.
(scm_alarm): Only define if HAVE_DECL_ALARM.
| Andy Wingo | 2013-03-09 | 1 | -20/+14 |
* | | fix GC_get_suspend_signal on Mac OS...* libguile/scmsigs.c (GC_get_suspend_signal): Fix the back-compatibility
shim for this function to work on some other cases; I hadn't realized
that gcconfig.h could set SIG_SUSPEND. Thanks to Aleix Conchillo
Flaqué for the report.
| Andy Wingo | 2011-07-25 | 1 | -1/+3 |
* | | allow gc <= 7.1 to stop the signal delivery thread...* configure.ac: Add a check for GC_get_suspend_signal().
* libguile/scmsigs.c (GC_get_suspend_signal): Define a fallback
implementation if one isn't available.
(signal_delivery_thread): Unmask the suspend signal so that GC can
stop the world. Fixes test-pthread-create on libgc 7.1 and earlier.
Thanks to Frank Terbeck <ft@bewatermyfriend.org> for the report.
| Andy Wingo | 2011-06-23 | 1 | -0/+25 |
|/ |
|
* | O_CLOEXEC usage...* libguile/objcodes.c (scm_load_objcode):
* libguile/scmsigs.c (start_signal_delivery_thread):
* libguile/threads.c (guilify_self_1): Use O_CLOEXEC.
| Andy Wingo | 2011-06-16 | 1 | -6/+1 |
* | leave guile when reading signal pipe...* libguile/scmsigs.c (read_signal_pipe_data, signal_delivery_thread):
Leave guile when reading from the signal pipe. Hopefully that lets GC
know not to wake up this thread.
| Andy Wingo | 2011-05-26 | 1 | -8/+28 |
* | remove a bunch of needless scm_permanent_object calls...* libguile/array-handle.c:
* libguile/bytevectors.c:
* libguile/deprecated.c:
* libguile/eval.c:
* libguile/feature.c:
* libguile/filesys.c:
* libguile/gc.c:
* libguile/gdbint.c:
* libguile/goops.c:
* libguile/instructions.c:
* libguile/load.c:
* libguile/modules.c:
* libguile/numbers.c:
* libguile/options.c:
* libguile/ports.c:
* libguile/scmsigs.c:
* libguile/srcprop.c:
* libguile/srfi-4.c:
* libguile/stacks.c:
* libguile/threads.c:
* libguile/vm.c: Remove calls to scm_permanent_object, as they are no
longer needed with the BDW GC.
| Andy Wingo | 2009-12-05 | 1 | -4/+2 |
* | Avoid throw from critical section, given invalid sigaction call...* libguile/scmsigs.c (scm_sigaction_for_thread): Exit critical section
before raising out-of-range error.
* test-suite/Makefile.am (SCM_TESTS): Add signals.test.
* test-suite/tests/signals.test: New file.
| Neil Jerram | 2009-09-30 | 1 | -1/+4 |
* | Remove unneeded `scm_without_guile ()' call....* libguile/scmsigs.c (read_without_guile_data, do_read_without_guile,
read_without_guile): Remove.
(signal_delivery_thread): Use read(2) instead of `read_without_guile ()'.
| Ludovic Courtès | 2009-08-19 | 1 | -28/+2 |
* | Remove AC_SYS_RESTARTABLE_SYSCALLS and related code...As the Autoconf documentation says, "These days portable programs
[...] should not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays
whether a system call is restartable is a dynamic issue, not a
configuration-time issue."
In other words, if we ever rely on HAVE_RESTARTABLE_SYSCALLS, we are
at the mercy of any code that Guile happens to be linked with, because
that code could install a signal handler without the SA_RESTART flag,
and then a Guile system call could unexpectedly return EINTR.
The readline part of this goes back to this problem report:
http://sources.redhat.com/ml/guile/2000-05/msg00177.html; and is an
excellent example of the above paragraph. It was noted during the
discussion that undefining HAVE_RESTARTABLE_SYSCALLS would fix the
problem, but that solution wasn't adopted - I guess because Guile was
still using cooperative threads then (not pthreads) and so there was a
significant concern (whether founded or not) that not using
restartable syscalls (where available) could lead to a loss of
performance.
Now Guile's default mode of operation is with pthreads, where we
already don't assume that HAVE_RESTARTABLE_SYSCALLS is reliable, so
there is no possible further performance loss. And in any case we
really have no choice, if we want correct operation.
Thanks to Sylvain Beucler for reporting this and suggesting the fix.
* configure.in (AC_SYS_RESTARTABLE_SYSCALLS): Removed.
* doc/ref/posix.texi (Signals): Remove statement that Guile always
sets SA_RESTART flag.
* guile-readline/configure.in (GUILE_SIGWINCH_SA_RESTART_CLEARED):
Remove this setting, together with its test code.
(HAVE_RL_PRE_INPUT_HOOK): Remove this setting and its code, as no
longer needed.
* guile-readline/readline.c (sigwinch_enable_restart): Removed.
(scm_init_readline): Remove setting of rl_pre_input_hook.
* libguile/_scm.h (SCM_SYSCALL): Remove the definition that relies on
HAVE_RESTARTABLE_SYSCALLS.
* libguile/scmsigs.c (scm_sigaction_for_thread): Don't always set the
SA_RESTART flag if available. Update docstring accordingly.
(scm_init_scmsigs): Remove code that sets SA_RESTART flag for all
signals.
* THANKS: Add Sylvain.
| Neil Jerram | 2009-06-23 | 1 | -34/+2 |
* | Change Guile license to LGPLv3+...(Not quite finished, the following will be done tomorrow.
module/srfi/*.scm
module/rnrs/*.scm
module/scripts/*.scm
testsuite/*.scm
guile-readline/*
)
| Neil Jerram | 2009-06-17 | 1 | -6/+7 |
* | Check the return value of libc's functions to make `_FORTIFY_SOURCE=2' work....This fixes bug #24009 reported by Martin Pitt.
* libguile/threads.c (guilify_self_1): Check the return value of
pipe(2).
(scm_std_select): Use `full_read ()' instead of `read ()' when reading
from WAKEUP_FD.
* libguile/async.c (scm_i_queue_async_cell): Use `full_write ()' instead
of write(2) when writing to SLEEP_FD.
* libguile/fports.c (fport_flush): Likewise.
* libguile/posix.c (getgroups): Use the return value of getgroups(2) as
NGROUPS.
(scm_nice): Get the return value of nice(2) to make glibc happy.
* libguile/scmsigs.c (take_signal): Use `full_write ()' instead of
write(2).
| Ludovic Courtès | 2008-11-30 | 1 | -1/+4 |
* | Include <config.h> in all C files; use `#ifdef HAVE_CONFIG_H' rather than `#if'. | Ludovic Courtès | 2008-09-13 | 1 | -1/+1 |
* | Fix builds `--without-threads'. | Ludovic Courtès | 2008-08-27 | 1 | -1/+3 |
* | Changes from arch/CVS synchronization | Ludovic Courtès | 2007-10-20 | 1 | -8/+42 |
* | merge from 1.8 branch | Kevin Ryde | 2007-03-07 | 1 | -3/+15 |
* | merge from 1.8 | Kevin Ryde | 2007-01-15 | 1 | -4/+20 |
* | merge from 1.8 branch | Kevin Ryde | 2006-04-17 | 1 | -1/+1 |
* | (do_read_without_guile): Use the "raw_data" passed in...(rather than an uninitialized pointer on the stack).
| Neil Jerram | 2005-12-14 | 1 | -1/+1 |
* | (read_without_guile): New....(signal_delivery_thread): Use it instead of
scm_leave_guile/read/scm_enter_guile.
| Marius Vollmer | 2005-12-06 | 1 | -4/+27 |
* | The FSF has a new address. | Marius Vollmer | 2005-05-23 | 1 | -1/+1 |
* | (signal_delivery_thread): Return a value, to avoid...compile warning reported by Werner Scheinast.
| Neil Jerram | 2005-05-10 | 1 | -0/+2 |
* | See ChangeLog from 2005-03-02. | Marius Vollmer | 2005-03-02 | 1 | -141/+110 |
* | (scm_sigaction_for_thread): Use scm_to_long for...sa_handler, needs to be a long on 64-bit systems where int is only 32
bits.
| Kevin Ryde | 2005-01-24 | 1 | -1/+1 |
* | Use new vector elements API or simple vector API, as appropriate....Removed SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
| Marius Vollmer | 2005-01-02 | 1 | -16/+16 |
* | *** empty log message *** | Marius Vollmer | 2004-09-22 | 1 | -2/+2 |
* | * numbers.h, numbers.c, discouraged.h, discouraged.c (scm_short2num,...scm_ushort2num, scm_int2num, scm_uint2num, scm_long2num,
scm_ulong2num, scm_size2num, scm_ptrdiff2num, scm_num2short,
scm_num2ushort, scm_num2int, scm_num2uint, scm_num2long,
scm_num2ulong, scm_num2size, scm_num2ptrdiff, scm_long_long2num,
scm_ulong_long2num, scm_num2long_long, scm_num2ulong_long):
Discouraged by moving to discouraged.h and discouraged.c and
reimplementing in terms of scm_from_* and scm_to_*. Changed all uses
to the new scm_from_* and scm_to_* functions.
| Marius Vollmer | 2004-08-02 | 1 | -16/+16 |
* | * tags.h, deprecated.h (SCM_EQ_P): Deprecated by moving it into...deprecated.h. Replaced all uses with scm_is_eq.
| Marius Vollmer | 2004-07-27 | 1 | -2/+2 |
* | * deprecated.h, deprecated.c, numbers.h (SCM_INUMP, SCM_NINUMP,...SCM_INUM): Deprecated by reenaming them to SCM_I_INUMP, SCM_I_NINUMP
and SCM_I_INUM, respectively and adding deprecated versions to
deprecated.h and deprecated.c. Changed all uses to either use the
SCM_I_ variants or scm_is_*, scm_to_*, or scm_from_*, as appropriate.
| Marius Vollmer | 2004-07-23 | 1 | -8/+8 |
* | * validate.h, deprecated.h (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY,...SCM_VALIDATE_BIGINT, SCM_VALIDATE_INUM_MIN,
SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible. Changed all uses to scm_to_size_t
or similar.
| Marius Vollmer | 2004-07-10 | 1 | -25/+8 |
* | * numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to...SCM_I_MAKINUM and changed all uses.
| Marius Vollmer | 2004-07-08 | 1 | -6/+6 |
* | * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,...SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h".
Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and
scm_is_bool, respectively.
| Marius Vollmer | 2004-07-06 | 1 | -7/+7 |
* | (scm_sigaction_for_thread): Validate that the handler is indeed a...procedure when it isn't a number.
| Marius Vollmer | 2004-05-10 | 1 | -1/+1 |
* | (scm_sigaction_for_thread): Correction to signum range...test, avoids SCM_VECTOR_REF outside bounds of signal_handlers on
calling (sigaction NSIG).
| Kevin Ryde | 2004-04-05 | 1 | -2/+2 |
* | Changed license terms to the plain LGPL thru-out. | Marius Vollmer | 2003-04-05 | 1 | -35/+11 |
* | * scmsigs.c: #include <config.h> if HAVE_CONFIG_H. | Rob Browning | 2003-03-25 | 1 | -0/+4 |