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

Marc ENGEL marc.engel at recif.com
Wed Jul 30 11:19:13 CEST 2003


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




More information about the Python-list mailing list