/* ISC license. */ #include #ifdef SKALIBS_HASFLOCK #include #include #include #include int lock_shnb (int fd) { register int r ; do r = flock(fd, LOCK_SH | LOCK_NB) ; while ((r == -1) && (errno == EINTR)) ; return r ; } #else #include #include #include #include int lock_shnb (int fd) { register int r ; do r = lockf(fd, F_TLOCK, 0) ; while ((r == -1) && (errno == EINTR)) ; if ((r == -1) && (errno == EACCES)) errno = EAGAIN ; return r ; } #endif