]> git.sesse.net Git - casparcg/blobdiff - common/executor.h
Fixed null pointer reference in executor
[casparcg] / common / executor.h
index b81bb0187c464f589b3095a71620189b37ceb899..e67a0afa708e8adb04a458ea2382efe52a158c3a 100644 (file)
@@ -250,7 +250,24 @@ private:
                                function();
                        }
 
-                       return future.get();
+                       try
+                       {
+                               return future.get();
+                       }
+                       catch (const caspar_exception& e)
+                       {
+                               if (!is_current()) // Add context information from this thread before rethrowing.
+                               {
+                                       auto ctx_info = boost::get_error_info<context_info_t>(e);
+
+                                       if (ctx_info)
+                                               e << context_info(get_context() + *ctx_info);
+                                       else
+                                               e << context_info(get_context());
+                               }
+
+                               throw;
+                       }
                });
        }