Bug fix in TopoManager initialization
authorNikhil Jain <nikhil@illinois.edu>
Sat, 7 Sep 2013 01:33:56 +0000 (20:33 -0500)
committerNikhil Jain <nikhil@illinois.edu>
Sat, 7 Sep 2013 01:47:39 +0000 (18:47 -0700)
src/ck-core/init.C
src/util/CrayNid.c
src/util/TopoManager.C

index e9488b568126998e9edbe8a831b5a7b793b05c62..2a4dea716f71383983dba183f7ce91e6e936828e 100644 (file)
@@ -1245,8 +1245,10 @@ void _initCharm(int unused_argc, char **argv)
                        CcdCallFnAfter((CcdVoidFn)CkDecideEvacPe, 0, 10000);
                }*/
        }       
-
-    TopoManager_init();
+    
+    if (CkMyRank() == 0) {
+      TopoManager_init();
+    }
     CmiNodeAllBarrier();
 
     if (!_replaySystem) {
index f3bf595f14738cefa7f6275729d05d06a65288a1..f1062b4f3096d2c58c7945267c974ba80f5609c8 100644 (file)
@@ -208,7 +208,7 @@ void craynid_reset()
 void craynid_init()
 {
   static init_done = 0;
-  if (CmiMyRank()==0 && !init_done) {
+  if (!init_done) {
     cray_lock = CmiCreateLock();
     cray_lock2 = CmiCreateLock();
     init_done = 1;
index 77258b0e18f782764660e2b63e7a6cad472bec22..3a280609b3ecd6eca2d97181287d70500b860c61 100644 (file)
@@ -453,14 +453,14 @@ extern "C" void TopoManager_reset() {
 #if XT4_TOPOLOGY || XT5_TOPOLOGY || XE6_TOPOLOGY
   craynid_reset();
 #endif
-  if(_topoLock) delete _tmgr;
+  if(_tmgr) delete _tmgr;
   _tmgr = new TopoManager;
   CmiUnlock(_topoLock);
 }
 
 extern "C" void TopoManager_free() {
   CmiLock(_topoLock);
-  if(_topoLock) delete _tmgr;
+  if(_tmgr) delete _tmgr;
   _tmgr = NULL;
 #if XT4_TOPOLOGY || XT5_TOPOLOGY || XE6_TOPOLOGY
   craynid_free();