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

Marc ENGEL marc.engel at recif.com
Wed Jul 30 09:59:47 EDT 2003


I'd like to add that just setting the Python COM object to Inproc
instead of Local server makes the all thing work properly.
But I need a Local server...

It works without modifying a line of code!

Marc

marc.engel at recif.com (Marc ENGEL) wrote in message news:<6411841c.0307300119.46bc0159 at posting.google.com>...
> 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