diff options
author | Jake Tesler <jake.tesler@gmail.com> | 2019-05-12 17:08:24 (GMT) |
---|---|---|
committer | Antoine Pitrou <antoine@python.org> | 2019-05-12 17:08:24 (GMT) |
commit | 4959c33d2555b89b494c678d99be81a65ee864b0 (patch) | |
tree | 87df7778f170864ef1efe3418ac3cb3c47051c50 /Modules | |
parent | 87068ed00927bdeaa2ae556e4241c16cf8a845eb (diff) | |
download | cpython-4959c33d2555b89b494c678d99be81a65ee864b0.zip cpython-4959c33d2555b89b494c678d99be81a65ee864b0.tar.gz cpython-4959c33d2555b89b494c678d99be81a65ee864b0.tar.bz2 |
bpo-36084: Add native thread ID to threading.Thread objects (GH-11993)
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_threadmodule.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index 3c02d8d..a123cd0 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -1160,6 +1160,20 @@ 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."); 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."); + +static PyObject * thread__count(PyObject *self, PyObject *Py_UNUSED(ignored)) { PyInterpreterState *interp = _PyInterpreterState_Get(); @@ -1310,6 +1324,8 @@ static PyMethodDef thread_methods[] = { METH_NOARGS, interrupt_doc}, {"get_ident", thread_get_ident, METH_NOARGS, get_ident_doc}, + {"get_native_id", thread_get_native_id, + METH_NOARGS, get_native_id_doc}, {"_count", thread__count, METH_NOARGS, _count_doc}, {"stack_size", (PyCFunction)thread_stack_size, |