]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
* grab rank lock while changing local map!
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Sat, 26 May 2007 15:24:31 +0000 (15:24 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Sat, 26 May 2007 15:24:31 +0000 (15:24 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1382 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/msg/SimpleMessenger.cc

index 35b141c1dc0fbcdfad24309403c36e27269e25bc..34d5b180e4e465034b571c624eaf7d5859056ea0 100644 (file)
@@ -1158,13 +1158,17 @@ const entity_addr_t &Rank::EntityMessenger::get_myaddr()
 
 void Rank::EntityMessenger::reset_myname(entity_name_t newname)
 {
-  entity_name_t oldname = get_myname();
-  dout(10) << "reset_myname " << oldname << " to " << newname << endl;
-
-  rank.local.erase(oldname);
-  rank.local[newname] = this;
-
-  _set_myname(newname);
+  rank.lock.Lock();
+  {
+    entity_name_t oldname = get_myname();
+    dout(10) << "reset_myname " << oldname << " to " << newname << endl;
+    
+    rank.local.erase(oldname);
+    rank.local[newname] = this;
+   
+    _set_myname(newname);
+  }
+  rank.lock.Unlock();
 }