public abstract class AbstractMailboxPathLocker extends Object implements MailboxPathLocker
MailboxPathLocker.LockAwareExecution<T>
Constructor and Description |
---|
AbstractMailboxPathLocker() |
Modifier and Type | Method and Description |
---|---|
<T> T |
executeWithLock(MailboxSession session,
MailboxPath path,
MailboxPathLocker.LockAwareExecution<T> execution) |
<T> T |
executeWithLock(MailboxSession session,
MailboxPath path,
MailboxPathLocker.LockAwareExecution<T> execution,
boolean writeLock)
Execute the
MailboxPathLocker.LockAwareExecution while holding a lock on the
MailboxPath . |
protected abstract void |
lock(MailboxSession session,
MailboxPath path,
boolean writeLock)
Perform lock
|
protected abstract void |
unlock(MailboxSession session,
MailboxPath path,
boolean writeLock)
Release lock
|
public <T> T executeWithLock(MailboxSession session, MailboxPath path, MailboxPathLocker.LockAwareExecution<T> execution) throws MailboxException
public <T> T executeWithLock(MailboxSession session, MailboxPath path, MailboxPathLocker.LockAwareExecution<T> execution, boolean writeLock) throws MailboxException
MailboxPathLocker
MailboxPathLocker.LockAwareExecution
while holding a lock on the
MailboxPath
. If writeLock is true the implementation need to make sure that no other threads can read and write while the lock
is hold. The contract is the same as documented in ReadWriteLock
.executeWithLock
in interface MailboxPathLocker
MailboxException
protected abstract void lock(MailboxSession session, MailboxPath path, boolean writeLock) throws MailboxException
session
- path
- MailboxException
protected abstract void unlock(MailboxSession session, MailboxPath path, boolean writeLock) throws MailboxException
session
- path
- MailboxException
Copyright © 2010-2012 The Apache Software Foundation. All Rights Reserved.