util/smqueue.lua
changeset 12062 4860da718e87
parent 12059 daced16154fa
child 12979 d10957394a3c
--- a/util/smqueue.lua	Thu Dec 16 12:16:08 2021 +0100
+++ b/util/smqueue.lua	Thu Dec 16 12:16:45 2021 +0100
@@ -38,17 +38,12 @@
 
 function smqueue:consume() return self._queue:consume() end
 
-local compat_mt = {}
-
-function compat_mt:__index(i)
-	if i < self._queue._tail then return nil end
-	return self._queue._queue._items[(i + self._queue._tail) % self._queue._queue.size]
+function smqueue:table()
+	local t = {};
+	for i, v in self:resume() do t[i] = v; end
+	return t
 end
 
-function compat_mt:__len() return self._queue:count_unacked() end
-
-function smqueue:table() return setmetatable({ _queue = self }, compat_mt) end
-
 local function freeze(q) return { head = q._head; tail = q._tail } end
 
 local queue_mt = { __name = "smqueue"; __index = smqueue; __len = smqueue.count_unacked; __freeze = freeze }