Re: problems running v. 70-190a with ACL 6.2

Karsten Poeck <[email protected]> Sat, 12 Jun 2004 13:20:58 +0200
Newsgroups gmane.lisp.cl-http
Message-ID <[email protected]>
Hello Ben,

I see two definitions of %allocate-resource in cl-http
one in clim-sys;resources.lisp like
(defmethod %allocate-resource ((resource resource) args &aux newly-created-p)
    (with-slots (free-list) resource
        (flet ((create-object ()
                    (let* ((constructor (resource-constructor resource))
                              (object (apply constructor resource args)))
                       (with-atomic-execution
                           (vector-push-extend object (resource-pool 
resource)))
                       (setq newly-created-p t)
                       object)))
           (declare (inline create-object))
           ;; find an object
           (let ((object (or (with-atomic-execution (pop free-list)) 
(create-object)))
                   (initializer (resource-initializer resource)))
              (when initializer
	       (if (clim-sys-p resource)
		   (apply initializer object args)
                  (apply initializer resource object args)))
              (values object newly-created-p)))))

and a second in
mcl;server;resources.lisp
(defmethod %allocate-resource ((resource resource) args &aux newly-created-p)
    (with-slots (free-list) resource
        (flet ((create-object ()
                    (let* ((constructor (resource-constructor resource))
                              (object (apply constructor resource args)))
                       (with-atomic-execution
                           (vector-push-extend object (resource-pool 
resource)))
                       (setq newly-created-p t)
                       object)))
           (declare (inline create-object))
           ;; find an object
           (let ((object (or (with-atomic-execution (pop free-list)) 
(create-object)))
                   (initializer (resource-initializer resource)))
              (when initializer
                  (apply initializer resource object args))
              (values object newly-created-p)))))

They only differ in the the form
(if (clim-sys-p resource)
		   (apply initializer object args)
                  (apply initializer resource object args))

In my environment the former definition is active since clim-sys is loaded 
before cl-http-sys

I would bet a glass of spanish cava that for some reason in your 
environment the clim-sys version of allocate resource is active.
Either you use the mcl definition or 
change  path-initialize-resourced-server to
(defun patch-initialize-resourced-server (server set-stream set-host 
set-address)
   (initialize-resourced-server 'http-server server set-stream set-host 
set-address))

Hope that helps

Karsten