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

Reply via email to