diff options
author | ubq323 <ubq323@ubq323.website> | 2025-02-27 23:23:57 +0000 |
---|---|---|
committer | ubq323 <ubq323@ubq323.website> | 2025-02-27 23:23:57 +0000 |
commit | 5dea96ad915692e9abbc0620930756c51c256179 (patch) | |
tree | 881d7680a521474f262bac262f382e778c1fc191 /util/queue.lua | |
parent | ec4053dea479c3c85d57c447e262a90addcce5c3 (diff) |
restructure, refactor, a bit
Diffstat (limited to 'util/queue.lua')
-rw-r--r-- | util/queue.lua | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/util/queue.lua b/util/queue.lua deleted file mode 100644 index 8c9c373..0000000 --- a/util/queue.lua +++ /dev/null @@ -1,39 +0,0 @@ -local cqueues = require'cqueues' -local condition = require'cqueues.condition' -local cqaux = require'cqueues.auxlib' - -local Queue = {} - -function Queue.make() - return setmetatable({ - items = {}, - cv = condition.new(), - }, {__index=Queue}) -end - -function Queue.enqueue(self, ...) - local item = table.pack(...) - table.insert(self.items, item) - if #self.items > 128 then - print('warning: queue is quite big') - end - self.cv:signal() -end - -function Queue.iter(self) - return cqaux.wrap(function() - while true do - while #self.items > 0 do - local items = self.items - self.items = {} -- the old switcheroo - for _, item in ipairs(items) do - coroutine.yield(table.unpack(item, 1, item.n)) - end - end - self.cv:wait() - end - end) -end - - -return Queue |