c ++ 11个线程 - 操作不允许异常

时间:2015-02-01 23:56:55

标签: c++ multithreading c++11

我正在编写c ++ 11多线程应用程序。

主线程是从数据库读取并将记录放入std :: queue,线程从队列中获取记录并处理它们。

使用std :: mutex,std :: condition_variable(定义为类成员)同步应用程序,方法使用std :: unique_lock(类成员互斥)

经过一段时间(通常是几分钟) - 我的应用程序崩溃了

terminate called after throwing an instance of 'std::system_error'
  what():  Operation not permitted

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff5464700 (LWP 10242)]
0x00007ffff60b3515 in raise () from /lib64/libc.so.6

从gdb回溯显示:

#0  0x00007ffff60b3515 in raise () from /lib64/libc.so.6
#1  0x00007ffff60b498b in abort () from /lib64/libc.so.6
#2  0x00007ffff699f765 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libstdc++.so.6
#3  0x00007ffff699d906 in ?? () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libstdc++.so.6
#4  0x00007ffff699d933 in std::terminate() () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libstdc++.so.6
#5  0x00007ffff69f0a75 in ?? () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.3/libstdc++.so.6
#6  0x00007ffff76741a7 in start_thread () from /lib64/libpthread.so.0
#7  0x00007ffff616a1fd in clone () from /lib64/libc.so.6

如何获得有关此例外的更多信息?

我正在使用-pthread选项进行编译和链接 Gentoo Linux机器上的G ++ 4.8.3 在编译器和链接器中都启用了-g选项 我尝试过禁用优化

0 个答案:

没有答案