summaryrefslogtreecommitdiffstats
path: root/Doc/c-api/init.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/c-api/init.rst')
-rw-r--r--Doc/c-api/init.rst48
1 files changed, 48 insertions, 0 deletions
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 3467ed7..11cd551 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -615,6 +615,14 @@ supports the creation of additional interpreters (using
deadlock ensues. (This function is available even when thread support is
disabled at compile time.)
+
+.. cfunction:: void PyEval_ReInitThreads()
+
+ This function is called from :cfunc:`PyOS_AfterFork` to ensure that newly
+ created child processes don't hold locks referring to threads which
+ are not running in the child process.
+
+
The following macros are normally used without a trailing semicolon; look for
example usage in the Python source distribution.
@@ -876,6 +884,46 @@ in previous versions.
:cfunc:`PyEval_SetProfile`, except the tracing function does receive line-number
events.
+.. cfunction:: PyObject* PyEval_GetCallStats(PyObject *self)
+
+ Return a tuple of function call counts. There are constants defined for the
+ positions within the tuple:
+
+ +-------------------------------+-------+
+ | Name | Value |
+ +===============================+=======+
+ | :const:`PCALL_ALL` | 0 |
+ +-------------------------------+-------+
+ | :const:`PCALL_FUNCTION` | 1 |
+ +-------------------------------+-------+
+ | :const:`PCALL_FAST_FUNCTION` | 2 |
+ +-------------------------------+-------+
+ | :const:`PCALL_FASTER_FUNCTION`| 3 |
+ +-------------------------------+-------+
+ | :const:`PCALL_METHOD` | 4 |
+ +-------------------------------+-------+
+ | :const:`PCALL_BOUND_METHOD` | 5 |
+ +-------------------------------+-------+
+ | :const:`PCALL_CFUNCTION` | 6 |
+ +-------------------------------+-------+
+ | :const:`PCALL_TYPE` | 7 |
+ +-------------------------------+-------+
+ | :const:`PCALL_GENERATOR` | 8 |
+ +-------------------------------+-------+
+ | :const:`PCALL_OTHER` | 9 |
+ +-------------------------------+-------+
+ | :const:`PCALL_POP` | 10 |
+ +-------------------------------+-------+
+
+ :const:`PCALL_FAST_FUNCTION` means no argument tuple needs to be created.
+ :const:`PCALL_FASTER_FUNCTION` means that the fast-path frame setup code is used.
+
+ If there is a method call where the call can be optimized by changing
+ the argument tuple and calling the function directly, it gets recorded
+ twice.
+
+ This function is only present if Python is compiled with :const:`CALL_PROFILE`
+ defined.
.. _advanced-debugging: