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/Thread_VX.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/Thread_VX.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/Thread_VX.h | 338 |
1 files changed, 169 insertions, 169 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/Thread_VX.h b/contrib/libs/poco/Foundation/include/Poco/Thread_VX.h index 883bdccb82..aa46d43ae8 100644 --- a/contrib/libs/poco/Foundation/include/Poco/Thread_VX.h +++ b/contrib/libs/poco/Foundation/include/Poco/Thread_VX.h @@ -1,169 +1,169 @@ -// -// Thread_VX.h -// -// Library: Foundation -// Package: Threading -// Module: Thread -// -// Definition of the ThreadImpl class for VxWorks tasks. -// -// Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Thread_VX_INCLUDED -#define Foundation_Thread_VX_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Runnable.h" -#include "Poco/SignalHandler.h" -#include "Poco/Event.h" -#include "Poco/RefCountedObject.h" -#include "Poco/AutoPtr.h" -#include <taskLib.h> -#error #include <taskVarLib.h> - - -namespace Poco { - - -class Foundation_API ThreadImpl -{ -public: - typedef int TIDImpl; - typedef void (*Callable)(void*); - - enum Priority - { - PRIO_LOWEST_IMPL, - PRIO_LOW_IMPL, - PRIO_NORMAL_IMPL, - PRIO_HIGH_IMPL, - PRIO_HIGHEST_IMPL - }; - - enum Policy - { - POLICY_DEFAULT_IMPL = 0 - }; - - enum - { - DEFAULT_THREAD_STACK_SIZE = 65536 - }; - - struct CallbackData: public RefCountedObject - { - CallbackData(): callback(0), pData(0) - { - } - - Callable callback; - void* pData; - }; - - ThreadImpl(); - ~ThreadImpl(); - - TIDImpl tidImpl() const; - void setPriorityImpl(int prio); - int getPriorityImpl() const; - void setOSPriorityImpl(int prio, int policy = 0); - int getOSPriorityImpl() const; - static int getMinOSPriorityImpl(int policy); - static int getMaxOSPriorityImpl(int policy); - void setStackSizeImpl(int size); - int getStackSizeImpl() const; - void startImpl(Runnable& target); - void startImpl(Callable target, void* pData = 0); - - void joinImpl(); - bool joinImpl(long milliseconds); - bool isRunningImpl() const; - static void sleepImpl(long milliseconds); - static void yieldImpl(); - static ThreadImpl* currentImpl(); - static TIDImpl currentTidImpl(); - -protected: - static void runnableEntry(void* pThread, int, int, int, int, int, int, int, int, int); - static void callableEntry(void* pThread, int, int, int, int, int, int, int, int, int); - static int mapPrio(int prio); - static int reverseMapPrio(int osPrio); - - struct ThreadData: public RefCountedObject - { - ThreadData(): - pRunnableTarget(0), - pCallbackTarget(0), - task(0), - prio(PRIO_NORMAL_IMPL), - osPrio(127), - done(false), - stackSize(POCO_THREAD_STACK_SIZE) - { - } - - Runnable* pRunnableTarget; - AutoPtr<CallbackData> pCallbackTarget; - int task; - int prio; - int osPrio; - Event done; - int stackSize; - }; - -private: - AutoPtr<ThreadData> _pData; - static ThreadImpl* _pCurrent; -}; - - -// -// inlines -// -inline int ThreadImpl::getPriorityImpl() const -{ - return _pData->prio; -} - - -inline int ThreadImpl::getOSPriorityImpl() const -{ - return _pData->osPrio; -} - - -inline bool ThreadImpl::isRunningImpl() const -{ - return _pData->pRunnableTarget != 0 || - (_pData->pCallbackTarget.get() != 0 && _pData->pCallbackTarget->callback != 0); -} - - -inline void ThreadImpl::yieldImpl() -{ - taskDelay(0); -} - - -inline int ThreadImpl::getStackSizeImpl() const -{ - return _pData->stackSize; -} - - -inline ThreadImpl::TIDImpl ThreadImpl::tidImpl() const -{ - return _pData->task; -} - - -} // namespace Poco - - -#endif // Foundation_Thread_VX_INCLUDED +// +// Thread_VX.h +// +// Library: Foundation +// Package: Threading +// Module: Thread +// +// Definition of the ThreadImpl class for VxWorks tasks. +// +// Copyright (c) 2004-2011, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_Thread_VX_INCLUDED +#define Foundation_Thread_VX_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Runnable.h" +#include "Poco/SignalHandler.h" +#include "Poco/Event.h" +#include "Poco/RefCountedObject.h" +#include "Poco/AutoPtr.h" +#include <taskLib.h> +#error #include <taskVarLib.h> + + +namespace Poco { + + +class Foundation_API ThreadImpl +{ +public: + typedef int TIDImpl; + typedef void (*Callable)(void*); + + enum Priority + { + PRIO_LOWEST_IMPL, + PRIO_LOW_IMPL, + PRIO_NORMAL_IMPL, + PRIO_HIGH_IMPL, + PRIO_HIGHEST_IMPL + }; + + enum Policy + { + POLICY_DEFAULT_IMPL = 0 + }; + + enum + { + DEFAULT_THREAD_STACK_SIZE = 65536 + }; + + struct CallbackData: public RefCountedObject + { + CallbackData(): callback(0), pData(0) + { + } + + Callable callback; + void* pData; + }; + + ThreadImpl(); + ~ThreadImpl(); + + TIDImpl tidImpl() const; + void setPriorityImpl(int prio); + int getPriorityImpl() const; + void setOSPriorityImpl(int prio, int policy = 0); + int getOSPriorityImpl() const; + static int getMinOSPriorityImpl(int policy); + static int getMaxOSPriorityImpl(int policy); + void setStackSizeImpl(int size); + int getStackSizeImpl() const; + void startImpl(Runnable& target); + void startImpl(Callable target, void* pData = 0); + + void joinImpl(); + bool joinImpl(long milliseconds); + bool isRunningImpl() const; + static void sleepImpl(long milliseconds); + static void yieldImpl(); + static ThreadImpl* currentImpl(); + static TIDImpl currentTidImpl(); + +protected: + static void runnableEntry(void* pThread, int, int, int, int, int, int, int, int, int); + static void callableEntry(void* pThread, int, int, int, int, int, int, int, int, int); + static int mapPrio(int prio); + static int reverseMapPrio(int osPrio); + + struct ThreadData: public RefCountedObject + { + ThreadData(): + pRunnableTarget(0), + pCallbackTarget(0), + task(0), + prio(PRIO_NORMAL_IMPL), + osPrio(127), + done(false), + stackSize(POCO_THREAD_STACK_SIZE) + { + } + + Runnable* pRunnableTarget; + AutoPtr<CallbackData> pCallbackTarget; + int task; + int prio; + int osPrio; + Event done; + int stackSize; + }; + +private: + AutoPtr<ThreadData> _pData; + static ThreadImpl* _pCurrent; +}; + + +// +// inlines +// +inline int ThreadImpl::getPriorityImpl() const +{ + return _pData->prio; +} + + +inline int ThreadImpl::getOSPriorityImpl() const +{ + return _pData->osPrio; +} + + +inline bool ThreadImpl::isRunningImpl() const +{ + return _pData->pRunnableTarget != 0 || + (_pData->pCallbackTarget.get() != 0 && _pData->pCallbackTarget->callback != 0); +} + + +inline void ThreadImpl::yieldImpl() +{ + taskDelay(0); +} + + +inline int ThreadImpl::getStackSizeImpl() const +{ + return _pData->stackSize; +} + + +inline ThreadImpl::TIDImpl ThreadImpl::tidImpl() const +{ + return _pData->task; +} + + +} // namespace Poco + + +#endif // Foundation_Thread_VX_INCLUDED |