diff --git a/Python/ceval.c b/Python/ceval.c
index 30599a5..86aa225 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -136,14 +136,6 @@
 #endif
 
 
-/* Only handle signals on the main thread of the main interpreter. */
-static int
-thread_can_handle_signals(void)
-{
-    return (PyThread_get_thread_ident() == _PyRuntime.main_thread);
-}
-
-
 /* This can set eval_breaker to 0 even though gil_drop_request became
    1.  We believe this is all right because the eval loop will release
    the GIL eventually anyway. */
@@ -156,7 +148,7 @@
     _Py_atomic_store_relaxed(&ceval2->eval_breaker,
         _Py_atomic_load_relaxed(&ceval->gil_drop_request)
         | (_Py_atomic_load_relaxed(&ceval->signals_pending)
-           && thread_can_handle_signals())
+           && _Py_ThreadCanHandleSignals(tstate))
         | _Py_atomic_load_relaxed(&ceval2->pending.calls_to_do)
         | ceval2->pending.async_exc);
 }
@@ -598,17 +590,7 @@
 static int
 handle_signals(PyThreadState *tstate)
 {
-    _PyRuntimeState *runtime = tstate->interp->runtime;
-
-    if (!thread_can_handle_signals()) {
-        return 0;
-    }
-    /*
-     * Ensure that the thread isn't currently running some other
-     * interpreter.
-     */
-    PyInterpreterState *interp = tstate->interp;
-    if (interp != runtime->interpreters.main) {
+    if (!_Py_ThreadCanHandleSignals(tstate)) {
         return 0;
     }
 
@@ -624,11 +606,8 @@
 static int
 make_pending_calls(PyThreadState *tstate)
 {
-
-    _PyRuntimeState *runtime = tstate->interp->runtime;
-
     /* only service pending calls on main thread */
-    if (PyThread_get_thread_ident() != runtime->main_thread) {
+    if (!_Py_IsMainThread()) {
         return 0;
     }
 
