X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=impl-lispworks.lisp;h=15a9569573086edeb97fd858723575aec17e64ce;hb=fb31277c5dace4cc9cf731c42e5034ace9dc31f2;hp=351b35f6904703d4f9f9b547f76203ec4a26c1a3;hpb=118ee93d69e2b09d12eb317f6db3fbda113be82f;p=cl-modlisp.git diff --git a/impl-lispworks.lisp b/impl-lispworks.lisp index 351b35f..15a9569 100644 --- a/impl-lispworks.lisp +++ b/impl-lispworks.lisp @@ -2,15 +2,22 @@ (in-package #:modlisp) -(require "comm") +(defvar *processor*) +(let ((*processor* nil)) + + (defun make-socket-server (name function port &key wait (format :text)) + (setq *processor* function) + (values + (comm:start-up-server + :service port + :process-name name + :function 'socket-worker) + nil)) -(defun make-socket-server (name port function &key wait (format :text)) - (comm:start-up-server - :function (lambda (handle) - (let ((stream (make-instance 'comm:socket-stream :socket handle - :direction :io - :element-type 'base-char))) - (mp:process-run-function - (next-worker-name) '() - 'apache-command-issuer stream function))) - :service port :process-name name)) + (defun socket-worker (socket) + (let ((stream (make-instance 'comm:socket-stream :socket socket + :direction :io + :element-type 'base-char))) + (mp:process-run-function + (next-worker-name) '() + 'apache-command-issuer stream *processor*))))