anchor.diff:  (cl:in-package :cl-bodge.graphics)
   
  +
  +(define-constant +default-fence-timeout+ (* 60 60 1000000))
   
   (defclass ping-pong-side ()
     ((object :initform nil :initarg :object :reader ping-pong-side-object)
  
positive.code: 
  (defun ping-pong-swap (object)
    (with-slots (front back) object
      (with-side-locked (front)
        (with-side-locked (back)
          (wait-for-side front)
          (wait-for-side back)
          (let ((tmp front))
            (setf front back
                  back tmp))))))
  
negative.code:   (with-slots (fence lock) side
      (let ((fence (bt:with-recursive-lock-held (lock) fence)))
        (when fence
          (%gl:client-wait-sync fence :sync-flush-commands +default-fence-timeout+)))))
  
  
  (defun refresh-side-fence (side)
  