[jboss-svn-commits] JBL Code SVN: r5356 - in labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats: arjuna arjuna/coordinator internal/arjuna/coordinator

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 31 04:56:46 EDT 2006


Author: kevin.conner at jboss.com
Date: 2006-07-31 04:56:43 -0400 (Mon, 31 Jul 2006)
New Revision: 5356

Modified:
   labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/AtomicAction.java
   labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java
   labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java
   labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperThread.java
Log:
Rewritten reaper and removal of debugs

Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/AtomicAction.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/AtomicAction.java	2006-07-31 02:57:08 UTC (rev 5355)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/AtomicAction.java	2006-07-31 08:56:43 UTC (rev 5356)
@@ -37,8 +37,6 @@
 import com.arjuna.ats.internal.arjuna.thread.*;
 import com.arjuna.ats.arjuna.common.*;
 
-import java.util.Date;
-
 /**
  * This is a user-level transaction class, unlike BasicAction. AtomicAction
  * takes care of thread-to-action scoping. This is a "one-shot" object, i.e.,
@@ -200,7 +198,6 @@
 
 	public int abort ()
 	{
-		System.out.println("TS_DEBUG: Transaction abort called at " + new Date()) ;
 		int status = super.cancel();
 
 		/*

Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java	2006-07-31 02:57:08 UTC (rev 5355)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java	2006-07-31 08:56:43 UTC (rev 5356)
@@ -115,11 +115,14 @@
 
 	public final synchronized long checkingPeriod ()
 	{
-		if (_dynamic && (_list.size() > 0))
-		{
-			final ReaperElement head = (ReaperElement)_list.peak() ;
-			return head._absoluteTimeout - System.currentTimeMillis() ;
-		}
+        if (_dynamic)
+        {
+            final ReaperElement head = (ReaperElement)_list.peak() ;
+            if (head != null)
+            {
+                return head._absoluteTimeout - System.currentTimeMillis() ;
+            }
+        }
 		return _checkPeriod;
 	}
 
@@ -156,7 +159,6 @@
 			}
 
 			final long now = System.currentTimeMillis() ;
-			System.err.println("TS_DEBUG: Reaper comparing current time " + now + " with transaction lifetime of " + e._absoluteTimeout) ;
 
 			if (now >= e._absoluteTimeout)
 			{
@@ -286,7 +288,7 @@
 			if ((timeoutms < _checkPeriod) || (_checkPeriod == Long.MAX_VALUE))
 			{
 				_checkPeriod = timeoutms ; // convert to milliseconds!
-				TransactionReaper._reaperThread.interrupt();
+                notify();
 			}
 
 			if (_list.insert(e))

Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java	2006-07-31 02:57:08 UTC (rev 5355)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TwoPhaseCoordinator.java	2006-07-31 08:56:43 UTC (rev 5356)
@@ -37,8 +37,6 @@
 
 import com.arjuna.ats.internal.arjuna.template.*;
 
-import java.util.Date;
-
 /**
  * Adds support for synchronizations to BasicAction. It does not change thread
  * associations either. It also allows any thread to terminate a transaction,
@@ -98,7 +96,6 @@
 
 	public int cancel ()
 	{
-		System.err.println("TS_DEBUG: Transaction cancel called at " + new Date()) ;
 		if (parent() != null)
 			parent().removeChildAction(this);
 

Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperThread.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperThread.java	2006-07-31 02:57:08 UTC (rev 5355)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP2/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/coordinator/ReaperThread.java	2006-07-31 08:56:43 UTC (rev 5356)
@@ -78,66 +78,35 @@
 	     * ignore.
 	     */
 
-	    boolean done = false;
-	    
-	    while (!done)
-	    {
-		sleepPeriod = reaperObject.checkingPeriod();
+            synchronized(reaperObject)
+    	    {
+                sleepPeriod = reaperObject.checkingPeriod();
 
-		if (sleepPeriod > 0)
-		{
-			long beforeTime = System.currentTimeMillis();
+        		if (sleepPeriod > 0)
+        		{
+        			try
+        			{
+            		    if (tsLogger.arjLoggerI18N.isDebugEnabled())
+        		    	{
+            				tsLogger.arjLoggerI18N.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC,
+        						     	FacilityCode.FAC_ATOMIC_ACTION,
+        						     	"com.arjuna.ats.internal.arjuna.coordinator.ReaperThread_1", 
+        						     	new Object[]{Thread.currentThread(),
+        								  	Long.toString(sleepPeriod)});
+        		    	}
 
-			try
-			{
-		    	if (tsLogger.arjLoggerI18N.debugAllowed())
-		    	{
-				tsLogger.arjLoggerI18N.debug(DebugLevel.FUNCTIONS, VisibilityLevel.VIS_PUBLIC,
-						     	FacilityCode.FAC_ATOMIC_ACTION,
-						     	"com.arjuna.ats.internal.arjuna.coordinator.ReaperThread_1", 
-						     	new Object[]{Thread.currentThread(),
-								  	Long.toString(sleepPeriod)});
-		    	}
-
-                    	System.out.println("TS_DEBUG: Reaper thread will sleep for " + sleepPeriod) ;
-
-		    	Thread.sleep(sleepPeriod);
-
-		    	done = true;
-			}
-			catch (InterruptedException e1)
-			{
-				long afterTime = System.currentTimeMillis();
-
-				if (afterTime - beforeTime > reaperObject.checkingPeriod())
-				{
-			    	done = true;
+            		    reaperObject.wait(sleepPeriod);
+        			}
+            		catch (InterruptedException e1) {}
 				}
-		    	}
-			catch (Exception e2)
-			{
-		    	done = true;
-			}
-		}
-		else
-		{
-			done = true ;
-		}
-	    }
+	    	}
 
-	    if (_shutdown)
-		return;
+    	    if (_shutdown)
+        		return;
 
-            System.out.println("TS_DEBUG: ReaperThread checking state of transactions") ;
-
-	    reaperObject.check();
-
-	    if (reaperObject.numberOfTransactions() == 0)
-	    {
-		sleepPeriod = Long.MAX_VALUE;
+    	    reaperObject.check();
 	    }
 	}
-    }
 
     public void shutdown ()
     {




More information about the jboss-svn-commits mailing list