From 41a5fc26eaeda0bb88aa7ba8e20606c411879381 Mon Sep 17 00:00:00 2001
From: Jerry Tworek <jerry@millionintegrals.com>
Date: Mon, 12 Aug 2019 15:29:02 -0700
Subject: [PATCH] Properly terminate glfw.

---
 mujoco_py/mjviewer.py | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/mujoco_py/mjviewer.py b/mujoco_py/mjviewer.py
index 66ac942..cf9ed6e 100644
--- a/mujoco_py/mjviewer.py
+++ b/mujoco_py/mjviewer.py
@@ -1,13 +1,15 @@
-from threading import Lock
+import copy
 import glfw
+import imageio
+import numpy as np
+import time
+import sys
+
 from mujoco_py.builder import cymj
 from mujoco_py.generated import const
-import time
-import copy
-from multiprocessing import Process, Queue
 from mujoco_py.utils import rec_copy, rec_assign
-import numpy as np
-import imageio
+from multiprocessing import Process, Queue
+from threading import Lock
 
 
 class MjViewerBasic(cymj.MjRenderContextWindow):
@@ -49,7 +51,8 @@ class MjViewerBasic(cymj.MjRenderContextWindow):
         if self.window is None:
             return
         elif glfw.window_should_close(self.window):
-            exit(0)
+            glfw.terminate()
+            sys.exit(0)
 
         with self._gui_lock:
             super().render()
@@ -60,7 +63,8 @@ class MjViewerBasic(cymj.MjRenderContextWindow):
         if action == glfw.RELEASE and key == glfw.KEY_ESCAPE:
             print("Pressed ESC")
             print("Quitting.")
-            exit(0)
+            glfw.terminate()
+            sys.exit(0)
 
     def _cursor_pos_callback(self, window, xpos, ypos):
         if not (self._button_left_pressed or self._button_right_pressed):
-- 
GitLab