to global variables using SYMBOL-VALUE and a constant argument.
* enhancement: SIGINT now causes a specific condition
SB-SYS:INTERACTIVE-INTERRUPT to be signalled.
- * bug fix: adding and removing fd-handlers is now thread-safe.
+ * bug fix: adding and removing fd-handlers is now interrupt-safe.
* bug fix: inlined calls to C now ensure 16byte stack alignment on
x86/Darwin.
* bug fix: bad type declaration in the CLOS implementation has
#!+sb-doc
"List of all the currently active handlers for file descriptors")
-(defvar *descriptor-handler-lock*
- (sb!thread::make-spinlock :name "descriptor handle lock"))
-
(sb!xc:defmacro with-descriptor-handlers (&body forms)
;; FD-STREAM functionality can add and remove descriptors on it's
- ;; own, and two threads adding add the same time could lose one.
- ;;
- ;; This is never held for long, so a spinlock is fine.
- `(without-interrupts
- (sb!thread::with-spinlock (*descriptor-handler-lock*)
- ,@forms)))
+ ;; own, so getting an interrupt while modifying this and the
+ ;; starting to recursively modify it could lose...
+ `(without-interrupts ,@forms))
(defun list-all-descriptor-handlers ()
(with-descriptor-handlers
res)))
;;; Destructively resize TABLE to have room for at least SIZE entries
-;;; and rehash its existing entries.
+;;; and rehash its existing entries.
(defun resize-package-hashtable (table size)
(let* ((vec (package-hashtable-table table))
(hash (package-hashtable-hash table))
;;; 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".)
-"1.0.4.78"
+"1.0.4.79"