client api: Add StartBlocking/StopBlocking

Add convenience functions for synchronously starting and stopping a
tracing session.

Change-Id: Ic3b12c4746b9a3cf8c2d366c2e5d15bff7a13943
diff --git a/Android.bp b/Android.bp
index 9f55780..b5eeb8f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -70,7 +70,7 @@
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -85,6 +85,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -186,7 +187,7 @@
 cc_library_shared {
   name: "heapprofd_client",
   srcs: [
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -201,6 +202,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/profiling/memory/client.cc",
     "src/profiling/memory/malloc_hooks.cc",
@@ -254,7 +256,7 @@
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -269,6 +271,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -446,7 +449,7 @@
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -461,6 +464,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -599,7 +603,7 @@
     ":perfetto_src_ipc_wire_protocol_gen",
     ":perfetto_src_perfetto_cmd_protos_gen",
     "src/base/android_task_runner.cc",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -614,6 +618,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -777,7 +782,7 @@
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
     "src/base/android_task_runner.cc",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -795,6 +800,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -3134,7 +3140,7 @@
     ":perfetto_protos_perfetto_trace_trusted_lite_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -3149,6 +3155,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",
@@ -3376,7 +3383,7 @@
     "src/base/android_task_runner.cc",
     "src/base/circular_queue_unittest.cc",
     "src/base/copyable_ptr_unittest.cc",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/metatrace_unittest.cc",
@@ -3410,6 +3417,7 @@
     "src/base/unix_task_runner.cc",
     "src/base/utils_unittest.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/base/watchdog_unittest.cc",
     "src/base/weak_ptr_unittest.cc",
@@ -3673,7 +3681,7 @@
     ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -3687,6 +3695,7 @@
     "src/base/time.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/protozero/message.cc",
     "src/protozero/message_handle.cc",
@@ -3842,7 +3851,7 @@
     ":perfetto_protos_perfetto_trace_track_event_zero_gen",
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_protos_third_party_pprof_lite_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -3856,6 +3865,7 @@
     "src/base/time.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/protozero/message.cc",
     "src/protozero/message_handle.cc",
@@ -4054,7 +4064,7 @@
     ":perfetto_protos_perfetto_trace_zero_gen",
     ":perfetto_src_ipc_wire_protocol_gen",
     ":perfetto_src_perfetto_cmd_protos_gen",
-    "src/base/event.cc",
+    "src/base/event_fd.cc",
     "src/base/file_utils.cc",
     "src/base/metatrace.cc",
     "src/base/paged_memory.cc",
@@ -4069,6 +4079,7 @@
     "src/base/unix_socket.cc",
     "src/base/unix_task_runner.cc",
     "src/base/virtual_destructors.cc",
+    "src/base/waitable_event.cc",
     "src/base/watchdog_posix.cc",
     "src/ipc/buffered_frame_deserializer.cc",
     "src/ipc/client_impl.cc",