]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async: narrow scope of AsyncMessenger::lock in fun connect_to. 30840/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 10 Oct 2019 09:59:00 +0000 (17:59 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Thu, 10 Oct 2019 09:59:00 +0000 (17:59 +0800)
In fact, local_connnection init in constructor of AsyncMessenger and
never change. So no need protect by AsyncMessenger::lock in
AsyncMessenger::connect_to.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/msg/async/AsyncMessenger.cc

index 37c7182f61d4b6e9d34c9e0180bd59ee7f411e2e..70323ef3da6b0300206c28df1e2bb9f174b48e04 100644 (file)
@@ -672,7 +672,6 @@ ConnectionRef AsyncMessenger::connect_to(int type,
                                         const entity_addrvec_t& addrs,
                                         bool anon)
 {
-  std::lock_guard l{lock};
   if (*my_addrs == addrs ||
       (addrs.v.size() == 1 &&
        my_addrs->contains(addrs.front()))) {
@@ -680,6 +679,8 @@ ConnectionRef AsyncMessenger::connect_to(int type,
     return local_connection;
   }
 
+  std::lock_guard l{lock};
+
   auto av = _filter_addrs(addrs);
 
   if (anon) {