Yeah, I just left the ticked, went to the list, and came back ;-)
I'm pretty curious about "unbind" and what it is...
cheers - chris
On 11.06.13 11:18, Kristján Valur Jónsson wrote:
Just thought I'd let you know that due to lack of response, this discussion Is
continuing in the ticket.
Anselm made the interesting suggestion to "unbind" a tasklet. I like that
thought.
K
-----Original Message-----
From: [email protected] [mailto:stackless-
[email protected]] On Behalf Of Anselm Kruis
Sent: 4. júní 2013 12:16
To: The Stackless Python Mailing List
Subject: [Stackless] Issue#24: killing tasklets during thread state cleanup
Hi,
I recently proposed a modification of the behaviour of Stackless Python 2.7.
For details see http://www.stackless.com/ticket/24.
Problem
Upon end of a thread Stackless Python kills every tasklet, that belongs to the
thread.
This behaviour is fine except for one case: if you pickle a tasklet and later
unpickle and continue the tasklet, pending finally blocks will be executed
twice:
- in the original tasklet during the processing of the TaskletExit exception
- in the unpickled tasklet during normal processing.
If the tasklet is deleted prior to the end of the thread, finally blocks run
only
once.
This behaviour is inconsistent and can cause unexpected behaviour. We
need a way to ensure, that the original tasklet gets deleted without being
revivified.
Proposal
I propose to exempt a tasklet from being killed, if the tasklet is restorable
and not scheduled (stackless.schedule_remove() or
tasklet.remove() was called). Such a tasklet would silently get deleted, if its
reference count reaches zero.
Alternatives
- One could add a flag to a tasklet that marks the tasklet as being serialised
and skip killing based on the flag.
- Modify tasklet.bind(callable) to allow rebinding an alive tasklet.
Then one could use tasklet.bind(lambda :None) to effectively disable killing.
Open questions
Are there any known use cases, that depend on the current behaviour? Are
there better alternatives?
I'd like to discuss the general way to to solve this issue on the mailing list.
Once there is a consensus, we can sort out implementation details in the
ticket.
Regards
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
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless
--
Christian Tismer :^) <mailto:[email protected]>
Software Consulting : Have a break! Take a ride on Python's
Karl-Liebknecht-Str. 121 : *Starship* http://starship.python.net/
14482 Potsdam : PGP key -> http://pgp.uni-mainz.de
phone +49 173 24 18 776 fax +49 (30) 700143-0023
PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04
whom do you want to sponsor today? http://www.stackless.com/
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless