diff --git a/dataserver.lisp b/dataserver.lisp index 76153c2..2936c08 100644 --- a/dataserver.lisp +++ b/dataserver.lisp @@ -6,7 +6,6 @@ ;; Databases (defparameter *ildb* nil) (defparameter *trackdb* nil) -(defparameter *trackdb-temp* nil) ;; Command-line arguments (defparameter *debugp* nil) @@ -16,21 +15,25 @@ (defparameter *server-port* nil) (defparameter *server* nil) +#+sbcl(declaim (sb-ext:always-bound *ildb* *trackdb* + *debugp* *gcp* *world-path* *server-port* *server*)) + (defmacro ensure-world-path (path) `(uiop:ensure-pathname ,path :defaults (uiop:getcwd) :ensure-directory t :want-existing t :ensure-absolute t)) (defmacro savefilepath (name) - `(uiop:subpathname *world-path* (concatenate 'string "advtrains_" ,name))) + `(uiop:subpathname *world-path* ,(if (stringp name) + (concatenate 'string "advtrains_" name) + `(concatenate 'string "advtrains_" ,name)))) (defun load-data () - (let* ((ildb (atil:load-ildb (savefilepath "interlocking.ls")))) - (multiple-value-bind (tdb tdbtemp) (tracks:load-trackdb (savefilepath "ndb4.ls")) - (if *debugp* (setf *trackdb-temp* tdbtemp)) - (psetf *ildb* ildb *trackdb* tdb))) - (when *gcp* - #+sbcl(sb-ext:gc :full t)) - (hunchentoot:acceptor-log-message *server* :info "Database updated")) + (let* ((ildb (atil:load-ildb (savefilepath "interlocking.ls"))) + (tdb (tracks:load-trackdb (savefilepath "ndb4.ls")))) + (psetf *ildb* ildb *trackdb* tdb) + (when *gcp* + #+sbcl(sb-ext:gc :full t)) + (hunchentoot:acceptor-log-message *server* :info "Database updated"))) (defmacro mainloop () `(loop (load-data) (sleep 20))) diff --git a/tracks/database.lisp b/tracks/database.lisp index 1dae1dc..5e504bb 100644 --- a/tracks/database.lisp +++ b/tracks/database.lisp @@ -133,7 +133,7 @@ (push adj (aref connects (dir-c i)))) (setf (get-track tdb pos) (make-track :connects connects)))) (optimize-track-database tdb) - (values tdb tmpdb))) + tdb)) (defun gvdump (tdb) (with-output-to-string (stream)