[bknr-cvs] hans changed trunk/thirdparty/hunchentoot/

BKNR Commits bknr at bknr.net
Mon Jul 28 14:18:12 UTC 2008


Revision: 3659
Author: hans
URL: http://bknr.net/trac/changeset/3659

Make locks non-recursive - Recursive locks are not needed for the
kind of application, and it helps cmucl which does not seem to have
recursive locks.

U   trunk/thirdparty/hunchentoot/lispworks.lisp
U   trunk/thirdparty/hunchentoot/session.lisp
U   trunk/thirdparty/hunchentoot/util.lisp

Modified: trunk/thirdparty/hunchentoot/lispworks.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/lispworks.lisp	2008-07-28 14:07:28 UTC (rev 3658)
+++ trunk/thirdparty/hunchentoot/lispworks.lisp	2008-07-28 14:18:12 UTC (rev 3659)
@@ -97,14 +97,6 @@
   "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
   (mp:make-lock :name name))
 
-(defun make-recursive-lock (name)
-  "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
-  (mp:make-lock :name name))
-
-(defmacro with-recursive-lock-held ((lock) &body body)
-  "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
-  `(mp:with-lock (,lock) , at body))
-
 (defmacro with-lock-held ((lock) &body body)
   "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
   `(mp:with-lock (,lock) , at body))

Modified: trunk/thirdparty/hunchentoot/session.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/session.lisp	2008-07-28 14:07:28 UTC (rev 3658)
+++ trunk/thirdparty/hunchentoot/session.lisp	2008-07-28 14:18:12 UTC (rev 3659)
@@ -29,7 +29,7 @@
 
 (in-package :hunchentoot)
 
-(defvar *session-data-lock* (make-recursive-lock "session-data-lock")
+(defvar *session-data-lock* (make-lock "session-data-lock")
   "A lock to prevent two threads from modifying *SESSION-DATA* at the
 same time.")
 
@@ -123,7 +123,7 @@
 (defun session-gc ()
   "Removes sessions from *session-data* which are too old - see
 SESSION-TOO-OLD-P."
-  (with-recursive-lock-held (*session-data-lock*)
+  (with-lock-held (*session-data-lock*)
     (setq *session-data*
             (loop for id-session-pair in *session-data*
                   for (nil . session) = id-session-pair
@@ -148,7 +148,7 @@
 there's no session for the current request."
   (with-rebinding (symbol)
     (with-unique-names (place %session)
-      `(with-recursive-lock-held (*session-data-lock*)
+      `(with-lock-held (*session-data-lock*)
          (let* ((,%session (or ,session (start-session)))
                 (,place (assoc ,symbol (session-data ,%session) :test #'eq)))
            (cond
@@ -189,7 +189,7 @@
       (return-from start-session session))
     (setf session (make-instance 'session)
           (session *request*) session)
-    (with-recursive-lock-held (*session-data-lock*)
+    (with-lock-held (*session-data-lock*)
       (setq *session-data* (acons (session-id session) session *session-data*)))
     (set-cookie *session-cookie-name*
                 :value (session-cookie-value session)
@@ -199,7 +199,7 @@
 (defun remove-session (session)
   "Completely removes the SESSION object SESSION from Hunchentoot's
 internal session database."
-  (with-recursive-lock-held (*session-data-lock*)
+  (with-lock-held (*session-data-lock*)
     (funcall *session-removal-hook* session)
     (setq *session-data*
             (delete (session-id session) *session-data*
@@ -279,7 +279,7 @@
 (defun reset-sessions ()
   "Removes ALL stored sessions and creates a new session secret."
   (reset-session-secret)
-  (with-recursive-lock-held (*session-data-lock*)
+  (with-lock-held (*session-data-lock*)
     (loop for (nil . session) in *session-data*
           do (funcall *session-removal-hook* session))
     (setq *session-data* nil))

Modified: trunk/thirdparty/hunchentoot/util.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/util.lisp	2008-07-28 14:07:28 UTC (rev 3658)
+++ trunk/thirdparty/hunchentoot/util.lisp	2008-07-28 14:18:12 UTC (rev 3659)
@@ -370,16 +370,6 @@
   (bt:make-lock name))
 
 #-:lispworks
-(defun make-recursive-lock (name)
-  "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
-  (bt:make-recursive-lock name))
-
-#-:lispworks
-(defmacro with-recursive-lock-held ((lock) &body body)
-  "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
-  `(bt:with-recursive-lock-held (,lock) , at body))
-
-#-:lispworks
 (defmacro with-lock-held ((lock) &body body)
   "Simple wrapper to allow LispWorks and Bordeaux Threads to coexist."
   `(bt:with-lock-held (,lock) , at body))
\ No newline at end of file




More information about the Bknr-cvs mailing list