Fix tls crash on startup if more than one RS contexts are created in one process.
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index a1e9e45..195ea6f 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -304,10 +304,15 @@
     int status;
     pthread_attr_t threadAttr;
 
-    status = pthread_key_create(&gThreadTLSKey, NULL);
-    if (status) {
-        LOGE("Failed to init thread tls key.");
-        return;
+    if (!gThreadTLSKey) {
+        status = pthread_key_create(&gThreadTLSKey, NULL);
+        if (status) {
+            LOGE("Failed to init thread tls key.");
+            return;
+        }
+    } else {
+        // HACK: workaround gl hang on start
+        exit(-1);
     }
 
     status = pthread_attr_init(&threadAttr);
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 20088da..9da7766 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -62,6 +62,7 @@
 {
     Context::ScriptTLSStruct * tls =
     (Context::ScriptTLSStruct *)pthread_getspecific(Context::gThreadTLSKey);
+    rsAssert(tls);
 
     if (mEnviroment.mFragmentStore.get()) {
         rsc->setFragmentStore(mEnviroment.mFragmentStore.get());