我得到了一个奇怪的核心转储,我从http://en.cppreference.com/w/cpp/thread/packaged_task中的一部分代码中复制了这个转储,
#include <future>
#include <iostream>
#include <cmath>
void task_lambda() {
std::packaged_task<int(int,int)> task([](int a, int b) {
return std::pow(a, b);
});
std::future<int> result = task.get_future();
task(2, 9);
std::cout << "task_lambda:\t" << result.get() << '\n';
}
int main() {
task_lambda();
}
Run Code Online (Sandbox Code Playgroud)
我懂了
terminate called after throwing an instance of 'std::system_error'
what(): Unknown error -1
[1] 28373 abort (core dumped) ./a.out
Run Code Online (Sandbox Code Playgroud)
调用堆栈如下所示:
#0 0x00007ffff71a2428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007ffff71a402a in __GI_abort () at abort.c:89
#2 0x00007ffff7ae484d in __gnu_cxx::__verbose_terminate_handler() () …Run Code Online (Sandbox Code Playgroud)