From 2392df5be9a7355ae74508a7f331033f9d42f6df Mon Sep 17 00:00:00 2001 From: Oleg Jukovec Date: Wed, 14 Jun 2023 12:02:52 +0300 Subject: [PATCH] driver: fix yield in fifottl/utubettl After 1000 processed tuples an iteration fiber yields after each processed tuple. The problem was fixed by resetting a counter of processed tuples without yield. Closes #208 --- queue/abstract/driver/fifottl.lua | 1 + queue/abstract/driver/utubettl.lua | 1 + 2 files changed, 2 insertions(+) diff --git a/queue/abstract/driver/fifottl.lua b/queue/abstract/driver/fifottl.lua index e57d9ced..496a324c 100644 --- a/queue/abstract/driver/fifottl.lua +++ b/queue/abstract/driver/fifottl.lua @@ -144,6 +144,7 @@ local function fifottl_fiber_iteration(self, processed) if estimated > 0 or processed > 1000 then -- free refcounter estimated = estimated > 0 and estimated or 0 + processed = 0 self.cond:wait(estimated) end diff --git a/queue/abstract/driver/utubettl.lua b/queue/abstract/driver/utubettl.lua index c2522e88..e2c887dd 100644 --- a/queue/abstract/driver/utubettl.lua +++ b/queue/abstract/driver/utubettl.lua @@ -152,6 +152,7 @@ local function utubettl_fiber_iteration(self, processed) -- free refcounter estimated = processed > 1000 and 0 or estimated estimated = estimated > 0 and estimated or 0 + processed = 0 self.cond:wait(estimated) end