base: add thread pool for CPU bound tasks
This is a very lightweight implementation building heavily on top of
ThreadTaskRunner and simply adding a queue of tasks which allows load
balancing across threads and a stack tracking the threads which are
immediately available for scheduling.
Change-Id: I8a7fa3fde327e16fd7aa9f6735cbe4db95b65959
diff --git a/Android.bp b/Android.bp
index e519dff..eadd256 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1714,6 +1714,11 @@
name: "perfetto_include_perfetto_ext_base_http_http",
}
+// GN: //include/perfetto/ext/base/threading:threading
+filegroup {
+ name: "perfetto_include_perfetto_ext_base_threading_threading",
+}
+
// GN: //include/perfetto/ext/base:version
filegroup {
name: "perfetto_include_perfetto_ext_base_version",
@@ -8122,6 +8127,22 @@
],
}
+// GN: //src/base/threading:threading
+filegroup {
+ name: "perfetto_src_base_threading_threading",
+ srcs: [
+ "src/base/threading/thread_pool.cc",
+ ],
+}
+
+// GN: //src/base/threading:unittests
+filegroup {
+ name: "perfetto_src_base_threading_unittests",
+ srcs: [
+ "src/base/threading/thread_pool_unittest.cc",
+ ],
+}
+
// GN: //src/base:unittests
filegroup {
name: "perfetto_src_base_unittests",
@@ -11284,6 +11305,7 @@
":perfetto_include_perfetto_base_base",
":perfetto_include_perfetto_ext_base_base",
":perfetto_include_perfetto_ext_base_http_http",
+ ":perfetto_include_perfetto_ext_base_threading_threading",
":perfetto_include_perfetto_ext_base_version",
":perfetto_include_perfetto_ext_ipc_ipc",
":perfetto_include_perfetto_ext_trace_processor_demangle",
@@ -11411,6 +11433,8 @@
":perfetto_src_base_http_http",
":perfetto_src_base_http_unittests",
":perfetto_src_base_test_support",
+ ":perfetto_src_base_threading_threading",
+ ":perfetto_src_base_threading_unittests",
":perfetto_src_base_unittests",
":perfetto_src_base_unix_socket",
":perfetto_src_base_version",