From 54ec1c4fe81672ca66f327ef6ae170f458cd79e5 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 15 Aug 2007 20:57:30 +0000 Subject: sorry. I made wrong tags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_54@13009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_5/missing/flock.c | 134 --------------------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 ruby_1_8_5/missing/flock.c (limited to 'ruby_1_8_5/missing/flock.c') diff --git a/ruby_1_8_5/missing/flock.c b/ruby_1_8_5/missing/flock.c deleted file mode 100644 index ed619f0e91..0000000000 --- a/ruby_1_8_5/missing/flock.c +++ /dev/null @@ -1,134 +0,0 @@ -#include "config.h" - -#if defined HAVE_FCNTL && defined HAVE_FCNTL_H - -/* These are the flock() constants. Since this sytems doesn't have - flock(), the values of the constants are probably not available. -*/ -# ifndef LOCK_SH -# define LOCK_SH 1 -# endif -# ifndef LOCK_EX -# define LOCK_EX 2 -# endif -# ifndef LOCK_NB -# define LOCK_NB 4 -# endif -# ifndef LOCK_UN -# define LOCK_UN 8 -# endif - -#include -#include -#include - -int -flock(fd, operation) - int fd; - int operation; -{ - struct flock lock; - - switch (operation & ~LOCK_NB) { - case LOCK_SH: - lock.l_type = F_RDLCK; - break; - case LOCK_EX: - lock.l_type = F_WRLCK; - break; - case LOCK_UN: - lock.l_type = F_UNLCK; - break; - default: - errno = EINVAL; - return -1; - } - lock.l_whence = SEEK_SET; - lock.l_start = lock.l_len = 0L; - - return fcntl(fd, (operation & LOCK_NB) ? F_SETLK : F_SETLKW, &lock); -} - -#elif defined(HAVE_LOCKF) - -#include -#include - -/* Emulate flock() with lockf() or fcntl(). This is just to increase - portability of scripts. The calls might not be completely - interchangeable. What's really needed is a good file - locking module. -*/ - -# ifndef F_ULOCK -# define F_ULOCK 0 /* Unlock a previously locked region */ -# endif -# ifndef F_LOCK -# define F_LOCK 1 /* Lock a region for exclusive use */ -# endif -# ifndef F_TLOCK -# define F_TLOCK 2 /* Test and lock a region for exclusive use */ -# endif -# ifndef F_TEST -# define F_TEST 3 /* Test a region for other processes locks */ -# endif - -/* These are the flock() constants. Since this sytems doesn't have - flock(), the values of the constants are probably not available. -*/ -# ifndef LOCK_SH -# define LOCK_SH 1 -# endif -# ifndef LOCK_EX -# define LOCK_EX 2 -# endif -# ifndef LOCK_NB -# define LOCK_NB 4 -# endif -# ifndef LOCK_UN -# define LOCK_UN 8 -# endif - -int -flock(fd, operation) - int fd; - int operation; -{ - switch (operation) { - - /* LOCK_SH - get a shared lock */ - case LOCK_SH: - rb_notimplement(); - return -1; - /* LOCK_EX - get an exclusive lock */ - case LOCK_EX: - return lockf (fd, F_LOCK, 0); - - /* LOCK_SH|LOCK_NB - get a non-blocking shared lock */ - case LOCK_SH|LOCK_NB: - rb_notimplement(); - return -1; - /* LOCK_EX|LOCK_NB - get a non-blocking exclusive lock */ - case LOCK_EX|LOCK_NB: - return lockf (fd, F_TLOCK, 0); - - /* LOCK_UN - unlock */ - case LOCK_UN: - return lockf (fd, F_ULOCK, 0); - - /* Default - can't decipher operation */ - default: - errno = EINVAL; - return -1; - } -} -#elif !defined _WIN32 -int -flock(fd, operation) - int fd; - int operation; -{ - rb_notimplement(); - return -1; -} -#endif -- cgit v1.2.3