[Stackless] Vacation and SLP 3.0
tismer at tismer.com
Sat Apr 26 23:28:21 CEST 2003
I will be on a one-week vacation in the south of Germany
and probably hardly reachable. But I will do my favorite
vacation fun: Work on Stackless, not reading emails.
There are of course some issues to solve, like where
"run" and "run_watchdog" should go in the future.
I'm implementing opti(on|m)al pre-emptive scheduling
now, and there is the question whether this should
be an extra function, or a keyword parameter to run(),
or a method of the scheduler object going to evolve.
If anybody has some comments, I will most probably
read emails tomorrow around 11:am local time (GMT+1),
then I will at best only rarely reachable next week.
During the vacation, I will do quite a lot of work,
most probably resulting in Stackless 3.0, first final.
This will be the "Rothenburg Edition".
Here a copy of a discussion about these topics with
Eric van Riet Paap; please give me some input.
cheers -- chris
Thank you for having a vote at this. I'm not sure if I am the right
person to answer your questions, since I haven't used stackless very
often and I might still have the wrong idea about what each
functions/methods/class will do. On the other side this is an
advantage because I I look at it the way I think it should work
instead of how I know it should work.
On Saturday 26 April 2003 15:07, you wrote:
>> Eric van Riet Paap wrote:
>>> > I would get rid of the run_watchdog(timeout) since run(...) is
>>> > what it does and the watchdog is some specialisation of that.
>> You are right.
>> It has been otherwise before, since the watchdog was written
>> for CCPgames, who needed this. Later on, I realized that
>> this is just run, whether there is a watchdog or not.
>> On the other hand, I will implement preemptive scheduling
>> now. I'm undecided whether this should be just done by
>> a third parameter to run (the time slice), or if it is better
>> to have an extra function run_scheduled?
how about parameter name (for instance 'preemptive' default 0)
0 = not preemptive (current situation)
and also have a constant called DEFAULT_PREEMTIVE_TIMESLICE=1000.
Thereby making it explicit (Python way) instead of 'hidden' on you C code.
What Python libraries do you use sometimes? What are similar
situations in their usage? What method do you prefer?
>> The latter would have the benefit that I could give a decent
>> default to the time slice (maybe 1000).
>> My customers almost don't want auto-scheduling, so I need
>> to do it right.
>> It also might not be necesary to have this parameter,
>> instead it could become a priority parameter for tasklet
>> creation, and prio 0, or setting the atomic flag by default,
>> would prevend auto-scheduling, too.
So you maybe want to have each tasklet have a time slice (priority),
that sounds very nice (like thread priotiry in windows threads).
However having to supply an extra value for each task creation
doesn't sound very nice, escpecially when I 'just' want preemptive,
but don't really care about the timeslice per tasklet. (i.e want
all tasklets to have the same timeslice)
>> Third, there is a concept of some scheduler object, which
>> needs to be developed. Essentially, run() is a method of that
>> scheduler object. Should I eventually put such properties
>> into that object and deprecate the timeout parameter for run(),
>> or use keyword parameters?
Again, I am no stackless expert (yet ), you are the only one.
If I think of keyword parameters I think about tcl and I really
don't like tcl. I do like qt (not much experience here either ),
but that appears to be designed a lot nicer/simpler. With qt
(from trolltech) you do things like (pseudecode):
button = QT.CreateButton('some name')
button.SetBackgroundColor( QT.RED )
so you can set some/many things at creation, but can also
simply change them later throught methods.
>> Hmm, hmm. I'm good at implementation, but not at design
More people should use stackless and give feedback!
In that sense, *please do*
(sent to stackless and bcc to some friends)
Christian Tismer :^) <mailto:tismer at tismer.com>
Mission Impossible 5oftware : Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a : *Starship* http://starship.python.net/
14109 Berlin : PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34 home +49 30 802 86 56 pager +49 173 24 18 776
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
Stackless at www.tismer.com
More information about the Stackless