]> git.tdb.fi Git - libs/core.git/blobdiff - source/thread.h
Use an extra bool variable to indicate thread validity
[libs/core.git] / source / thread.h
index a115853211ba122ddb3628326339d43473474a0b..b9910ff2135cfaab67c30cbfe71d21b23f741516 100644 (file)
@@ -17,12 +17,13 @@ public:
        void kill(int s)   { pthread_kill(thread_, s); }
        virtual ~Thread();
 protected:
-       Thread()           { }
-       void launch()      { pthread_create(&thread_, 0, &main_, this); }
+       Thread(): valid_(false) { }
+       void launch()      { if(!valid_) pthread_create(&thread_, 0, &main_, this); }
        virtual void *main()=0;
        void exit(void *r) { pthread_exit(r); }
 private:
        pthread_t thread_;
+       bool      valid_;
 
        Thread(const Thread &);
        Thread &operator=(const Thread &);