changeset 6555:a9f425e69b33 default tip

Allow executing multiple '/queries/../answers/../retrieve' in parallel
author Alain Mazy <am@orthanc.team>
date Thu, 08 Jan 2026 17:50:46 +0100
parents 6cb454c42583
children
files NEWS OrthancFramework/Sources/Cache/SharedArchive.cpp
diffstat 2 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Fri Jan 02 12:49:21 2026 +0100
+++ b/NEWS	Thu Jan 08 17:50:46 2026 +0100
@@ -17,6 +17,8 @@
 
 * Fix "LimitFindResults" and "LimitFindInstances" configurations that were not
   applied to C-FIND (bug introduced in 1.12.5).
+* Allow executing multiple "/queries/../answers/../retrieve" in parallel
+  https://discourse.orthanc-server.org/t/synchronous-jobs-limited-to-one-at-a-time/6365
 * Upgraded dependencies for static builds:
   - boost 1.89.0
   - dcmtk 3.7.0
--- a/OrthancFramework/Sources/Cache/SharedArchive.cpp	Fri Jan 02 12:49:21 2026 +0100
+++ b/OrthancFramework/Sources/Cache/SharedArchive.cpp	Thu Jan 08 17:50:46 2026 +0100
@@ -45,9 +45,10 @@
 
 
   SharedArchive::Accessor::Accessor(SharedArchive& that,
-                                    const std::string& id) :
-    lock_(that.mutex_)
+                                    const std::string& id)
   {
+    boost::recursive_mutex::scoped_lock lock(that.mutex_);
+
     Archive::iterator it = that.archive_.find(id);
 
     if (it == that.archive_.end())