diff options
author | Bernie Innocenti <codewiz@google.com> | 2018-05-23 19:02:52 +0900 |
---|---|---|
committer | Bernie Innocenti <codewiz@google.com> | 2018-05-25 18:43:12 +0900 |
commit | 0ad41cf3f44e5403132f7f620d8199446cb815b4 (patch) | |
tree | c9c0c28f5444cd9d97bff3d0fc1a457ad1df712e /libutils/ProcessCallStack.cpp | |
parent | 39cab7cd2538b0f31b3672c71195c47ba3b00de9 (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
Change-Id: I19ca4be675e9638104c0e7acf4a4bc62085e8ecd
Diffstat (limited to 'libutils/ProcessCallStack.cpp')
0 files changed, 0 insertions, 0 deletions