Update of /cvsroot/sbcl/sbcl/tools-for-build
In directory sc8-pr-cvs1:/tmp/cvs-serv31939/tools-for-build
Modified Files:
Tag: atropos-branch
grovel_headers.c
Log Message:
0.8.3.95.atropos.1 ; cutting threads
There is getting to be rather a lot of sensible but
not-now-while-we're-releasing code in my thread/gc fix.
So here it is on a branch, hopefully minus the slightly
more evil debugging crud
doc/ - fix up some of the sgml errors that sourceforge keeps
mailing me about
New function release-spinlock that only changes the lock value
if we owned the spinlock, so good for unwind-protect cleanups
when lock acquisition failed
get-spinlock release-spinlock current-thread-id could all win
from being inlinable
Use a RT signal (SIG_DEQUEUE) for resuming threads that were
on queues, instead of having SIGCONT do both this and the
resume-after-gc task.
Scattered commentary describing the state of the signal mask
in various interesting places
In gencgc alloc, only install a deferred handler for GC if
there was no previous handler for anything else. This fixes
a longstanding bug where the GC thread would eat all cpu while
waiting indefinitely for othr threads to stop.
Add SIG_STOP_FOR_GC to the blockable list
interrupt_maybe_gc_int: enable signals before calling SUB-GC,
or the locking that sub-gc does is going to interact badly.
Minor rearrangement to parent thread to stop it having to wake
up on every GC
Inline arch_os_get_current_thread (note, thread.h is not a
sensible place for an x86linuxonly operation, rearrange this
before committing to HEAD)
Add grovel_headers lines for our RT signals. OAOOM alert...
(Actually, of these three we only need SIG-DEQUEUE)
Index: grovel_headers.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel_headers.c,v
retrieving revision 1.11
retrieving revision 1.11.6.1
diff -u -d -r1.11 -r1.11.6.1
--- grovel_headers.c 3 Sep 2003 08:41:54 -0000 1.11
+++ grovel_headers.c 30 Sep 2003 11:23:04 -0000 1.11.6.1
@@ -188,6 +188,11 @@
DEFSIGNAL(SIGXCPU);
DEFSIGNAL(SIGXFSZ);
#endif
-
+#ifdef LISP_FEATURE_SB_THREAD
+ /* FIXME OAOOM alert: this information is duplicated in linux-os.h */
+ defconstant("sig-interrupt-thread",SIGRTMIN);
+ defconstant("sig-stop-for-gc",SIGRTMIN+1);
+ defconstant("sig-dequeue",SIGRTMIN+2);
+#endif
return 0;
}

Thread view

Update of /cvsroot/sbcl/sbcl/tools-for-build
In directory sc8-pr-cvs1:/tmp/cvs-serv31939/tools-for-build
Modified Files:
Tag: atropos-branch
grovel_headers.c
Log Message:
0.8.3.95.atropos.1 ; cutting threads
There is getting to be rather a lot of sensible but
not-now-while-we're-releasing code in my thread/gc fix.
So here it is on a branch, hopefully minus the slightly
more evil debugging crud
doc/ - fix up some of the sgml errors that sourceforge keeps
mailing me about
New function release-spinlock that only changes the lock value
if we owned the spinlock, so good for unwind-protect cleanups
when lock acquisition failed
get-spinlock release-spinlock current-thread-id could all win
from being inlinable
Use a RT signal (SIG_DEQUEUE) for resuming threads that were
on queues, instead of having SIGCONT do both this and the
resume-after-gc task.
Scattered commentary describing the state of the signal mask
in various interesting places
In gencgc alloc, only install a deferred handler for GC if
there was no previous handler for anything else. This fixes
a longstanding bug where the GC thread would eat all cpu while
waiting indefinitely for othr threads to stop.
Add SIG_STOP_FOR_GC to the blockable list
interrupt_maybe_gc_int: enable signals before calling SUB-GC,
or the locking that sub-gc does is going to interact badly.
Minor rearrangement to parent thread to stop it having to wake
up on every GC
Inline arch_os_get_current_thread (note, thread.h is not a
sensible place for an x86linuxonly operation, rearrange this
before committing to HEAD)
Add grovel_headers lines for our RT signals. OAOOM alert...
(Actually, of these three we only need SIG-DEQUEUE)
Index: grovel_headers.c
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel_headers.c,v
retrieving revision 1.11
retrieving revision 1.11.6.1
diff -u -d -r1.11 -r1.11.6.1
--- grovel_headers.c 3 Sep 2003 08:41:54 -0000 1.11
+++ grovel_headers.c 30 Sep 2003 11:23:04 -0000 1.11.6.1
@@ -188,6 +188,11 @@
DEFSIGNAL(SIGXCPU);
DEFSIGNAL(SIGXFSZ);
#endif
-
+#ifdef LISP_FEATURE_SB_THREAD
+ /* FIXME OAOOM alert: this information is duplicated in linux-os.h */
+ defconstant("sig-interrupt-thread",SIGRTMIN);
+ defconstant("sig-stop-for-gc",SIGRTMIN+1);
+ defconstant("sig-dequeue",SIGRTMIN+2);
+#endif
return 0;
}