首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pantheios和boost::thread

Pantheios和boost::thread
EN

Stack Overflow用户
提问于 2012-06-20 04:21:57
回答 1查看 250关注 0票数 0

我在使用pantheios日志库和boost::Threads时遇到了一些问题。看起来,如果我在创建线程之前使用任何pantheios日志记录,我会得到一个段错误。

例如,下面的代码将起作用:

代码语言:javascript
复制
thread_ = new boost::thread(&foo);
pantheios::log(pantheios::debug, "Hello world");

但是如果切换语句的顺序,堆栈跟踪会显示我在boost中的start_thread上崩溃。

代码语言:javascript
复制
pantheios::log(pantheios::debug, "Hello world");
thread_ = new boost::thread(&foo);
// SEGFAULT!

有什么想法吗?

编辑:更多上下文

代码语言:javascript
复制
int main()
{
    pantheios::log(...);
    MyClass myClass(/* some arguments, which are all literals */);

    // Do some more work

    return 0;
}

// MyClass constructor
MyClass::MyClass(/* args */)
    : member1_(arg1)
    , member2_(arg2)
{
    thread_ = new boost::thread(&MyClass::workerLoop, this);
}

// Destructor
MyClass::~MyClass()
{
    thread_->join();
    delete thread_;
}

这将在start_thread中出现段错误。同样,如果我在main中交换这两行代码,它将不会出现任何问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-27 01:13:40

看起来我想通了。我链接到了不同版本的boost。我的系统使用的是boost版本1.40,而我也在使用我下载的更新版本的boost 1.49。值得注意的是,我链接的boost线程是指向较旧版本的。

一旦我建立了链接来增强一致性,一切都像预期的那样工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11108788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档