<div>Hi, fellow programmers.</div><div><br></div><div>I have a problem with very long blocking thread(may not be finished) in Twisted.</div><div><br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
<span class="Apple-style-span" style="font-family: 'courier new', monospace; "><font class="Apple-style-span" color="#993399">from </font>socket <font class="Apple-style-span" color="#993399">import </font>*<br></span><span class="Apple-style-span" style="font-family: 'courier new', monospace; "><font class="Apple-style-span" color="#993399">from </font>twisted.internet <font class="Apple-style-span" color="#993399">import </font>reactor<br>
</span><font class="Apple-style-span" face="'courier new', monospace"><font class="Apple-style-span" color="#cc9933">def </font><font class="Apple-style-span" color="#339999">consuming</font>():<br></font><font class="Apple-style-span" face="'courier new', monospace"> <font class="Apple-style-span" color="#cc9933">while </font>reactor.running:<br>
</font><font class="Apple-style-span" face="'courier new', monospace"> amqp_consumer.wait()<font class="Apple-style-span" color="#6666cc"> # waiting for very long time or forever</font><br></font><font class="Apple-style-span" face="'courier new', monospace">reactor.callInThread(consuming)</font></blockquote>
<div><br></div><div>The process follows the below timeline:</div><div><br></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">>--: Started</span></div><div><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">---: Process</span></div>
<div><font class="Apple-style-span" face="'courier new', monospace">--<font class="Apple-style-span" color="#cc0000">X</font>: Terminated</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> ^ : Keyboard Input</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><font class="Apple-style-span" face="'courier new', monospace" style="background-color: rgb(0, 0, 0);" color="#ffffff"> Now </font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">main loop |>--------------------<font class="Apple-style-span" color="#cc0000">X</font></span><br>
<span class="Apple-style-span" style="font-family: 'courier new', monospace; "> thread | >--------------------------------------------... long time later ...---<font class="Apple-style-span" color="#cc0000">X</font></span><br>
<span class="Apple-style-span" style="font-family: 'courier new', monospace; "> ^</span><br><div><font class="Apple-style-span" face="'courier new', monospace"> [Ctrl]+C</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><span class="Apple-style-span" style="color: rgb(255, 255, 255); font-family: 'courier new', monospace; background-color: rgb(0, 0, 0); "> Ideal </span></div>
<div><font class="Apple-style-span" face="'courier new', monospace"><br></font></div><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">main loop |>--------------------<font class="Apple-style-span" color="#cc0000">X</font></span><br>
<span class="Apple-style-span" style="font-family: 'courier new', monospace; "> thread | >-------------------<font class="Apple-style-span" color="#cc0000">X</font></span><br><div><font class="Apple-style-span" face="'courier new', monospace"><div>
<font class="Apple-style-span" face="'courier new', monospace"> ^</font></div></font></div><font class="Apple-style-span" face="'courier new', monospace"> [Ctrl]+C</font><div>
<br></div><div><div>To solve this problem, I'd like to set threads as daemon. So that all related threads are terminated when main loop is interrupted. Any idea on this problem will be appreciated.</div></div><div><div>
<font color="#CCCCCC"><br></font></div><div><font color="#CCCCCC">–––––––––––––––––––––––––––<br></font><div><font face="arial, helvetica, sans-serif" size="4"><b><div style="text-align:left;font-family:arial;font-weight:normal;font-size:small">
<span style="font-family:arial, helvetica, sans-serif;font-size:large"><b><span style="font-family:arial;font-size:small;font-weight:normal"><div style="text-align:left;display:inline !important"><span style="font-family:arial, helvetica, sans-serif;font-size:large"><b><span style="font-family:arial;font-weight:normal;font-size:small"><b><span style="font-size:large"><font face="arial, helvetica, sans-serif">Heungsub </font></span></b><span style="font-family:arial, helvetica, sans-serif;font-size:large"><b><span style="font-family:arial;font-weight:normal;font-size:small"><b><span style="font-size:large"><font face="arial, helvetica, sans-serif">Lee</font></span></b></span></b></span></span></b></span></div>
</span></b></span></div><div style="font-family:arial;font-weight:normal;font-size:small"><span style="font-family:arial, helvetica, sans-serif;font-size:large;font-weight:normal"><b><span style="font-family:arial;font-weight:normal;font-size:small"><b><span style="font-size:large"><font face="arial, helvetica, sans-serif"></font></span></b></span></b></span><div style="text-align:left">
<div style="display:inline !important"><i><font face="'times new roman', serif" color="#999999">sublee</font></i></div></div><div><div style="display:inline !important">Mobile: +82-10-3215-2380</div></div><div style="font-family:arial;font-weight:normal;font-size:small">
Site: <a href="http://subl.ee/" target="_blank">http://subl.ee/</a></div><div style="font-family:arial;font-weight:normal;font-size:small">GitHub: <a href="http://github.com/sublee" target="_blank">http://github.com/sublee</a></div>
</div></b></font></div><br>
</div></div>