From d9908f38ef7933b9c2d13015c5513205a6cd4320 Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Tue, 20 Jan 2015 18:47:31 +0100 Subject: [PATCH] Python 3 fixes --- playground/prefork/Prefork.java | 4 +++- playground/prefork/preforkjava.py | 14 +++++++++----- waflib/extras/prefork.py | 11 ++++++++--- waflib/extras/preforkunix.py | 8 +++++--- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/playground/prefork/Prefork.java b/playground/prefork/Prefork.java index 5663a348..12cd6ce1 100644 --- a/playground/prefork/Prefork.java +++ b/playground/prefork/Prefork.java @@ -94,7 +94,9 @@ public class Prefork implements Runnable, Comparator { ServerSocket server = new ServerSocket(port); server.setReuseAddress(true); while (true) { - Prefork tmp = new Prefork(server.accept(), port); + Socket conn = server.accept(); + conn.setTcpNoDelay(true); + Prefork tmp = new Prefork(conn, port); Thread t = new Thread(tmp); t.start(); } diff --git a/playground/prefork/preforkjava.py b/playground/prefork/preforkjava.py index e9d2dfed..19d5bc76 100755 --- a/playground/prefork/preforkjava.py +++ b/playground/prefork/preforkjava.py @@ -56,8 +56,7 @@ if 1: PORT = 51200 def make_server(bld, idx): - #wd = os.path.dirname(os.path.abspath('__file__')) - wd = "/home/tnagy/" + wd = os.path.dirname(os.path.abspath('__file__')) port = PORT + idx cmd = "java -cp %s/minimal-json-0.9.3-SNAPSHOT.jar:. Prefork %d" % (wd, PORT) proc = subprocess.Popen(cmd.split(), shell=False, cwd=wd) @@ -68,6 +67,7 @@ if 1: #port = PORT + idx port = srv.port conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + conn.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) conn.connect(('127.0.0.1', port)) return conn @@ -101,7 +101,10 @@ if 1: raise RuntimeError('connection ended %r %r' % (cnt, siz)) buf.append(data) cnt += len(data) - ret = ''.join(buf) + if sys.hexversion > 0x3000000: + ret = ''.encode('iso8859-1').join(buf) + else: + ret = ''.join(buf) return ret def exec_command(self, cmd, **kw): @@ -136,8 +139,9 @@ if 1: conn = CONNS[idx] - put_data(conn, header) - put_data(conn, data) + if sys.hexversion > 0x3000000: + data = data.encode('iso8859-1') + put_data(conn, header + data) data = read_data(conn, HEADER_SIZE) if sys.hexversion > 0x3000000: diff --git a/waflib/extras/prefork.py b/waflib/extras/prefork.py index 79e4e5a2..b1ecc9f2 100755 --- a/waflib/extras/prefork.py +++ b/waflib/extras/prefork.py @@ -160,6 +160,7 @@ def create_server(conn, cls): SocketServer.TCPServer.allow_reuse_address = True server = SocketServer.TCPServer(conn, req) #server.timeout = 6000 # seconds + server.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) server.serve_forever(poll_interval=0.001) if __name__ == '__main__': @@ -207,6 +208,7 @@ else: #port = PORT + idx port = srv.port conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + conn.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) conn.connect(('127.0.0.1', port)) return conn @@ -246,7 +248,10 @@ else: raise RuntimeError('connection ended %r %r' % (cnt, siz)) buf.append(data) cnt += len(data) - ret = ''.join(buf) + if sys.hexversion > 0x3000000: + ret = ''.encode('iso8859-1').join(buf) + else: + ret = ''.join(buf) return ret def exec_command(self, cmd, **kw): @@ -285,8 +290,8 @@ else: conn = CONNS[idx] - put_data(conn, header) - put_data(conn, data) + put_data(conn, header + data) + #put_data(conn, data) #print("running %r %r" % (idx, cmd)) #print("read from %r %r" % (idx, cmd)) diff --git a/waflib/extras/preforkunix.py b/waflib/extras/preforkunix.py index 58f48be7..ced8ba0b 100755 --- a/waflib/extras/preforkunix.py +++ b/waflib/extras/preforkunix.py @@ -185,7 +185,10 @@ if 1: raise RuntimeError('connection ended %r %r' % (cnt, siz)) buf.append(data) cnt += len(data) - ret = ''.join(buf) + if sys.hexversion > 0x3000000: + ret = ''.encode('iso8859-1').join(buf) + else: + ret = ''.join(buf) return ret def exec_command(self, cmd, **kw): @@ -224,8 +227,7 @@ if 1: conn = CONNS[idx] - put_data(conn, header) - put_data(conn, data) + put_data(conn, header + data) #print("running %r %r" % (idx, cmd)) #print("read from %r %r" % (idx, cmd))