]> git.sesse.net Git - casparcg/commitdiff
[semaphore] Fixed performance problem with release of a large number of permits.
authorHelge Norberg <helge.norberg@svt.se>
Fri, 3 Mar 2017 16:27:29 +0000 (17:27 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Fri, 3 Mar 2017 16:27:29 +0000 (17:27 +0100)
common/semaphore.h

index 19ec73ad74398522f819314f838007ce6c951230..ad6de09f829577eccf3d16bb94484839e9988bc7 100644 (file)
 
 namespace caspar {
 
-template <class N, class Func>
-void repeat_n(N times_to_repeat_block, const Func& func)
-{
-       for (N i = 0; i < times_to_repeat_block; ++i)
-       {
-               func();
-       }
-}
-
 /**
  * Counting semaphore modelled after java.util.concurrent.Semaphore
  */
@@ -87,7 +78,7 @@ public:
                permits_ += permits;
 
                perform_callback_based_acquire();
-               repeat_n(permits, [this] { permits_available_.notify_one(); });
+               permits_available_.notify_all();
        }
 
        /**