rework screen on/off code

Change-Id: I13f71e850592a588bbd4805b1830c503bd4decb4
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp
index 69f1aca..d3a8bde 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp
@@ -54,15 +54,12 @@
         sp<SurfaceFlinger> flinger = mFlinger.promote();
         ALOGD("About to give-up screen, flinger = %p", flinger.get());
         if (flinger != 0) {
-            mBarrier.close();
-            flinger->screenReleased(0);
-            mBarrier.wait();
+            flinger->screenReleased();
         }
         if (waitForFbWake() == NO_ERROR) {
-            sp<SurfaceFlinger> flinger = mFlinger.promote();
             ALOGD("Screen about to return, flinger = %p", flinger.get());
             if (flinger != 0) {
-                flinger->screenAcquired(0);
+                flinger->screenAcquired();
             }
             return true;
         }
@@ -98,17 +95,12 @@
     return err < 0 ? -errno : int(NO_ERROR);
 }
 
-status_t DisplayHardwareBase::DisplayEventThread::releaseScreen() const {
-    mBarrier.open();
-    return NO_ERROR;
-}
-
 // ----------------------------------------------------------------------------
 
 DisplayHardwareBase::DisplayHardwareBase(const sp<SurfaceFlinger>& flinger,
         uint32_t displayIndex) 
-    : mScreenAcquired(true)
 {
+    mScreenAcquired = true;
     mDisplayEventThread = new DisplayEventThread(flinger);
 }
 
@@ -130,10 +122,7 @@
 }
 
 void DisplayHardwareBase::releaseScreen() const {
-    status_t err = mDisplayEventThread->releaseScreen();
-    if (err >= 0) {
-        mScreenAcquired = false;
-    }
+    mScreenAcquired = false;
 }
 
 void DisplayHardwareBase::acquireScreen() const {
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
index fba211b..6857481 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h
@@ -19,8 +19,8 @@
 
 #include <stdint.h>
 #include <utils/RefBase.h>
+#include <utils/StrongPointer.h>
 #include <utils/threads.h>
-#include "Barrier.h"
 
 namespace android {
 
@@ -48,14 +48,12 @@
 private:
     class DisplayEventThread : public Thread {
         wp<SurfaceFlinger> mFlinger;
-        mutable Barrier mBarrier;
         status_t waitForFbSleep();
         status_t waitForFbWake();
     public:
         DisplayEventThread(const sp<SurfaceFlinger>& flinger);
         virtual ~DisplayEventThread();
         virtual bool threadLoop();
-        status_t releaseScreen() const;
         status_t initCheck() const;
     };