LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
llvm::LockFileManager Class Reference

Class that manages the creation of a lock file to aid implicit coordination between different processes. More...

#include <LockFileManager.h>

Public Types

enum  LockFileState { LFS_Owned, LFS_Shared, LFS_Error }
 Describes the state of a lock file. More...
 

Public Member Functions

 LockFileManager (StringRef FileName)
 
 ~LockFileManager ()
 
LockFileState getState () const
 Determine the state of the lock file. More...
 
 operator LockFileState () const
 
void waitForUnlock ()
 For a shared lock, wait until the owner releases the lock. More...
 

Detailed Description

Class that manages the creation of a lock file to aid implicit coordination between different processes.

The implicit coordination works by creating a ".lock" file alongside the file that we're coordinating for, using the atomicity of the file system to ensure that only a single process can create that ".lock" file. When the lock file is removed, the owning process has finished the operation.

Definition at line 28 of file LockFileManager.h.

Member Enumeration Documentation

Describes the state of a lock file.

Enumerator
LFS_Owned 

The lock file has been created and is owned by this instance of the object.

LFS_Shared 

The lock file already exists and is owned by some other instance.

LFS_Error 

An error occurred while trying to create or find the lock file.

Definition at line 31 of file LockFileManager.h.

Constructor & Destructor Documentation

LockFileManager::LockFileManager ( StringRef  FileName)
LockFileManager::~LockFileManager ( )

Member Function Documentation

LockFileManager::LockFileState LockFileManager::getState ( ) const

Determine the state of the lock file.

Definition at line 151 of file LockFileManager.cpp.

References llvm::lltok::Error, LFS_Error, LFS_Owned, and LFS_Shared.

Referenced by operator LockFileState(), waitForUnlock(), and ~LockFileManager().

llvm::LockFileManager::operator LockFileState ( ) const
inline

Definition at line 67 of file LockFileManager.h.

References getState().

void LockFileManager::waitForUnlock ( )

For a shared lock, wait until the owner releases the lock.

Definition at line 171 of file LockFileManager.cpp.

References llvm::sys::fs::exists(), getState(), LFS_Shared, llvm::StringRef::str(), and llvm::SmallString< InternalLen >::str().


The documentation for this class was generated from the following files: