M
Marc ENGEL
Hi all,
I coded a python COM object that runs in a pythonw local server as a
STA.
This object creates and advises a VC++ COM object to receive its
event. Those events are sent by worker threads.
The VC++ object is free threaded. As a consequence call between my STA
python object and apartment are marshalled through proxy.
The python COM object regularly calls a blocking method on the VC++
object to synchronize. But, as it is a cross apartment call, during
the call it can gets the event handler called thanks to the message
pump operated by COM.
But sometimes events are no received and it seems that I enter a
deadlock.
When I attach to the VC+ object, I can see that the thread that made
the Fire_XX is still waiting for the call to end.
Does somedy know the reason?
Does the COM message pump may be different from the pythoncom message
pump located in localserver.py : pythoncom.PumpMessages ?
Thanks in advance for any hint, because this is a very blocking issue
for my project.
Marc
I coded a python COM object that runs in a pythonw local server as a
STA.
This object creates and advises a VC++ COM object to receive its
event. Those events are sent by worker threads.
The VC++ object is free threaded. As a consequence call between my STA
python object and apartment are marshalled through proxy.
The python COM object regularly calls a blocking method on the VC++
object to synchronize. But, as it is a cross apartment call, during
the call it can gets the event handler called thanks to the message
pump operated by COM.
But sometimes events are no received and it seems that I enter a
deadlock.
When I attach to the VC+ object, I can see that the thread that made
the Fire_XX is still waiting for the call to end.
Does somedy know the reason?
Does the COM message pump may be different from the pythoncom message
pump located in localserver.py : pythoncom.PumpMessages ?
Thanks in advance for any hint, because this is a very blocking issue
for my project.
Marc