On Sun, Mar 14, 2010 at 2:58 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@59a2.org">jed@59a2.org</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sun, 14 Mar 2010 14:50:40 -0500, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Sun, Mar 14, 2010 at 2:49 PM, Jed Brown <<a href="mailto:jed@59a2.org">jed@59a2.org</a>> wrote:<br>
><br>
> > On Sun, 14 Mar 2010 13:29:57 -0500, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>><br>
> > wrote:<br>
> > > Okay, whatever 'yuckiness' is here is imposed on us by the threading<br>
> > > package.  I think what is confusing you guys is the reprocessing of<br>
> > > output, since Satish likes it cleaned up. The 'else' branch where<br>
> > > Barry added code is actually the success branch since thread.isAlive()<br>
> > > is false, meaning it completed. We reprocess the output and<br>
> > > return. The status and error have already been set during the run()<br>
> > > call. Its this call that makes us us globals for these variables. Its<br>
> > > the Python equiv of a closure.<br>
> ><br>
> > You can close over the present scope without using globals.  As a crude<br>
> > example,<br>
> ><br>
> >  def foo(): x[:] = [4,5,6]    # x = [4,5,6] would assign to a new local<br>
> >  x = [1,2]<br>
> >  foo()                        # same effect if you create and run a thread<br>
> > here<br>
> >  print x                      # [4,5,6]<br>
> ><br>
><br>
> That is what I thought, but it did not work until I made them global.<br>
<br>
</div>You have to put them in a list/hash/etc.  For example, if the x[:] is<br>
just replaced with x, then it will create a new object.  You have to<br>
bind the variable from the enclosing scope.</blockquote><div><br></div><div>Doesn't global do exactly this?</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
Jed</font></blockquote></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>