From 64ded02c99a662ec290b8b1d987473df6ee41876 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Sun, 20 Jan 2013 11:35:10 +0000 Subject: Relax Throttle::_reset_max conditions and associated unit tests Removes a condition in Throttle::_reset_max by which the waiting queue is only Signal()ed if the new maximum is lower than the current maximum. There is no evidence of a use case where such a restriction would be useful. In addition waking up a thread when the maximum increases gives it a chance to immediately continue the suspended process instead of waiting for the next put(). Create a new test file covering 100% of src/Throttle.{cc,h} lines of code. The following methods are tested: * Throttle::Throttle with and without a maximum * Throttle::~Throttle when each pending Cond is deleted * Throttle::take * Throttle::get when updating the maximum ( lower or higher ), when going to sleep waiting for the count to lower under the maximum, when going to sleep because another thread is already asleep waiting * Throttle::get_or_fail when there is no maximum, when requesting a count that is larger than the maximum, either when the current value is under the maximum or above the maximum. * Throttle::wait when used to reset the maximum and wake up another thread asleep waiting All asserts checking the arguments sanity are exercised ( negative argument for Throttle::take etc. ). Adds the LGPLv2+ licensing terms to COPYING along with the others. Adds a Contributors section to the AUTHORS file. Notes: Testing asserts outputs verbose error messages that should be silenced but it does not seem possible. Signed-off-by: Loic Dachary --- COPYING | 3 +++ 1 file changed, 3 insertions(+) (limited to 'COPYING') diff --git a/COPYING b/COPYING index 20ab537172d..888e30e679f 100644 --- a/COPYING +++ b/COPYING @@ -98,3 +98,6 @@ License: +Files: test/common/Throttle.cc +Copyright: Copyright (C) 2013 Cloudwatt +License: LGPL2 or later -- cgit v1.2.3