<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Hi Guys:</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><span>This is great! Sorry about that. I am not sure why I was under that impression? Let me dredge out pickling code examples and see what I was doing.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif;
 background-color: transparent; font-style: normal;"><span>Cheers,</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: 'times new roman', 'new york', times, serif; background-color: transparent; font-style: normal;"><span>Andrew</span></div><div><br></div>  <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt;"> <div dir="ltr"> <hr size="1">  <font size="2" face="Arial"> <b><span style="font-weight:bold;">From:</span></b> Richard Tew <richard.m.tew@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> Andrew Francis <andrewfr_ice@yahoo.com>; The Stackless Python Mailing List <stackless@stackless.com> <br><b><span style="font-weight: bold;">Cc:</span></b> "a.kruis@science-computing.de" <a.kruis@science-computing.de> <br> <b><span style="font-weight: bold;">Sent:</span></b>
 Wednesday, September 4, 2013 2:18 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Stackless] Documentation of tasklet life cycle (was Re: Open Stackless issues)<br> </font> </div> <div class="y_msg_container"><br>Tasklets blocked on channels can be pickled.<br><br>>>> import stackless<br>>>> c = stackless.channel()<br>>>> def f(ct):<br>...     print "in"<br>...     ct.receive()<br>...     print "out"<br>...<br>>>> t = stackless.tasklet(f)(c)<br>>>> t.run()<br>in<br>>>> import cPickle<br>>>> s = cPickle.dumps(t)<br>>>>
 s<br>"cstackless\ntasklet\np1\n(tRp2\n(I3\nNI0\n(lp3\ncstackless._wrap\nframe\np4\n(c<br>stackless._wrap\ncode\np5\n(I1\nI1\nI1\nI67\nS'd\\x01\\x00GH|\\x00\\x00j\\x00\\x<br>00\\x83\\x00\\x00\\x01d\\x02\\x00GHd\\x00\\x00S'\np6\n(NS'in'\np7\nS'out'\np8\nt<br>p9\n(S'receive'\np10\ntp11\n(S'ct'\ntp12\nS'<stdin>'\np13\nS'f'\nI1\nS'\\x00\\x0<br>1\\x05\\x01\\n\\x01'\np14\n(t(ttRp15\n(tbtRp16\n(g15\nI1\nS'eval_frame_value'\np<br>17\nc__builtin__\ngetattr\np18\n(c__builtin__\n__import__\np19\n(S'__main__'\n(t<br>(t(S''\nttRp20\nS'__dict__'\ntRp21\nI0\n(dNNI13\nI1\n(t((tcstackless\nchannel\np<br>22\n(tRp23\n(I-1\nI6\n(lp24\ng2\natbttbatb."<br>>>><br><br><br>On 9/5/13, Andrew Francis <<a ymailto="mailto:andrewfr_ice@yahoo.com" href="mailto:andrewfr_ice@yahoo.com">andrewfr_ice@yahoo.com</a>> wrote:<br>> Hi Anselm:<br>><br>> ----------------------------------------------------------------------<br>><br>> Message: 1<br>> Date:
 Wed, 04 Sep 2013 15:07:51 +0200<br>> From: Anselm Kruis <<a ymailto="mailto:a.kruis@science-computing.de" href="mailto:a.kruis@science-computing.de">a.kruis@science-computing.de</a>><br>> To: <a ymailto="mailto:stackless@stackless.com" href="mailto:stackless@stackless.com">stackless@stackless.com</a><br>> Subject: [Stackless] Documentation of tasklet life cycle (was Re: Open<br>>     Stackless issues)<br>> Message-ID: <<a ymailto="mailto:522730A7.3070900@science-computing.de" href="mailto:522730A7.3070900@science-computing.de">522730A7.3070900@science-computing.de</a>><br>> Content-Type: text/plain; charset="iso-8859-1"; format="flowed"<br>><br>>>I just created a first draft of a state diagram for the tasklet life<br>>>cycle. It is here:<br>><br>>><a href="http://www.stackless.com/ticket/24#comment:11"
 target="_blank">http://www.stackless.com/ticket/24#comment:11</a><br>><br>>>Any comments and suggestions are highly welcome.<br>><br>><br>> Nice work. Some comments:<br>><br>> What is the difference between a tasklet that is not alive (i.e., not bound<br>> to a callable) and a tasklet that is not alive (but bounded to a callable).<br>> Should there be a dead state?<br>><br>> Do you really need to distinguish between the "running" state and the<br>> "running in scheduler" state? Isn't the difference between stackless.run()<br>> and tasklet.run() a matter of when a tasklet is scheduled?<br>><br>> Does a tasklet that is pickled or blocked on a channel require a special<br>> state (since a tasklet blocked on a channel cannot be pickled)?<br>><br>> Cheers,<br>> Andrew<br><br></div> </div> </div>  </div></body></html>