hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject hadoop git commit: HDFS-11436: libhdfs++: Fix race condition in ScopedResolver. Contributed by James Clampffer.
Date Wed, 22 Feb 2017 17:25:55 GMT
Repository: hadoop
Updated Branches:
  refs/heads/HDFS-8707 ff2b18c45 -> 7d5fb82ff


HDFS-11436: libhdfs++: Fix race condition in ScopedResolver.  Contributed by James Clampffer.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7d5fb82f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7d5fb82f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7d5fb82f

Branch: refs/heads/HDFS-8707
Commit: 7d5fb82ffe562b68114e8d089aad09833d6f799a
Parents: ff2b18c
Author: James <jhc@apache.org>
Authored: Wed Feb 22 12:12:24 2017 -0500
Committer: James <jhc@apache.org>
Committed: Wed Feb 22 12:12:24 2017 -0500

----------------------------------------------------------------------
 .../src/main/native/libhdfspp/lib/common/namenode_info.cc       | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/7d5fb82f/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc
b/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc
index bd43091..bd3f44f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc
+++ b/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfspp/lib/common/namenode_info.cc
@@ -109,13 +109,14 @@ class ScopedResolver {
 
     // Now set up the promise, set it in async_resolve's callback
     result_status_ = std::make_shared<std::promise<Status>>();
+    std::shared_ptr<std::promise<Status>> shared_result = result_status_;
 
     // Callback to pull a copy of endpoints out of resolver and set promise
-    auto callback = [this](const asio::error_code &ec, ::asio::ip::tcp::resolver::iterator
out) {
+    auto callback = [this, shared_result](const asio::error_code &ec, ::asio::ip::tcp::resolver::iterator
out) {
       if(!ec) {
         std::copy(out, ::asio::ip::tcp::resolver::iterator(), std::back_inserter(endpoints_));
       }
-      result_status_->set_value( ToStatus(ec) );
+      shared_result->set_value( ToStatus(ec) );
     };
     resolver_.async_resolve(query_, callback);
     return true;


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org


Mime
View raw message