diff --git a/xplat/Flipper/FlipperSocketProvider.cpp b/xplat/Flipper/FlipperSocketProvider.cpp index 17c3d4e73..824396c90 100644 --- a/xplat/Flipper/FlipperSocketProvider.cpp +++ b/xplat/Flipper/FlipperSocketProvider.cpp @@ -12,17 +12,18 @@ namespace facebook { namespace flipper { -std::unique_ptr FlipperSocketProvider::provider_ = - nullptr; - -std::unique_ptr FlipperSocketProvider::shelvedProvider_ = - nullptr; +std::unique_ptr& +FlipperSocketProvider::defaultProvider() { + static std::unique_ptr provider; + return provider; +} std::unique_ptr FlipperSocketProvider::socketCreate( FlipperConnectionEndpoint endpoint, std::unique_ptr payload, Scheduler* scheduler) { - return provider_->create(std::move(endpoint), std::move(payload), scheduler); + return defaultProvider()->create( + std::move(endpoint), std::move(payload), scheduler); } std::unique_ptr FlipperSocketProvider::socketCreate( @@ -30,7 +31,7 @@ std::unique_ptr FlipperSocketProvider::socketCreate( std::unique_ptr payload, Scheduler* scheduler, ConnectionContextStore* connectionContextStore) { - return provider_->create( + return defaultProvider()->create( std::move(endpoint), std::move(payload), scheduler, @@ -39,11 +40,11 @@ std::unique_ptr FlipperSocketProvider::socketCreate( void FlipperSocketProvider::setDefaultProvider( std::unique_ptr provider) { - provider_ = std::move(provider); + defaultProvider() = std::move(provider); } bool FlipperSocketProvider::hasProvider() { - return provider_ != nullptr; + return defaultProvider() != nullptr; } } // namespace flipper diff --git a/xplat/Flipper/FlipperSocketProvider.h b/xplat/Flipper/FlipperSocketProvider.h index 8e26f38aa..99c6e9bff 100644 --- a/xplat/Flipper/FlipperSocketProvider.h +++ b/xplat/Flipper/FlipperSocketProvider.h @@ -71,8 +71,7 @@ class FlipperSocketProvider { static bool hasProvider(); private: - static std::unique_ptr provider_; - static std::unique_ptr shelvedProvider_; + static std::unique_ptr& defaultProvider(); }; } // namespace flipper