1#include "ruby/internal/config.h"
3#define rb_notimplement() (errno = EINVAL)
10flock(
int fd,
int operation)
15#elif defined HAVE_FCNTL && defined HAVE_FCNTL_H
38flock(
int fd,
int operation)
42 switch (operation & ~LOCK_NB) {
44 lock.l_type = F_RDLCK;
47 lock.l_type = F_WRLCK;
50 lock.l_type = F_UNLCK;
56 lock.l_whence = SEEK_SET;
57 lock.l_start = lock.l_len = 0L;
59 return fcntl(fd, (operation & LOCK_NB) ? F_SETLK : F_SETLKW, &lock);
62#elif defined(HAVE_LOCKF)
103flock(
int fd,
int operation)
113 return lockf (fd, F_LOCK, 0);
116 case LOCK_SH|LOCK_NB:
120 case LOCK_EX|LOCK_NB:
121 return lockf (fd, F_TLOCK, 0);
125 return lockf (fd, F_ULOCK, 0);
135flock(
int fd,
int operation)
#define errno
Ractor-aware version of errno.