anchor.diff:         (if (renderer-thread-p)
              (progn
                ,@body)
  -           (let ((channel (make-instance 'chanl:channel)))
  +           (let ((channel (make-instance 'chanl:bounded-channel :size 1)))
                (gtk:within-gtk-thread
                  (chanl:send
                   channel
                   (progn
  -                  ,@body)
  -                :blockp nil))
  +                  ,@body)))
                (chanl:recv channel))))))
   
   (defmethod ffi-initialize ((browser gtk-browser) urls startup-timestamp)
  
positive.code:       javascript
        (when channel
          (lambda (result)
            (chanl:send channel result :blockp nil)))
        #'javascript-error-handler))))
  
  (defmethod ffi-buffer-evaluate-javascript-async ((buffer gtk-buffer) javascript)
  
negative.code: Otherwise run the THINK on the renderer thread by passing it a channel and wait on the channel's result."
    (if (renderer-thread-p)
        (funcall thunk)
        (let ((channel (make-instance 'chanl:bounded-channel :size 1)))
          (gtk:within-gtk-thread
            (funcall thunk channel))
          (chanl:recv channel))))
  