無限ループでboost.pythonモジュールを作成しましたが、ctrl-cでプロセスを強制終了できません。以下に例を示します。
C ++
#include <boost/python.hpp>
#include <boost/python.module.hpp>
#include <boost/python.def.hpp>
#include <iostream>
usring namespace boost::python;
void foo() {
int it=0;
while (true) { //endless loop
++it;
std::cout<< it <<std::endl;
sleep(3);
}
}
BOOST_PYTHON_MODULE(ctopy)
{
def("foo",foo);
}
Python:
import ctopy
ctopy.foo()
結果:
1
2
3
4
.....................
Ctrl-cでフォアグラウンドプロセスを強制終了できません。モジュールがCtrl-cで送信されたシグナル「SIGINT」を受け入れないのはなぜですか。それを機能させる方法。