# HG changeset patch # User one # Date 1343322285 -32400 # Node ID d5d9ca4cbe87215b6a6e97e141b3cf98e095687d # Parent bddb8be357f6fd8104d4a2742fb061ddcdb59380 fix memory leak! diff -r bddb8be357f6 -r d5d9ca4cbe87 src/alice/codesegment/OutputDataSegment.java --- a/src/alice/codesegment/OutputDataSegment.java Fri Jul 27 00:46:01 2012 +0900 +++ b/src/alice/codesegment/OutputDataSegment.java Fri Jul 27 02:04:45 2012 +0900 @@ -11,6 +11,7 @@ public class OutputDataSegment { public CodeSegment cs; + private static MessagePack MSGPACK = new MessagePack(); public OutputDataSegment(CodeSegment codeSegment) { this.cs = codeSegment; @@ -49,18 +50,16 @@ } public void put(String managerKey, String key, T val) { - MessagePack msgpack = new MessagePack(); try { - DataSegment.get(managerKey).put(key, msgpack.unconvert(val), cs); + DataSegment.get(managerKey).put(key, MSGPACK.unconvert(val), cs); } catch (IOException e) { e.printStackTrace(); } } public void update(String managerKey, String key, T val) { - MessagePack msgpack = new MessagePack(); try { - DataSegment.get(managerKey).update(key, msgpack.unconvert(val), cs); + DataSegment.get(managerKey).update(key, MSGPACK.unconvert(val), cs); } catch (IOException e) { e.printStackTrace(); } diff -r bddb8be357f6 -r d5d9ca4cbe87 src/alice/daemon/OutboundTcpConnection.java --- a/src/alice/daemon/OutboundTcpConnection.java Fri Jul 27 00:46:01 2012 +0900 +++ b/src/alice/daemon/OutboundTcpConnection.java Fri Jul 27 02:04:45 2012 +0900 @@ -10,6 +10,7 @@ public class OutboundTcpConnection extends Thread { public Connection connection; + private static MessagePack MSGPACK = new MessagePack(); public OutboundTcpConnection(Connection connection) { this.connection = connection; @@ -23,7 +24,6 @@ * pipeline thread for transmission */ public void run() { - MessagePack msgpack = new MessagePack(); while (true) { try { Command cmd = connection.sendQueue.take(); @@ -38,7 +38,7 @@ break; } CommandMessage cmdMsg = convert(cmd); - ByteBuffer buffer = ByteBuffer.wrap(msgpack.write(cmdMsg)); + ByteBuffer buffer = ByteBuffer.wrap(MSGPACK.write(cmdMsg)); while (buffer.hasRemaining()) { connection.socket.getChannel().write(buffer); } diff -r bddb8be357f6 -r d5d9ca4cbe87 src/alice/datasegment/Receiver.java --- a/src/alice/datasegment/Receiver.java Fri Jul 27 00:46:01 2012 +0900 +++ b/src/alice/datasegment/Receiver.java Fri Jul 27 02:04:45 2012 +0900 @@ -23,7 +23,7 @@ public String managerKey; // for debugging public String key; // for debugging - private static MessagePack msgpack = new MessagePack(); + private static MessagePack MSGPACK = new MessagePack(); public Receiver(InputDataSegment ids, CommandType type) { this.ids = ids; @@ -93,7 +93,7 @@ public T asClass(Class clazz) { try { - return msgpack.convert(val, clazz); + return MSGPACK.convert(val, clazz); } catch (IOException e) { e.printStackTrace(); }