mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-119344: Make critical section API public (#119353)
This makes the following macros public as part of the non-limited C-API for locking a single object or two objects at once. * `Py_BEGIN_CRITICAL_SECTION(op)` / `Py_END_CRITICAL_SECTION()` * `Py_BEGIN_CRITICAL_SECTION2(a, b)` / `Py_END_CRITICAL_SECTION2()` The supporting functions and structs used by the macros are also exposed for cases where C macros are not available.
This commit is contained in:
parent
03fa2df927
commit
8f17d69b7b
15 changed files with 459 additions and 225 deletions
16
Include/critical_section.h
Normal file
16
Include/critical_section.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef Py_CRITICAL_SECTION_H
|
||||
#define Py_CRITICAL_SECTION_H
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
# define Py_CPYTHON_CRITICAL_SECTION_H
|
||||
# include "cpython/critical_section.h"
|
||||
# undef Py_CPYTHON_CRITICAL_SECTION_H
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* !Py_CRITICAL_SECTION_H */
|
Loading…
Add table
Add a link
Reference in a new issue