<div dir="ltr">In addition to the monkey_patch questions, we use eventlet's same function with different ways, there is some example:<br><br><span class="">greenthread.sleep(0) vs time.sleep(0)<br></span><div>-----------------------------------------------------<br>greenthread.spawn vs eventlet.spawn<br><br></div><div>I'm updating doc [1] to show different ways , shall we need unify the way,<br>if yes, which way is better<br><br>[1] <a href="https://review.openstack.org/#/c/199013">https://review.openstack.org/#/c/199013</a><br></div><div><br><br><div class="gmail_extra"><div class="gmail_quote">2015-07-08 16:51 GMT+08:00 ChangBo Guo <span dir="ltr"><<a href="mailto:glongwave@gmail.com" target="_blank">glongwave@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>we use eventlet in nova code base , at the beginning of each nova service we monkey_patched standard libraries like:<br><br clear="all">import eventlet<br><br>from nova import debugger<br><br>if debugger.enabled():<br> # turn off thread patching to enable the remote debugger<br> eventlet.monkey_patch(os=False, thread=False)<br>else:<br> eventlet.monkey_patch(os=False)<br><br>I find an related comments about monkey_patch(os=False) from Cinder code:<br>if <a href="http://os.name" target="_blank">os.name</a> == 'nt':<br> # eventlet monkey patching the os module causes subprocess.Popen to fail<br> # on Windows when using pipes due to missing non-blocking IO support.<br> eventlet.monkey_patch(os=False)<br>else:<br> eventlet.monkey_patch()<br><br><br></div><div>My question is : Is there any other reason we didn't monkey_patch os in Nova<span class=""><font color="#888888"><br><br></font></span></div><span class=""><font color="#888888"><div>-- <br><div><div dir="ltr"><div>ChangBo Guo(gcb)</div></div></div>
</div></font></span></div>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div>ChangBo Guo(gcb)</div></div></div>
</div></div></div>