|
[Sbcl-commits] CVS: sbcl/src/runtime gc-common.c, 1.60,
1.61 interr.c, 1.24, 1.25 interrupt.c, 1.167, 1.168
From: Gabor Melis <melisgl@us...> - 2009-03-01 15:57
|
Update of /cvsroot/sbcl/sbcl/src/runtime
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19211/src/runtime
Modified Files:
gc-common.c interr.c interrupt.c
Log Message:
1.0.25.57: fix compilation on win32
Index: gc-common.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/gc-common.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- gc-common.c 16 Feb 2009 22:01:45 -0000 1.60
+++ gc-common.c 1 Mar 2009 15:57:08 -0000 1.61
@@ -2454,15 +2454,19 @@
* here. */
((SymbolValue(INTERRUPTS_ENABLED,thread) != NIL) ||
(SymbolValue(ALLOW_WITH_INTERRUPTS,thread) != NIL))) {
+#ifndef LISP_FEATURE_WIN32
sigset_t *context_sigmask = os_context_sigmask_addr(context);
if (!deferrables_blocked_in_sigset_p(context_sigmask)) {
- FSHOW((stderr, "/maybe_gc: calling POST_GC\n"));
thread_sigmask(SIG_SETMASK, context_sigmask, 0);
check_gc_signals_unblocked_or_lose();
+#endif
+ FSHOW((stderr, "/maybe_gc: calling POST_GC\n"));
funcall0(StaticSymbolFunction(POST_GC));
+#ifndef LISP_FEATURE_WIN32
} else {
FSHOW((stderr, "/maybe_gc: punting on POST_GC due to blockage\n"));
}
+#endif
}
undo_fake_foreign_function_call(context);
FSHOW((stderr, "/maybe_gc: returning\n"));
Index: interr.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interr.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- interr.c 16 Feb 2009 21:36:13 -0000 1.24
+++ interr.c 1 Mar 2009 15:57:08 -0000 1.25
@@ -95,8 +95,10 @@
corruption_warning_and_maybe_lose(char *fmt, ...)
{
va_list ap;
+#ifndef LISP_FEATURE_WIN32
sigset_t oldset;
thread_sigmask(SIG_BLOCK, &blockable_sigset, &oldset);
+#endif
fprintf(stderr, "CORRUPTION WARNING");
va_start(ap, fmt);
print_message(fmt, ap);
@@ -109,8 +111,10 @@
fflush(stderr);
if (lose_on_corruption_p)
call_lossage_handler();
+#ifndef LISP_FEATURE_WIN32
else
thread_sigmask(SIG_SETMASK,&oldset,0);
+#endif
}
/* internal error handler for when the Lisp error system doesn't exist
Index: interrupt.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -d -r1.167 -r1.168
--- interrupt.c 16 Feb 2009 22:30:25 -0000 1.167
+++ interrupt.c 1 Mar 2009 15:57:08 -0000 1.168
@@ -309,6 +309,7 @@
void
maybe_save_gc_mask_and_block_deferrables(sigset_t *sigset)
{
+#ifndef LISP_FEATURE_WIN32
struct thread *thread = arch_os_get_current_thread();
struct interrupt_data *data = thread->interrupt_data;
sigset_t oldset;
@@ -341,6 +342,7 @@
}
}
thread_sigmask(SIG_SETMASK,&oldset,0);
+#endif
}
/* Are we leaving WITH-GCING and already running with interrupts
@@ -363,6 +365,7 @@
void
check_interrupt_context_or_lose(os_context_t *context)
{
+#ifndef LISP_FEATURE_WIN32
struct thread *thread = arch_os_get_current_thread();
struct interrupt_data *data = thread->interrupt_data;
int interrupt_deferred_p = (data->pending_handler != 0);
@@ -411,6 +414,7 @@
* that run lisp code. */
check_gc_signals_unblocked_in_sigset_or_lose(sigset);
}
+#endif
}
/* When we catch an internal error, should we pass it back to Lisp to
@@ -745,7 +749,9 @@
* the os_context for the signal we're currently in the
* handler for. This should ensure that when we return from
* the handler the blocked signals are unblocked. */
+#ifndef LISP_FEATURE_WIN32
sigcopyset(os_context_sigmask_addr(context), &data->pending_mask);
+#endif
data->gc_blocked_deferrables = 0;
}
@@ -1170,8 +1176,10 @@
void
arrange_return_to_lisp_function(os_context_t *context, lispobj function)
{
+#ifndef LISP_FEATURE_WIN32
check_gc_signals_unblocked_in_sigset_or_lose
(os_context_sigmask_addr(context));
+#endif
#if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64))
void * fun=native_pointer(function);
void *code = &(((struct simple_fun *) fun)->code);
|
| Thread | Author | Date |
|---|---|---|
| [Sbcl-commits] CVS: sbcl/src/runtime gc-common.c, 1.60, 1.61 interr.c, 1.24, 1.25 interrupt.c, 1.167, 1.168 | Gabor Melis <melisgl@us...> |