<div>If there's going to be support for turning a function into a thread, I think it should still be useful as a function. Here's how I'd change the original proposal here:</div><div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">

<div><font class="Apple-style-span" face="'courier new', monospace">>>> @threading.run_as_thread</font></div><div><font class="Apple-style-span" face="'courier new', monospace">... def foo():</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">...     time.sleep(100)</font></div><div><font class="Apple-style-span" face="'courier new', monospace">...     return 1</font></div><div>

<font class="Apple-style-span" face="'courier new', monospace">...</font></div><div><font class="Apple-style-span" face="'courier new', monospace">>>> t = foo()</font></div><div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">>>> t.result()</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">None</font></div><div><font class="Apple-style-span" face="'courier new', monospace">>>> t.isAlive()</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">True</font></div><div><font class="Apple-style-span" face="'courier new', monospace">>>> t.join()</font></div><div><font class="Apple-style-span" face="'courier new', monospace">>>> t.isAlive()</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace">False</font></div><div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">>>> t.result()</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">1</font></div><div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">>>> foo().result(join=True)</font></div>

<div><font class="Apple-style-span" face="'courier new', monospace" color="#990000">1</font></div><div><font class="Apple-style-span" color="#990000" face="'courier new', monospace">>>> foo().result(join=True, timeout=1)</font></div>

<div><font class="Apple-style-span" color="#990000" face="'courier new', monospace">None</font></div><div><font class="Apple-style-span" color="#990000" face="'courier new', monospace"># as with Thread.join, in this case you cannot tell from the return value if</font></div>

<div><font class="Apple-style-span" color="#990000" face="'courier new', monospace"># </font><span class="Apple-style-span" style="color: rgb(153, 0, 0); font-family: 'courier new', monospace; ">the join happened (unless you know the function cannot return None)</span></div>

</blockquote><div><br></div>