Software /
code /
prosody
Diff
net/server_epoll.lua @ 7560:785fa1138293
net.server_epoll: Continue reading after a slight delay if there is buffered data after a read
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 12 Aug 2016 01:13:26 +0200 |
parent | 7559:b1b27dedf4cf |
child | 7563:71dc0d89a9b8 |
line wrap: on
line diff
--- a/net/server_epoll.lua Fri Aug 12 01:11:59 2016 +0200 +++ b/net/server_epoll.lua Fri Aug 12 01:13:26 2016 +0200 @@ -28,6 +28,7 @@ write_timeout = 7; tcp_backlog = 128; accept_retry_interval = 10; + read_retry_delay = 1e-06; }; local fds = createtable(10, 0); -- FD -> conn @@ -236,6 +237,9 @@ return; end self:setreadtimeout(); + if self.conn:dirty() then + self:pausefor(cfg.read_retry_delay); + end end function interface:onwriteable() @@ -420,6 +424,9 @@ self._pausefor = addtimer(t, function () self._pausefor = nil; self:setflags(true); + if self.conn:dirty() then + self:onreadable(); + end end); end