Skip to content

[WIP] bpo-39465: Optimize _PyInterpreterState_GET() - #20767

Closed
vstinner wants to merge 1 commit into
python:masterfrom
vstinner:interp_current
Closed

[WIP] bpo-39465: Optimize _PyInterpreterState_GET()#20767
vstinner wants to merge 1 commit into
python:masterfrom
vstinner:interp_current

Conversation

@vstinner

@vstinnervstinner commented Jun 9, 2020

Copy link
Copy Markdown
Member
  • Add _PyRuntimeState.gilstate.interp_current.

  • _PyThreadState_Swap() now sets interp_current.
    PyThreadState_Swap(NULL) sets interp_current to NULL.

  • Replace _PyThreadState_GET() with _PyInterpreterState_GET() in:

    • get_small_int()
    • gcmodule.c: add also get_gc_state() function
    • _PyTrash_deposit_object()
    • _PyTrash_destroy_chain()
    • warnings_get_state()
    • Py_GetRecursionLimit()

https://bugs.python.org/issue39465

@vstinner
vstinner requested a review from pablogsal as a code ownerJune 9, 2020 21:58
@vstinner
vstinner marked this pull request as draft June 9, 2020 23:46
@vstinnervstinner changed the title bpo-39465: Optimize _PyInterpreterState_GET()[WIP] bpo-39465: Optimize _PyInterpreterState_GET()Jun 9, 2020
@vstinner

Copy link
Copy Markdown
MemberAuthor

I'm still working on measuring the optimization performance. So far, the benefit is not obvious.

* Add _PyRuntimeState.gilstate.interp_current.
* _PyThreadState_Swap() now sets interp_current.
PyThreadState_Swap(NULL) sets interp_current to NULL.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@vstinner@the-knights-who-say-ni@bedevere-bot