classification
Title: PyThread_xxx() not available when using limited API
Type: enhancement Stage: resolved
Components: C API Versions: Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: VZ, nanjekyejoannah, petr.viktorin
Priority: normal Keywords:

Created on 2019-12-23 14:23 by VZ, last changed 2021-06-22 14:38 by petr.viktorin. This issue is now closed.

Messages (2)
msg358813 - (view) Author: Vadim Zeitlin (VZ) Date: 2019-12-23 14:23
These functions (e.g. PyThread_allocate_lock() etc) are not declared inside

#if !defined(Py_LIMITED_API)

in pythread.h, yet they're not exported from python3.lib.

IMHO, ideal would be to just provide these functions in the library, as they exist since basically always, but if the intention is to not make them part of the limited API, a guard around their declarations in the header should be added so that using them at least results in link-time errors instead of compile-time ones when using limited API.
msg396342 - (view) Author: Petr Viktorin (petr.viktorin) * (Python committer) Date: 2021-06-22 14:38
In Python 3.10, the functions:
PyThread_allocate_lock, PyThread_exit_thread, PyThread_free_lock, PyThread_get_stacksize, PyThread_get_thread_ident, PyThread_get_thread_native_id, PyThread_init_thread, PyThread_release_lock, PyThread_set_stacksize, PyThread_start_new_thread

are exported as part of the stable ABI. They were added in bpo-42545 and bpo-43795 (PEP 652).
Sorry for the delay.
History
Date User Action Args
2021-06-22 14:38:28petr.viktorinsetstatus: open -> closed

nosy: + petr.viktorin
messages: + msg396342

resolution: fixed
stage: resolved
2020-01-15 21:38:34vstinnersetnosy: - vstinner
2019-12-28 18:22:33nanjekyejoannahsetnosy: + vstinner, nanjekyejoannah
2019-12-23 14:23:44VZcreate