anchor.diff:                                        ,(match-expr ro.))
                                    (return ,ro.))
                                   (t
  -                                 (atomic-decf (the fixnum (car ,lock.)))) ))))))
  +                                 (resource-atomic-decf (the fixnum (car ,lock.)))) ))))))
                  
                  (allocator ()
                    ;; Function for ALLOCATE-RESOURCE
  
positive.code:                                         `(setf (car ,q.) nil ,q. (cdr ,q.))))
                             nil)
                          (let ((,lock. (resource-object-lock ,ro.)))
                            (atomic-decf (the fixnum (car ,lock.)))))))) )
          ;;
          (let* ((r.           (gensym "R."))
                 (q.           (gensym "Q."))
  
negative.code:                (resource-object-object resource-object)
                 (not (zerop (car (resource-object-lock resource-object))))
                 name))))
  
  (defparameter *resource-atomic-lock*
    (clim-sys:make-lock "atomic incf/decf"))
  
  (defmacro resource-atomic-incf (place)
    `(clim-sys:with-lock-held (*resource-atomic-lock*)
         (incf ,place)))
  
  (defmacro resource-atomic-decf (place)
    `(clim-sys:with-lock-held (*resource-atomic-lock*)
         (decf ,place)))
  
  (defmacro defresource (name parameters
                              &key (constructor (error "~S argument is required" :constructor))
  