diff options
author | Kim Alvefur <zash@zash.se> | 2019-05-04 04:23:35 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-05-04 04:23:35 +0200 |
commit | df1246244109fdbbeb805d8c03ce20bbe4dadc94 (patch) | |
tree | 1a455be511e7dea40e9f1b5e8c23b866be31eb17 /net/server_epoll.lua | |
parent | 2abb1bdc3c550e45f943cd37f1e834419bd63605 (diff) | |
download | prosody-df1246244109fdbbeb805d8c03ce20bbe4dadc94.tar.gz prosody-df1246244109fdbbeb805d8c03ce20bbe4dadc94.zip |
net.server_epoll: Restore wantread flag after pause (fixes #1354)
If a chunk of data has been received that is larger than the amount read
at a time, then the connection is paused for a short time after which it
tries to read some more. If, after that, there is still more data to
read, it should do the same thing. However, because the "want read" flag
is removed and was restored after the delayed reading, it would not
schedule another delayed read.
Diffstat (limited to 'net/server_epoll.lua')
-rw-r--r-- | net/server_epoll.lua | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/server_epoll.lua b/net/server_epoll.lua index c41266e1..c279c579 100644 --- a/net/server_epoll.lua +++ b/net/server_epoll.lua @@ -600,10 +600,10 @@ function interface:pausefor(t) self:set(false); self._pausefor = addtimer(t, function () self._pausefor = nil; + self:set(true); if self.conn and self.conn:dirty() then self:onreadable(); end - self:set(true); end); end |