<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>The
code fragment below has an example where a Tk GUI is launched as a separate
thread - this all works fine in Python 2.5, but in Python 2.6 the thread hangs.
The issue seems to be in the line;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>self.messageBoxDetails.insert(INSERT,
&quot;Hello world&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Comment
this line out, or use an empty string rather than &quot;Hello World&quot;, and
the example works in both Python 2.5 and Python 2.6. I have not been able to
see any related issues to this and wonder if this is a bug in the 2.6 Tkinter
module?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Thanks
for any assistance.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-Moray<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>---------------------<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>import time, thread<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>from Tkinter import *<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>class ExampleError:<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; def __init__(self):<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer
= Tk()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.protocol('WM_DELETE_WINDOW',
self.quitPressed)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.wm_geometry(&quot;500x400&quot;)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.title(&quot;Parent
Container Title&quot;)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.container
= Frame(self.parentContainer)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.messageBoxDetails
= Text(self.container, wrap=WORD, width=1, height=1, padx=10, pady=10)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #
in python 2.6, this next statement hangs when running as a thread - note that <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #
inserting an empty string works though<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.messageBoxDetails.insert(INSERT,
&quot;d&quot;)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.messageBoxDetails.pack(fill=BOTH,
expand=YES, side=LEFT)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.container.pack(fill=BOTH,
expand=YES, padx=5, pady=5)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; def quitPressed(self):<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.stop()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; def start(self):<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.mainloop()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; def stop(self):<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.quit()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; self.parentContainer.destroy()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>if __name__ ==&quot;__main__&quot;:<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; example = ExampleError()<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; time.sleep(1)<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; thread.start_new_thread(example.start,
())<o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp; time.sleep(5)</span><span
style='font-size:12.0pt;font-family:"Courier New"'> <a
href="http://www.progress.com/"><span style='color:blue;text-decoration:none'><img
border=0 width=32 height=32 id="_x0000_i1038"
src="cid:image002.png@01CA384F.326174E0" alt="email_sig-logo_graphic.jpg"></span></a><o:p></o:p></span></p>

<p class=MsoNormal style='mso-line-height-alt:6.0pt'><span style='font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>