Commit 0be03b009 for imagemagick.org

commit 0be03b009e7158e24b61786d684d2e467a8dcb30
Author: Dirk Lemstra <dirk@lemstra.org>
Date:   Sun Feb 15 17:27:39 2026 +0100

    Only disable multi threading for the RSVG decoder.

diff --git a/coders/svg.c b/coders/svg.c
index 78ee70c6a..89ce2ea89 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -189,6 +189,11 @@ typedef struct _SVGInfo
 /*
   Global declarations.
 */
+#if defined(MAGICKCORE_RSVG_DELEGATE)
+static SemaphoreInfo
+  *rsvg_semaphore = (SemaphoreInfo *) NULL;
+#endif
+
 static SplayTreeInfo
   *svg_tree = (SplayTreeInfo *) NULL;

@@ -3324,7 +3329,11 @@ static Image *ReadSVGImage(const ImageInfo *image_info,ExceptionInfo *exception)
             }
         }
 #if defined(MAGICKCORE_RSVG_DELEGATE)
+      if (rsvg_semaphore == (SemaphoreInfo *) NULL)
+        ActivateSemaphoreInfo(&rsvg_semaphore);
+      LockSemaphoreInfo(rsvg_semaphore);
       image=RenderRSVGImage(image_info,image,exception);
+      UnlockSemaphoreInfo(rsvg_semaphore);
       return(image);
 #endif
     }
@@ -3385,7 +3394,6 @@ ModuleExport size_t RegisterSVGImage(void)
   entry=AcquireMagickInfo("SVG","SVG","Scalable Vector Graphics");
   entry->decoder=(DecodeImageHandler *) ReadSVGImage;
   entry->encoder=(EncodeImageHandler *) WriteSVGImage;
-  entry->flags^=CoderDecoderThreadSupportFlag;
   entry->mime_type=ConstantString("image/svg+xml");
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -3396,7 +3404,6 @@ ModuleExport size_t RegisterSVGImage(void)
   entry->decoder=(DecodeImageHandler *) ReadSVGImage;
 #endif
   entry->encoder=(EncodeImageHandler *) WriteSVGImage;
-  entry->flags^=CoderDecoderThreadSupportFlag;
   entry->mime_type=ConstantString("image/svg+xml");
   if (*version != '\0')
     entry->version=ConstantString(version);