aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h
diff options
context:
space:
mode:
authororivej <orivej@yandex-team.ru>2022-02-10 16:44:49 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:49 +0300
commit718c552901d703c502ccbefdfc3c9028d608b947 (patch)
tree46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h
parente9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff)
downloadydb-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_WIN32.h')
-rw-r--r--contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h366
1 files changed, 183 insertions, 183 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h b/contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h
index 194b0a3b70..80170d407e 100644
--- a/contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h
+++ b/contrib/libs/poco/Foundation/include/Poco/Thread_WIN32.h
@@ -1,183 +1,183 @@
-//
-// Thread_WIN32.h
-//
-// Library: Foundation
-// Package: Threading
-// Module: Thread
-//
-// Definition of the ThreadImpl class for WIN32.
-//
-// Copyright (c) 2004-2009, Applied Informatics Software Engineering GmbH.
-// and Contributors.
-//
-// SPDX-License-Identifier: BSL-1.0
-//
-
-
-#ifndef Foundation_Thread_WIN32_INCLUDED
-#define Foundation_Thread_WIN32_INCLUDED
-
-
-#include "Poco/Foundation.h"
-#include "Poco/Runnable.h"
-#include "Poco/SharedPtr.h"
-#include "Poco/UnWindows.h"
-
-
-namespace Poco {
-
-
-class Foundation_API ThreadImpl
-{
-public:
- typedef DWORD TIDImpl;
- typedef void (*Callable)(void*);
-
-#if defined(_DLL)
- typedef DWORD (WINAPI *Entry)(LPVOID);
-#else
- typedef unsigned (__stdcall *Entry)(void*);
-#endif
-
- enum Priority
- {
- PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST,
- PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL,
- PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL,
- PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL,
- PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST
- };
-
- enum Policy
- {
- POLICY_DEFAULT_IMPL = 0
- };
-
- 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(SharedPtr<Runnable> pTarget);
- void joinImpl();
- bool joinImpl(long milliseconds);
- bool isRunningImpl() const;
- static void sleepImpl(long milliseconds);
- static void yieldImpl();
- static ThreadImpl* currentImpl();
- static TIDImpl currentTidImpl();
-
-protected:
-#if defined(_DLL)
- static DWORD WINAPI runnableEntry(LPVOID pThread);
-#else
- static unsigned __stdcall runnableEntry(void* pThread);
-#endif
-
- void createImpl(Entry ent, void* pData);
- void threadCleanup();
-
-private:
- class CurrentThreadHolder
- {
- public:
- CurrentThreadHolder(): _slot(TlsAlloc())
- {
- if (_slot == TLS_OUT_OF_INDEXES)
- throw SystemException("cannot allocate thread context key");
- }
- ~CurrentThreadHolder()
- {
- TlsFree(_slot);
- }
- ThreadImpl* get() const
- {
- return reinterpret_cast<ThreadImpl*>(TlsGetValue(_slot));
- }
- void set(ThreadImpl* pThread)
- {
- TlsSetValue(_slot, pThread);
- }
-
- private:
- DWORD _slot;
- };
-
- SharedPtr<Runnable> _pRunnableTarget;
- HANDLE _thread;
- DWORD _threadId;
- int _prio;
- int _stackSize;
-
- static CurrentThreadHolder _currentThreadHolder;
-};
-
-
-//
-// inlines
-//
-inline int ThreadImpl::getPriorityImpl() const
-{
- return _prio;
-}
-
-
-inline int ThreadImpl::getOSPriorityImpl() const
-{
- return _prio;
-}
-
-
-inline int ThreadImpl::getMinOSPriorityImpl(int /* policy */)
-{
- return PRIO_LOWEST_IMPL;
-}
-
-
-inline int ThreadImpl::getMaxOSPriorityImpl(int /* policy */)
-{
- return PRIO_HIGHEST_IMPL;
-}
-
-
-inline void ThreadImpl::sleepImpl(long milliseconds)
-{
- Sleep(DWORD(milliseconds));
-}
-
-
-inline void ThreadImpl::yieldImpl()
-{
- Sleep(0);
-}
-
-
-inline void ThreadImpl::setStackSizeImpl(int size)
-{
- _stackSize = size;
-}
-
-
-inline int ThreadImpl::getStackSizeImpl() const
-{
- return _stackSize;
-}
-
-
-inline ThreadImpl::TIDImpl ThreadImpl::tidImpl() const
-{
- return _threadId;
-}
-
-
-} // namespace Poco
-
-
-#endif // Foundation_Thread_WIN32_INCLUDED
+//
+// Thread_WIN32.h
+//
+// Library: Foundation
+// Package: Threading
+// Module: Thread
+//
+// Definition of the ThreadImpl class for WIN32.
+//
+// Copyright (c) 2004-2009, Applied Informatics Software Engineering GmbH.
+// and Contributors.
+//
+// SPDX-License-Identifier: BSL-1.0
+//
+
+
+#ifndef Foundation_Thread_WIN32_INCLUDED
+#define Foundation_Thread_WIN32_INCLUDED
+
+
+#include "Poco/Foundation.h"
+#include "Poco/Runnable.h"
+#include "Poco/SharedPtr.h"
+#include "Poco/UnWindows.h"
+
+
+namespace Poco {
+
+
+class Foundation_API ThreadImpl
+{
+public:
+ typedef DWORD TIDImpl;
+ typedef void (*Callable)(void*);
+
+#if defined(_DLL)
+ typedef DWORD (WINAPI *Entry)(LPVOID);
+#else
+ typedef unsigned (__stdcall *Entry)(void*);
+#endif
+
+ enum Priority
+ {
+ PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST,
+ PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL,
+ PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL,
+ PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL,
+ PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST
+ };
+
+ enum Policy
+ {
+ POLICY_DEFAULT_IMPL = 0
+ };
+
+ 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(SharedPtr<Runnable> pTarget);
+ void joinImpl();
+ bool joinImpl(long milliseconds);
+ bool isRunningImpl() const;
+ static void sleepImpl(long milliseconds);
+ static void yieldImpl();
+ static ThreadImpl* currentImpl();
+ static TIDImpl currentTidImpl();
+
+protected:
+#if defined(_DLL)
+ static DWORD WINAPI runnableEntry(LPVOID pThread);
+#else
+ static unsigned __stdcall runnableEntry(void* pThread);
+#endif
+
+ void createImpl(Entry ent, void* pData);
+ void threadCleanup();
+
+private:
+ class CurrentThreadHolder
+ {
+ public:
+ CurrentThreadHolder(): _slot(TlsAlloc())
+ {
+ if (_slot == TLS_OUT_OF_INDEXES)
+ throw SystemException("cannot allocate thread context key");
+ }
+ ~CurrentThreadHolder()
+ {
+ TlsFree(_slot);
+ }
+ ThreadImpl* get() const
+ {
+ return reinterpret_cast<ThreadImpl*>(TlsGetValue(_slot));
+ }
+ void set(ThreadImpl* pThread)
+ {
+ TlsSetValue(_slot, pThread);
+ }
+
+ private:
+ DWORD _slot;
+ };
+
+ SharedPtr<Runnable> _pRunnableTarget;
+ HANDLE _thread;
+ DWORD _threadId;
+ int _prio;
+ int _stackSize;
+
+ static CurrentThreadHolder _currentThreadHolder;
+};
+
+
+//
+// inlines
+//
+inline int ThreadImpl::getPriorityImpl() const
+{
+ return _prio;
+}
+
+
+inline int ThreadImpl::getOSPriorityImpl() const
+{
+ return _prio;
+}
+
+
+inline int ThreadImpl::getMinOSPriorityImpl(int /* policy */)
+{
+ return PRIO_LOWEST_IMPL;
+}
+
+
+inline int ThreadImpl::getMaxOSPriorityImpl(int /* policy */)
+{
+ return PRIO_HIGHEST_IMPL;
+}
+
+
+inline void ThreadImpl::sleepImpl(long milliseconds)
+{
+ Sleep(DWORD(milliseconds));
+}
+
+
+inline void ThreadImpl::yieldImpl()
+{
+ Sleep(0);
+}
+
+
+inline void ThreadImpl::setStackSizeImpl(int size)
+{
+ _stackSize = size;
+}
+
+
+inline int ThreadImpl::getStackSizeImpl() const
+{
+ return _stackSize;
+}
+
+
+inline ThreadImpl::TIDImpl ThreadImpl::tidImpl() const
+{
+ return _threadId;
+}
+
+
+} // namespace Poco
+
+
+#endif // Foundation_Thread_WIN32_INCLUDED