2010-10-20 14 views
6

Tengo una biblioteca simple escrita en C++ que estoy creando un contenedor de Python para usar boost.python. Algunas funciones tardan mucho en ejecutarse (más de 30 segundos), y me gustaría que sea interrumpible para que cuando pulse ctrl-d para desencadenar KeyboardInterrupt en el intérprete de Python, de alguna manera pueda responder a eso en C++.¿Cómo paso/atrapo/respondo a Python's KeyboardInterrupt en C++?

¿Hay alguna manera de hacerlo? No pude encontrar información sobre interrupciones y boost.python en boost.org o python.org.

+0

Si tiene un ejemplo mínimo de trabajo de esto, sería muy útil si lo incluyera. Gracias. –

+0

Encontré un ejemplo [aquí] (http://mail.python.org/pipermail/cplusplus-sig/2010-February/015209.html), pero es complicado. Da la casualidad que usa PyErr_CheckSignals(). –

+0

La respuesta a continuación, usando PyErr_CheckSignals() funciona bien. Gracias. –

Respuesta

4

Llame PyErr_CheckSignals() cada cierto tiempo.

+5

Un ejemplo mínimo de trabajo completo sería de gran ayuda aquí. –

Cuestiones relacionadas