diff options
Diffstat (limited to 'src/Platform/Thread.h')
-rw-r--r-- | src/Platform/Thread.h | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/src/Platform/Thread.h b/src/Platform/Thread.h index c9f462e1..4ec73e5e 100644 --- a/src/Platform/Thread.h +++ b/src/Platform/Thread.h @@ -8,71 +8,71 @@ and are governed by the Apache License 2.0 the full text of which is contained in the file License.txt included in VeraCrypt binary and source code distribution packages. -*/
-
-#ifndef TC_HEADER_Platform_Thread
-#define TC_HEADER_Platform_Thread
-
-#ifdef TC_WINDOWS
-# include "System.h"
-# define TC_THREAD_PROC DWORD WINAPI
-#else
-# include <pthread.h>
-# define TC_THREAD_PROC void*
-#endif
-#include "PlatformBase.h"
-#include "Functor.h"
-#include "SharedPtr.h"
-#include "SyncEvent.h"
-
-namespace VeraCrypt
-{
- class Thread
- {
- public:
-#ifdef TC_WINDOWS
- typedef HANDLE ThreadSystemHandle;
- typedef LPTHREAD_START_ROUTINE ThreadProcPtr;
-#else
- typedef pthread_t ThreadSystemHandle;
- typedef void* (*ThreadProcPtr) (void *);
-#endif
- Thread () { };
- virtual ~Thread () { };
-
- void Join () const;
- void Start (ThreadProcPtr threadProc, void *parameter = nullptr);
-
- void Start (Functor *functor)
- {
- Start (Thread::FunctorEntry, (void *)functor);
- }
-
- static void Sleep (uint32 milliSeconds);
-
- protected:
- static TC_THREAD_PROC FunctorEntry (void *functorArg)
- {
- Functor *functor = (Functor *) functorArg;
- try
- {
- (*functor) ();
- }
- catch (...) { }
-
- delete functor;
- return 0;
- }
-
- static const size_t MinThreadStackSize = 1024 * 1024;
-
- ThreadSystemHandle SystemHandle;
-
- private:
- Thread (const Thread &);
- Thread &operator= (const Thread &);
- };
-
-}
-
-#endif // TC_HEADER_Platform_Thread
+*/ + +#ifndef TC_HEADER_Platform_Thread +#define TC_HEADER_Platform_Thread + +#ifdef TC_WINDOWS +# include "System.h" +# define TC_THREAD_PROC DWORD WINAPI +#else +# include <pthread.h> +# define TC_THREAD_PROC void* +#endif +#include "PlatformBase.h" +#include "Functor.h" +#include "SharedPtr.h" +#include "SyncEvent.h" + +namespace VeraCrypt +{ + class Thread + { + public: +#ifdef TC_WINDOWS + typedef HANDLE ThreadSystemHandle; + typedef LPTHREAD_START_ROUTINE ThreadProcPtr; +#else + typedef pthread_t ThreadSystemHandle; + typedef void* (*ThreadProcPtr) (void *); +#endif + Thread () { }; + virtual ~Thread () { }; + + void Join () const; + void Start (ThreadProcPtr threadProc, void *parameter = nullptr); + + void Start (Functor *functor) + { + Start (Thread::FunctorEntry, (void *)functor); + } + + static void Sleep (uint32 milliSeconds); + + protected: + static TC_THREAD_PROC FunctorEntry (void *functorArg) + { + Functor *functor = (Functor *) functorArg; + try + { + (*functor) (); + } + catch (...) { } + + delete functor; + return 0; + } + + static const size_t MinThreadStackSize = 1024 * 1024; + + ThreadSystemHandle SystemHandle; + + private: + Thread (const Thread &); + Thread &operator= (const Thread &); + }; + +} + +#endif // TC_HEADER_Platform_Thread |