X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=impl-sbcl.lisp;fp=impl-sbcl.lisp;h=0000000000000000000000000000000000000000;hb=f8ddd8423e2378c2f61f59ada19c1cbe928489f1;hp=2b43d8ebb5285690da274783c4496240e92e30d6;hpb=fb31277c5dace4cc9cf731c42e5034ace9dc31f2;p=cl-modlisp.git diff --git a/impl-sbcl.lisp b/impl-sbcl.lisp deleted file mode 100644 index 2b43d8e..0000000 --- a/impl-sbcl.lisp +++ /dev/null @@ -1,44 +0,0 @@ -;;; -*- Mode:Lisp; Syntax:Common-lisp; Package: modlisp; Base:10 -*- - -(in-package #:modlisp) - -(defun make-socket-server (name function port &key wait format) - (declare (ignore name)) - (let ((listener (listen-to-inet-port :port port :reuse 1))) - (values - (sb-thread:make-thread - (lambda () (start-socket-server listener function))) - listener))) - - -(defun start-socket-server (listener function) - (handler-case - (when (sb-sys:wait-until-fd-usable - (sb-bsd-sockets:socket-file-descriptor listener) :input) - (unwind-protect - (loop - (let* ((socket (sb-bsd-sockets:socket-accept listener)) - (stream (sb-bsd-sockets:socket-make-stream - socket - :element-type 'base-char - :input t :output t))) - (sb-thread:make-thread - #'(lambda () (apache-command-issuer stream function))))) - (sb-unix:unix-close - (sb-bsd-sockets:socket-file-descriptor listener)))) - (sb-kernel::timeout (c) - (format t "interrupted, time to die~%")))) - -(defun listen-to-inet-port (&key (port 0) (kind :stream) (reuse nil)) - "Create, bind and listen to an inet socket on *:PORT. -setsockopt SO_REUSEADDR if :reuse is not nil" - (let ((socket (make-instance 'sb-bsd-sockets:inet-socket - :type :stream - :protocol :tcp))) - (if reuse - (setf (sb-bsd-sockets:sockopt-reuse-address socket) t)) - (sb-bsd-sockets:socket-bind - socket (sb-bsd-sockets:make-inet-address "0.0.0.0") port) - (sb-bsd-sockets:socket-listen socket 15) - socket)) -