diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h b/contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h index a62fbb33b0..1342dbcb93 100644 --- a/contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h +++ b/contrib/libs/poco/Foundation/include/Poco/ScopedUnlock.h @@ -1,64 +1,64 @@ -// -// ScopedUnlock.h -// -// Library: Foundation -// Package: Threading -// Module: Mutex -// -// Definition of the ScopedUnlock template class. -// -// Copyright (c) 2007, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_ScopedUnlock_INCLUDED -#define Foundation_ScopedUnlock_INCLUDED - - -#include "Poco/Foundation.h" - - -namespace Poco { - - -template <class M> -class ScopedUnlock - /// A class that simplifies thread synchronization - /// with a mutex. - /// The constructor accepts a Mutex and unlocks it. - /// The destructor locks the mutex. -{ -public: - inline ScopedUnlock(M& mutex, bool unlockNow = true): _mutex(mutex) - { - if (unlockNow) - _mutex.unlock(); - } - inline ~ScopedUnlock() - { - try - { - _mutex.lock(); - } - catch (...) - { - poco_unexpected(); - } - } - -private: - M& _mutex; - - ScopedUnlock(); - ScopedUnlock(const ScopedUnlock&); - ScopedUnlock& operator = (const ScopedUnlock&); -}; - - -} // namespace Poco - - -#endif // Foundation_ScopedUnlock_INCLUDED +// +// ScopedUnlock.h +// +// Library: Foundation +// Package: Threading +// Module: Mutex +// +// Definition of the ScopedUnlock template class. +// +// Copyright (c) 2007, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_ScopedUnlock_INCLUDED +#define Foundation_ScopedUnlock_INCLUDED + + +#include "Poco/Foundation.h" + + +namespace Poco { + + +template <class M> +class ScopedUnlock + /// A class that simplifies thread synchronization + /// with a mutex. + /// The constructor accepts a Mutex and unlocks it. + /// The destructor locks the mutex. +{ +public: + inline ScopedUnlock(M& mutex, bool unlockNow = true): _mutex(mutex) + { + if (unlockNow) + _mutex.unlock(); + } + inline ~ScopedUnlock() + { + try + { + _mutex.lock(); + } + catch (...) + { + poco_unexpected(); + } + } + +private: + M& _mutex; + + ScopedUnlock(); + ScopedUnlock(const ScopedUnlock&); + ScopedUnlock& operator = (const ScopedUnlock&); +}; + + +} // namespace Poco + + +#endif // Foundation_ScopedUnlock_INCLUDED |