diff options
Diffstat (limited to 'src/libstddjb/lock_shnb.c')
-rw-r--r-- | src/libstddjb/lock_shnb.c | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/src/libstddjb/lock_shnb.c b/src/libstddjb/lock_shnb.c deleted file mode 100644 index 40c988d..0000000 --- a/src/libstddjb/lock_shnb.c +++ /dev/null @@ -1,35 +0,0 @@ -/* ISC license. */ - -#include <skalibs/sysdeps.h> - -#ifdef SKALIBS_HASFLOCK - -#include <skalibs/nonposix.h> -#include <errno.h> -#include <sys/file.h> -#include <skalibs/djbunix.h> - -int lock_shnb (int fd) -{ - int r ; - do r = flock(fd, LOCK_SH | LOCK_NB) ; - while ((r == -1) && (errno == EINTR)) ; - return r ; -} - -#else - -#include <unistd.h> -#include <errno.h> -#include <skalibs/djbunix.h> - -int lock_shnb (int fd) -{ - int r ; - do r = lockf(fd, F_TLOCK, 0) ; - while ((r == -1) && (errno == EINTR)) ; - if ((r == -1) && (errno == EACCES)) errno = EAGAIN ; - return r ; -} - -#endif |