File

util/bit53.lua @ 13591:382d1a92006f

mod_admin_shell: Don't pause async thread while waiting for promise result This allows us to continue sending/receiving on the session, for example if the promise will be resolved by other data that the client is going to send. Specifically, this allows the repl-request-input to work without a deadlock. It does open the door to interleaved commands/results, which may not be a good thing overall, but can be restricted separately if necessary (e.g. a flag on the session).
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Jan 2025 18:15:50 +0000
parent 13449:9912baa541c0
line wrap: on
line source

-- Only the operators needed by net.websocket.frames are provided at this point
return {
	band   = function (a, b, ...)
		local ret = a & b;
		if ... then
			for i = 1, select("#", ...) do
				ret = ret & (select(i, ...));
			end
		end
		return ret;
	end;
	bor    = function (a, b, ...)
		local ret = a | b;
		if ... then
			for i = 1, select("#", ...) do
				ret = ret | (select(i, ...));
			end
		end
		return ret;
	end;
	bxor   = function (a, b, ...)
		local ret = a ~ b;
		if ... then
			for i = 1, select("#", ...) do
				ret = ret ~ (select(i, ...));
			end
		end
		return ret;
	end;
	bnot   = function (x)
		return ~x;
	end;
	rshift = function (a, n) return a >> n end;
	lshift = function (a, n) return a << n end;
};