Merge pull request #3502 from mejrs/interpreterapi
add PyInterpreterConfig api
This commit is contained in:
commit
36b4a79930
|
@ -0,0 +1 @@
|
||||||
|
Added the `PyInterpreterConfig` struct, its constants and `Py_NewInterpreterFromConfig`.
|
|
@ -44,5 +44,56 @@ extern "C" {
|
||||||
// skipped _Py_LegacyLocaleDetected
|
// skipped _Py_LegacyLocaleDetected
|
||||||
// skipped _Py_SetLocaleFromEnv
|
// skipped _Py_SetLocaleFromEnv
|
||||||
|
|
||||||
// skipped _Py_NewInterpreter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub const PyInterpreterConfig_DEFAULT_GIL: c_int = 0;
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub const PyInterpreterConfig_SHARED_GIL: c_int = 1;
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub const PyInterpreterConfig_OWN_GIL: c_int = 2;
|
||||||
|
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
#[repr(C)]
|
||||||
|
pub struct PyInterpreterConfig {
|
||||||
|
pub use_main_obmalloc: c_int,
|
||||||
|
pub allow_fork: c_int,
|
||||||
|
pub allow_exec: c_int,
|
||||||
|
pub allow_threads: c_int,
|
||||||
|
pub allow_daemon_threads: c_int,
|
||||||
|
pub check_multi_interp_extensions: c_int,
|
||||||
|
pub gil: c_int,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub const _PyInterpreterConfig_INIT: PyInterpreterConfig = PyInterpreterConfig {
|
||||||
|
use_main_obmalloc: 0,
|
||||||
|
allow_fork: 0,
|
||||||
|
allow_exec: 0,
|
||||||
|
allow_threads: 1,
|
||||||
|
allow_daemon_threads: 0,
|
||||||
|
check_multi_interp_extensions: 1,
|
||||||
|
gil: PyInterpreterConfig_OWN_GIL,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub const _PyInterpreterConfig_LEGACY_INIT: PyInterpreterConfig = PyInterpreterConfig {
|
||||||
|
use_main_obmalloc: 1,
|
||||||
|
allow_fork: 1,
|
||||||
|
allow_exec: 1,
|
||||||
|
allow_threads: 1,
|
||||||
|
allow_daemon_threads: 1,
|
||||||
|
check_multi_interp_extensions: 0,
|
||||||
|
gil: PyInterpreterConfig_SHARED_GIL,
|
||||||
|
};
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#[cfg(Py_3_12)]
|
||||||
|
pub fn Py_NewInterpreterFromConfig(
|
||||||
|
tstate_p: *mut *mut crate::PyThreadState,
|
||||||
|
config: *const PyInterpreterConfig,
|
||||||
|
) -> PyStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
// skipped atexit_datacallbackfunc
|
||||||
|
// skipped _Py_AtExit
|
||||||
|
|
Loading…
Reference in New Issue