2010-10-20 9 views
6

Ho una semplice libreria scritta in C++ che sto creando un wrapper Python per usare boost.python. Alcune funzioni richiedono molto tempo per essere eseguite (oltre 30 secondi), e vorrei renderlo interrompibile in modo che quando premo ctrl-d per attivare KeyboardInterrupt nell'interprete python, sono in qualche modo in grado di rispondere a ciò in C++.Come posso passare/catturare/rispondere a Python's KeyboardInterrupt in C++?

C'è un modo per farlo? Non sono riuscito a trovare alcuna informazione su interrupts e boost.python su boost.org o python.org.

+0

Se si dispone di un esempio di funzionamento minimo, sarebbe molto utile se lo si includesse. Grazie. –

+0

Ho trovato un esempio [qui] (http://mail.python.org/pipermail/cplusplus-sig/2010-February/015209.html), ma è complicato. Come succede usa PyErr_CheckSignals(). –

+0

La risposta seguente, utilizzando PyErr_CheckSignals(), funziona bene. Grazie. –

risposta

4

Chiamare PyErr_CheckSignals() ogni tanto.

+5

Un esempio di lavoro completo minimo sarebbe molto utile qui. –

Problemi correlati