#pragma once #include struct StartMultitrackVideoStreamingGuard { StartMultitrackVideoStreamingGuard() { future = guard.get_future().share(); }; ~StartMultitrackVideoStreamingGuard() { guard.set_value(); } std::shared_future GetFuture() const { return future; } static std::shared_future MakeReadyFuture() { StartMultitrackVideoStreamingGuard guard; return guard.GetFuture(); } private: std::promise guard; std::shared_future future; };