Added in wait for attach context flag.

Added in a small flag which is  passed to the context from the Java/C++ API
which causes the context to delay execution until a debugger is a attached.
This gives time to the developer to attach a debugger to the process before
the kernel is executed.

Change-Id: I5bb8e75100436920f9e1a0f414f3b0bcf0d2b439
Signed-off-by: Stephen McGroarty <[email protected]>
diff --git a/rsContext.cpp b/rsContext.cpp
index fba06cd..c21542f 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -45,6 +45,8 @@
 #include "rsCompatibilityLib.h"
 #endif
 
+int gDebuggerPresent = 0;
+
 #ifdef RS_SERVER
 // Android exposes gettid(), standard Linux does not
 static pid_t gettid() {
@@ -478,6 +480,11 @@
     }
 }
 
+void Context::waitForDebugger() {
+    while (!gDebuggerPresent) {
+        sleep(0);
+    }
+}
 
 Context * Context::createContext(Device *dev, const RsSurfaceConfig *sc,
                                  RsContextType ct, uint32_t flags) {
@@ -496,6 +503,11 @@
         delete rsc;
         return nullptr;
     }
+
+    if (flags & RS_CONTEXT_WAIT_FOR_ATTACH) {
+        rsc->waitForDebugger();
+    }
+
     return rsc;
 }