问题描述
|
我有类似下面的代码。下面的代码给出了SIGSEGV并指向list :: push_back。这是使用Boost线程列表的正确方法吗?
struct mythread{
static void myfunc() {
while(1){ }
}
};
int f(){
std::list<boost::thread *> pool;
pool.push_back(new boost::thread(mythread::myfunc));
}
环境:Ubuntu上的gcc 4.4.5,与libboost_thread.a和-lpthread链接。我没有使用c ++ 0x标志。
问候,
丘布斯达德
注意2:我也获得了SIGSEGV的代码
pool.push_back(new boost::thread(NULL);
解决方法
尝试获取函数指针的地址:
pool.push_back(new boost::thread(&mythread::myfunc));