X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fthread.h;h=8d323b328441896a6c3a928ec51fc560ed84847b;hb=c76bd823b81d723d8cd4531631a4b18544f1981a;hp=60a2e83e7154096524c2583e7eccfe57f8cc5c30;hpb=521cf1db00f8ce2d9f9494dca503d6c17d89ac2f;p=libs%2Fcore.git diff --git a/source/core/thread.h b/source/core/thread.h index 60a2e83..8d323b3 100644 --- a/source/core/thread.h +++ b/source/core/thread.h @@ -4,6 +4,7 @@ This file is part of libmspcore Copyright © 2006 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ + #ifndef MSP_CORE_THREAD_H_ #define MSP_CORE_THREAD_H_ @@ -20,30 +21,34 @@ is started. */ class Thread { +private: + ThreadHandle thread_; + bool launched_; + +protected: + Thread(): launched_(false) { } public: + virtual ~Thread(); + void join(); void cancel(); void kill(); - virtual ~Thread(); protected: - Thread(): launched_(false) { } void launch(); virtual void main()=0; void check_cancel(); -private: - ThreadHandle thread_; - bool launched_; - - Thread(const Thread &); - Thread &operator=(const Thread &); +private: static #ifdef WIN32 DWORD WINAPI #else void * #endif - main_(void *t) { ((Thread *)t)->main(); return 0; } + main_(void *t) { (reinterpret_cast(t))->main(); return 0; } + + Thread(const Thread &); + Thread &operator=(const Thread &); }; } // namespace Msp