cameraserver: Add watchdog timer for disconnect.
Bug: 228641945
Test: Add artifical delay of 2 seconds in disconnectImpl, see tombstone
Change-Id: I11254e04d9d883e839dc1a7eee309e249613957e
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
(cherry picked from commit 48162a773f8a62f3f131a2740e6bed51a6be6e75)
diff --git a/services/camera/libcameraservice/CameraServiceWatchdog.h b/services/camera/libcameraservice/CameraServiceWatchdog.h
index f7c90a9..e55fa28 100644
--- a/services/camera/libcameraservice/CameraServiceWatchdog.h
+++ b/services/camera/libcameraservice/CameraServiceWatchdog.h
@@ -28,7 +28,7 @@
* To disable/enable:
* - adb shell cmd media.camera set-cameraservice-watchdog [0/1]
*/
-
+#pragma once
#include <chrono>
#include <thread>
#include <time.h>
@@ -67,7 +67,7 @@
/** Used to wrap monitored calls in start and stop functions using custom timer values */
template<typename T>
auto watchThread(T func, uint32_t tid, uint32_t cycles, uint32_t cycleLength) {
- auto res = NULL;
+ decltype(func()) res;
if (cycles != mMaxCycles || cycleLength != mCycleLengthMs) {
// Create another instance of the watchdog to prevent disruption
@@ -95,10 +95,9 @@
/** Used to wrap monitored calls in start and stop functions using class timer values */
template<typename T>
auto watchThread(T func, uint32_t tid) {
+ decltype(func()) res;
AutoMutex _l(mEnabledLock);
- auto res = NULL;
-
if (mEnabled) {
start(tid);
res = func();