From e8d567cfedc76c9f3da770bd0ab10a8dbadfd967 Mon Sep 17 00:00:00 2001 From: Chris Thrasher Date: Sun, 26 Nov 2023 15:42:20 -0700 Subject: [PATCH] Use `std::call_once` for code that only runs once --- src/SFML/Audio/SoundFileFactory.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/SFML/Audio/SoundFileFactory.cpp b/src/SFML/Audio/SoundFileFactory.cpp index a9d1478000..107a54deea 100644 --- a/src/SFML/Audio/SoundFileFactory.cpp +++ b/src/SFML/Audio/SoundFileFactory.cpp @@ -39,6 +39,7 @@ #include #include +#include #include @@ -47,18 +48,18 @@ namespace // Register all the built-in readers and writers if not already done void ensureDefaultReadersWritersRegistered() { - static bool registered = false; - if (!registered) - { - sf::SoundFileFactory::registerReader(); - sf::SoundFileFactory::registerWriter(); - sf::SoundFileFactory::registerReader(); - sf::SoundFileFactory::registerReader(); - sf::SoundFileFactory::registerWriter(); - sf::SoundFileFactory::registerReader(); - sf::SoundFileFactory::registerWriter(); - registered = true; - } + static std::once_flag flag; + std::call_once(flag, + []() + { + sf::SoundFileFactory::registerReader(); + sf::SoundFileFactory::registerWriter(); + sf::SoundFileFactory::registerReader(); + sf::SoundFileFactory::registerReader(); + sf::SoundFileFactory::registerWriter(); + sf::SoundFileFactory::registerReader(); + sf::SoundFileFactory::registerWriter(); + }); } } // namespace