From 776592863c5a4fb5744cff5610f8b129e0e61c14 Mon Sep 17 00:00:00 2001 From: Akira Tempaku <paku@skyizwhite.dev> Date: Sun, 4 May 2025 22:48:33 +0900 Subject: [PATCH] Improve handling server --- src/main.lisp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main.lisp b/src/main.lisp index 2c311c4..58b2a7b 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -9,22 +9,24 @@ #:reload)) (in-package #:website) -(defparameter *handler* nil) +(defparameter *server* nil) (defun start () - (if *handler* - (format t "The server is already running.~%") - (setf *handler* (clack:clackup *app* - :server :hunchentoot - :address "localhost" - :port 3000)))) + (when *server* + (restart-case (error "Server is already running.") + (restart-server () + :report "Restart the server" + (stop)))) + (setf *server* (clack:clackup *app* + :server :hunchentoot + :address "localhost" + :port 3000))) (defun stop () - (if *handler* - (progn - (clack:stop *handler*) - (setf *handler* nil)) - (format t "The server is not running.~%"))) + (when *server* + (clack:stop *server*) + (format t "Server stopped~%") + (setf *server* nil))) (defun reload () (stop)