]> git.sesse.net Git - casparcg/blobdiff - common/semaphore.h
[semaphore] Fixed performance problem with release of a large number of permits.
[casparcg] / 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();
        }
 
        /**