[cells-devel] Re: [cello-devel] Constructor syntax
Kenny Tilton
ktilton at nyc.rr.com
Thu May 13 03:47:47 UTC 2004
Oops. After an error, *to-be-awakened* needs to be cleared in a
protected form. That stuff is ugly, and I think Cells: The Next
Generation will make that and other ugliness go away.
For now, try this:
(defun to-be (self)
(trc "to-be> entry" self (md-state self))
(progn ;;wtrc (0 100 "to-be> entry" self (md-state self) (length
*to-be-awakened*))
(when (eql :nascent (md-state self)) ;; formwithview to-be-primary
:after => rv-stitch! => side-effects
(let ((already *to-be-awakened*))
(setf *to-be-awakened* (nconc *to-be-awakened* (list self)))
(unwind-protect
(progn
(trc nil "to-be deferring awaken" self)
(kids self) ;; sick, just for side effect
(unless already
(trc nil "top to-be awakening deferred" self (length
*to-be-awakened*))
(do* ((mds *to-be-awakened* (cdr mds))
(md (car mds) (car mds)))
((null mds))
(if (eql :nascent (md-state md))
(md-awaken md)
(trc nil "not md-awakening non-nascent" md)))))
(setf *to-be-awakened* nil)))))
self)
kt
More information about the cello-devel
mailing list