Skip to content

Conversation

@vstinner
Copy link
Member

@vstinner vstinner commented Mar 19, 2019

When Python is compiled with Valgrind support, release Unicode
interned strings at exit in _PyUnicode_Fini().

  • Rename _Py_ReleaseInternedUnicodeStrings() to
    unicode_release_interned() and make it private.
  • unicode_release_interned() is now called from _PyUnicode_Fini():
    it must be called with a running Python thread state for TRASHCAN,
    it cannot be called from pymain_free().
  • Don't display statistics on interned strings at exit anymore

https://bugs.python.org/issue36356

When Python is compiled with Valgrind support, release Unicode interned strings at exit in _PyUnicode_Fini(). * Rename _Py_ReleaseInternedUnicodeStrings() to unicode_release_interned() and make it private. * unicode_release_interned() is now called from _PyUnicode_Fini(): it must be called with a running Python thread state for TRASHCAN, it cannot be called from pymain_free(). * Don't display statistics on interned strings at exit anymore
@vstinner
Copy link
Member Author

@ericsnowcurrently: I'm not sure if interned strings are supposed to survive Py_Finalize(). I don't think so. Anyway, after Py_Finalize(), we cannot free interned strings anymore, since the code uses Py_TRASHCAN API which requires a valid Python thread state... but Py_Finalize() free all Python thread states!

@vstinner vstinner merged commit fecc4f2 into python:master Mar 19, 2019
@bedevere-bot
Copy link

@vstinner: Please replace # with GH- in the commit message next time. Thanks!

@vstinner vstinner deleted the release_interned branch March 19, 2019 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

3 participants