annotate teal-src/prosody/util/smqueue.tl @ 14229:ce31fdde0ad1 default tip

net.unbound: Simplify conditional
author Kim Alvefur <zash@zash.se>
date Sat, 13 Jun 2026 11:35:18 +0200
parents 1e01b91cf94d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12979
fbbf4f0db8f0 teal: Move into prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12058
diff changeset
1 local queue = require "prosody.util.queue";
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local record lib
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 -- T would typically be util.stanza
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 record smqueue<T>
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 _queue : queue.queue<T>
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 _head : integer
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 _tail : integer
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
9 _next_checkpoint : integer
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
10 type checkpoint = { integer, function(any), any }
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
11 _checkpoints : { checkpoint }
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 enum ack_errors
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 "tail"
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 "head"
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 "pop"
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
18 push : function (smqueue<T>, T)
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
19 ack : function (smqueue<T>, integer) : { T }, ack_errors
12057
e880f5a13080 util.smqueue: Add missing method to Teal record spec
Kim Alvefur <zash@zash.se>
parents: 12055
diff changeset
20 resumable : function (smqueue<T>) : boolean
e880f5a13080 util.smqueue: Add missing method to Teal record spec
Kim Alvefur <zash@zash.se>
parents: 12055
diff changeset
21 resume : function (smqueue<T>) : queue.queue.iterator, any, integer
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
22 consume : function (smqueue<T>) : function() : T
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
23 _call_checkpoints : function(smqueue<T>, integer)
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 table : function (smqueue<T>) : { T }
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 new : function <T>(integer) : smqueue<T>
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 local type smqueue = lib.smqueue;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
32 function smqueue:push(v : T)
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 self._head = self._head + 1;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 -- Wraps instead of errors
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 assert(self._queue:push(v));
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
38 -- Call when receiver has acknowledged some stanzas
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
39 -- `h` (sent by the receiver) is the running count of
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
40 -- successfully received stanzas
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
41 function smqueue:ack(h : integer) : { T }, smqueue.ack_errors
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 if h < self._tail then
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
43 -- h is less than a previous h
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
44 return nil, "tail"
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 elseif h > self._head then
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
46 -- h is greater than the number of stanzas we sent
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
47 return nil, "head"
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 -- TODO optimize? cache table fields
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
50 local acked = {};
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 self._tail = h;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 local expect = self._head - self._tail;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 while expect < self._queue:count() do
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 local v = self._queue:pop();
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
55 if not v then return nil, "pop" end
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 table.insert(acked, v);
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 end
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
58
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
59 local c = self._next_checkpoint;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
60 if c and h >= c then
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
61 self:_call_checkpoints(h);
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
62 end
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
63 return acked
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
65
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
66 function smqueue:count_unacked() : integer
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
67 return self._head - self._tail
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
68 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
69
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
70 function smqueue:count_acked() : integer
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
71 return self._tail
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
72 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
73
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
74 function smqueue:resumable() : boolean
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
75 return self._queue:count() >= (self._head - self._tail)
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
76 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
77
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
78 function smqueue:resume() : queue.queue.iterator, any, integer
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
79 return self._queue:items()
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
80 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
81
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
82 function smqueue:consume() : (function() : T)
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
83 return self._queue:consume() as (function() : T)
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
84 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
85
12058
4860da718e87 util.smqueue: Simplify compat table, fix dependent modules (thanks Martin)
Kim Alvefur <zash@zash.se>
parents: 12057
diff changeset
86 -- Compatibility layer, plain ol' table
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
87 function smqueue:table() : { T }
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
88 local t : { T } = {};
12058
4860da718e87 util.smqueue: Simplify compat table, fix dependent modules (thanks Martin)
Kim Alvefur <zash@zash.se>
parents: 12057
diff changeset
89 for i, v in self:resume() do
4860da718e87 util.smqueue: Simplify compat table, fix dependent modules (thanks Martin)
Kim Alvefur <zash@zash.se>
parents: 12057
diff changeset
90 t[i] = v;
4860da718e87 util.smqueue: Simplify compat table, fix dependent modules (thanks Martin)
Kim Alvefur <zash@zash.se>
parents: 12057
diff changeset
91 end
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
92 return t
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
93 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
94
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
95 -- Add a 'checkpoint' which will call a function when all the stanzas
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
96 -- currently in the queue have been successfully delivered and acknowledged
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
97 function smqueue:add_checkpoint(cb : function (any), ud : any)
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
98 table.insert(self._checkpoints, { self._head, cb, ud });
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
99 if not self._next_checkpoint then
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
100 self._next_checkpoint = self._head;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
101 end
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
102 end
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
103
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
104 function smqueue:_call_checkpoints(h : integer)
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
105 local checkpoints = self._checkpoints;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
106
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
107 -- Pop the checkpoint info and update the next checkpoint info
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
108 local c = table.remove(checkpoints, 1);
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
109 self._next_checkpoint = checkpoints[1] and checkpoints[1][1] or nil;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
110
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
111 -- Call the callback
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
112 local cb, ud = c[2], c[3];
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
113 cb(ud);
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
114
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
115 -- In case we passed over multiple checkpoints, call them also
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
116 if h >= self._next_checkpoint then
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
117 return self:_call_checkpoints(h)
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
118 end
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
119 end
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
120
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 local function freeze(q : smqueue<any>) : { string:integer }
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 return { head = q._head, tail = q._tail }
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
125 local smqueue_mt = {
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
126 --
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
127 __name = "smqueue";
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
128 __index = smqueue;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129 __len = smqueue.count_unacked;
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
130 -- Return a simple object for serialization
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
131 -- This is forbidden by Teal. Thanks Teal!
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
132 __freeze = freeze;
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
133 }
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
134
13857
fc6495c887f6 util.smqueue: Clean up syntax errors and warnings from Teal 0.24
Kim Alvefur <zash@zash.se>
parents: 12979
diff changeset
135 function lib.new<T>(size : integer) : smqueue<T>
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
136 assert(size>0);
14017
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
137 return setmetatable({
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
138 _head = 0;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
139 _tail = 0;
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
140 _queue = queue.new(size, true);
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
141 _checkpoints = {};
1e01b91cf94d util.smqueue: Backport changes to Teal source
Kim Alvefur <zash@zash.se>
parents: 13878
diff changeset
142 }, smqueue_mt)
12055
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
143 end
daced16154fa util.smqueue: Abstract queue with acknowledgements and overflow
Kim Alvefur <zash@zash.se>
parents:
diff changeset
144
13878
9ec961173b1c teal: Remove trailing semicolons after return
Kim Alvefur <zash@zash.se>
parents: 13857
diff changeset
145 return lib