You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ad...@apache.org on 2019/12/05 18:55:44 UTC

[kudu] branch master updated: messenger: stop using deprecated mem_fun

This is an automated email from the ASF dual-hosted git repository.

adar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/master by this push:
     new dd2682c  messenger: stop using deprecated mem_fun
dd2682c is described below

commit dd2682c1fba8e690ca50c13dff877bd02008b0fd
Author: Adar Dembo <ad...@cloudera.com>
AuthorDate: Wed Dec 4 11:43:08 2019 -0800

    messenger: stop using deprecated mem_fun
    
    When building against LLVM 9's libc++, we get a warning about using a
    deprecated function. Seems like mem_fn is the appropriate replacement.
    
    ../../src/kudu/rpc/messenger.cc:238:48: warning: 'mem_fun<void, kudu::rpc::Messenger>' is deprecated [-Wdeprecated-declarations]
      *msgr = shared_ptr<Messenger>(new_msgr, std::mem_fun(&Messenger::AllExternalReferencesDropped));
                                                   ^
    ../../thirdparty/installed/tsan/include/c++/v1/functional:1148:1: note: 'mem_fun<void, kudu::rpc::Messenger>' has been explicitly marked deprecated here
    _LIBCPP_DEPRECATED_IN_CXX11 inline _LIBCPP_INLINE_VISIBILITY
    ^
    ../../thirdparty/installed/tsan/include/c++/v1/__config:944:39: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX11'
                                          ^
    ../../thirdparty/installed/tsan/include/c++/v1/__config:933:48: note: expanded from macro '_LIBCPP_DEPRECATED'
                                                   ^
    1 warning generated.
    
    Change-Id: Ife57c52050ba19a07218694c84989fa16f1dd341
    Reviewed-on: http://gerrit.cloudera.org:8080/14834
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
    Reviewed-by: Grant Henke <gr...@apache.org>
    Tested-by: Adar Dembo <ad...@cloudera.com>
---
 src/kudu/rpc/messenger.cc | 17 +++++++----------
 src/kudu/rpc/messenger.h  |  7 ++++---
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/src/kudu/rpc/messenger.cc b/src/kudu/rpc/messenger.cc
index fd9d939..3ef04d3 100644
--- a/src/kudu/rpc/messenger.cc
+++ b/src/kudu/rpc/messenger.cc
@@ -51,7 +51,6 @@
 #include "kudu/util/metrics.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/net/socket.h"
-#include "kudu/util/scoped_cleanup.h"
 #include "kudu/util/status.h"
 #include "kudu/util/thread_restrictions.h"
 #include "kudu/util/threadpool.h"
@@ -184,15 +183,15 @@ MessengerBuilder& MessengerBuilder::set_reuseport() {
   return *this;
 }
 
-Status MessengerBuilder::Build(shared_ptr<Messenger> *msgr) {
+Status MessengerBuilder::Build(shared_ptr<Messenger>* msgr) {
   // Initialize SASL library before we start making requests
   RETURN_NOT_OK(SaslInit(!keytab_file_.empty()));
 
-  Messenger* new_msgr(new Messenger(*this));
-
-  auto cleanup = MakeScopedCleanup([&] () {
-      new_msgr->AllExternalReferencesDropped();
-  });
+  // See docs on Messenger::retain_self_ for info about this odd hack.
+  //
+  // Note: can't use make_shared() as it doesn't support custom deleters.
+  shared_ptr<Messenger> new_msgr(new Messenger(*this),
+                                 std::mem_fn(&Messenger::AllExternalReferencesDropped));
 
   RETURN_NOT_OK(ParseTriState("--rpc_authentication",
                               rpc_authentication_,
@@ -233,9 +232,7 @@ Status MessengerBuilder::Build(shared_ptr<Messenger> *msgr) {
     }
   }
 
-  // See docs on Messenger::retain_self_ for info about this odd hack.
-  cleanup.cancel();
-  *msgr = shared_ptr<Messenger>(new_msgr, std::mem_fun(&Messenger::AllExternalReferencesDropped));
+  *msgr = std::move(new_msgr);
   return Status::OK();
 }
 
diff --git a/src/kudu/rpc/messenger.h b/src/kudu/rpc/messenger.h
index 5dfa104..5796684 100644
--- a/src/kudu/rpc/messenger.h
+++ b/src/kudu/rpc/messenger.h
@@ -21,15 +21,17 @@
 #include <mutex>
 #include <string>
 #include <unordered_map>
+#include <utility>
 #include <vector>
 
 #include <boost/optional/optional.hpp>
 #include <gtest/gtest_prod.h>
 
-#include "kudu/gutil/macros.h"
 #include "kudu/gutil/gscoped_ptr.h"
+#include "kudu/gutil/macros.h"
 #include "kudu/gutil/ref_counted.h"
 #include "kudu/rpc/connection.h"
+#include "kudu/rpc/rpc_service.h"
 #include "kudu/security/security_flags.h"
 #include "kudu/security/token.pb.h"
 #include "kudu/util/locks.h"
@@ -65,7 +67,6 @@ class InboundCall;
 class Messenger;
 class OutboundCall;
 class Reactor;
-class RpcService;
 class RpczStore;
 
 struct AcceptorPoolInfo {
@@ -165,7 +166,7 @@ class MessengerBuilder {
   // Configure the messenger to set the SO_REUSEPORT socket option.
   MessengerBuilder& set_reuseport();
 
-  Status Build(std::shared_ptr<Messenger> *msgr);
+  Status Build(std::shared_ptr<Messenger>* msgr);
 
  private:
   const std::string name_;