Add TaskRunner to manage the thread for Bs*.
Bug: 31819198 (partly fixes it)
Test: libhidl-test (repeated 1000 times)
Test: hidl_test
Change-Id: Ia68adbab9dd40c09dfd2861ae03f65028d4694c7
diff --git a/test/main.cpp b/test/main.cpp
index 648f0c7..fff69b0 100644
--- a/test/main.cpp
+++ b/test/main.cpp
@@ -19,6 +19,7 @@
#include <android-base/logging.h>
#include <gtest/gtest.h>
#include <hidl/HidlSupport.h>
+#include <hidl/TaskRunner.h>
#include <vector>
#define EXPECT_ARRAYEQ(__a1__, __a2__, __size__) EXPECT_TRUE(isArrayEqual(__a1__, __a2__, __size__))
@@ -90,6 +91,20 @@
EXPECT_ARRAYEQ(v2, v, 3);
}
+TEST_F(LibHidlTest, TaskRunnerTest) {
+ using android::hardware::TaskRunner;
+ TaskRunner tr;
+ bool flag = false;
+ tr.push([&] {
+ usleep(1000);
+ flag = true;
+ });
+ usleep(500);
+ EXPECT_FALSE(flag);
+ usleep(1000);
+ EXPECT_TRUE(flag);
+}
+
template <typename T>
void great(android::hardware::hidl_vec<T>) {}