Comparison

net/server_epoll.lua @ 13336:f91761822420

net.server_epoll: Avoid call to update socket watch flags when nothing changed Should skip a syscall for each write when using epoll.
author Kim Alvefur <zash@zash.se>
date Tue, 21 Nov 2023 22:06:28 +0100
parent 12974:ba409c67353b
child 13422:3c80124452ed
comparison
equal deleted inserted replaced
13335:8b3bf0d2ffd4 13336:f91761822420
398 if fd < 0 then 398 if fd < 0 then
399 return nil, "invalid fd"; 399 return nil, "invalid fd";
400 end 400 end
401 if r == nil then r = self._wantread; end 401 if r == nil then r = self._wantread; end
402 if w == nil then w = self._wantwrite; end 402 if w == nil then w = self._wantwrite; end
403 if r == self._wantread and w == self._wantwrite then
404 return true
405 end
403 local ok, err, errno = poll:set(fd, r, w); 406 local ok, err, errno = poll:set(fd, r, w);
404 if not ok then 407 if not ok then
405 self:debug("Could not update poller state: %s(%d)", err, errno); 408 self:debug("Could not update poller state: %s(%d)", err, errno);
406 return ok, err; 409 return ok, err;
407 end 410 end