]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - pdns/rec_channel_rec.cc
rec: Wrap pthread_ objects
[thirdparty/pdns.git] / pdns / rec_channel_rec.cc
index 5ecca53444735ff388d654d31811a31380b1164b..489e81083f5b230af119b0919a8f593736a9b572 100644 (file)
 #include "secpoll-recursor.hh"
 #include "pubsuffix.hh"
 #include "namespaces.hh"
-pthread_mutex_t g_carbon_config_lock=PTHREAD_MUTEX_INITIALIZER;
+std::mutex g_carbon_config_lock;
 
 static map<string, const uint32_t*> d_get32bitpointers;
 static map<string, const std::atomic<uint64_t>*> d_getatomics;
 static map<string, function< uint64_t() > >  d_get64bitmembers;
-static pthread_mutex_t d_dynmetricslock = PTHREAD_MUTEX_INITIALIZER;
+static std::mutex d_dynmetricslock;
 static map<string, std::atomic<unsigned long>* > d_dynmetrics;
 
 static std::map<StatComponent, std::set<std::string>> s_blacklistedStats;
@@ -84,7 +84,7 @@ static void addGetStat(const string& name, function<uint64_t ()> f )
 
 std::atomic<unsigned long>* getDynMetric(const std::string& str)
 {
-  Lock l(&d_dynmetricslock);
+  std::lock_guard<std::mutex> l(d_dynmetricslock);
   auto f = d_dynmetrics.find(str);
   if(f != d_dynmetrics.end())
     return f->second;
@@ -105,7 +105,7 @@ static optional<uint64_t> get(const string& name)
   if(d_get64bitmembers.count(name))
     return d_get64bitmembers.find(name)->second();
 
-  Lock l(&d_dynmetricslock);
+  std::lock_guard<std::mutex> l(d_dynmetricslock);
   auto f =rplookup(d_dynmetrics, name);
   if(f)
     return (*f)->load();
@@ -141,7 +141,7 @@ map<string,string> getAllStatsMap(StatComponent component)
   }
 
   {
-    Lock l(&d_dynmetricslock);
+    std::lock_guard<std::mutex> l(d_dynmetricslock);
     for(const auto& a : d_dynmetrics) {
       if (blacklistMap.count(a.first) == 0) {
         ret.insert({a.first, std::to_string(*a.second)});
@@ -446,7 +446,7 @@ static string doWipeCache(T begin, T end, uint16_t qtype)
 template<typename T>
 static string doSetCarbonServer(T begin, T end)
 {
-  Lock l(&g_carbon_config_lock);
+  std::lock_guard<std::mutex> l(g_carbon_config_lock);
   if(begin==end) {
     ::arg().set("carbon-server").clear();
     return "cleared carbon-server setting\n";