mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-36084: Add native thread ID (TID) to threading.Thread (GH-13463)
Add native thread ID (TID) to threading.Thread objects (supported platforms: Windows, FreeBSD, Linux, macOS).
This commit is contained in:
parent
b3be407288
commit
b121f63155
9 changed files with 154 additions and 0 deletions
|
@ -1159,6 +1159,22 @@ allocated consecutive numbers starting at 1, this behavior should not\n\
|
|||
be relied upon, and the number should be seen purely as a magic cookie.\n\
|
||||
A thread's identity may be reused for another thread after it exits.");
|
||||
|
||||
#ifdef PY_HAVE_THREAD_NATIVE_ID
|
||||
static PyObject *
|
||||
thread_get_native_id(PyObject *self, PyObject *Py_UNUSED(ignored))
|
||||
{
|
||||
unsigned long native_id = PyThread_get_thread_native_id();
|
||||
return PyLong_FromUnsignedLong(native_id);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(get_native_id_doc,
|
||||
"get_native_id() -> integer\n\
|
||||
\n\
|
||||
Return a non-negative integer identifying the thread as reported\n\
|
||||
by the OS (kernel). This may be used to uniquely identify a\n\
|
||||
particular thread within a system.");
|
||||
#endif
|
||||
|
||||
static PyObject *
|
||||
thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))
|
||||
{
|
||||
|
@ -1310,6 +1326,10 @@ static PyMethodDef thread_methods[] = {
|
|||
METH_NOARGS, interrupt_doc},
|
||||
{"get_ident", thread_get_ident,
|
||||
METH_NOARGS, get_ident_doc},
|
||||
#ifdef PY_HAVE_THREAD_NATIVE_ID
|
||||
{"get_native_id", thread_get_native_id,
|
||||
METH_NOARGS, get_native_id_doc},
|
||||
#endif
|
||||
{"_count", thread__count,
|
||||
METH_NOARGS, _count_doc},
|
||||
{"stack_size", (PyCFunction)thread_stack_size,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue