En Tue, 02 Feb 2010 02:26:57 -0300, Paul <goblado...@gmail.com> escribió:
I've managed to get it working and so far stable...
Glad to see you finally made it work!
Current working version:
[...]
mycppclass::callpy(funcname, args...)
m_mypymodule = PyImport_Import(pModuleName)
pyargs = PyTuple_SetItem * args
PyCallable_Check(func)
PyObject_CallObject(func,pyargs)
Py_XDECREF(m_mypymodule)
So now the module is being imported each function call (luckily I don't
have
to worry about performance)
Remember that after the module is successfully imported by the first time,
a subsequent import returns early, as soon as it finds the module in
sys.modules[] -- the performance penalty shouldn't be so big.
I assume this means that the internal representation of the imported
module
is being corrupted by something. I found another person with a similar
issue
here:
http://mail.python.org/pipermail/python-dev/2004-March/043306.html -
that is
a long time ago but another multi-threaded app.
I'm happy to use the working method but I'd like to understand what is
going
on a bit more. Can anyone shed any further light?
Sorry, I cannot help on this. Seems to happen only with an embedded
interpreter and a multithreaded application, and I've never used Python in
that scenario.
If you could trim your code to a minimal example that shows the faulty
behavior, that would be great, so others can test it too and eventually
determine what's going on.
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list