Software /
code /
prosody
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 |