<br><br><div class="gmail_quote">On Tue, Feb 21, 2012 at 1:43 PM, Antoine Pitrou <span dir="ltr">&lt;<a href="mailto:solipsis@pitrou.net" target="_blank">solipsis@pitrou.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>Tarek Ziadé &lt;ziade.tarek@...&gt; writes:<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Feb 21, 2012 at 10:24 AM, Graham Dumpleton<br>
&lt;<a href="mailto:graham.dumpleton@gmail.com" target="_blank">graham.dumpleton@gmail.com</a>&gt; wrote:<br>
&gt; ...<br>
&gt; &gt; But I don&#39;t think you can guarantee that everything is still up in memory by<br>
&gt; &gt; the time atexit gets called,<br>
&gt; &gt; so you can&#39;t really call cleanup code there.<br>
&gt; The only thing which is done prior to atexit callbacks being called is<br>
&gt; waiting on threads which weren&#39;t marked as daemonised.<br>
&gt;<br>
&gt;<br>
&gt; which can lead to completely lock the shutdown if a lib or the program has a<br>
</div>&gt; thread with a loop that waits for a condition.which it is not the case with<br>
<div>&gt; signals, since you get a chance to properly stop everything beforehand.<br>
<br>
</div>That&#39;s a buggy lib or program. This has nothing to do with WSGI really.</blockquote><div><br>No, that has to do with : please let me clean my program before you try to kill it because I can&#39;t use signals :)<br>

<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> The<br>
snippet Graham showed is run at any interpreter shutdown, even when you simply<br>
run &quot;python&quot; in your shell.<br></blockquote><div><br>here&#39;s a very simple demo: <a href="http://tarek.pastebin.mozilla.org/1489505">http://tarek.pastebin.mozilla.org/1489505</a><br><br>Run it with plain python, and try to ctrl-C it. You won&#39;t reach atexit and will get locked.<br>
<br>(here: python 2.7 / mac os)<br><br>If you use signals instead of atexit, you&#39;ll have it working.<br><br>And this pattern (a thread in the background) is pretty common -- unless I am missing something here<br><br><br>
Cheers<br>Tarek<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br>
Regards<br>
<span><font color="#888888"><br>
Antoine.<br>
</font></span><div><div><br>
<br>
_______________________________________________<br>
Web-SIG mailing list<br>
<a href="mailto:Web-SIG@python.org" target="_blank">Web-SIG@python.org</a><br>
Web SIG: <a href="http://www.python.org/sigs/web-sig" target="_blank">http://www.python.org/sigs/web-sig</a><br>
Unsubscribe: <a href="http://mail.python.org/mailman/options/web-sig/ziade.tarek%40gmail.com" target="_blank">http://mail.python.org/mailman/options/web-sig/ziade.tarek%40gmail.com</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Tarek Ziadé | <a href="http://ziade.org" target="_blank">http://ziade.org</a><br>