471,119 Members | 1,169 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,119 software developers and data experts.

Embedding Python in a multi-threaded C++ application


I am trying to add Python scripting support to one of my applications
and I really need some help regarding the thread terminations.

The application is a multi-threaded Windows application and multiple
threads need to run Python code from time to time. Everything works
fine when all the threads operate without any errors. Each thread
creates a thread state, acquires the global lock, call the Python
files and then release the lock when they are done. However,
sometimes, some of these threads needs to be terminated from the main
in the middle of their operation (this generally is done by the user -
if the Python code is not working as expected, or doing something very
very long, the user is able to terminate the thread from the main
GUI). The problem here is that if the user terminates the thread, the
thread never releases the lock.

So, my question is: is there a way to safely terminate a running
thread? If not, is there a way to release the lock of a thread from
another thread (from the main thread)?
If none of these can be done, what happens if I call Py_Finalize and
finalize the Python Interpreter and the re-start it by Py_Initialize
and PyEval_InitThreads. Will that free all the resources allocated by
the previous interpreter?

I desperately need help. I couldnt find a good documentation on the
Internet. Any helps would be greatly appreciated.

Best wishes,
Mustafa Demirhan
Jul 18 '05 #1
0 1141

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

145 posts views Thread by David MacQuigg | last post: by
8 posts views Thread by Thomas Bartkus | last post: by
4 posts views Thread by David Abrahams | last post: by
6 posts views Thread by mistabean | last post: by
3 posts views Thread by anonymisiert85 | last post: by
reply views Thread by Ling | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.