<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~steering/inspircd++.git/src/socketengines/socketengine_epoll.cpp, branch v3.0.0a2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://cgit.space/~steering/inspircd++.git/atom/src/socketengines/socketengine_epoll.cpp?h=v3.0.0a2</id>
<link rel='self' href='https://cgit.space/~steering/inspircd++.git/atom/src/socketengines/socketengine_epoll.cpp?h=v3.0.0a2'/>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/'/>
<updated>2017-07-12T13:25:28Z</updated>
<entry>
<title>Merge pull request #1337 from SaberUK/master+merge</title>
<updated>2017-07-12T13:25:28Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2017-07-12T13:25:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=f471083cd0519d47c7c7a09029813ede41994f7b'/>
<id>urn:sha1:f471083cd0519d47c7c7a09029813ede41994f7b</id>
<content type='text'>
Merge v2.0.23 and v2.0.24 into master.</content>
</entry>
<entry>
<title>Improve and centralize socket engine event counters.</title>
<updated>2017-07-11T12:22:02Z</updated>
<author>
<name>Robin Burchell</name>
</author>
<published>2017-03-22T16:59:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=8e8b0719bf58e2d875c06698f86377189da87e16'/>
<id>urn:sha1:8e8b0719bf58e2d875c06698f86377189da87e16</id>
<content type='text'>
The write counters were close to useless because they were only
incremented on a write "event" which is only triggered when writing
would block.

Read handling was a little more useful in that all reads must happen
through the socket engine, so these were happening at the correct time,
but we can clean this up by doing it in the SE itself rather than each
platform port.

This means that both read and write events are now easily and usefully
defined as "a syscall of either read or write was attempted".

We also count empty read and write events as being an event, because
they still were an attempt to poll a socket in some way. This may help
to identify "bad" code which is repeatedly trying to read a socket for
some reason.

Lastly, we check for failed read/write calls, and log them as an error
event. A lot of the time, this is how sockets are determined as being
disconnected (ie. at read/write time).

While we're at it, split Update() in two to make the calls more
self-describing. This has no real impact since only one call is made at
a time anyway.
</content>
</entry>
<entry>
<title>Merge v2.0.23 and v2.0.24 into master.</title>
<updated>2017-07-09T21:45:00Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2017-07-09T21:36:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=c0aba5b728b0a921d95ec120aa638dab1520b42f'/>
<id>urn:sha1:c0aba5b728b0a921d95ec120aa638dab1520b42f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>socketengine_epoll: use getrlimit not ulimit</title>
<updated>2016-11-22T13:49:43Z</updated>
<author>
<name>Adam</name>
</author>
<published>2016-11-22T01:56:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=7ddef68f44ecb01f891e55a680078f7857fb866f'/>
<id>urn:sha1:7ddef68f44ecb01f891e55a680078f7857fb866f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>socketengine_epoll Remove unused #define EP_DELAY 5</title>
<updated>2016-08-11T08:56:47Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2016-08-11T08:56:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=f09ca8cf45a23680c16aab9068fb42f761098a93'/>
<id>urn:sha1:f09ca8cf45a23680c16aab9068fb42f761098a93</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Dispatch EventHandler events to dedicated virtual functions</title>
<updated>2015-04-12T14:20:13Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2015-04-12T14:20:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=612384b3d46d06eea6fd71ee6dc60471d0f9e3d1'/>
<id>urn:sha1:612384b3d46d06eea6fd71ee6dc60471d0f9e3d1</id>
<content type='text'>
Remove enum EventType
</content>
</entry>
<entry>
<title>Kill needless #includes in source files</title>
<updated>2014-06-14T13:30:14Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-14T13:30:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=82435b6fa8805baa65e04a582f3e4a2c84237f73'/>
<id>urn:sha1:82435b6fa8805baa65e04a582f3e4a2c84237f73</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change the number reported by SocketEngine::GetMaxFds() to be informal</title>
<updated>2014-06-07T11:47:26Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-07T11:47:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=5a6fd54f8fd217232f98804431928609580742bc'/>
<id>urn:sha1:5a6fd54f8fd217232f98804431928609580742bc</id>
<content type='text'>
Do not exit if we can't determine it
</content>
</entry>
<entry>
<title>socketengine_epoll Pass a dummy value to epoll_create() that does not depend on GetMaxFds()</title>
<updated>2014-06-07T11:33:50Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-07T11:33:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=76f1ba946972dbff089b27d64748afc1c0d95c6a'/>
<id>urn:sha1:76f1ba946972dbff089b27d64748afc1c0d95c6a</id>
<content type='text'>
From man epoll:
Since Linux 2.6.8, the size argument is unused, but must be greater than zero. (The kernel dynamically sizes the required data structures without needing this initial hint.)
</content>
</entry>
<entry>
<title>Relax fd bounds checking</title>
<updated>2014-06-07T11:30:14Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-06-07T11:30:14Z</published>
<link rel='alternate' type='text/html' href='https://cgit.space/~steering/inspircd++.git/commit/?id=30fec322809582f91be70cc1bb16c9678180db76'/>
<id>urn:sha1:30fec322809582f91be70cc1bb16c9678180db76</id>
<content type='text'>
We can cope with fds greater than SocketEngine::GetMaxFds() since 3752b3f59d5216d7dc6221a361efc76b9ad2273d
</content>
</entry>
</feed>
