diff options
author | nat-goodspeed <nat@lindenlab.com> | 2024-03-15 14:56:43 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-15 14:56:43 -0400 |
commit | c5dec705cf6bb3dce9381c9ec574335356051297 (patch) | |
tree | 0620f4bab572b1cd38ba8e8db03130b1e65ec1f7 /indra/newview/scripts/lua/Queue.lua | |
parent | ee8bc528bbf97ee8cc488651fb263b07b5c1c818 (diff) | |
parent | bac113e30d987d7884c58490e6ea39a1bbd87d05 (diff) |
Merge pull request #1004 from secondlife/lua-leap
Add leap.lua module to mediate LEAP request/response viewer interactions.
Diffstat (limited to 'indra/newview/scripts/lua/Queue.lua')
-rw-r--r-- | indra/newview/scripts/lua/Queue.lua | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/indra/newview/scripts/lua/Queue.lua b/indra/newview/scripts/lua/Queue.lua index e178ad9969..b0a5a87f87 100644 --- a/indra/newview/scripts/lua/Queue.lua +++ b/indra/newview/scripts/lua/Queue.lua @@ -1,40 +1,41 @@ --- from https://create.roblox.com/docs/luau/queues#implementing-queues +-- from https://create.roblox.com/docs/luau/queues#implementing-queues, +-- amended per https://www.lua.org/pil/16.1.html local Queue = {} -Queue.__index = Queue -function Queue.new() - local self = setmetatable({}, Queue) +function Queue:new() + local obj = setmetatable({}, self) + self.__index = self - self._first = 0 - self._last = -1 - self._queue = {} + obj._first = 0 + obj._last = -1 + obj._queue = {} - return self + return obj end -- Check if the queue is empty function Queue:IsEmpty() - return self._first > self._last + return self._first > self._last end -- Add a value to the queue function Queue:Enqueue(value) - local last = self._last + 1 - self._last = last - self._queue[last] = value + local last = self._last + 1 + self._last = last + self._queue[last] = value end -- Remove a value from the queue function Queue:Dequeue() - local first = self._first - if self:IsEmpty() then - return nil - end - local value = self._queue[first] - self._queue[first] = nil - self._first = first + 1 - return value + if self:IsEmpty() then + return nil + end + local first = self._first + local value = self._queue[first] + self._queue[first] = nil + self._first = first + 1 + return value end return Queue |