]> git.sesse.net Git - casparcg/commitdiff
Fixed serious deadlock in ogl_device.cpp
authorHelge Norberg <helge.norberg@svt.se>
Thu, 4 Dec 2014 16:42:52 +0000 (17:42 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Thu, 4 Dec 2014 16:42:52 +0000 (17:42 +0100)
core/mixer/gpu/ogl_device.cpp

index 0ea77fbb4641b625975a0eeca14650045352f734..f7556e26cf09a8fbdbbce7bc9aa7342a2dd60c37 100644 (file)
@@ -96,7 +96,9 @@ safe_ptr<device_buffer> ogl_device::allocate_device_buffer(size_t width, size_t
                try\r
                {\r
                        yield();\r
-                       gc().wait();\r
+                       auto future = gc();\r
+                       yield();\r
+                       future.wait();\r
                                        \r
                        // Try again\r
                        buffer.reset(new device_buffer(width, height, stride, mipmapped));\r
@@ -144,7 +146,9 @@ safe_ptr<host_buffer> ogl_device::allocate_host_buffer(size_t size, host_buffer:
                try\r
                {\r
                        yield();\r
-                       gc().wait();\r
+                       auto future = gc();\r
+                       yield();\r
+                       future.wait();\r
 \r
                        // Try again\r
                        buffer.reset(new host_buffer(size, usage));\r