我正在运行 MinGW G++ 4.8.1,当我更改以下代码时:
for (Room &r : TempRooms2) {
r.vNeighbours.clear();
}
至
for (Room &r : TempRooms2) {
r.vNeighbours.clear();
r.Layer=-1;
}
该程序以前完美运行,但由于 libwinpthread-1.dll 中的段错误而崩溃。现在,我以前没有使用过这个 G++ 4.8.1 版本的线程特性,在测试它们后发现它们在我的操作系统上不稳定,所以我需要在将来更改为不同的版本时我想利用线程。在那之前,有没有办法告诉 G++ 停止尝试并行化循环?
*编辑:对不起,原来崩溃是由于代码在其他地方进入无限循环。我只是假设这是一个线程的事情,因为 GDP 说对“pthread_tls_init”的调用是段错误,我认为只有线程程序会使用它。如果有人能解释为什么 Windows 由于无限循环而终止程序,我将不胜感激,因为调试器显示为 pthread 中的段错误。*