Initial commit.
commit
7a26e3dd71
@ -0,0 +1 @@
|
|||||||
|
This is the stub README.txt for the "cl-init" project.
|
@ -0,0 +1,11 @@
|
|||||||
|
;;;; cl-init.asd
|
||||||
|
|
||||||
|
(asdf:defsystem #:cl-init
|
||||||
|
:serial t
|
||||||
|
:description "Describe cl-init here"
|
||||||
|
:author "Your Name <your.name@example.com>"
|
||||||
|
:license "Specify license here"
|
||||||
|
:depends-on (#:swank)
|
||||||
|
:components ((:file "package")
|
||||||
|
(:file "cl-init")))
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
(in-package #:cl-init)
|
||||||
|
|
||||||
|
(defparameter *start-thunk* #'(lambda () nil))
|
||||||
|
(defparameter *stop-thunk* #'(lambda () nil))
|
||||||
|
|
||||||
|
(defparameter *shutdown-port* 6200)
|
||||||
|
|
||||||
|
(require 'swank)
|
||||||
|
(defparameter *swank-port* 4006)
|
||||||
|
(defparameter *swank-server* nil)
|
||||||
|
|
||||||
|
(defun run ()
|
||||||
|
(format t "~A ~S~%" "starting swank on port" *swank-port*)
|
||||||
|
(setf *swank-server*
|
||||||
|
(swank:create-server :port *swank-port* :dont-close t))
|
||||||
|
(format t "swank started~%starting external process~%")
|
||||||
|
|
||||||
|
(apply *start-thunk* nil)
|
||||||
|
(format t "external process running~%")
|
||||||
|
|
||||||
|
; wait for stop signal
|
||||||
|
(let* ((socket (ccl:make-socket :local-port *shutdown-port* :connect :passive))
|
||||||
|
(stream (ccl:accept-connection socket))) ; wait for anything
|
||||||
|
(close stream)
|
||||||
|
(close socket))
|
||||||
|
|
||||||
|
(format t "stopping external process~%")
|
||||||
|
(apply *stop-thunk* nil)
|
||||||
|
(format t "external process stopped~%stopping swank~%")
|
||||||
|
(swank:stop-server *swank-port*)
|
||||||
|
(format t "swank stopped~%")
|
||||||
|
(ccl:quit))
|
@ -0,0 +1,4 @@
|
|||||||
|
(defpackage #:cl-init
|
||||||
|
(:use #:cl)
|
||||||
|
(:export #:*swank-port* #:*start-thunk* #:*stop-thunk* #:run))
|
||||||
|
|
Loading…
Reference in New Issue