[pypy-svn] r38654 - in pypy/dist/pypy/translator/js: examples lib lib/test

fijal at codespeak.net fijal at codespeak.net
Tue Feb 13 02:36:34 CET 2007


Author: fijal
Date: Tue Feb 13 02:36:28 2007
New Revision: 38654

Modified:
   pypy/dist/pypy/translator/js/examples/overmind.py
   pypy/dist/pypy/translator/js/lib/server.py
   pypy/dist/pypy/translator/js/lib/test/test_server.py
Log:
Another simplification of interface


Modified: pypy/dist/pypy/translator/js/examples/overmind.py
==============================================================================
--- pypy/dist/pypy/translator/js/examples/overmind.py	(original)
+++ pypy/dist/pypy/translator/js/examples/overmind.py	Tue Feb 13 02:36:28 2007
@@ -15,20 +15,17 @@
 import py
 
 FUNCTION_LIST = ['launch_console']
-TIMEOUT = 100
+TIMEOUT = 10
 pids = []
 
 def launch_console_in_new_thread():
     from pypy.translator.js.examples import pythonconsole
     httpd = server.create_server(server_address=('', 0),
-                        handler=pythonconsole.RequestHandler, timeout=TIMEOUT,
+                        handler=pythonconsole.RequestHandler,
                         server=pythonconsole.Server)
     port = httpd.server_port
-    pid = os.fork()
-    if not pid:
-        pythonconsole.httpd = httpd
-        httpd.serve_forever()
-        os._exit(0)
+    pythonconsole.httpd = httpd
+    pid = server.start_server_in_new_process(httpd, timeout=TIMEOUT)
     del httpd
     pids.append(pid)
     return port

Modified: pypy/dist/pypy/translator/js/lib/server.py
==============================================================================
--- pypy/dist/pypy/translator/js/lib/server.py	(original)
+++ pypy/dist/pypy/translator/js/lib/server.py	Tue Feb 13 02:36:28 2007
@@ -118,7 +118,7 @@
         return open(self.path).read()
 
 def create_server(server_address = ('', 8000), handler=TestHandler,
-                 timeout=None, server=HTTPServer):
+                 server=HTTPServer):
     """ Parameters:
     spawn - create new thread and return (by default it doesn't return)
     fork - do a real fork
@@ -127,16 +127,6 @@
     """
     patch_handler(handler)
     httpd = server(server_address, handler)
-    if timeout:
-        def f(httpd):
-            while 1:
-                time.sleep(.3)
-                if time.time() - httpd.last_activity > timeout:
-                    httpd.server_close()
-                    import os
-                    os.kill(os.getpid(), 15)
-        import thread
-        thread.start_new_thread(f, (httpd,))
     httpd.last_activity = time.time()
     print "Server started, listening on %s:%s" %\
           (httpd.server_address[0],httpd.server_port)
@@ -146,10 +136,21 @@
     import thread
     thread.start_new_thread(server.serve_forever, ())
 
-def start_server_in_new_process(server):
+def start_server_in_new_process(server, timeout=None):
     pid = os.fork()
     if not pid:
-        httpd.server_forever()
+        if timeout:
+            def f(httpd):
+                while 1:
+                    time.sleep(.3)
+                    if time.time() - httpd.last_activity > timeout:
+                        httpd.server_close()
+                        import os
+                        os.kill(os.getpid(), 15)
+            import thread
+            thread.start_new_thread(f, (server,))
+
+        server.serve_forever()
         os._exit(0)
     return pid
 

Modified: pypy/dist/pypy/translator/js/lib/test/test_server.py
==============================================================================
--- pypy/dist/pypy/translator/js/lib/test/test_server.py	(original)
+++ pypy/dist/pypy/translator/js/lib/test/test_server.py	Tue Feb 13 02:36:28 2007
@@ -54,4 +54,3 @@
     assert URLopener().open("http://127.0.0.1:21213/index").read() == \
            "<html></html>"
 
-    



More information about the Pypy-commit mailing list