summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2002-10-11 13:02:50 +0000
committerMarius Vollmer <mvo@zagadka.de>2002-10-11 13:02:50 +0000
commit4feac0b9045bcc0c6e2348b3de94bacdc7a30293 (patch)
treed78f6a9700421ca44cb2e924a53b66641aec9f2a
parent6d16b1257f79d745b5af61c5cb8aff89c4988c26 (diff)
downloadguile-4feac0b9045bcc0c6e2348b3de94bacdc7a30293.tar.gz
* async.c (s_scm_system_async_mark_for_thread): Only call
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.
-rw-r--r--libguile/async.c4
-rw-r--r--libguile/scmsigs.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/libguile/async.c b/libguile/async.c
index 994a8ef04..6b133fb68 100644
--- a/libguile/async.c
+++ b/libguile/async.c
@@ -229,10 +229,14 @@ SCM_DEFINE (scm_system_async_mark_for_thread, "system-async-mark", 1, 1, 0,
"use the current thread.")
#define FUNC_NAME s_scm_system_async_mark_for_thread
{
+#ifdef USE_THREADS
scm_i_queue_async_cell (scm_cons (proc, SCM_BOOL_F),
(SCM_UNBNDP (thread)
? scm_root
: scm_i_thread_root (thread)));
+#else
+ scm_i_queue_async_cell (scm_cons (proc, SCM_BOOL_F), scm_root);
+#endif
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index 766a7b25d..889751d0c 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -129,9 +129,14 @@ take_signal (int signum)
{
if (signum >= 0 && signum < NSIG)
{
+#ifdef USE_THREADS
SCM thread = SCM_VECTOR_REF (signal_handler_threads, signum);
scm_i_queue_async_cell (SCM_VECTOR_REF(signal_handler_cells, signum),
scm_i_thread_root (thread));
+#else
+ scm_i_queue_async_cell (SCM_VECTOR_REF(signal_handler_cells, signum),
+ scm_root);
+#endif
}
#ifndef HAVE_SIGACTION
signal (signum, take_signal);
@@ -213,11 +218,17 @@ SCM_DEFINE (scm_sigaction_for_thread, "sigaction", 1, 3, 0,
action.sa_flags |= SCM_INUM (flags);
}
sigemptyset (&action.sa_mask);
+#endif
+
+#ifdef USE_THREAD
if (SCM_UNBNDP (thread))
thread = scm_current_thread ();
else
SCM_VALIDATE_THREAD (4, thread);
+#else
+ thread = SCM_BOOL_F;
#endif
+
SCM_DEFER_INTS;
old_handler = SCM_VECTOR_REF(*signal_handlers, csig);
if (SCM_UNBNDP (handler))