Bugs item #906305, was opened at 2004-02-27 16:44
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=551954&aid=906305&group_id=78018
Category: win32
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Greg Chapman (glchapman)
Assigned to: Nobody/Anonymous (nobody)
Summary: Problems (deadlock) with calling CEnterLeavePython.acquire
Initial Comment:
PyWndProcHWND in win32gui explicitly calls the
acquire method of _celp (a CEnterLeavePython
instance) when handling a WM_NCDESTROY message.
Unfortunately, if this message was not handled by
PyWndProc_Call, _celp.release will already have been
called (just prior to dispatching to oldWndProc), setting
_celp.released to TRUE. Because released == TRUE,
_celp's destructor does not release the GIL, with a
deadlock likely to result. (In my case it did result,
since the WM_NCDESTROY was produced by a call to
win32gui.DestroyWindow).
Perhaps released should be set in the acquire method
rather than in the constructor?
I'm using win32all build 200, Python 2.3.3, and
Windows XP.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=551954&aid=906305&group_id=78018
|