Boost线程中断导致Windows崩溃

时间:2014-10-17 12:59:32

标签: c++ multithreading boost

下面的代码导致在Windows 7上运行崩溃。我已经通过Qt Creator尝试了MSVC2013 x64和MSVC2012 x86编译器。两者都导致问题。

调用boost :: thread :: interrupt()时发生崩溃。提供错误消息:

#include <iostream>
#include <boost/thread.hpp>

// A function that will run until interrupted
void test_function()
{
  try
  {
    while(true)
    {
      boost::this_thread::interruption_point();
    }
  }
  catch(...)
  {
  }
}

// Should start a thread, wait for a second and then interupt the thread
int main()
{
  boost::thread thread(&test_function);
  boost::this_thread::sleep_for(boost::chrono::seconds(1));

  thread.interrupt();
  thread.join();

  return 0;
}

升级版本是1.55并且已经在我的机器上使用上面提到的两个编译器进行了编译。

报告的错误消息是: 异常在0x7fefd44940d,代码:0xe06d7363:C ++异常,flags = 0x1(执行不能 继续)(第一次机会)在c:\ boost \ boost_1_55_0 \ libs \ thread \ src \ win32 \ thread.cpp:604

我无法获得堆栈跟踪,大概是因为它是对std :: terminate的调用,而不是段错误。

0 个答案:

没有答案