Package org.jboss.util
Class Semaphore
- java.lang.Object
-
- org.jboss.util.Semaphore
-
- All Implemented Interfaces:
Sync
- Direct Known Subclasses:
WaitSemaphore
public class Semaphore extends java.lang.Object implements Sync
Semaphore that can allow a specified number of threads to enter, blocking the others. If the specified number of threads is 1, it acts as an exclusive semaphore and can be used instead of synchronized blocks- Version:
- $Revision$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
Semaphore.Info
-
Field Summary
Fields Modifier and Type Field Description private static long
DEADLOCK_TIMEOUT
private int
m_allowed
private static boolean
m_debug
private java.util.Map
m_logMap
private int
m_users
-
Constructor Summary
Constructors Constructor Description Semaphore(int allowed)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acquire()
Acquires this syncint
getUsers()
protected void
logAcquire()
protected void
logDeadlock()
protected void
logRelease()
void
release()
Releases this syncjava.lang.String
toString()
protected boolean
waitImpl(java.lang.Object lock)
-
-
-
Field Detail
-
DEADLOCK_TIMEOUT
private static final long DEADLOCK_TIMEOUT
- See Also:
- Constant Field Values
-
m_debug
private static final boolean m_debug
- See Also:
- Constant Field Values
-
m_users
private int m_users
-
m_allowed
private int m_allowed
-
m_logMap
private java.util.Map m_logMap
-
-
Method Detail
-
getUsers
public int getUsers()
-
acquire
public void acquire() throws java.lang.InterruptedException
Description copied from interface:Sync
Acquires this sync- Specified by:
acquire
in interfaceSync
- Throws:
java.lang.InterruptedException
- See Also:
Sync.release()
-
release
public void release()
Description copied from interface:Sync
Releases this sync- Specified by:
release
in interfaceSync
- See Also:
Sync.acquire()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
waitImpl
protected boolean waitImpl(java.lang.Object lock) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
logAcquire
protected void logAcquire()
-
logDeadlock
protected void logDeadlock()
-
logRelease
protected void logRelease()
-
-