Commit graph

13 commits

Author SHA1 Message Date
Bernie Innocenti
11b33690e4 Delete sysutils/List.h
Convert the last user to a regular std::vector, and then put List.h out
of its misery.

Turns out there's another copy of this ancient header:
system/core/libutils/include/utils/List.h. This one is included in
various places, but most don't actually use it. There seems to
be a case for a tool to detect unused headers...

Test: m
Change-Id: Ie457bf5e06f6082537f5de2e1fefe7f05a1f0792
2018-09-05 21:07:23 +09:00
Chih-hung Hsieh
33f91de2c6 Merge "Use multiple patterns and emails in per-file syntax." 2018-08-28 17:03:44 +00:00
Bernie Innocenti
ca76859aca 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
2018-08-28 05:52:56 +09:00
Bernie Innocenti
763ccaa104 libsysutils: add some rudimentary tests
Test: atest libsysutils_tests
Change-Id: I3aa44c5af821c3161cf598b86216480d2424d336
2018-08-28 05:52:48 +09:00
Chih-Hung Hsieh
3487e22b66 Use multiple patterns and emails in per-file syntax.
Test: build/make/tools/checkowners.py -c -v OWNERS
Change-Id: I60460b93903afbb01a87d7f11ac526fbde9f392c
2018-08-27 10:19:32 -07:00
Treehugger Robot
5911204326 Merge "libsysutils: Delete dead code: FrameworkClient" 2018-06-07 16:44:24 +00:00
Bernie Innocenti
246d35d02b libsysutils: Delete dead code: FrameworkClient
Test: mm
Change-Id: I372f2aa8d7f7e3f5ce1cd9399292bef9e4900de7
2018-06-07 20:20:01 +09:00
Lorenzo Colitti
2a7c887198 Merge "Move per-file OWNERS directives to their directories." 2018-06-06 07:48:55 +00:00
Lorenzo Colitti
58f2daaeb4 Move per-file OWNERS directives to their directories.
As documented at go/gerrit-owners, per-file directives cannot
contain directory paths. Therefore the current per-file
directives in system/core/OWNERS have no effect.

Test: build/make/tools/checkowners.py system/core/{,libsysutils/src/,include/sysutils/}OWNERS
Change-Id: Ia88b2be42dd50346578bb51dd17fb6136a4591f1
2018-06-06 11:49:40 +09:00
Kevin Rocard
775ad25510 Revert "SocketListener: use poll() instead of select()"
This reverts commit 0ad41cf3f4.

Reason for revert: Breaks many tests, see b/109745952#comment18 b/109745952#comment20 and b/79838856#comment19 amongst others

Change-Id: I92db38d47cd1dcd7841091e37e3b65dce9456cdf
2018-06-06 02:17:24 +00:00
Bernie Innocenti
0ad41cf3f4 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
2018-05-25 18:43:12 +09:00
Lorenzo Colitti
e439ffc762 Stop depending on libnl.
We only use it for trivial functions. Replace them and drop the
dependency.

Bug: 67345547
Test: bullhead builds, boots
Test: CtsOsTestCases android.os.cts.StrictModeTest passes
Change-Id: I36254962284babdd1a55a32a76dd0dc92d85420c
2017-10-05 14:56:44 +09:00
Vijay Venkatraman
75acc7bf81 Exporting C++ headers from system/core
Moved headers from include/libutils and include/libsysutils to
libutils/include and libsysutils/include respectively, so they can be
exported via these libs. They needed to be moved since Soong does
not allow export from external folder.

Added symlink from old locations. They are needed since Soong
includes system/core/include by default. Once all modules are
cleaned up to explicitly add the required libs, the symlinks will be
removed.

Moved headers of libutils to libutils_headers. They should be used
by modules for header-only inlines. Added libutils_headers as
dependency of libutils.

Split of C++ headers into those that have no dependency and those that
have dependency on libutils.so will be handled in a later CL.

Test: Add above libs to shared lib of local module
Change-Id: I122db72056b26b1f39bad1d9a0c2a1c5efda3550
2017-01-24 22:51:36 +00:00