• Home
  • Raw
  • Download

Lines Matching refs:lock

76   const char*  lock;  member
95 filelock_lock( FileLock* lock ) in filelock_lock() argument
101 ret = _mkdir( lock->lock ); in filelock_lock()
104 D( "could not access directory '%s', check path elements", lock->lock ); in filelock_lock()
107 D( "_mkdir(%s): %s", lock->lock, strerror(errno) ); in filelock_lock()
113 … already exist, waiting a bit to ensure that no other emulator instance is starting", lock->lock ); in filelock_lock()
120 pidfile_fd = open( lock->temp, O_RDONLY ); in filelock_lock()
131 D( "no pid file in '%s', assuming stale directory", lock->lock ); in filelock_lock()
144 D( "could not read pid file '%s'", lock->temp ); in filelock_lock()
183 D( "the file '%s' is locked by process ID %d\n", lock->file, lockpid ); in filelock_lock()
190 pidfile_fd = open( lock->temp, O_WRONLY | O_CREAT | O_TRUNC ); in filelock_lock()
193 if ( path_delete_file( lock->temp ) < 0 ) { in filelock_lock()
194 D( "could not remove '%s': %s\n", lock->temp, strerror(errno) ); in filelock_lock()
197 pidfile_fd = open( lock->temp, O_WRONLY | O_CREAT | O_TRUNC ); in filelock_lock()
200 D( "could not create '%s': %s\n", lock->temp, strerror(errno) ); in filelock_lock()
211 D( "could not write PID to '%s'\n", lock->temp ); in filelock_lock()
216 lock->locked = 1; in filelock_lock()
226 strcpy( lock->temp, lock->file ); in filelock_lock()
227 strcat( lock->temp, TEMP_NAME ); in filelock_lock()
228 temp_fd = mkstemp( lock->temp ); in filelock_lock()
231 D("cannot create locking temp file '%s'", lock->temp ); in filelock_lock()
238 D( "cannot write to locking temp file '%s'", lock->temp); in filelock_lock()
244 CHECKED(rc, lstat( lock->temp, &st_temp )); in filelock_lock()
246 D( "can't properly stat our locking temp file '%s'", lock->temp ); in filelock_lock()
259 D( "cannot acquire lock file '%s'", lock->lock ); in filelock_lock()
267 CHECKED(rc, link( lock->temp, lock->lock )); in filelock_lock()
269 CHECKED(rc, lstat( lock->lock, &st_lock )); in filelock_lock()
275 lock->locked = 1; in filelock_lock()
276 CHECKED(rc, unlink( lock->temp )); in filelock_lock()
293 CHECKED(lockfd, open( lock->lock,O_RDONLY )); in filelock_lock()
322 D( "removing stale lockfile '%s'", lock->lock ); in filelock_lock()
323 CHECKED(rc, unlink( lock->lock )); in filelock_lock()
329 D("file '%s' is already in use by another process", lock->file ); in filelock_lock()
343 unlink( lock->lock ); in filelock_lock()
344 unlink( lock->temp ); in filelock_lock()
350 filelock_release( FileLock* lock ) in filelock_release() argument
352 if (lock->locked) { in filelock_release()
354 path_delete_file( (char*)lock->temp ); in filelock_release()
355 rmdir( (char*)lock->lock ); in filelock_release()
357 unlink( (char*)lock->lock ); in filelock_release()
359 lock->locked = 0; in filelock_release()
366 FileLock* lock; in filelock_atexit() local
368 for (lock = _all_filelocks; lock != NULL; lock = lock->next) in filelock_atexit()
369 filelock_release( lock ); in filelock_atexit()
385 FileLock* lock = malloc(total_len); in filelock_create() local
387 lock->file = (const char*)(lock + 1); in filelock_create()
388 memcpy( (char*)lock->file, file, file_len+1 ); in filelock_create()
390 lock->lock = lock->file + file_len + 1; in filelock_create()
391 memcpy( (char*)lock->lock, file, file_len+1 ); in filelock_create()
392 strcat( (char*)lock->lock, LOCK_NAME ); in filelock_create()
394 lock->temp = (char*)lock->lock + lock_len + 1; in filelock_create()
396 snprintf( (char*)lock->temp, temp_len, "%s\\" PIDFILE_NAME, lock->lock ); in filelock_create()
398 lock->temp[0] = 0; in filelock_create()
400 lock->locked = 0; in filelock_create()
402 if (filelock_lock(lock) < 0) { in filelock_create()
403 free(lock); in filelock_create()
407 lock->next = _all_filelocks; in filelock_create()
408 _all_filelocks = lock; in filelock_create()
410 if (lock->next == NULL) in filelock_create()
413 return lock; in filelock_create()