diff options
author | Bernie Innocenti <codewiz@google.com> | 2018-05-23 19:02:52 +0900 |
---|---|---|
committer | Bernie Innocenti <codewiz@google.com> | 2018-08-28 05:52:56 +0900 |
commit | ca76859aca4b7c69139e05014c5211781cfa3d56 (patch) | |
tree | 2b9fa006e900f296029c3211ca6db20c4580e2bc /libutils/Unicode.cpp | |
parent | 763ccaa104e481614a25af05c4a639d4c4c089f3 (diff) |
SocketListener: use poll() instead of select()
FD_SET is limited to 1024 file descriptors in Linux, which causes
processes with too many open files or connections to crash:
FORTIFY: FD_ISSET: file descriptor 1024 >= FD_SETSIZE 128
The fix we used elsewhere is replacing select() with poll(), but in the
case of SocketListener we additionally need to replace the SocketClient
list with a map indexed by fd in order to avoid quadratic behavior on
each poll() wakeup.
Bug: 79838856
Test: device boots and appears to work normally, tests pass
Change-Id: I4a8f1804fa990d3db3a2c96b9acd60b2c7135950
Diffstat (limited to 'libutils/Unicode.cpp')
0 files changed, 0 insertions, 0 deletions