I made an improved version of the diagram: https://bitbucket.org/akruis/fg2python/downloads/tasklet_state_chart_v2.png


Am 04.09.2013 19:33, schrieb Anselm Kruis:
Am 04.09.2013 18:18, schrieb Andrew Francis:
I just created a first draft of a state diagram for the tasklet life
 >cycle. It is here:

 >http://www.stackless.com/ticket/24#comment:11

 >Any comments and suggestions are highly welcome.

Nice work. Some comments:

What is the difference between a tasklet that is not alive (i.e., not
bound to a callable) and a tasklet that is not alive (but bounded to a
callable). Should there be a dead state?
Good point. There is a transition missing from "Bound" to "Not alive" on
tasklet.bind(None).



Do you really need to distinguish between the "running" state and the
"running in scheduler" state? Isn't the difference between
stackless.run() and tasklet.run() a matter of when a tasklet is
scheduled?

Good point. Indeed it is no longer necessary to distinguish these cases.

With previous versions of Stackless, calling stackless.schedule_remove()
cause exceptions if the current tasklet was not scheduled. Obviously
this has been fixed in between. I didn't notice that until I tried to
reproduce the exception just now.


Does a tasklet that is pickled or blocked on a channel require a special
state (since a tasklet blocked on a channel cannot be pickled)?

Good point. I have no experience with channels at all. Obviously the
diagram currently ignores tasklet.blocked, tasklet.restorable. And a
pickled tasklet can be used to create an alive tasklet.

Next version is coming soon.


Cheers
   Anselm


--
 Dipl. Phys. Anselm Kruis                       science + computing ag
 Senior Solution Architect                      Ingolstädter Str. 22
 email [email protected]             80807 München, Germany
 phone +49 89 356386 874  fax 737               www.science-computing.de
--
Vorstandsvorsitzender/Chairman of the board of management:
Gerd-Lothar Leonhart
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Michael Heinrichs, Dr. Arno Steitz, Dr. Ingrid Zech
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Philippe Miltin
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196


_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to