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