From 995c09ba67f47e17b883ac0dc4f5a849f100f600 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Tue, 21 Jan 2025 11:29:05 +0100 Subject: [PATCH] Win32: Avoid library finalization on process termination Library finalization should be done only for explicit library unloads (dlclose / FreeLibrary), not for process termination. --- src/win32/cairo-win32-system.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/win32/cairo-win32-system.c b/src/win32/cairo-win32-system.c index ae1489ac6..6ea14ebed 100644 --- a/src/win32/cairo-win32-system.c +++ b/src/win32/cairo-win32-system.c @@ -90,7 +90,9 @@ cairo_win32_tls_callback (PVOID hinstance, DWORD dwReason, PVOID lpvReserved) break; case DLL_PROCESS_DETACH: - CAIRO_MUTEX_FINALIZE (); + if (lpvReserved == NULL) { + CAIRO_MUTEX_FINALIZE (); + } break; } }