Ned Deily added the comment:

Adding root.update_idletasks() before root.destroy() doesn't help by itself.  
As I noted in the Tk issue, to avoid the crash without changing Tk and while 
still destroying and creating roots/Tcl instances, it is necessary to get the 
"open application" Apple event from OS X to Tk to trigger while the initial Tcl 
interpreter instance is still valid.  As far as I can tell, the way to do that 
is to ensure that the initial Tcl interpreter actually draws something on the 
screen, not just create a test button object.  The drawing triggers the 
promotion of the bundle process to a full GUI process and that (I believe) 
causes the "open application" event to be sent.  As long as that event (which 
contains the unchecked pointer to the Tcl interpreter instance) is processed by 
the interpreter that created it, there is no problem.  Once the first root is 
destroyed (in each process) without having received the "open application" 
event, when the event does arrive the interp address will be invalid a
 nd a segfault can result.

----------
assignee: ned.deily -> 

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22770>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to