[pypy-svn] r20946 - pypy/dist/pypy/translator/c/test
tismer at codespeak.net
tismer at codespeak.net
Fri Dec 9 16:43:04 CET 2005
Author: tismer
Date: Fri Dec 9 16:43:03 2005
New Revision: 20946
Modified:
pypy/dist/pypy/translator/c/test/test_tasklets.py
Log:
temporary check-in, stopping to hack on the same source.
Modified: pypy/dist/pypy/translator/c/test/test_tasklets.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_tasklets.py (original)
+++ pypy/dist/pypy/translator/c/test/test_tasklets.py Fri Dec 9 16:43:03 2005
@@ -39,6 +39,7 @@
s_list_of_strings.listdef.resize()
t = TranslationContext()
t.buildannotator().build_types(entry_point, [s_list_of_strings])
+ t.view()
t.buildrtyper().specialize()
backend_optimizations(t)
cbuilder = CStandaloneBuilder(t, entry_point, gcpolicy=gcpolicy)
@@ -105,8 +106,8 @@
if self.balance <= 0:
t = self.queue.pop(0)
t.data = value
- ##!!t.blocked = 0
- scheduler.run_immediately(tasklet)
+ t.blocked = 0
+ scheduler.run_immediately(t)
scheduler.schedule()
else:
@@ -114,7 +115,7 @@
assert isinstance(t, Tasklet)
# let it wait for a receiver to come along
self.queue.append(t)
- ##!!t.blocked = 1
+ t.blocked = 1
schedule_remove()
def receive(self):
@@ -122,15 +123,18 @@
# good to go
if self.balance >= 0:
t = self.queue.pop(0)
- ##!!t.blocked = 0
+ t.blocked = 0
+ data = t.data
scheduler.add_tasklet(t)
-
+ return data
else:
# block until ready
t = getcurrent()
+ assert isinstance(t, Tasklet)
self.queue.append(t)
- ##!!t.blocked = -1
+ t.blocked = -1
schedule_remove()
+ return -1 # never reached
class Scheduler(object):
def __init__(self):
@@ -304,9 +308,14 @@
debug("done sending")
def f2(name):
- while True:
- ch.receive()
- debug("received")
+ for ii in range(5):
+ data = ch.receive()
+ debug("done receiving")
+## while True:
+## data = ch.receive()
+## if data == 42:
+## break
+## debug("received")
def f():
start_tasklet(Tasklet("f2", f2))
More information about the Pypy-commit
mailing list