Edi Weitz wrote:
As for the implementation, please look into the port-sbcl.lisp and unix-sbcl.lisp files. If for specific parts you know a better way to do this, please report it - I'm not an SBCL expert. See also the GET-GID-FROM-NAME function.
I believe that the *CURRENT-PROCESS* symbol macros do not need to quote their return values. This was preventing the dead worker threads from being removed from the server object in SBCL.
Cheers,
-- Travis
Mon Oct 2 00:45:15 EDT 2006 Travis Cross tc@traviscross.com * Fixed the *current-process* symbol-macro for LW. Mon Oct 2 00:24:09 EDT 2006 Travis Cross tc@traviscross.com * Fixed the *current-process* symbol-macro for SBCL. diff -rN -u old-tbnl/port-lw.lisp new-tbnl/port-lw.lisp --- old-tbnl/port-lw.lisp 2006-10-02 00:46:09.000000000 -0400 +++ new-tbnl/port-lw.lisp 2006-10-02 00:46:09.000000000 -0400 @@ -83,7 +83,7 @@ (mp:process-kill process))
(define-symbol-macro *current-process* - 'mp:*current-process*) + mp:*current-process*)
(defun process-allow-scheduling () (mp:process-allow-scheduling)) diff -rN -u old-tbnl/port-sbcl.lisp new-tbnl/port-sbcl.lisp --- old-tbnl/port-sbcl.lisp 2006-10-02 00:46:09.000000000 -0400 +++ new-tbnl/port-sbcl.lisp 2006-10-02 00:46:09.000000000 -0400 @@ -61,7 +61,7 @@ (sb-thread:terminate-thread process))
(define-symbol-macro *current-process* - 'sb-thread:*current-thread*) + sb-thread:*current-thread*)
(defun process-allow-scheduling () (sleep .1))