changeset 1446:ba6594263fa7

collector: client's prev settings are no longer mixed with its new request. this breaks live page Ignore-this: 3155a2ab028d9e006ed4796ef8fbf8d0
author drewp@bigasterisk.com
date Sat, 11 Jun 2016 21:29:06 +0000
parents 6001c86f9fca
children 8a9a9b58a4e2
files light9/collector/collector.py
diffstat 1 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/light9/collector/collector.py	Sat Jun 11 21:16:06 2016 +0000
+++ b/light9/collector/collector.py	Sat Jun 11 21:29:06 2016 +0000
@@ -75,13 +75,18 @@
         now = time.time()
 
         self._forgetStaleClients(now)
-        row = self.lastRequest.get(client)
-        if row is not None:
-            sess, _, prevClientSettings = row
-            if sess != clientSession:
+
+        if 0: # client updates their past requests?
+            row = self.lastRequest.get(client)
+            if row is not None:
+                sess, _, prevClientSettings = row
+                if sess != clientSession:
+                    prevClientSettings = {}
+            else:
                 prevClientSettings = {}
-        else:
+        else: # client always provides all the nonzero settings it wants
             prevClientSettings = {}
+            
         prevClientSettings.update(self.resolvedSettingsDict(settings))
         self.lastRequest[client] = (clientSession, now, prevClientSettings)
 
@@ -115,7 +120,9 @@
         self.flush(pendingOut)
         dt2 = 1000 * (time.time() - now)
         if dt1 > 10:
-            print "slow setAttrs: %.1fms -> flush -> %.1fms" % (dt1, dt2)
+            print "slow setAttrs: %.1fms -> flush -> %.1fms. lr %s da %s oa %s" % (
+                dt1, dt2, len(self.lastRequest), len(deviceAttrs), len(outputAttrs)
+            )
 
     def setAttr(self, device, outputAttr, value, pendingOut):
         output, index = self.outputMap[(device, outputAttr)]