pythoncom: STA python COM server randomly does not receive event from other objects : deadlock

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
 

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

Forum statistics

Threads
473,744
Messages
2,569,480
Members
44,900
Latest member
Nell636132

Latest Threads

Top