]> git.sesse.net Git - casparcg/blobdiff - common/log.cpp
Fix a few Clang warnings.
[casparcg] / common / log.cpp
index b2269db238bc978f54d81928abe215ef730f42f5..63641a4efeaed8674b5634a3939b07b26bbd77df 100644 (file)
@@ -29,7 +29,9 @@
 
 #include <ios>
 #include <iomanip>
+#include <mutex>
 #include <string>
+#include <thread>
 #include <ostream>
 
 #include <boost/shared_ptr.hpp>
@@ -56,7 +58,6 @@
 #include <boost/bind.hpp>
 #include <boost/lexical_cast.hpp>
 #include <boost/property_tree/ptree.hpp>
-#include <boost/thread/mutex.hpp>
 
 #include <tbb/atomic.h>
 
@@ -212,7 +213,9 @@ std::shared_ptr<void> add_preformatted_line_sink(std::function<void(std::string
        {
                std::function<void(std::string line)> formatted_line_sink_;
        public:
-               sink_backend(std::function<void(std::string line)> formatted_line_sink)
+               // The dummy parameter is to work around a bug in newer Boost.Log, where single-argument
+               // constructor forwarders are not recognized unless the parameter uses Boost.Parameter.
+               sink_backend(std::function<void(std::string line)> formatted_line_sink, int)
                        : formatted_line_sink_(std::move(formatted_line_sink))
                {
                }
@@ -232,7 +235,7 @@ std::shared_ptr<void> add_preformatted_line_sink(std::function<void(std::string
 
        typedef boost::log::sinks::synchronous_sink<sink_backend> sink_type;
 
-       auto sink = boost::make_shared<sink_type>(std::move(formatted_line_sink));
+       auto sink = boost::make_shared<sink_type>(std::move(formatted_line_sink), 0);
        bool print_all_characters = true;
 
        sink->set_formatter(boost::bind(&my_formatter<boost::log::formatting_ostream>, print_all_characters, _1, _2));
@@ -246,9 +249,9 @@ std::shared_ptr<void> add_preformatted_line_sink(std::function<void(std::string
        });
 }
 
-boost::mutex& get_filter_mutex()
+std::mutex& get_filter_mutex()
 {
-       static boost::mutex instance;
+       static std::mutex instance;
 
        return instance;
 }
@@ -281,7 +284,7 @@ void set_log_filter()
 
 void set_log_level(const std::wstring& lvl)
 {
-       boost::lock_guard<boost::mutex> lock(get_filter_mutex());
+       std::lock_guard<std::mutex> lock(get_filter_mutex());
 
        if (boost::iequals(lvl, L"trace"))
                get_level() = boost::log::trivial::trace;
@@ -310,7 +313,7 @@ void set_log_category(const std::wstring& cat, bool enabled)
        else
                return; // Ignore
 
-       boost::lock_guard<boost::mutex> lock(get_filter_mutex());
+       std::lock_guard<std::mutex> lock(get_filter_mutex());
        auto& disabled_categories = get_disabled_categories();
 
        if (enabled)