Android: One weird trick for avoiding graphics deadlocks

eglDestroyContext has been observed to deadlock with other GL threads
unless the GL program is detached beforehand.

TBR=sakal
NO_TRY=TRUE

Bug: b/120481228
Change-Id: Ie256e745828997b6fee0d62e681f5ef953aa0fe7
Reviewed-on: https://webrtc-review.googlesource.com/c/114164
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25999}
diff --git a/sdk/android/api/org/webrtc/EglRenderer.java b/sdk/android/api/org/webrtc/EglRenderer.java
index c56798b..c369527 100644
--- a/sdk/android/api/org/webrtc/EglRenderer.java
+++ b/sdk/android/api/org/webrtc/EglRenderer.java
@@ -274,6 +274,8 @@
       renderThreadHandler.removeCallbacks(logStatisticsRunnable);
       // Release EGL and GL resources on render thread.
       renderThreadHandler.postAtFrontOfQueue(() -> {
+        // Detach current shader program.
+        GLES20.glUseProgram(/* program= */ 0);
         if (drawer != null) {
           drawer.release();
           drawer = null;