dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] pnet/support file.c,1.16,1.17


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] pnet/support file.c,1.16,1.17
Date: Wed, 12 Nov 2003 03:24:36 +0000

Update of /cvsroot/dotgnu-pnet/pnet/support
In directory subversions:/tmp/cvs-serv20019/support

Modified Files:
        file.c 
Log Message:


Port the file locking primitives to Win32.


Index: file.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/support/file.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** file.c      11 Nov 2003 00:37:09 -0000      1.16
--- file.c      12 Nov 2003 03:24:34 -0000      1.17
***************
*** 415,419 ****
  int ILSysIOLock(ILSysIOHandle handle, ILInt64 position, ILInt64 length)
  {
! #if defined(HAVE_FCNTL) && defined(HAVE_F_SETLKW)
        struct flock cntl_data;
        /* set fields individually...who knows what extras are there? */
--- 415,444 ----
  int ILSysIOLock(ILSysIOHandle handle, ILInt64 position, ILInt64 length)
  {
! #if defined(IL_WIN32_PLATFORM)
!       /* Bypass the system library and call LockFile directly under Win32 */
! #ifdef IL_WIN32_CYGWIN
!       HANDLE osHandle = (HANDLE)get_osfhandle((int)(ILNativeInt)handle);
! #else
!       HANDLE osHandle = (HANDLE)_get_osfhandle((int)(ILNativeInt)handle);
! #endif
!       if(osHandle == (HANDLE)INVALID_HANDLE_VALUE)
!       {
!               ILSysIOSetErrno(IL_ERRNO_EBADF);
!               return 0;
!       }
!       if(LockFile(osHandle,
!                               (DWORD)(position & IL_MAX_UINT32),
!                               (DWORD)((position >> 32) & IL_MAX_UINT32),
!                               (DWORD)(length & IL_MAX_UINT32),
!                               (DWORD)((length >> 32) & IL_MAX_UINT32)))
!       {
!               return 1;
!       }
!       else
!       {
!               ILSysIOSetErrno(IL_ERRNO_ENOLCK);
!               return 0;
!       }
! #elif defined(HAVE_FCNTL) && defined(HAVE_F_SETLKW)
        struct flock cntl_data;
        /* set fields individually...who knows what extras are there? */
***************
*** 436,440 ****
  int ILSysIOUnlock(ILSysIOHandle handle, ILInt64 position, ILInt64 length)
  {
! #if defined(HAVE_FCNTL) && defined(HAVE_F_SETLKW)
        struct flock cntl_data;
        /* set fields individually...who knows what extras are there? */
--- 461,490 ----
  int ILSysIOUnlock(ILSysIOHandle handle, ILInt64 position, ILInt64 length)
  {
! #if defined(IL_WIN32_PLATFORM)
!       /* Bypass the system library and call UnlockFile directly under Win32 */
! #ifdef IL_WIN32_CYGWIN
!       HANDLE osHandle = (HANDLE)get_osfhandle((int)(ILNativeInt)handle);
! #else
!       HANDLE osHandle = (HANDLE)_get_osfhandle((int)(ILNativeInt)handle);
! #endif
!       if(osHandle == (HANDLE)INVALID_HANDLE_VALUE)
!       {
!               ILSysIOSetErrno(IL_ERRNO_EBADF);
!               return 0;
!       }
!       if(UnlockFile(osHandle,
!                                 (DWORD)(position & IL_MAX_UINT32),
!                                 (DWORD)((position >> 32) & IL_MAX_UINT32),
!                                 (DWORD)(length & IL_MAX_UINT32),
!                                 (DWORD)((length >> 32) & IL_MAX_UINT32)))
!       {
!               return 1;
!       }
!       else
!       {
!               ILSysIOSetErrno(IL_ERRNO_ENOLCK);
!               return 0;
!       }
! #elif defined(HAVE_FCNTL) && defined(HAVE_F_SETLKW)
        struct flock cntl_data;
        /* set fields individually...who knows what extras are there? */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]