Changeset 18062
- Timestamp:
- 2008-12-04T12:38:05+13:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/common-src/packages/gdbm/gdbm-1.8.3/global.c
r18019 r18062 45 45 /* The dbm error number is placed in the variable GDBM_ERRNO. */ 46 46 gdbm_error gdbm_errno = GDBM_NO_ERROR; 47 48 #ifdef MSDOS 49 50 #include <io.h> 51 #include <windows.h> 52 53 /* a simple locking function for windows that uses file descriptors */ 54 int my_locking(int fh, int lmode, long lockoffset, long nbytes) { 55 int result = -1; 56 int trys = 10; 57 58 lseek (fh, lockoffset, L_SET); 59 60 while (trys > 0 && result != 0) { 61 if (lmode == MY_UNLOCK) { 62 if (UnlockFile((HANDLE)_get_osfhandle(fh),lockoffset,0,nbytes,0)) 63 result = 0; 64 65 } else if (lmode == MY_READLOCK) { 66 /* if (LockFileEx((HANDLE)_get_osfhandle(fh),0,0,nbytes,0,0))*/ 67 if (LockFile((HANDLE)_get_osfhandle(fh),lockoffset,0,nbytes,0)) 68 result = 0; 69 70 } else if (lmode == MY_WRITELOCK) { 71 if (LockFile((HANDLE)_get_osfhandle(fh),lockoffset,0,nbytes,0)) 72 result = 0; 73 } 74 75 Sleep(100L); 76 trys--; 77 } 78 79 return result; 80 } 81 82 #endif
Note:
See TracChangeset
for help on using the changeset viewer.