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();