diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildrop/filelock.h | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildrop/filelock.h')
| -rw-r--r-- | maildrop/filelock.h | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/maildrop/filelock.h b/maildrop/filelock.h new file mode 100644 index 0000000..3c16db2 --- /dev/null +++ b/maildrop/filelock.h @@ -0,0 +1,30 @@ +#ifndef	filelock_h +#define	filelock_h + + +#include	"exittrap.h" + +///////////////////////////////////////////////////////////////////////////// +// +// Encapsulate the flock() system call.  By encapsulating the system call +// in a class, this allows automatic cleanup if, for some reason, an +// exception is thrown while a lock is being held. +// +///////////////////////////////////////////////////////////////////////////// + +class	FileLock : public ExitTrap { + +	void	cleanup(); +	void	forked(); + +	int	fd; +public: +	FileLock(); +	virtual ~FileLock(); +	void	Lock(const char *); +	void	UnLock(); + +static	void	do_filelock(int); +} ; + +#endif | 
