bpo-39882: Add _Py_FatalErrorFormat() function (GH-19157)
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index f2d0467..6e76db4 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -292,12 +292,11 @@
}
Py_END_ALLOW_THREADS
if (relax_locking && st != PY_LOCK_ACQUIRED) {
- PyObject *msgobj = PyUnicode_FromFormat(
- "could not acquire lock for %A at interpreter "
+ PyObject *ascii = PyObject_ASCII((PyObject*)self);
+ _Py_FatalErrorFormat(__func__,
+ "could not acquire lock for %s at interpreter "
"shutdown, possibly due to daemon threads",
- (PyObject *) self);
- const char *msg = PyUnicode_AsUTF8(msgobj);
- Py_FatalError(msg);
+ ascii ? PyUnicode_AsUTF8(ascii) : "<ascii(self) failed>");
}
return 1;
}