[Stackless] Documentation of tasklet life cycle (was Re: Open Stackless issues)

Anselm Kruis a.kruis at science-computing.de
Wed Sep 4 23:03:22 CEST 2013

I made an improved version of the diagram: 

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 A.Kruis at science-computing.de             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

More information about the Stackless mailing list