This is the answer from the stackoverflow. while (true) { //endless loop ++it; std::cout<< it <<std::endl; sleep(3); if(PyErr_CheckSignals() == -1) { exit(1); } }
2012/12/23 Jaedyn K. Draper <jaedyn.cpp...@jaedyn.co> > Oh, my mistake. Not sure then, I've only embedded, never extended. Maybe > someone else can help. :( > > > On 12/23/2012 1:59 AM, simon zhang wrote: > > But I don't call Py_Initialize().I call C++ code in Python.Don't embed > the Python to C++... > > 2012/12/23 Jaedyn K. Draper <jaedyn.cpp...@jaedyn.co> > >> Instead of Py_Initialize() (wherever it is you call it), try calling >> Py_InitializeEx(0). Py_Initialize() (or Py_InitializeEx(1)) binds signal >> handlers (including SIGINT) to send python exceptions instead of killing >> the process. This may be what's hitting you. >> >> >> On 12/23/2012 1:44 AM, simon zhang wrote: >> >> I have make a boost.python module with an endless loop.But I can't kill >> the process by ctrl-c.The following is an example. >> >> 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() >> >> result: >> >> 1234..................... >> >> I can't kill the foreground process by Ctrl-c.why the module don't >> accept signal "SIGINT" that was sent by Ctrl-c.How to make it work. >> >> >> _______________________________________________ >> Cplusplus-sig mailing >> listCplusplus-sig@python.orghttp://mail.python.org/mailman/listinfo/cplusplus-sig >> >> >> >> _______________________________________________ >> Cplusplus-sig mailing list >> Cplusplus-sig@python.org >> http://mail.python.org/mailman/listinfo/cplusplus-sig >> > > > > _______________________________________________ > Cplusplus-sig mailing > listCplusplus-sig@python.orghttp://mail.python.org/mailman/listinfo/cplusplus-sig > > > > _______________________________________________ > Cplusplus-sig mailing list > Cplusplus-sig@python.org > http://mail.python.org/mailman/listinfo/cplusplus-sig >
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig