Software /
code /
prosody
File
net/resolvers/manual.lua @ 10059:c8c3f2eba898 0.11
net.server_epoll: Backport timer optimization 6c2370f17027 from trunk (see #1388)
The previous timer handling did not scale well and led to high CPU usage
with many connections (each with at least an read timeout).
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 08 Jul 2019 01:17:34 +0200 |
parent | 8531:601681acea73 |
child | 9691:e11e076f0eb8 |
line wrap: on
line source
local methods = {}; local resolver_mt = { __index = methods }; -- Find the next target to connect to, and -- pass it to cb() function methods:next(cb) if #self.targets == 0 then cb(nil); return; end local next_target = table.remove(self.targets, 1); cb(unpack(next_target, 1, 4)); end local function new(targets, conn_type, extra) return setmetatable({ conn_type = conn_type; extra = extra; targets = targets or {}; }, resolver_mt); end return { new = new; };