> Skip> Any time C code would want to read or update ticker, it would have > Skip> the GIL, right? > > Jack> Not if the idea that lead to this thread (clearing ticker if > Jack> something is put in things_to_do) is implemented, because we may > Jack> be in an interrupt routine at the time we fiddle things_to_do. > > Jack> And I don't think we can be sure that even clearing is guaranteed > Jack> to work (if another thread is halfway a load-decrement-store > Jack> sequence the clear could be lost). > > Hmm... I guess you lost me. The code that fiddles the ticker in ceval.c > clearly operates while the GIL is held. I think the code in sysmodule.c > that updates the checkinterval works under that assumption as well. The > other ticker in longobject.c I'm not so sure about. > > The patch I submitted doesn't implement the ticker clear that Jeremy > originally suggested. It just pulls the ticker and the checkinterval out of > the thread state and makes them two globals. They are both manipulated in > otherwise the same way. > > Skip Yeah, but the whole *point* would be to save an extra test and (rarely-taken jump) by allowing Jeremy's suggestion to be implemented. Otherwise I don't see much advantage to the patch (or do you see a speed-up?). --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4