[PATCH] winemac.drv: Always call NSOpenGLContext::update from the main thread.

Sven Baars sbaars at codeweavers.com
Wed Mar 11 10:41:24 CDT 2020


Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
This stops World of Tanks from hanging on Catalina. It is similar to
1261589c2cc68061d4bd9d41a387cd4979d7073c.

 dlls/winemac.drv/cocoa_opengl.m | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/winemac.drv/cocoa_opengl.m b/dlls/winemac.drv/cocoa_opengl.m
index e60b0b388b8..6001b01be01 100644
--- a/dlls/winemac.drv/cocoa_opengl.m
+++ b/dlls/winemac.drv/cocoa_opengl.m
@@ -360,7 +360,13 @@ void macdrv_update_opengl_context(macdrv_opengl_context c)
                 context.view = view;
             }
             else
-                [context update];
+            {
+                if ([NSThread isMainThread])
+                    [context update];
+                else OnMainThread(^{
+                    [context update];
+                });
+            }
             [context resetSurfaceIfBackingSizeChanged];
         }
     }
-- 
2.25.0




More information about the wine-devel mailing list