dbms: Throttler: improvement [#METR-15052].

This commit is contained in:
Alexey Milovidov 2015-02-11 03:07:00 +03:00
parent e09225d230
commit 2920dba21d

View File

@ -7,7 +7,7 @@
/** Позволяет ограничить скорость чего либо (в штуках в секунду) с помощью sleep.
* Особенности работы:
* - считается только средняя скорость, от момента создания объекта;
* - считается только средняя скорость, от момента первого вызова функции add;
* если были периоды с низкой скоростью, то в течение промежутка времени после них, скорость будет выше;
*/
class Throttler
@ -23,10 +23,16 @@ public:
{
std::lock_guard<std::mutex> lock(mutex);
if (0 == count)
{
watch.start();
elapsed_ns = 0;
}
else
elapsed_ns = watch.elapsed();
count += amount;
new_count = count;
elapsed_ns = watch.elapsed();
}
/// Сколько должно было бы пройти времени, если бы скорость была равна max_speed.