org.quartz.impl.jdbcjobstore
Class SimpleSemaphore

java.lang.Object
  extended by org.quartz.impl.jdbcjobstore.SimpleSemaphore
All Implemented Interfaces:
Semaphore

public class SimpleSemaphore
extends Object
implements Semaphore

Internal in-memory lock handler for providing thread/resource locking in order to protect resources from being altered by multiple threads at the same time.

Author:
jhouse

Constructor Summary
SimpleSemaphore()
           
 
Method Summary
protected  org.slf4j.Logger getLog()
           
 boolean isLockOwner(String lockName)
          Determine whether the calling thread owns a lock on the identified resource.
 boolean obtainLock(Connection conn, String lockName)
          Grants a lock on the identified resource to the calling thread (blocking until it is available).
 void releaseLock(String lockName)
          Release the lock on the identified resource if it is held by the calling thread.
 boolean requiresConnection()
          This Semaphore implementation does not use the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleSemaphore

public SimpleSemaphore()
Method Detail

getLog

protected org.slf4j.Logger getLog()

obtainLock

public boolean obtainLock(Connection conn,
                          String lockName)
Grants a lock on the identified resource to the calling thread (blocking until it is available).

Specified by:
obtainLock in interface Semaphore
Parameters:
conn - Database connection used to establish lock. Can be null if Semaphore.requiresConnection() returns false.
Returns:
true if the lock was obtained.

releaseLock

public void releaseLock(String lockName)
Release the lock on the identified resource if it is held by the calling thread.

Specified by:
releaseLock in interface Semaphore

isLockOwner

public boolean isLockOwner(String lockName)
Determine whether the calling thread owns a lock on the identified resource.


requiresConnection

public boolean requiresConnection()
This Semaphore implementation does not use the database.

Specified by:
requiresConnection in interface Semaphore
See Also:
Semaphore.obtainLock(Connection, String), Semaphore.releaseLock(String)


Copyright 2001-2015, Terracotta, Inc.