From 51a6e977cddc9e263ca2c634484af8bd7ae865ba Mon Sep 17 00:00:00 2001 From: Helge Norberg Date: Fri, 3 Mar 2017 17:27:29 +0100 Subject: [PATCH] [semaphore] Fixed performance problem with release of a large number of permits. --- common/semaphore.h | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/common/semaphore.h b/common/semaphore.h index 19ec73ad7..ad6de09f8 100644 --- a/common/semaphore.h +++ b/common/semaphore.h @@ -33,15 +33,6 @@ namespace caspar { -template -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(); } /** -- 2.39.2