[jboss-cvs] JBossAS SVN: r92055 - projects/jboss-threads/trunk/main/src/main/java/org/jboss/threads.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 6 01:58:30 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-08-06 01:58:30 -0400 (Thu, 06 Aug 2009)
New Revision: 92055

Modified:
   projects/jboss-threads/trunk/main/src/main/java/org/jboss/threads/Dependency.java
Log:
Add clarifying comments, and a minor optimization

Modified: projects/jboss-threads/trunk/main/src/main/java/org/jboss/threads/Dependency.java
===================================================================
--- projects/jboss-threads/trunk/main/src/main/java/org/jboss/threads/Dependency.java	2009-08-06 05:54:45 UTC (rev 92054)
+++ projects/jboss-threads/trunk/main/src/main/java/org/jboss/threads/Dependency.java	2009-08-06 05:58:30 UTC (rev 92055)
@@ -75,6 +75,7 @@
         final AtomicIntegerFieldUpdater<Dependency> updater = depUpdater;
         final int res = updater.decrementAndGet(this);
         if (res == 0) {
+            final Dependency.Runner runner = this.runner;
             synchronized (lock) {
                 try {
                     executor.execute(runner);
@@ -82,7 +83,7 @@
                 } catch (RejectedExecutionException e) {
                     log.errorf(e, "Error submitting task %s to executor", runner.runnable);
                     state = State.FAILED;
-                    final Dependency.Runner runner = this.runner;
+                    // clear stuff out since this object will likely be kept alive longer than these objects need to be
                     runner.runnable = null;
                     runner.dependents = null;
                     this.runner = null;
@@ -101,6 +102,7 @@
             synchronized (lock) {
                 state = State.FAILED;
                 final Dependency.Runner runner = this.runner;
+                // clear stuff out since this object will likely be kept alive longer than these objects need to be
                 runner.runnable = null;
                 runner.dependents = null;
                 this.runner = null;
@@ -131,6 +133,7 @@
                 final List<Dependency> tasks;
                 synchronized (lock) {
                     tasks = dependents;
+                    // clear stuff out in case some stupid executor holds on to the runnable
                     dependents = null;
                     runnable = null;
                     state = ok ? State.DONE : State.FAILED;




More information about the jboss-cvs-commits mailing list