[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