You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2009/04/08 13:03:34 UTC

svn commit: r763179 - /jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java

Author: sebb
Date: Wed Apr  8 11:03:34 2009
New Revision: 763179

URL: http://svn.apache.org/viewvc?rev=763179&view=rev
Log:
Make Thread interruptible so engine can interrupt sampler

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=763179&r1=763178&r2=763179&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java Wed Apr  8 11:03:34 2009
@@ -34,6 +34,7 @@
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.processor.PostProcessor;
 import org.apache.jmeter.processor.PreProcessor;
+import org.apache.jmeter.samplers.Interruptible;
 import org.apache.jmeter.samplers.SampleEvent;
 import org.apache.jmeter.samplers.SampleListener;
 import org.apache.jmeter.samplers.SampleResult;
@@ -59,7 +60,7 @@
  * timing, add listeners for sampling events and to stop the sampling process.
  *
  */
-public class JMeterThread implements Runnable {
+public class JMeterThread implements Runnable, Interruptible {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     private int initialDelay = 0;
@@ -518,6 +519,21 @@
         log.info("Stopping " + threadName);
     }
 
+    /** {@inheritDoc} */
+    public boolean interrupt(){
+        log.warn("Interrupting " + threadName);
+        Sampler samp = threadContext.getCurrentSampler();
+        if (samp instanceof Interruptible){
+            try {
+                ((Interruptible)samp).interrupt();
+            } catch (Exception e) {
+                log.warn("Caught Exception interrupting sampler: "+e.toString());
+            }
+            return true;
+        }
+        return false;
+    }
+
     private void stopTest() {
         running = false;
         log.info("Stop Test detected by thread " + threadName);



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org