]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/thread.h
Add an interface for naming threads
[libs/core.git] / source / core / thread.h
index 81494eaf5e47a007d6bd6207293a972920277362..7cf17b8d327ed3e84075bb4c247f4c5d16c4ff6f 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef MSP_CORE_THREAD_H_
 #define MSP_CORE_THREAD_H_
 
+#include <string>
+
 namespace Msp {
 
 /**
@@ -25,16 +27,19 @@ private:
        };
 
        Private *priv_;
+       std::string name_;
        State state_;
 
 protected:
-       Thread();
+       Thread(const std::string & = std::string());
 private:
        Thread(const Thread &);
        Thread &operator=(const Thread &);
 public:
        virtual ~Thread();
 
+       const std::string &get_name() const { return name_; }
+
        /** Indicates whether the thread has finished running. */
        bool is_finished() { return state_>=FINISHED; }
 
@@ -50,6 +55,13 @@ protected:
        /** Starts the thread.  Can only be called once for each Thread instance. */
        void launch();
 
+private:
+       void platform_join();
+       void platform_kill();
+       void platform_launch();
+       void platform_setname();
+
+protected:
        virtual void main() = 0;
 };