Hey, I'm trying to start a thread from a Class but the only way I did it was
using a pointer.
The thing is that when I assign the thread to the pointer it wont start
unless I use join().
I need it to star right away is created just like when I create a thread
(boost::thread myThread(funcName);)
I was trying to use thread_group to do this, but create_thread is not
working.
*Here's an example of what I was doing:*
*(Here I used the pointer)*
class Thread {
public:
Thread(){};
virtual ~Thread(){};
virtual void run() = 0;
void start(){m_Thread = new boost::thread( &Thread::run, this ); };
//wont start unless I add m_Thread.join();
private:
boost::thread* m_Thread;
};
*and now... I am trying to use thread_group:*
class Thread {
public:
Thread(){};
virtual ~Thread(){};
virtual void run() = 0;
void start(){g_Thread.create_thread(&Thread::run); };
private:
boost::thread_group g_Thread;
};
*But I receive an error:*
/usr/local/include/boost/thread/detail/thread.hpp: In member function 'void
boost::detail::thread_data<F>::run() [with F = void (Thread::*)()]':
main.cpp:61: instantiated from here
/usr/local/include/boost/thread/detail/thread.hpp:56: error: must use '.*'
or '->*' to call pointer-to-member function in
'((boost::detail::thread_data