net.server_epoll: Replace any previous pausefor timer
authorKim Alvefur <zash@zash.se>
Fri, 12 Aug 2016 01:11:59 +0200
changeset 7562 b1b27dedf4cf
parent 7561 3a2fe8e10eeb
child 7563 785fa1138293
net.server_epoll: Replace any previous pausefor timer
net/server_epoll.lua
--- a/net/server_epoll.lua	Fri Aug 12 00:25:19 2016 +0200
+++ b/net/server_epoll.lua	Fri Aug 12 01:11:59 2016 +0200
@@ -412,10 +412,15 @@
 end
 
 function interface:pausefor(t)
-	if self._wantread then
-		self:setflags(false);
-		addtimer(t, function () self:setflags(true); end);
+	if self._pausefor then
+		self._pausefor:close();
 	end
+	if t == false then return; end
+	self:setflags(false);
+	self._pausefor = addtimer(t, function ()
+		self._pausefor = nil;
+		self:setflags(true);
+	end);
 end
 
 function interface:onconnect()