<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-hg/</link>
    <language>en-us</language>

    <title>prosody-hg: util-src/poll.c history</title>
    <description>util-src/poll.c revision history</description>
    <item>
    <title>util.poll: Reject file descriptors outside of FD_SETSIZE in all methods</title>
    <link>http://hg.omfa.de/prosody-hg/log/75d09be04f13/util-src/poll.c</link>
    <description><![CDATA[util.poll: Reject file descriptors outside of FD_SETSIZE in all methods<br/>
<br/>
To prevent accesses outside the bounds of the FD sets.<br/>
Previously only checked on the write, but maybe this could potentially<br/>
cause weird behavior as well?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 31 May 2026 11:51:22 +0200</pubDate>
</item>
<item>
    <title>util.poll: Reject fd == FD_SETSIZE</title>
    <link>http://hg.omfa.de/prosody-hg/log/a331cde41c85/util-src/poll.c</link>
    <description><![CDATA[util.poll: Reject fd == FD_SETSIZE<br/>
<br/>
FD_SETSIZE is the maximum total number of FDs supports (well, the highest<br/>
valid fd number). 0 is a valid fd number, so it supports up to 1023 if<br/>
FD_SETSIZE is 1024.<br/>
<br/>
This is just a fencepost issue, fds &gt; FD_SETSIZE were already correctly<br/>
rejected.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 25 May 2026 16:06:19 +0100</pubDate>
</item>
<item>
    <title>util.poll: Rename things to clarify poll(2) limits</title>
    <link>http://hg.omfa.de/prosody-hg/log/5fe8a8e16b27/util-src/poll.c</link>
    <description><![CDATA[util.poll: Rename things to clarify poll(2) limits<br/>
<br/>
With epoll(7), MAX_EVENTS controls how many events can be retrieved in one<br/>
epoll_wait call, while with poll(2) this MAX_WATCHED controls how many<br/>
sockets or other FDs can be watched at once.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 27 Nov 2023 08:19:52 +0100</pubDate>
</item>
<item>
    <title>util.poll: Quadruple number of events retrieved at once from epoll</title>
    <link>http://hg.omfa.de/prosody-hg/log/8b3bf0d2ffd4/util-src/poll.c</link>
    <description><![CDATA[util.poll: Quadruple number of events retrieved at once from epoll<br/>
<br/>
Better performance under load maybe?<br/>
<br/>
See b890ceb1c24f for previous increase]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Nov 2023 20:45:56 +0100</pubDate>
</item>
<item>
    <title>util.poll: Return early if given zero timeout and no pending events</title>
    <link>http://hg.omfa.de/prosody-hg/log/649876680bf0/util-src/poll.c</link>
    <description><![CDATA[util.poll: Return early if given zero timeout and no pending events<br/>
<br/>
Should have been part of f33887f925e1 to ensure it won't skip processing<br/>
timers at all when very busy.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Nov 2023 17:43:46 +0100</pubDate>
</item>
<item>
    <title>util: Add compat for prosody module name change to C sources</title>
    <link>http://hg.omfa.de/prosody-hg/log/a187600ec7d6/util-src/poll.c</link>
    <description><![CDATA[util: Add compat for prosody module name change to C sources]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 18:03:07 +0100</pubDate>
</item>
<item>
    <title>util.poll: Include unistd.h only for epoll</title>
    <link>http://hg.omfa.de/prosody-hg/log/f5a75aaa8a25/util-src/poll.c</link>
    <description><![CDATA[util.poll: Include unistd.h only for epoll<br/>
<br/>
This defines close(), which is only used with epoll, hence we don't need<br/>
to include it when building in poll or select mode.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 10 Feb 2023 00:37:05 +0100</pubDate>
</item>
<item>
    <title>util-src: Remove Lua 5.1 compat macros</title>
    <link>http://hg.omfa.de/prosody-hg/log/1f6f05a98fcd/util-src/poll.c</link>
    <description><![CDATA[util-src: Remove Lua 5.1 compat macros<br/>
<br/>
Part of #1600]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 01 Jul 2022 21:21:21 +0200</pubDate>
</item>
<item>
    <title>util.poll: Add support for the poll() API</title>
    <link>http://hg.omfa.de/prosody-hg/log/6bb2f660f689/util-src/poll.c</link>
    <description><![CDATA[util.poll: Add support for the poll() API<br/>
<br/>
Might be better than select(), more portable than epoll.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 23 Feb 2022 20:31:03 +0100</pubDate>
</item>
<item>
    <title>util.poll: Expose API (epoll or select) used</title>
    <link>http://hg.omfa.de/prosody-hg/log/cf2086a1bd45/util-src/poll.c</link>
    <description><![CDATA[util.poll: Expose API (epoll or select) used<br/>
<br/>
Could he handy to know for debugging or decisions]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 27 Feb 2022 14:36:43 +0100</pubDate>
</item>
<item>
    <title>util.poll: Restructure to make adding additional system APIs easier</title>
    <link>http://hg.omfa.de/prosody-hg/log/898554323338/util-src/poll.c</link>
    <description><![CDATA[util.poll: Restructure to make adding additional system APIs easier]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 23 Feb 2022 20:30:22 +0100</pubDate>
</item>
<item>
    <title>util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions</title>
    <link>http://hg.omfa.de/prosody-hg/log/6eb5d2bb11af/util-src/poll.c</link>
    <description><![CDATA[util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions<br/>
<br/>
Actually just an alias of pushnil, but it does make it more obvious<br/>
where the failure conditions are, which is good for readability.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 07 Jun 2020 02:25:56 +0200</pubDate>
</item>
<item>
    <title>util.poll: Add missing return statements in fallback mode</title>
    <link>http://hg.omfa.de/prosody-hg/log/46a7792fdac5/util-src/poll.c</link>
    <description><![CDATA[util.poll: Add missing return statements in fallback mode<br/>
<br/>
These allowed modifying or deleting select() state for unregistered FDs.<br/>
During normal usage this should never happen. Modifying one that isn't<br/>
set might cause weirdness but deleting an already deleted FD isn't a<br/>
problem.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 28 Jul 2019 16:17:23 +0200</pubDate>
</item>
<item>
    <title>util.poll: Minimize scope of methods</title>
    <link>http://hg.omfa.de/prosody-hg/log/36280801ddf1/util-src/poll.c</link>
    <description><![CDATA[util.poll: Minimize scope of methods<br/>
<br/>
File scope is enough]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 13 Apr 2019 23:55:34 +0200</pubDate>
</item>
<item>
    <title>net.server_epoll: Special handling of signal interrupts</title>
    <link>http://hg.omfa.de/prosody-hg/log/2055b497b515/util-src/poll.c</link>
    <description><![CDATA[net.server_epoll: Special handling of signal interrupts]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 12 Oct 2018 03:22:09 +0200</pubDate>
</item>
<item>
    <title>net.server_epoll: Ignore ENOENT when deregitering socket</title>
    <link>http://hg.omfa.de/prosody-hg/log/33d21f020b66/util-src/poll.c</link>
    <description><![CDATA[net.server_epoll: Ignore ENOENT when deregitering socket<br/>
<br/>
It should not really happen]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 12 Oct 2018 03:21:11 +0200</pubDate>
</item>
<item>
    <title>net.server_epoll: Graceful handling of registering already added socket</title>
    <link>http://hg.omfa.de/prosody-hg/log/ae6636052be9/util-src/poll.c</link>
    <description><![CDATA[net.server_epoll: Graceful handling of registering already added socket]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 12 Oct 2018 03:20:09 +0200</pubDate>
</item>
<item>
    <title>util.poll: Fix inverted logic</title>
    <link>http://hg.omfa.de/prosody-hg/log/bd178ed0459b/util-src/poll.c</link>
    <description><![CDATA[util.poll: Fix inverted logic]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 11 Oct 2018 18:56:11 +0200</pubDate>
</item>
<item>
    <title>util.poll: Handle failed epoll FD creation</title>
    <link>http://hg.omfa.de/prosody-hg/log/f3935aa4cc7e/util-src/poll.c</link>
    <description><![CDATA[util.poll: Handle failed epoll FD creation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 11 Oct 2018 18:52:12 +0200</pubDate>
</item>
<item>
    <title>util.poll: Early return from __gc in case of no valid epoll FD</title>
    <link>http://hg.omfa.de/prosody-hg/log/9b26a50cdfe3/util-src/poll.c</link>
    <description><![CDATA[util.poll: Early return from __gc in case of no valid epoll FD<br/>
<br/>
This could happen if the epoll FD has already been closed or<br/>
the epoll_create call failed]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 11 Oct 2018 18:50:04 +0200</pubDate>
</item>
<item>
    <title>util.poll: Increase max epoll events per call</title>
    <link>http://hg.omfa.de/prosody-hg/log/b890ceb1c24f/util-src/poll.c</link>
    <description><![CDATA[util.poll: Increase max epoll events per call<br/>
<br/>
This makes the struct roughly the same size in both epoll and select<br/>
mode (64bit).<br/>
<br/>
There doesn’t seem to be much guidance on an appropriate size, it does<br/>
not seem to matter too much since if there are more events they will<br/>
simply show up in the next epoll_wait call. The number of exactly<br/>
concurrent events should be fairly low most of the time anyways.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 08 Oct 2018 15:33:15 +0200</pubDate>
</item>
<item>
    <title>util.poll: Zero FD sets watched for errors on creation</title>
    <link>http://hg.omfa.de/prosody-hg/log/352e8b75c1ae/util-src/poll.c</link>
    <description><![CDATA[util.poll: Zero FD sets watched for errors on creation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 07 Oct 2018 20:58:51 +0200</pubDate>
</item>
<item>
    <title>net.poll: Guard against negative or too large FDs</title>
    <link>http://hg.omfa.de/prosody-hg/log/6397e965a22d/util-src/poll.c</link>
    <description><![CDATA[net.poll: Guard against negative or too large FDs]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 07 Oct 2018 18:44:46 +0200</pubDate>
</item>
<item>
    <title>util.poll: Fix missing return for adding duplicate FD</title>
    <link>http://hg.omfa.de/prosody-hg/log/6b4d28eb19cf/util-src/poll.c</link>
    <description><![CDATA[util.poll: Fix missing return for adding duplicate FD]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 07 Oct 2018 18:41:44 +0200</pubDate>
</item>
<item>
    <title>util.poll: Tweak metatable name field</title>
    <link>http://hg.omfa.de/prosody-hg/log/1ddecde4ce98/util-src/poll.c</link>
    <description><![CDATA[util.poll: Tweak metatable name field]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Oct 2018 18:32:57 +0200</pubDate>
</item>
<item>
    <title>util.poll: Fix monitoring of socket exceptions in select mode</title>
    <link>http://hg.omfa.de/prosody-hg/log/b202aa1e2d7b/util-src/poll.c</link>
    <description><![CDATA[util.poll: Fix monitoring of socket exceptions in select mode<br/>
<br/>
Since state-&gt;err is a set of all watched FDs, this mistake caused all<br/>
sockets to appear to have errors.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Oct 2018 17:19:50 +0200</pubDate>
</item>
<item>
    <title>util.poll: Lua 5.1 compat</title>
    <link>http://hg.omfa.de/prosody-hg/log/3429006518bf/util-src/poll.c</link>
    <description><![CDATA[util.poll: Lua 5.1 compat]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 15 Sep 2018 01:17:53 +0200</pubDate>
</item>
<item>
    <title>util.poll: Remove 'inline' from function declaration</title>
    <link>http://hg.omfa.de/prosody-hg/log/d8496858c809/util-src/poll.c</link>
    <description><![CDATA[util.poll: Remove 'inline' from function declaration<br/>
<br/>
Why does this fix building?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 15 Sep 2018 01:05:59 +0200</pubDate>
</item>
<item>
    <title>util.poll: Import poll library with epoll and select support</title>
    <link>http://hg.omfa.de/prosody-hg/log/b95ef295c66d/util-src/poll.c</link>
    <description><![CDATA[util.poll: Import poll library with epoll and select support]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 16 May 2018 23:56:34 +0200</pubDate>
</item>

  </channel>
</rss>
