类定义
class TaskWorker
{
...
private:
std::list<client_det*> clientList;
...
public:
void waitForClientResponse();
};
将类成员函数作为线程运行的函数
void* waitForResponse(void* w)
{
TaskWorker* worker = static_cast<TaskWorker*>(w);
worker->waitForClientResponse();
}
线程函数实现
void TaskWorker::waitForClientResponse()
{
client_det* obj = new client_det();
...
clientList.push_back(obj); //valgrind says access violation
...
}
这个实现有什么问题吗?
线程类成员函数访问私有成员列表是否有任何限制?
线程调用
int TaskWorker::assign_and_wait(std::list<MulticastGroupInfo*> groupList)
{
...
...
pthread_t tid;
pthread_create(&tid, NULL, waitForResponse, this);
}
更新
我在没有调试符号的情况下编译了我的代码,并且崩溃消失了。这是我最近的观察。
任何人都可以启发我这里发生了什么?