You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/03/04 14:29:42 UTC

[2/3] ignite git commit: Optimized back-pressure control.

Optimized back-pressure control.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/673daf48
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/673daf48
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/673daf48

Branch: refs/heads/ignite-atomic-good-lock-bench
Commit: 673daf48b5a394c5a68dcf151cb13e6c09428928
Parents: 2d6c6c9
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Mar 4 16:11:04 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Mar 4 16:11:04 2016 +0300

----------------------------------------------------------------------
 .../util/nio/GridNioBackPressureControl.java       | 16 ++++++++++++++--
 .../org/apache/ignite/thread/IgniteThread.java     | 17 +++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/673daf48/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java
index 96a1ab3..4d69533 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.internal.util.nio;
 
+import org.apache.ignite.thread.IgniteThread;
+
 /**
  * Utility class that allows to ignore back-pressure control for threads that are processing messages.
  */
@@ -32,13 +34,23 @@ public class GridNioBackPressureControl {
      * @return Flag indicating whether current thread is processing message.
      */
     public static boolean threadProcessingMessage() {
-        return threadProcMsg.get();
+        Thread t = Thread.currentThread();
+
+        if (t instanceof IgniteThread)
+            return ((IgniteThread)t).processingMessage();
+        else
+            return threadProcMsg.get();
     }
 
     /**
      * @param processing Flag indicating whether current thread is processing message.
      */
     public static void threadProcessingMessage(boolean processing) {
-        threadProcMsg.set(processing);
+        Thread t = Thread.currentThread();
+
+        if (t instanceof IgniteThread)
+            ((IgniteThread)t).processingMessage(processing);
+        else
+            threadProcMsg.set(processing);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/673daf48/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java
index 03ed589..c7a3790 100644
--- a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java
+++ b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java
@@ -48,6 +48,9 @@ public class IgniteThread extends Thread {
     /** Group index. */
     private final int grpIdx;
 
+    /** Message processing flag. */
+    private boolean procMsg;
+
     /**
      * Creates thread with given worker.
      *
@@ -126,6 +129,20 @@ public class IgniteThread extends Thread {
     }
 
     /**
+     * @return Message processing flag.
+     */
+    public boolean processingMessage() {
+        return procMsg;
+    }
+
+    /**
+     * @param procMsg Message processing flag.
+     */
+    public void processingMessage(boolean procMsg) {
+        this.procMsg = procMsg;
+    }
+
+    /**
      * Creates new thread name.
      *
      * @param num Thread number.