File-Lock

 view release on metacpan or  search on metacpan

Lock.xs  view on Meta::CPAN

	OUTPUT:
	RETVAL

void
fcntl(file, mode=Lock_exclusive|Lock_nonblock, offset=0, whence=SEEK_SET, length=0)
	FILE *	file
	mode_int	mode
	int		offset
	int		whence
	int		length
	PPCODE:
	{
#	ifdef FDEBUG
		fprintf(stderr,"Entering fcntl(%d,%s,%d,%d,%d)\n",fileno(file),mode_name[mode],offset,whence,length);
#	endif		
#	if defined(HAS_FCNTL)
#define YES_FCNTL		
	{
		struct flock retflk;
		int retval;
		retval = _base_fcntl(fileno(file),mode,offset,whence,length, &retflk);

Lock.xs  view on Meta::CPAN

#	if !defined(HAS_FCNTL) && !defined(HAS_LOCKF)
#define NO_FCNTL		
		croak("fcntl is not supported on this architecture\n");
#	endif				
	}

void
flock(file, mode=Lock_exclusive|Lock_nonblock)
	FILE *	file
	mode_int		mode
	PPCODE:
	{
#	ifdef FDEBUG
		fprintf(stderr,"Entering flock(%d,%s)\n",fileno(file),mode_name[mode]);
#	endif		
#	if defined(HAS_FLOCK)
#define YES_FLOCK		
		ReturnResult(_base_flock(fileno(file),mode),mode);
#	endif
#	if !defined(HAS_FLOCK) && defined(HAS_FCNTL)
#define EMU_FLOCK		

Lock.xs  view on Meta::CPAN

#	endif				
	}

void
lockf(file, mode=Lock_exclusive|Lock_nonblock, offset=0, whence=SEEK_SET, length=0)
	FILE *	file
	mode_int	mode
	int		offset
	int		whence
	int		length
	PPCODE:
	{
#	ifdef FDEBUG
		fprintf(stderr,"Entering lockf(%d,%s,%d,%d,%d)\n",fileno(file),mode_name[mode],offset,whence,length);
#	endif		
#	if defined(HAS_LOCKF)
#define YES_LOCKF		
		ReturnResult(_base_lockf(fileno(file),mode,offset,whence,length),mode);
#	endif
#	if !defined(HAS_LOCKF) && defined(HAS_FCNTL)
#define EMU_LOCKF		

Lock.xs  view on Meta::CPAN

#	ifdef FDEBUG
		fprintf(stderr,"Returning `%s' from has_lockfile()\n",RETVAL);
#	endif		
	}
	OUTPUT:
	RETVAL

void
_mode(mode)
	mode_int	mode
	PPCODE:
	{
		ReturnResult(mode & Lock_modemask,Lock_test);
	}
	

void
new(class, file, mode=Lock_shared, offset=0, whence=SEEK_SET, length=0)
	SV *	class
	FILE *	file
	mode_int	mode
	int		offset
	int		whence
	int		length
	PPCODE:
	{
#	ifdef FDEBUG
		fprintf(stderr,"Entering new File::Lock(%d,%s,%d,%d,%d)\n",fileno(file),mode_name[mode],offset,whence,length);
#	endif		
	if(((mode & Lock_modemask)== Lock_test) || ((mode & Lock_modemask)==Lock_unlock)) {
		croak("Only exclusive or shared locking modes may be used with new File::Lock.\n");
	}
	{
#	if defined(HAS_FCNTL)
		struct flock retflk;



( run in 0.636 second using v1.01-cache-2.11-cpan-5511b514fd6 )