提升线程v1.53分段故障

时间:2014-03-13 21:41:27

标签: c++11 boost boost-thread

以下程序会产生分段错误,但我在代码中看不到任何未定义的行为。它已经与GCC 4.7.3一起编译。你知道故障的原因还是可能的解决方法?此外,v1.53中似乎不存在boost::future,所以我应该依赖boost::unique_future。我无法升级到上面的任何版本> 1.53我真的需要" make_ready_at_thread_exit()"特征

#define BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
#include <boost/thread.hpp>
#include <boost/thread/future.hpp>

namespace th = boost;

struct S {
    th::packaged_task<void()> task;
    th::unique_future<void> future;
    void start();
    void stop();
};

void S::start() {
    task = th::packaged_task<void()>{ [this] () {}};
    future = task.get_future();                
    task.make_ready_at_thread_exit();
}

void S::stop() {
    future.wait();                
}

int main() {
    S s;
    s.start();
    s.stop();
}

0 个答案:

没有答案