def METHOD_NAME(self):
    TestThread = CPyExtType(
        name="TestThread",
        includes="#include <pthread.h>",
        code=r'''
        void* thread_entrypoint(void* arg) {
            PyObject* callable = (PyObject*)arg;
            PyGILState_STATE gstate;
            gstate = PyGILState_Ensure();
            if (!PyObject_CallNoArgs(callable)) {
                PyErr_WriteUnraisable(callable);
            }
            PyGILState_Release(gstate);
            return NULL;
        }
        PyObject* run_in_thread(PyObject* self, PyObject* callable) {
            Py_BEGIN_ALLOW_THREADS;
            pthread_t thread;
            pthread_create(&thread, NULL, thread_entrypoint, callable);
            pthread_join(thread, NULL);
            Py_END_ALLOW_THREADS;
            Py_RETURN_NONE;
        }
        ''',
        tp_methods='{"run_in_thread", (PyCFunction)run_in_thread, METH_O | METH_STATIC, ""}'
    )
    thread = None
    def callable():
        nonlocal thread
        thread = threading.current_thread()
    TestThread.run_in_thread(callable)
    assert thread
    assert thread is not threading.current_thread()