Merge "Fix a severe cleanup bug where teardown of the GL driver could occur on the wrong thread."
diff --git a/libs/rs/rs.spec b/libs/rs/rs.spec
index b1551ba..97ecca0 100644
--- a/libs/rs/rs.spec
+++ b/libs/rs/rs.spec
@@ -47,6 +47,9 @@
 	param int32_t priority
 	}
 
+ContextDestroy {
+}
+
 AssignName {
 	param void *obj
 	param const char *name
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 35db332..2988950 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -1019,6 +1019,10 @@
     ObjectBase::dumpAll(rsc);
 }
 
+void rsi_ContextDestroy(Context *rsc) {
+    delete rsc;
+}
+
 }
 }
 
@@ -1038,11 +1042,6 @@
     return rsc;
 }
 
-void rsContextDestroy(RsContext vrsc) {
-    Context * rsc = static_cast<Context *>(vrsc);
-    delete rsc;
-}
-
 RsMessageToClientType rsContextPeekMessage(RsContext vrsc, size_t *receiveLen, uint32_t *subID, bool wait) {
     Context * rsc = static_cast<Context *>(vrsc);
     return rsc->peekMessageToClient(receiveLen, subID, wait);