Heh, sure Did you look whether such functionality can be replicated with PyThreadState_New and PyThreadState_Swap?
Cheers, fijal On Tue, Oct 17, 2017 at 7:57 PM, David Callahan <dcalla...@fb.com> wrote: > Hi Maciej, thanks for the reply > > I have been warned before about the performance of cpyext but we have > hundreds of source dependencies and removing such reliance does not help us > in the short term. Thus, performance is not a concern yet since we are not > even at a point to run the code and know what is expensive and what is > irrelevant. > > At this point, it is not clear to me how to mimic this code using the cpyext > later at all. Or if it is even necessary if PyPy has a different > architecture for exception handling. > > --david > > On 10/17/17, 12:10 PM, "Maciej Fijalkowski" <fij...@gmail.com> wrote: > > Hi David. > > You're probably completely aware that such calls (using cpyext) would > completely kill performance, right? I didn't look in detail, but in > order to get performance, you would need to write such calls using > cffi. > > Best regards, > Maciej Fijalkowski > > On Mon, Oct 16, 2017 at 7:18 PM, 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: > > > > > > > > auto tstate = PyThreadState_Get(); > > > > CHECK_NOTNULL(tstate); > > > > auto savedFrame = tstate->frame; > > > > auto savedExcType = tstate->exc_type; > > > > auto savedExcValue = tstate->exc_value; > > > > auto savedExcTraceback = tstate->exc_traceback; > > > > func(); > > > > tstate->frame = savedFrame; > > > > tstate->exc_type = savedExcType; > > > > tstate->exc_value = savedExcValue; > > > > tstate->exc_traceback = savedExcTraceback; > > > > > > > > (here func is a boost::python::object) > > > > > > > > This does not work in PyPy 5.9 immediately because the thread state > object > > does not expose these fields nor are there accessor methods. > > > > > > > > Is there a way to get similar effect in PyPy? > > > > > > > > Thanks > > > > david > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > pypy-dev mailing list > > pypy-dev@python.org > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_pypy-2Ddev&d=DwIBaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=lFyiPUrFdOHdaobP7i4hoA&m=J_q51G31j5IKPKCE_2ZALuqBrWgdBs58pczmLTt_ml8&s=ZPehk3U44BJaOoWPII5iCNEv91mTCk_VoMR4Xq9Oh9k&e= > > > > _______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev