annotate util/bit53.lua @ 13461:c673ff1075bd

mod_posix: Move everything to util.startup This allows greater control over the order of events. Notably, the internal ordering between daemonization, initialization of libunbound and setup of signal handling is sensitive. libunbound starts a separate thread for processing DNS requests. If this thread is started before signal handling has been set up, it will not inherit the signal handlers and instead behave as it would have before signal handlers were set up, i.e. cause the whole process to immediately exit. libunbound is usually initialized on the first DNS request, usually triggered by an outgoing s2s connection attempt. If daemonization happens before signals have been set up, signals may not be processed at all.
author Kim Alvefur <zash@zash.se>
date Sat, 23 Mar 2024 20:48:19 +0100
parents 9912baa541c0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10241
48f7cda4174d util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Only the operators needed by net.websocket.frames are provided at this point
48f7cda4174d util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 return {
12365
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
3 band = function (a, b, ...)
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
4 local ret = a & b;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
5 if ... then
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
6 for i = 1, select("#", ...) do
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
7 ret = ret & (select(i, ...));
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
8 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
9 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
10 return ret;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
11 end;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
12 bor = function (a, b, ...)
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
13 local ret = a | b;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
14 if ... then
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
15 for i = 1, select("#", ...) do
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
16 ret = ret | (select(i, ...));
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
17 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
18 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
19 return ret;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
20 end;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
21 bxor = function (a, b, ...)
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
22 local ret = a ~ b;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
23 if ... then
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
24 for i = 1, select("#", ...) do
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
25 ret = ret ~ (select(i, ...));
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
26 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
27 end
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
28 return ret;
af02b033bd7f util.bit53: Support for more than 2 arguments, for compat with bit32
Matthew Wild <mwild1@gmail.com>
parents: 12358
diff changeset
29 end;
13449
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12365
diff changeset
30 bnot = function (x)
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12365
diff changeset
31 return ~x;
9912baa541c0 util.bit53: Add bnot() method
Matthew Wild <mwild1@gmail.com>
parents: 12365
diff changeset
32 end;
12358
d77d8fba44ad util.bit53: Add left- and right shift operations
Kim Alvefur <zash@zash.se>
parents: 10241
diff changeset
33 rshift = function (a, n) return a >> n end;
d77d8fba44ad util.bit53: Add left- and right shift operations
Kim Alvefur <zash@zash.se>
parents: 10241
diff changeset
34 lshift = function (a, n) return a << n end;
10241
48f7cda4174d util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 };
48f7cda4174d util.bitops: Library to find appropriate bitwise library (closes #1395)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36