Hey,

In openair, I'm getting problems with dead instances.  I think its
maybe because I'm working against cells.

What I need to do is keep track somewhere of all the nodes that change
in response to a request.  Currently, this is done using an "update"
slot which we setf on an xhtml observer.

(defobserver xhtml ((self html))
  (when (and new-value
             (do-send self new-value old-value))
    (trc "new xhtml" new-value)
      (setf (update self)
            (format nil "$(\"#~a\").replaceWith(\"~a\")" (md-name self)
                    (js-escape new-value)))))

When a new request comes in, we do the following:

  - walk the family tree, setting the update slot to nil.
  - feed the request parameters into the model
  - walk the family tree looking for places where update is not nil
and sending it to the browser

In some cases, that works fine but in others, we find dead cells while
walking the tree the first time.

Another point to note is that the update slot is specified as :cell
nil.  Based on its purpose and usage, does that make sense?

Should I be wrapping this traversal in with-integrity or something?

Cheers,
Andy
_______________________________________________
cells-devel site list
cells-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/cells-devel

Reply via email to