This is mtab_lock.c in view mode; [Download] [Up]
/* * Name: mtab_lock.c * Description: Locking of mtab files * Author: Christian Starkjohann <cs@hal.kph.tuwien.ac.at> * Date: 1997-04-30 * Copyright: GNU-GPL * Tabsize: 4 */ #include <libc.h> #include <errno.h> #include <mntent.h> #include "my_defines.h" extern int errno; #define MOUNTED_LOCK (MOUNTED ".lock") static int lock = -1; int lock_mtab(void) { int i; if(lock < 0){ i = 0; while((lock = open(MOUNTED_LOCK, O_WRONLY|O_CREAT|O_EXCL, 0)) < 0){ if(errno != EEXIST){ return 0; } usleep(20000); /* sleep for 100ms */ if(i++ > 150) return 1; /* wait for a maximum of about 3s */ } } return 1; } void unlock_mtab(void) { if(lock >= -1){ close(lock); } unlink(MOUNTED_LOCK); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.