Hi Andrew,

Please look at the latest documentation:
https://bitbucket.org/pypy/pypy/raw/stm-thread/pypy/doc/stm.rst

You should be able to use such a "thread.atomic" in stackless.py.  You
need to create N threads and run the tasklets in these threads.  As
long as each tasklet's user code is protected by a "thread.atomic",
then they will *appear* to be run serially.

You probably need to call "thread.atomic.__enter__" and "__exit__"
explicitly for your use case; if you do, then I could also move the
functionality as normal built-in method.  You also have to handle
issues like tasklets not being always allowed to switch threads.

As a first approximation, on CPython you can implement a dummy
"thread.atomic" by acquiring and releasing a single lock.  It is only
an approximative equivalent because other non-atomic threads will be
allowed to run concurrently; but for this kind of experiment where
*all* threads should be "atomic", it should not make a difference.


A bientôt,

Armin.
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to