Author: costin
Date: Fri Nov 25 21:41:43 2005
New Revision: 349084

URL: http://svn.apache.org/viewcvs?rev=349084&view=rev
Log:
A small change to allow access to the 'param' field in
ThreadWithAttributes. This allows passing a param to the thread - like a
socket for example

Modified:
    tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPool.java
    tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPoolRunnable.java
    tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadWithAttributes.java

Modified: tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPool.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPool.java?rev=349084&r1=349083&r2=349084&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPool.java 
(original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPool.java Fri Nov 
25 21:41:43 2005
@@ -301,14 +301,15 @@
      * Executes a given Runnable on a thread in the pool, block if needed.
      */
     public void runIt(ThreadPoolRunnable r) {
-        if(null == r) {
-            throw new NullPointerException();
-        }
-
         ControlRunnable c = findControlRunnable();
         c.runIt(r);
     }
 
+    public void runIt(ThreadPoolRunnable r, Object param) {
+        ControlRunnable c = findControlRunnable();
+        c.runIt(r, param);
+    }
+
     private ControlRunnable findControlRunnable() {
         ControlRunnable c=null;
 
@@ -728,6 +729,11 @@
                 p.removeThread(Thread.currentThread());
             }
         }
+
+        public synchronized void runIt(ThreadPoolRunnable toRun) {
+            runIt( toRun, null);
+        }
+        
         /** Run a task
          *
          * @param toRun
@@ -746,13 +752,11 @@
          *
          * @param toRun
          */
-        public synchronized void runIt(ThreadPoolRunnable toRun) {
+        public synchronized void runIt(ThreadPoolRunnable toRun, 
+                Object param) {
            this.toRun = toRun;
-           // Do not re-init, the whole idea is to run init only once per
-           // thread - the pool is supposed to run a single task, that is
-           // initialized once.
-            // noThData = true;
             shouldRun = true;
+            t.setParam(p, param);
             this.notify();
         }
 

Modified: 
tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPoolRunnable.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPoolRunnable.java?rev=349084&r1=349083&r2=349084&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPoolRunnable.java 
(original)
+++ tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadPoolRunnable.java 
Fri Nov 25 21:41:43 2005
@@ -18,6 +18,7 @@
 
 
 /** Implemented if you want to run a piece of code inside a thread pool.
+ *  You can also use Runnable + ThreadLocal or ThreadWithAttributes.
  */
 public interface ThreadPoolRunnable {
     // XXX use notes or a hashtable-like

Modified: 
tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadWithAttributes.java
URL: 
http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadWithAttributes.java?rev=349084&r1=349083&r2=349084&view=diff
==============================================================================
--- 
tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadWithAttributes.java 
(original)
+++ 
tomcat/sandbox/java/org/apache/tomcat/util/threads/ThreadWithAttributes.java 
Fri Nov 25 21:41:43 2005
@@ -27,7 +27,8 @@
  * JDK < 1.4 ).
  *
  * The main use is to store 'state' for monitoring ( like "processing
- * request 'GET /' ").
+ * request 'GET /' "), and to simplify information passing between threads.
+ * 
  */
 public class ThreadWithAttributes extends Thread {
     



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to