#include <sbuild-lock.h>
Inheritance diagram for sbuild::lock:

Public Types | |
| typedef runtime_error_custom< lock > | error |
| Exception type. | |
| enum | type { LOCK_SHARED = F_RDLCK, LOCK_EXCLUSIVE = F_WRLCK, LOCK_NONE = F_UNLCK } |
| Lock type. More... | |
Public Member Functions | |
| virtual void | set_lock (type lock_type, unsigned int timeout)=0 |
| Acquire a lock. | |
| virtual void | unset_lock ()=0 |
| Release a lock. | |
Protected Member Functions | |
| lock () | |
| The constructor. | |
| virtual | ~lock () |
| The destructor. | |
| void | set_alarm () |
| Set the SIGALARM handler. | |
| void | clear_alarm () |
| Restore the state of SIGALRM prior to starting lock acquisition. | |
| void | set_timer (struct itimerval const &timer) |
| Set up an itimer for future expiry. | |
| void | unset_timer () |
| Remove any itimer currently set up. | |
Private Attributes | |
| sigaction | saved_signals |
| Signals saved during timeout. | |
This class defines a simple interface for shared and exclusive locks.
|
|
Exception type.
|
|
|
Lock type.
|
|
|
The constructor.
|
|
|
The destructor.
|
|
|
Restore the state of SIGALRM prior to starting lock acquisition.
|
|
|
Set the SIGALARM handler. An error will be thrown on failure. |
|
||||||||||||
|
Acquire a lock.
|
|
|
Set up an itimer for future expiry. This is used to interrupt system calls. This will set a handler for SIGALRM as a side effect (using set_alarm). An error will be thrown on failure.
|
|
|
Release a lock. This is equivalent to set_lock with a lock_type of LOCK_NONE and a timeout of 0. Implemented in sbuild::file_lock, and sbuild::device_lock. |
|
|
Remove any itimer currently set up. This will clear any SIGALRM handler (using clear_alarm). An error will be thrown on failure. |
|
|
Signals saved during timeout.
|
1.4.6