mirror of https://github.com/python/cpython
gh-98178: syslog() is not thread-safe on macOS (#98213)
On macOS, fix a crash in syslog.syslog() in multi-threaded applications. On macOS, the libc syslog() function is not thread-safe, so syslog.syslog() no longer releases the GIL to call it.
This commit is contained in:
parent
4414586172
commit
d4b9166385
|
@ -0,0 +1,4 @@
|
|||
On macOS, fix a crash in :func:`syslog.syslog` in multi-threaded applications.
|
||||
On macOS, the libc ``syslog()`` function is not thread-safe, so
|
||||
:func:`syslog.syslog` no longer releases the GIL to call it. Patch by Victor
|
||||
Stinner.
|
|
@ -207,9 +207,14 @@ syslog_syslog_impl(PyObject *module, int group_left_1, int priority,
|
|||
*/
|
||||
PyObject *ident = S_ident_o;
|
||||
Py_XINCREF(ident);
|
||||
#ifdef __APPLE__
|
||||
// gh-98178: On macOS, libc syslog() is not thread-safe
|
||||
syslog(priority, "%s", message);
|
||||
#else
|
||||
Py_BEGIN_ALLOW_THREADS;
|
||||
syslog(priority, "%s", message);
|
||||
Py_END_ALLOW_THREADS;
|
||||
#endif
|
||||
Py_XDECREF(ident);
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue