- Timestamp:
- 1999-09-02T21:50:43+12:00 (25 years ago)
- Location:
- trunk/gsdl/packages/wingdbm
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/packages/wingdbm/gdbmdefs.h
r18 r525 161 161 void (*fatal_err) (); 162 162 163 int need_filelock; 164 163 165 /* The gdbm file descriptor which is set in gdbm_open. */ 164 166 int desc; -
trunk/gsdl/packages/wingdbm/gdbmopen.c
r18 r525 60 60 61 61 gdbm_file_info * 62 gdbm_open (file, block_size, flags, mode, fatal_func )62 gdbm_open (file, block_size, flags, mode, fatal_func, need_filelock) 63 63 char *file; 64 64 int block_size; … … 66 66 int mode; 67 67 void (*fatal_func) (); 68 int need_filelock; 68 69 { 69 70 gdbm_file_info *dbf; /* The record to return. */ … … 91 92 /* Initialize some fields for known values. This is done so gdbm_close 92 93 will work if called before allocating some structures. */ 94 dbf->need_filelock = need_filelock; 93 95 dbf->dir = NULL; 94 96 dbf->bucket = NULL; … … 166 168 } 167 169 /* Sets lock_val to 0 for success. See systems.h. */ 168 READLOCK_FILE(dbf); 170 if (dbf->need_filelock) { 171 READLOCK_FILE(dbf); 172 } else { 173 lock_val = 0; 174 } 169 175 } 170 176 else 171 177 { 172 178 /* Sets lock_val to 0 for success. See systems.h. */ 173 WRITELOCK_FILE(dbf); 179 if (dbf->need_filelock) { 180 WRITELOCK_FILE(dbf); 181 } else { 182 lock_val = 0; 183 } 174 184 } 175 185 if (lock_val != 0) -
trunk/gsdl/packages/wingdbm/gdbmreorg.c
r18 r525 182 182 183 183 /* Fix up DBF to have the correct information for the new file. */ 184 UNLOCK_FILE(dbf); 184 if (dbf->need_filelock) { 185 UNLOCK_FILE(dbf); 186 } 185 187 close (dbf->desc); 186 188 free (dbf->header); -
trunk/gsdl/packages/wingdbm/proto.h
r18 r525 76 76 gdbm_file_info *gdbm_open _ARGS((char *file, int block_size, 77 77 int flags, int mode, 78 void (*fatal_func) (void) ));78 void (*fatal_func) (void), int need_filelock)); 79 79 int gdbm_reorganize _ARGS((gdbm_file_info *dbf )); 80 80 datum gdbm_firstkey _ARGS((gdbm_file_info *dbf ));
Note:
See TracChangeset
for help on using the changeset viewer.