From: Daniel B. <da...@us...> - 2003-08-27 18:05:59
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs1:/tmp/cvs-serv2903 Modified Files: version.lisp-expr Log Message: 0.8.3.1 Merge stop_the_world branch: a new scheme for stopping threads during GC, that avoids the use of ptrace and lets any of the threads stop any of the others. This is a summary log entry: see branch commits for details New C functions maybe_defer_handler and run_deferred_handler, which encapsulate a lot of the "is it safe to run this handler now? no, ok, copy its siginfo somewhere safe and do it later" cruft that's presently done ad hoc. Stack scavenging now looks for esp in the most recent interrupt context for each thread. Requires that threads save said interrupt contexts in sig_stop_for_gc_handler Clean up some compiler warnings in gencgc.c Lisp-level changes: approximately a reversion to old-style (or single-threaded) GC. Haven't actually added the gc hooks back in yet, but now there's at least a place for them to go. Lock around SUB-GC to remove window that may allow two threads to attempt to collect at once. WITHOUT-INTERRUPTS around SUB-GC to protect c-level spinlocks used in gc_{stop,start}_the_world (C-level spinlocks are just integers manipulated by get_spinlock(), release_spinlock(). There's no unwind-protect or anything involved in their use, so a thread interrupted when it's holding one of these will continue to hold it) Remove #if 0 from around the copying of sigmask in undo_fake_foreign_function_call. Replace sizeof(sigmask_t) with an expression involving the value of NSIG and the rash assumption that sigset_t is a bitmask. Moved get_spinlock into foo-arch.h and made it static inline. Added release_spinlock for parity Delete irritating message from sigcont_handler New test cases Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.1185 retrieving revision 1.1186 diff -u -d -r1.1185 -r1.1186 --- version.lisp-expr 25 Aug 2003 12:32:58 -0000 1.1185 +++ version.lisp-expr 25 Aug 2003 21:00:00 -0000 1.1186 @@ -16,5 +16,4 @@ ;;; with something arbitrary in the fourth field, is used for CVS ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS -;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.3" +"0.8.3.1" |