libzypp 17.37.17
zypp::ZYppGlobalLock Class Reference

Our broken global lock. More...

Public Member Functions

 ZYppGlobalLock (Pathname &&lFilePath)
 ZYppGlobalLock (const ZYppGlobalLock &)=delete
 ZYppGlobalLock (ZYppGlobalLock &&)=delete
ZYppGlobalLockoperator= (const ZYppGlobalLock &)=delete
ZYppGlobalLockoperator= (ZYppGlobalLock &&)=delete
 ~ZYppGlobalLock ()
pid_t lockerPid () const
const std::string & lockerName () const
const PathnamezyppLockFilePath () const
bool isZyppLocked ()
bool zyppLocked ()
 Try to aquire a lock.

Private Types

using ScopedGuard = shared_ptr<void>

Private Member Functions

ScopedGuard accessLockFile ()
 Exception safe access to the lockfile.
void _openLockFile ()
 Use accessLockFile.
void _closeLockFile ()
 Use accessLockFile.
bool isProcessRunning (pid_t pid_r)
pid_t readLockFile ()
void writeLockFile ()
bool safeCheckIsLocked ()

Private Attributes

Pathname _zyppLockFilePath
file_lock _zyppLockFileLock
FILE * _zyppLockFile
pid_t _lockerPid
std::string _lockerName
bool _cleanLock

Detailed Description

Our broken global lock.

Definition at line 106 of file ZYppFactory.cc.

Member Typedef Documentation

◆ ScopedGuard

Definition at line 157 of file ZYppFactory.cc.

Constructor & Destructor Documentation

◆ ZYppGlobalLock() [1/3]

zypp::ZYppGlobalLock::ZYppGlobalLock ( Pathname && lFilePath)
inline

Definition at line 109 of file ZYppFactory.cc.

◆ ZYppGlobalLock() [2/3]

zypp::ZYppGlobalLock::ZYppGlobalLock ( const ZYppGlobalLock & )
delete

◆ ZYppGlobalLock() [3/3]

zypp::ZYppGlobalLock::ZYppGlobalLock ( ZYppGlobalLock && )
delete

◆ ~ZYppGlobalLock()

zypp::ZYppGlobalLock::~ZYppGlobalLock ( )
inline

Definition at line 120 of file ZYppFactory.cc.

Member Function Documentation

◆ operator=() [1/2]

ZYppGlobalLock & zypp::ZYppGlobalLock::operator= ( const ZYppGlobalLock & )
delete

◆ operator=() [2/2]

ZYppGlobalLock & zypp::ZYppGlobalLock::operator= ( ZYppGlobalLock && )
delete

◆ lockerPid()

pid_t zypp::ZYppGlobalLock::lockerPid ( ) const
inline

Definition at line 137 of file ZYppFactory.cc.

◆ lockerName()

const std::string & zypp::ZYppGlobalLock::lockerName ( ) const
inline

Definition at line 140 of file ZYppFactory.cc.

◆ zyppLockFilePath()

const Pathname & zypp::ZYppGlobalLock::zyppLockFilePath ( ) const
inline

Definition at line 143 of file ZYppFactory.cc.

◆ accessLockFile()

ScopedGuard zypp::ZYppGlobalLock::accessLockFile ( )
inlineprivate

Exception safe access to the lockfile.

// Exception safe access to the lockfile.
ScopedGuard closeOnReturn( accessLockFile() );
shared_ptr< void > ScopedGuard
ScopedGuard accessLockFile()
Exception safe access to the lockfile.

Definition at line 165 of file ZYppFactory.cc.

◆ _openLockFile()

void zypp::ZYppGlobalLock::_openLockFile ( )
inlineprivate

Use accessLockFile.

Definition at line 173 of file ZYppFactory.cc.

◆ _closeLockFile()

void zypp::ZYppGlobalLock::_closeLockFile ( )
inlineprivate

Use accessLockFile.

Definition at line 187 of file ZYppFactory.cc.

◆ isProcessRunning()

bool zypp::ZYppGlobalLock::isProcessRunning ( pid_t pid_r)
inlineprivate

Definition at line 205 of file ZYppFactory.cc.

◆ readLockFile()

pid_t zypp::ZYppGlobalLock::readLockFile ( )
inlineprivate

Definition at line 232 of file ZYppFactory.cc.

◆ writeLockFile()

void zypp::ZYppGlobalLock::writeLockFile ( )
inlineprivate

Definition at line 242 of file ZYppFactory.cc.

◆ safeCheckIsLocked()

bool zypp::ZYppGlobalLock::safeCheckIsLocked ( )
inlineprivate

Expects the calling function to lock the access lock

Definition at line 256 of file ZYppFactory.cc.

◆ isZyppLocked()

bool zypp::ZYppGlobalLock::isZyppLocked ( )
inline

Definition at line 279 of file ZYppFactory.cc.

◆ zyppLocked()

bool zypp::ZYppGlobalLock::zyppLocked ( )
inline

Try to aquire a lock.

Returns
true if zypp is already locked by another process.

Definition at line 293 of file ZYppFactory.cc.

Member Data Documentation

◆ _zyppLockFilePath

Pathname zypp::ZYppGlobalLock::_zyppLockFilePath
private

Definition at line 148 of file ZYppFactory.cc.

◆ _zyppLockFileLock

file_lock zypp::ZYppGlobalLock::_zyppLockFileLock
private

Definition at line 149 of file ZYppFactory.cc.

◆ _zyppLockFile

FILE* zypp::ZYppGlobalLock::_zyppLockFile
private

Definition at line 150 of file ZYppFactory.cc.

◆ _lockerPid

pid_t zypp::ZYppGlobalLock::_lockerPid
private

Definition at line 152 of file ZYppFactory.cc.

◆ _lockerName

std::string zypp::ZYppGlobalLock::_lockerName
private

Definition at line 153 of file ZYppFactory.cc.

◆ _cleanLock

bool zypp::ZYppGlobalLock::_cleanLock
private

Definition at line 154 of file ZYppFactory.cc.


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