You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/05 14:41:41 UTC
[19/50] [abbrv] ignite git commit: fixing TC - ssl tests
fixing TC - ssl tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0279404e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0279404e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0279404e
Branch: refs/heads/ignite-comm-balance-master
Commit: 0279404e7e2ad0990c91c34aaba60094c6bc0a2e
Parents: fdbf90a
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri Nov 11 20:18:03 2016 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Fri Nov 11 20:18:03 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/util/nio/GridNioServer.java | 37 ++++++++++++++------
.../ignite/internal/util/nio/GridNioWorker.java | 5 +++
2 files changed, 31 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0279404e/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index dd0a515..b746488 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -973,8 +973,15 @@ public class GridNioServer<T> {
if (ses.procWrite.get()) {
ses.procWrite.set(false);
- if (ses.writeQueue().isEmpty())
- key.interestOps(key.interestOps() & (~SelectionKey.OP_WRITE));
+ if (ses.writeQueue().isEmpty()) {
+ if ((key.interestOps() & SelectionKey.OP_WRITE) != 0) {
+ key.interestOps(key.interestOps() & (~SelectionKey.OP_WRITE));
+
+ writeSesCnt--;
+
+ assert writeSesCnt >= 0;
+ }
+ }
else
ses.procWrite.set(true);
}
@@ -1021,6 +1028,11 @@ public class GridNioServer<T> {
}
}
}
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(ByteBufferNioClientWorker.class, this, super.toString());
+ }
}
/**
@@ -1220,11 +1232,18 @@ public class GridNioServer<T> {
req = ses.pollFuture();
if (req == null && buf.position() == 0) {
- if (ses.procWrite.get()) {
+ if (!this.writer || ses.procWrite.get()) {
ses.procWrite.set(false);
- if (ses.writeQueue().isEmpty())
- key.interestOps(key.interestOps() & (~SelectionKey.OP_WRITE));
+ if (ses.writeQueue().isEmpty()) {
+ if ((key.interestOps() & SelectionKey.OP_WRITE) != 0) {
+ key.interestOps(key.interestOps() & (~SelectionKey.OP_WRITE));
+
+ writeSesCnt--;
+
+ assert writeSesCnt >= 0 : writeSesCnt;
+ }
+ }
else
ses.procWrite.set(true);
}
@@ -1958,7 +1977,7 @@ public class GridNioServer<T> {
/**
* @param ses Session.
*/
- final void registerWrite(GridSelectorNioSessionImpl ses) {
+ public final void registerWrite(GridSelectorNioSessionImpl ses) {
SelectionKey key = ses.key();
if (key.isValid()) {
@@ -2044,7 +2063,6 @@ public class GridNioServer<T> {
}
}
-
sb.append("]").append(U.nl());
}
@@ -3106,10 +3124,7 @@ public class GridNioServer<T> {
queue.offer((ByteBuffer)msg);
- SelectionKey key = ((GridSelectorNioSessionImpl)ses).key();
-
- if (key.isValid())
- key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
+ ((GridSelectorNioSessionImpl)ses).worker().registerWrite((GridSelectorNioSessionImpl)ses);
return null;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0279404e/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioWorker.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioWorker.java
index 3419b4c..62985ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioWorker.java
@@ -40,4 +40,9 @@ interface GridNioWorker {
* @return Session state change requests.
*/
@Nullable public List<GridNioServer.SessionChangeRequest> clearSessionRequests(GridNioSession ses);
+
+ /**
+ * @param ses Session to register write interest for.
+ */
+ public void registerWrite(GridSelectorNioSessionImpl ses);
}