diff -Ndrux '*.fasl' /usr/share/common-lisp/source/clx/dependent.lisp clx/dependent.lisp --- /usr/share/common-lisp/source/clx/dependent.lisp 2005-04-29 17:12:08.000000000 +0200 +++ clx/dependent.lisp 2005-10-03 07:16:17.000000000 +0200 @@ -1179,7 +1179,7 @@ (defun process-block (whostate predicate &rest predicate-args) (declare (ignore whostate)) (declare (type function predicate)) - (let* ((pid (sb-thread:current-thread-id)) + (let* ((pid (current-process)) (last (gethash pid *process-conditions*)) (lock (or (car last) @@ -1197,7 +1197,7 @@ (sb-thread:condition-wait queue lock)) (sb-ext:timeout () (format *trace-output* "thread ~A, process-block timed out~%" - (sb-thread:current-thread-id) ))))))) + (current-process)))))))) ;;; PROCESS-WAKEUP: Check some other process' wait function. @@ -1241,7 +1241,7 @@ (defun process-wakeup (process) (declare (ignore process)) (destructuring-bind (lock . queue) - (gethash (sb-thread:current-thread-id) *process-conditions* + (gethash (current-process) *process-conditions* (cons nil nil)) (declare (ignore lock)) (when queue @@ -1282,7 +1282,10 @@ #+sbcl (defun current-process () - (sb-thread:current-thread-id)) + #+#.(cl:if (cl:find-symbol "THREAD-NAME" "SB-THREAD") '(and) '(or)) + sb-thread:*current-thread* + #-#.(cl:if (cl:find-symbol "THREAD-NAME" "SB-THREAD") '(and) '(or)) + (sb-thread:current-thread-id)) ;;; WITHOUT-INTERRUPTS -- provide for atomic operations.