[jboss-cvs] JBoss Messaging SVN: r3229 - in trunk/src/main/org/jboss/messaging: util and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Oct 20 13:58:13 EDT 2007


Author: timfox
Date: 2007-10-20 13:58:13 -0400 (Sat, 20 Oct 2007)
New Revision: 3229

Modified:
   trunk/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java
   trunk/src/main/org/jboss/messaging/util/ClearableSemaphore.java
Log:
Semaphore improvements


Modified: trunk/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java	2007-10-20 17:37:09 UTC (rev 3228)
+++ trunk/src/main/org/jboss/messaging/core/impl/postoffice/MessagingPostOffice.java	2007-10-20 17:58:13 UTC (rev 3229)
@@ -37,7 +37,6 @@
 import java.util.Properties;
 import java.util.Set;
 import java.util.Vector;
-import java.util.concurrent.Semaphore;
 
 import javax.management.ListenerNotFoundException;
 import javax.management.MBeanNotificationInfo;

Modified: trunk/src/main/org/jboss/messaging/util/ClearableSemaphore.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/ClearableSemaphore.java	2007-10-20 17:37:09 UTC (rev 3228)
+++ trunk/src/main/org/jboss/messaging/util/ClearableSemaphore.java	2007-10-20 17:58:13 UTC (rev 3229)
@@ -18,7 +18,7 @@
 	
 	private Semaphore semaphore;
 	
-	private boolean enabled;
+	private volatile boolean enabled;
 	
 	private int permits;
 	
@@ -36,19 +36,23 @@
 		createSemaphore();
 	}
 	
-	public synchronized void acquire() throws InterruptedException
+	public void acquire() throws InterruptedException
 	{
-		if (enabled)
+		Semaphore sem = semaphore;
+		
+		if (enabled && sem != null)
 		{
-			semaphore.acquire();
+			sem.acquire();
 		}
 	}
 	
-	public synchronized void release()
+	public void release()
 	{
-		if (enabled)
+		Semaphore sem = semaphore;
+		
+		if (enabled && sem != null)
 		{
-			semaphore.release();
+			sem.release();
 		}
 	}
 	
@@ -57,6 +61,8 @@
 		if (!enabled)
 		{
 			createSemaphore();
+			
+			enabled = true;
 		}
 	}
 	




More information about the jboss-cvs-commits mailing list