anchor.diff:  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:channel)))
  +      (let ((channel (make-instance 'chanl:bounded-channel :size 1)))
           (gtk:within-gtk-thread
             (funcall thunk channel))
           (chanl:recv channel))))
  
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:        (if (renderer-thread-p)
             (progn
               ,@body)
             (let ((channel (make-instance 'chanl:bounded-channel :size 1)))
               (gtk:within-gtk-thread
                 (chanl:send
                  channel
                  (progn
                    ,@body)))
               (chanl:recv channel))))))
  
  (defmethod ffi-initialize ((browser gtk-browser) urls startup-timestamp)
  