Interrupting execution of PyRun_SimpleScript()

S

stephan

Hi,

Im am using PyRun_SimpleString() inside a BCB 5.0 GUI app
on win32.

All works fine.

The PyRun_SimpleStript() runs a piece of python
code which calls often a callback function to
refresh my gui App so my Form still can react
to user input.

Now, I would like to implement a possibility
to interrupt the execution.

For this I have a button called "stop", and when
the user executes it, I generate an exeption by
calling:
PyRun_SimpleString("raise KeyboardInterrupt\n").

I see in the window where I redirected stderr and stdout
the exception, but the original code (a for loop)
still continues to run.

Does there somebody have some idea (in the Python FAQ
i didnT find anything)

Thanks

Anton
 
A

Andrew Dalke

A said:
Im am using PyRun_SimpleString() inside a BCB 5.0 GUI app
on win32.

Never used it so can only offer a suggestion.
For this I have a button called "stop", and when
the user executes it, I generate an exeption by
calling:
PyRun_SimpleString("raise KeyboardInterrupt\n").

The fact that your GUI can call SimpleString implies
to me that Python is running with multiple threads.
The string is executed in a different thread from your
other thread. The exception isn't being called from
the right thread. Instead it's caught by the top-level
exception handler for the GUI, which reports the error.

Is it possible to put an explicit "check this variable
and if it's true then abort" in your time-intensive code?

Andrew
(e-mail address removed)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,025
Latest member
KetoRushACVFitness

Latest Threads

Top