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",