util.startup: Fix exiting on pidfile trouble
prosody.shutdown() relies on prosody.main_thread, which has not been set
yet at this point.
Doing a clean shutdown might actually be harmful in case it tears down
things set up by the conflicting Prosody, such as the very pidfile we
were looking at.
Thanks again SigmaTel71 for noticing
local ibh = require"util.indexedbheap";
local function verify_heap_property(priorities)
for k in ipairs(priorities) do
local parent = priorities[k];
local childA = priorities[2*k];
local childB = priorities[2*k+1];
-- print("-", parent, childA, childB)
assert(childA == nil or childA > parent, "heap property violated");
assert(childB == nil or childB > parent, "heap property violated");
end
end
local h
setup(function ()
h = ibh.create();
end)
describe("util.indexedbheap", function ()
it("item can be moved from end to top", function ()
verify_heap_property(h);
h:insert("a", 1);
verify_heap_property(h);
h:insert("b", 2);
verify_heap_property(h);
h:insert("c", 3);
verify_heap_property(h);
local id = h:insert("*", 10);
verify_heap_property(h);
h:reprioritize(id, 0);
verify_heap_property(h);
assert.same({ 0, "*", id }, { h:pop() });
end)
end);