Repository: ignite Updated Branches: refs/heads/ignite-6149-1 [created] 4c61ecc7b
ignite-6149 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4c61ecc7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4c61ecc7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4c61ecc7 Branch: refs/heads/ignite-6149-1 Commit: 4c61ecc7b37785faa00bd52e6eafdd7ceed27196 Parents: 7815a97 Author: sboikov <[email protected]> Authored: Fri Sep 15 16:20:19 2017 +0300 Committer: sboikov <[email protected]> Committed: Fri Sep 15 16:20:19 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/util/nio/GridNioServer.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4c61ecc7/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 0dd7dd6..edc22ea 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 @@ -55,6 +55,7 @@ import org.apache.ignite.configuration.ConnectorConfiguration; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteInterruptedCheckedException; import org.apache.ignite.internal.managers.communication.GridIoMessage; +import org.apache.ignite.internal.processors.cache.mvcc.MvccCoordinatorMessage; import org.apache.ignite.internal.util.GridConcurrentHashSet; import org.apache.ignite.internal.util.future.GridCompoundFuture; import org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter; @@ -1788,8 +1789,18 @@ public class GridNioServer<T> { public void offer(SessionChangeRequest req) { changeReqs.offer(req); - if (select) + if (select) { + Object msg = req.message(); + + if (msg instanceof GridIoMessage && ((GridIoMessage) msg).message() instanceof MvccCoordinatorMessage) { + MvccCoordinatorMessage msg0 = (MvccCoordinatorMessage)((GridIoMessage) msg).message(); + + if (msg0.processedFromNioThread()) + return; + } + selector.wakeup(); + } } /** {@inheritDoc} */ @@ -4096,5 +4107,7 @@ public class GridNioServer<T> { * @return Requested change operation. */ NioOperation operation(); + + Object message(); } }
