Hi David, On 16 October 2017 at 21:18, David Callahan <dcalla...@fb.com> wrote: > folly:fibers (https://github.com/facebook/folly/tree/master/folly/fibers ) > is a C++ package for lightweight, cooperatively scheduled threads. We have > an application which extends this to CPython by adding the following > save/restore code around task function invocation:
This will never work inside PyPy, even using cpyext, because cpyext's notion of exceptions is different from the internal one inside PyPy. Instead, you should look at the ``_continuation`` module or more likely the ``greenlet`` module, which is built-in in PyPy (and available as a CPython extension module, too, if you like). It should give you a replacement, though of course you need to adapt the callers. If you really want to use folly:fibers or a specific package manipulating the C stack, then I'm afraid it's quite hard. The ``greenlet`` module in PyPy is based on ``stacklet``, which is an internal part of PyPy doing the same thing using the necessary bookkeeping for PyPy, which is different than the one for CPython you included in your e-mail. If you really want to look there, you'd need to replicate that logic around folly:fibres (search for all "stacklet" file names in several places in the PyPy source code). A bientôt, Armin. _______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev