[cells-cvs] CVS cells

ktilton ktilton at common-lisp.net
Wed May 3 08:22:16 UTC 2006


Update of /project/cells/cvsroot/cells
In directory clnet:/tmp/cvs-serv12351

Modified Files:
	integrity.lisp 
Log Message:


--- /project/cells/cvsroot/cells/integrity.lisp	2006/05/01 20:23:14	1.7
+++ /project/cells/cvsroot/cells/integrity.lisp	2006/05/03 08:22:15	1.8
@@ -47,6 +47,7 @@
     (let ((*within-integrity* t)
           *unfinished-business*
           *defer-changes*)
+      (trc nil "initiating new UFB!!!!!!!!!!!!" opcode defer-info)
       (when (or (zerop *data-pulse-id*)
               (eq opcode :change)
               )
@@ -82,11 +83,13 @@
 
 (defun ufb-add (opcode continuation)
   (assert (find opcode *ufb-opcodes*))
+  (trc nil "ufb-add deferring" opcode (when (eql opcode :client)(car continuation)))
   (fifo-add (ufb-queue-ensure opcode) continuation))
 
 (defun just-do-it (op-or-q &aux (q (if (keywordp op-or-q)
                                        (ufb-queue op-or-q)
                                      op-or-q)))
+  (trc nil "just do it doing" op-or-q)
   (loop for (nil . task) = (fifo-pop q)
         while task
         do (trc nil "unfin task is" opcode task)
@@ -123,11 +126,15 @@
     ;
     (when *stop* (return-from finish-business))
     
+    handle-clients
     (bwhen (clientq (ufb-queue :client))
       (if *client-queue-handler*
           (funcall *client-queue-handler* clientq) ;; might be empty/not exist, so handlers must check
-        (just-do-it clientq)))
-
+        (just-do-it clientq))
+      (when (fifo-peek (ufb-queue :client))
+        #+shhh (ukt::fifo-browse (ufb-queue :client) (lambda (entry)
+                                                (trc "surprise client" entry)))
+        (go handle-clients)))
     ;--- now we can reset ephemerals --------------------
     ;
     ; one might be wondering when the observers got notified. That happens




More information about the Cells-cvs mailing list