diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
commit | 2d37894b1b037cf24231090eda8589bbb44fb6fc (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h | |
parent | 718c552901d703c502ccbefdfc3c9028d608b947 (diff) | |
download | ydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h | 160 |
1 files changed, 80 insertions, 80 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h b/contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h index 41aef53c6b..f0f43eac3a 100644 --- a/contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h +++ b/contrib/libs/poco/Foundation/include/Poco/Mutex_VX.h @@ -1,80 +1,80 @@ -// -// Mutex_VX.h -// -// Library: Foundation -// Package: Threading -// Module: Mutex -// -// Definition of the MutexImpl and FastMutexImpl classes for VxWorks. -// -// Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Mutex_VX_INCLUDED -#define Foundation_Mutex_VX_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Exception.h" -#include <semLib.h> -#include <errno.h> - - -namespace Poco { - - -class Foundation_API MutexImpl -{ -protected: - MutexImpl(); - MutexImpl(bool fast); - ~MutexImpl(); - void lockImpl(); - bool tryLockImpl(); - bool tryLockImpl(long milliseconds); - void unlockImpl(); - -private: - SEM_ID _sem; -}; - - -class Foundation_API FastMutexImpl: public MutexImpl -{ -protected: - FastMutexImpl(); - ~FastMutexImpl(); -}; - - -// -// inlines -// -inline void MutexImpl::lockImpl() -{ - if (semTake(_sem, WAIT_FOREVER) != OK) - throw SystemException("cannot lock mutex"); -} - - -inline bool MutexImpl::tryLockImpl() -{ - return semTake(_sem, NO_WAIT) == OK; -} - - -inline void MutexImpl::unlockImpl() -{ - if (semGive(_sem) != OK) - throw SystemException("cannot unlock mutex"); -} - - -} // namespace Poco - - -#endif // Foundation_Mutex_VX_INCLUDED +// +// Mutex_VX.h +// +// Library: Foundation +// Package: Threading +// Module: Mutex +// +// Definition of the MutexImpl and FastMutexImpl classes for VxWorks. +// +// Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_Mutex_VX_INCLUDED +#define Foundation_Mutex_VX_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Exception.h" +#include <semLib.h> +#include <errno.h> + + +namespace Poco { + + +class Foundation_API MutexImpl +{ +protected: + MutexImpl(); + MutexImpl(bool fast); + ~MutexImpl(); + void lockImpl(); + bool tryLockImpl(); + bool tryLockImpl(long milliseconds); + void unlockImpl(); + +private: + SEM_ID _sem; +}; + + +class Foundation_API FastMutexImpl: public MutexImpl +{ +protected: + FastMutexImpl(); + ~FastMutexImpl(); +}; + + +// +// inlines +// +inline void MutexImpl::lockImpl() +{ + if (semTake(_sem, WAIT_FOREVER) != OK) + throw SystemException("cannot lock mutex"); +} + + +inline bool MutexImpl::tryLockImpl() +{ + return semTake(_sem, NO_WAIT) == OK; +} + + +inline void MutexImpl::unlockImpl() +{ + if (semGive(_sem) != OK) + throw SystemException("cannot unlock mutex"); +} + + +} // namespace Poco + + +#endif // Foundation_Mutex_VX_INCLUDED |