+
+#+lispworks
+(defun lw-worker (handle listener)
+ (let ((connection (make-instance 'comm:socket-stream
+ :socket handle
+ :direction :io
+ :element-type 'base-char)))
+ (if (wait listener)
+ (apply (listener-function listener)
+ connection
+ (function-args listener))
+ (let ((worker (make-instance 'worker :listener listener
+ :connection connection
+ :name (next-worker-name
+ (base-name listener)))))
+ (setf (process worker)
+ (make-process (name worker) (thread-fun worker)))
+ (push worker (workers listener))))))