commit | 67e36275ef2e765b8a52f4f9f68761ca87b0df88 | [log] [tgz] |
---|---|---|
author | vinayakb <vinayakb@123451ca-8445-de46-9d55-352943316053> | Tue Jan 24 09:07:08 2012 +0000 |
committer | vinayakb <vinayakb@123451ca-8445-de46-9d55-352943316053> | Tue Jan 24 09:07:08 2012 +0000 |
tree | 8d2ca33bf70cc336522d0ae0bbaa971e2a6d6232 | |
parent | 9f38afef5bc4a61ebda100ec87ef2cb330895a75 [diff] |
Fixed missing wake up. Fixed spurious buffer resizing. git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_dev_next@1037 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-ipc/src/main/java/edu/uci/ics/hyracks/ipc/impl/IPCConnectionManager.java b/hyracks-ipc/src/main/java/edu/uci/ics/hyracks/ipc/impl/IPCConnectionManager.java index eb9cbd3..09e8c2f 100644 --- a/hyracks-ipc/src/main/java/edu/uci/ics/hyracks/ipc/impl/IPCConnectionManager.java +++ b/hyracks-ipc/src/main/java/edu/uci/ics/hyracks/ipc/impl/IPCConnectionManager.java
@@ -208,7 +208,7 @@ SelectionKey key = handle.getKey(); key.interestOps(key.interestOps() | SelectionKey.OP_WRITE); } else { - if (buffer.position() == 0) { + if (!buffer.hasRemaining()) { handle.resizeOutBuffer(); continue; } @@ -251,7 +251,10 @@ } else if (!writeBuffer.hasRemaining()) { key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE); } - handle.clearFull(); + if (handle.full()) { + handle.clearFull(); + selector.wakeup(); + } } else if (key.isAcceptable()) { assert sc == serverSocketChannel; SocketChannel channel = serverSocketChannel.accept();