[Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/test taskspeed.py, 1.23, 1.24
Christian Tismer
tismer at centera.de
Thu Jul 8 20:58:33 CEST 2004
- Previous message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core stacklesseval.c, 1.162, 1.163
- Next message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module channelobject.c, 1.51, 1.52 scheduling.c, 1.108, 1.109 stacklessmodule.c, 1.176, 1.177 taskletobject.c, 1.115, 1.116
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/slpdev/src/2.3/dev/Stackless/test
In directory centera.de:/tmp/cvs-serv9390/Stackless/test
Modified Files:
taskspeed.py
Log Message:
added iterator support to channels,
and sending of sequences.
It works, there is just a case missing to
make it completely stackless.
Changed exceptions to stopiteration in certain places.
Very convenient for main, when consuming all of
a channel's data with list(ch)
Index: taskspeed.py
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Stackless/test/taskspeed.py,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** a/taskspeed.py 24 May 2004 17:42:14 -0000 1.23
--- b/taskspeed.py 8 Jul 2004 18:58:30 -0000 1.24
***************
*** 81,87 ****
for i in gf(n):pass
! def channel_sender(send, nest=0):
if nest:
! return channel_sender(send, nest-1)
while 1:
send(42); send(42); send(42); send(42); send(42);
--- 81,95 ----
for i in gf(n):pass
! def channel_sender(chan, nest=0, bulk=0):
if nest:
! return channel_sender(chan, nest-1)
! if bulk:
! data = range(20)
! send_seq = chan.send_sequence
! send_exc = chan.send_exception
! while 1:
! send_seq(data)
! send_exc(StopIteration)
! send = chan.send
while 1:
send(42); send(42); send(42); send(42); send(42);
***************
*** 90,94 ****
send(42); send(42); send(42); send(42); send(42);
! def chantest(n, nest=0, use_thread=False):
if nest:
return chantest(n, nest-1, use_thread)
--- 98,102 ----
send(42); send(42); send(42); send(42); send(42);
! def chantest(n, nest=0, use_thread=False, bulk = False):
if nest:
return chantest(n, nest-1, use_thread)
***************
*** 96,105 ****
chan.preference = 0 # fastest
if use_thread:
! thread.start_new_thread(channel_sender, (chan.send,))
# wait for thread
while not chan.balance:
schedule()
else:
! tasklet(channel_sender)(chan.send)
recv = chan.receive
def xrecv():
--- 104,119 ----
chan.preference = 0 # fastest
if use_thread:
! thread.start_new_thread(channel_sender, (chan,))
# wait for thread
while not chan.balance:
schedule()
else:
! tasklet(channel_sender)(chan, nest, bulk)
! if bulk:
! for i in xrange(0, n, 20):
! #list(chan)
! for i in chan: pass
! return
!
recv = chan.receive
def xrecv():
***************
*** 132,151 ****
enable_softswitch(0)
res = []
! res.append(tester(f, niter, (schedule,), "frame switches "))
enable_softswitch(1)
! res.append(tester(f, niter, (schedule,), "frame softswitches "))
! res.append(tester(f, niter, (sys._getframe,), "cfunction calls "))
! res.append(tester(test_cframe_nr, niter, (), "cframe softswitches"))
enable_softswitch(0)
! res.append(tester(chantest, niter, (), "channel hard top "))
! res.append(tester(chantest, niter, (3,), "channel hard nest 3"))
enable_softswitch(1)
! res.append(tester(chantest, niter, (), "channel soft "))
res.append(tester(chantest, niter//10, (0, 1), "channel real thread"))
! res.append(tester(f, niter, (lambda:0,), "function calls "))
! res.append(tester(gentest, niter, (), "generator calls "))
! res.append(tester(test_cframe, niter//10, (), "cframe from outside", 1, test_outside))
! res.append(tester(test_cframe, niter, (), "cframe switches "))
! res.append(tester(test_cframe, niter, (100,), "cframe 100 words "))
if IS_SLP:
--- 146,166 ----
enable_softswitch(0)
res = []
! res.append(tester(f, niter, (schedule,), "frame switches "))
enable_softswitch(1)
! res.append(tester(f, niter, (schedule,), "frame softswitches "))
! res.append(tester(f, niter, (sys._getframe,), "cfunction calls "))
! res.append(tester(test_cframe_nr, niter, (), "cframe softswitches"))
enable_softswitch(0)
! res.append(tester(chantest, niter, (), "channel hard top "))
! res.append(tester(chantest, niter, (3,), "channel hard nest 3"))
enable_softswitch(1)
! res.append(tester(chantest, niter, (), "channel soft "))
! res.append(tester(chantest, niter, (0, 0, 1), "channel iterator "))
res.append(tester(chantest, niter//10, (0, 1), "channel real thread"))
! res.append(tester(f, niter, (lambda:0,), "function calls "))
! res.append(tester(gentest, niter, (), "generator calls "))
! res.append(tester(test_cframe, niter//10, (), "cframe from outside", 1, test_outside))
! res.append(tester(test_cframe, niter, (), "cframe switches "))
! res.append(tester(test_cframe, niter, (100,), "cframe 100 words "))
if IS_SLP:
_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins
- Previous message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/core stacklesseval.c, 1.162, 1.163
- Next message: [Stackless-checkins] CVS: slpdev/src/2.3/dev/Stackless/module channelobject.c, 1.51, 1.52 scheduling.c, 1.108, 1.109 stacklessmodule.c, 1.176, 1.177 taskletobject.c, 1.115, 1.116
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Stackless-checkins
mailing list