AudioFlinger: Disable (revert) LockWatch

    Revert "audioflinger: add watchdog on main mutex"
    This reverts commit 17a58b2560c38a8e31a38186f9ab6eb98a38e229.

    Revert "LockWatch: Update to Mutex::timeLock specs"
    This reverts commit 51a6319111df875710dab25a1a99b10d002c4869.

Bug: 30936184
Change-Id: I0f6df6c98c06e161038b1bf0aae5912619cb4066
diff --git a/services/audioflinger/Android.mk b/services/audioflinger/Android.mk
index 05dacac..8b831f0 100644
--- a/services/audioflinger/Android.mk
+++ b/services/audioflinger/Android.mk
@@ -3,8 +3,7 @@
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := \
-    ServiceUtilities.cpp \
-    LockWatch.cpp
+    ServiceUtilities.cpp
 
 # FIXME Move this library to frameworks/native
 LOCAL_MODULE := libserviceutility
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index c32eadd..79f4a66 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -246,9 +246,7 @@
     }
 
     mPatchPanel = new PatchPanel(this);
-    // FIXME: bug 30737845: trigger audioserver restart if main audioflinger lock
-    // is held continuously for more than 3 seconds
-    mLockWatch = new LockWatch(mLock, String8("AudioFlinger"));
+
     mMode = AUDIO_MODE_NORMAL;
 }
 
@@ -281,7 +279,6 @@
             }
         }
     }
-    mLockWatch->requestExitAndWait();
 }
 
 static const char * const audio_interfaces[] = {
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index e334d80..c56dcc1 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -58,7 +58,6 @@
 #include "SpdifStreamOut.h"
 #include "AudioHwDevice.h"
 #include "LinearMap.h"
-#include "LockWatch.h"
 
 #include <powermanager/IPowerManager.h>
 
@@ -631,7 +630,6 @@
     };
 
     mutable     Mutex                               mLock;
-                sp<LockWatch>                       mLockWatch;
                 // protects mClients and mNotificationClients.
                 // must be locked after mLock and ThreadBase::mLock if both must be locked
                 // avoids acquiring AudioFlinger::mLock from inside thread loop.
diff --git a/services/audioflinger/LockWatch.cpp b/services/audioflinger/LockWatch.cpp
deleted file mode 100644
index 3da7a3d..0000000
--- a/services/audioflinger/LockWatch.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "LockWatch"
-//#define LOG_NDEBUG 0
-
-#include <utils/Log.h>
-#include "LockWatch.h"
-
-namespace android {
-
-void LockWatch::onFirstRef()
-{
-    run("lock watch", ANDROID_PRIORITY_URGENT_AUDIO);
-}
-
-bool LockWatch::threadLoop()
-{
-    while (!exitPending()) {
-        // we neglect previous lock time effect on period
-        usleep(mPeriodMs * 1000);
-        if (mLock.timedLock(ms2ns(mTimeOutMs)) != NO_ERROR) {
-            // FIXME: Current implementation of timedLock uses CLOCK_REALTIME which
-            // increments even during CPU suspend.  Check twice to be sure.
-            if (mLock.timedLock(ms2ns(mTimeOutMs)) != NO_ERROR) {
-                LOG_ALWAYS_FATAL("LockWatch timeout for: %s", mTag.string());
-            }
-        }
-        mLock.unlock();
-    }
-    return false;
-}
-
-}   // namespace android
-
diff --git a/services/audioflinger/LockWatch.h b/services/audioflinger/LockWatch.h
deleted file mode 100644
index 2d30217..0000000
--- a/services/audioflinger/LockWatch.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef LOCK_WATCH_H
-#define LOCK_WATCH_H
-
-#include <utils/String8.h>
-#include <utils/Thread.h>
-
-namespace android {
-
-// periodically checks if a mutex can be acquired and kill process otherwise
-class LockWatch : public Thread {
-
-public:
-    static const uint32_t DEFAULT_PERIOD_MS = 10000; // 10 seconds default check period
-    static const uint32_t DEFAULT_TIMEOUT_MS = 3000; // 3 seconds default lock timeout
-
-    LockWatch(Mutex& lock, const String8& tag = String8(""),
-            uint32_t periodMs = DEFAULT_PERIOD_MS, uint32_t timeoutMs = DEFAULT_TIMEOUT_MS)
-        : Thread(false /*canCallJava*/),
-          mLock(lock), mTag(tag), mPeriodMs(periodMs), mTimeOutMs(timeoutMs) {}
-
-    virtual         ~LockWatch() { }
-
-    // RefBase
-    virtual void    onFirstRef();
-
-private:
-    // Thread
-    virtual bool    threadLoop();
-
-    Mutex&          mLock;          // monitored mutex
-    String8         mTag;           // tag
-    uint32_t        mPeriodMs;      // check period in milliseconds
-    uint32_t        mTimeOutMs;     // mutex lock timeout in milliseconds
-};
-
-}   // namespace android
-
-#endif  // LOCK_WATCH_H