1#include "ruby/internal/config.h"
5#elif defined HAVE_FCNTL && defined HAVE_FCNTL_H
28flock(
int fd,
int operation)
32 switch (operation & ~LOCK_NB) {
34 lock.l_type = F_RDLCK;
37 lock.l_type = F_WRLCK;
40 lock.l_type = F_UNLCK;
46 lock.l_whence = SEEK_SET;
47 lock.l_start = lock.l_len = 0L;
49 return fcntl(fd, (operation & LOCK_NB) ? F_SETLK : F_SETLKW, &lock);
52#elif defined(HAVE_LOCKF)
93flock(
int fd,
int operation)
103 return lockf (fd, F_LOCK, 0);
106 case LOCK_SH|LOCK_NB:
110 case LOCK_EX|LOCK_NB:
111 return lockf (fd, F_TLOCK, 0);
115 return lockf (fd, F_ULOCK, 0);
125flock(
int fd,
int operation)
void rb_notimplement(void)