file-lock.h revision 9e86ad9eb313004cd4c8b5427daeb4c241b57af6
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen#ifndef __FILE_LOCK_H
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen#define __FILE_LOCK_H
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen#include <unistd.h>
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen#include <fcntl.h>
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen#define DEFAULT_LOCK_TIMEOUT 120
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen/* Lock whole file descriptor. Returns 1 if successful, 0 if lock failed,
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen or -1 if error. lock_type is F_WRLCK, F_RDLCK or F_UNLCK. */
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainenint file_try_lock(int fd, int lock_type);
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen/* Lock whole file descriptor. Returns 1 if successful, 0 if timeout or
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen -1 if error. When returning 0, errno is also set to EAGAIN.
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainen NOTE: timeout uses SIGALRM and resets it at the end. */
9e86ad9eb313004cd4c8b5427daeb4c241b57af6Timo Sirainenint file_wait_lock(int fd, int lock_type, unsigned int timeout);
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen
02b32cf39a098edf60981fc228e4b034f11f3b90Timo Sirainen#endif