[pypy-svn] r29498 - in pypy/dist/pypy/translator/js: demo/jsdemo proxy/testme

ericvrp at codespeak.net ericvrp at codespeak.net
Thu Jun 29 18:10:59 CEST 2006


Author: ericvrp
Date: Thu Jun 29 18:10:57 2006
New Revision: 29498

Modified:
   pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
   pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
Log:
close connection when idle for more than 5 seconds


Modified: pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py
==============================================================================
--- pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py	(original)
+++ pypy/dist/pypy/translator/js/demo/jsdemo/bnb.py	Thu Jun 29 18:10:57 2006
@@ -107,6 +107,7 @@
     
     
     def serverMessage(self):
+        self._closeIdleConnections()
         sessionid = session['_id']
         if sessionid not in self._serverMessage:
             self._serverMessage[sessionid] = ServerMessage('static/images/')
@@ -134,7 +135,6 @@
 
     @turbogears.expose(html="jsdemo.templates.bnb")
     def index(self):
-        import time
         return dict(now=time.ctime(), onload=self.jsname, code=self.jssource)
     
     @turbogears.expose(format='json')
@@ -206,6 +206,16 @@
                 sm.socket.close()
             del self._serverMessage[sessionid]
 
+    def _closeIdleConnections(self):
+        t = time.time() - 5.0 #5 seconds until considered idle
+        for sessionid, sm in self._serverMessage.items():
+            if sm.last_active < t:
+                log("Close connection with sessionid %s because it was idle for %.1f seconds" % (
+                    sessionid, time.time() - sm.last_active))
+                if sm.socket is not None:
+                    sm.socket.close()
+                del self._serverMessage[sessionid]
+
     @turbogears.expose(format="json")
     def initialize_session(self):
         self._close()

Modified: pypy/dist/pypy/translator/js/proxy/testme/servermessage.py
==============================================================================
--- pypy/dist/pypy/translator/js/proxy/testme/servermessage.py	(original)
+++ pypy/dist/pypy/translator/js/proxy/testme/servermessage.py	Thu Jun 29 18:10:57 2006
@@ -8,6 +8,7 @@
 from os.path import exists
 from md5 import md5
 from struct import unpack
+from time import time
 
 
 debug = True
@@ -51,10 +52,12 @@
         self.gfx_dir = self.base_gfx_dir    #gets overwritten depending on playfield FnDesc
         self.gfx_url = self.base_gfx_url
         self.decompressobj = decompressobj().decompress
+        self.last_active = time()
 
 
     def dispatch(self, *values):
         #log('RECEIVED:%s(%d)' % (values[0], len(values[1:])))
+        self.last_active = time()
         fn = self.MESSAGES.get(values[0])
         if fn:
             try:



More information about the Pypy-commit mailing list