From 81f24aa9e43ac03831a89ef92361ea4e3217a44f Mon Sep 17 00:00:00 2001 From: Josh Klontz Date: Sun, 13 Sep 2015 15:23:34 -0400 Subject: [PATCH] threading fix --- openbr/core/resource.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/openbr/core/resource.h b/openbr/core/resource.h index ba22ae0..f8bede0 100644 --- a/openbr/core/resource.h +++ b/openbr/core/resource.h @@ -71,14 +71,13 @@ public: { totalResources->acquire(); - T* resource; - if (availableResources->isEmpty()) { - resource = resourceMaker->make(); - } else { - lock->lock(); + T *resource = NULL; + lock->lock(); + if (!availableResources->isEmpty()) resource = availableResources->takeFirst(); - lock->unlock(); - } + lock->unlock(); + if (!resource) + resource = resourceMaker->make(); return resource; } -- libgit2 0.21.4