Fixing AMPI issues.
authorSameer Kumar <skumar2@uiuc.edu>
Sun, 3 Oct 2004 23:49:41 +0000 (23:49 +0000)
committerSameer Kumar <skumar2@uiuc.edu>
Sun, 3 Oct 2004 23:49:41 +0000 (23:49 +0000)
src/ck-com/ComlibManager.C
src/ck-com/ComlibManager.h

index 91b9e98ebbfd0ed9c69940f9d347ae1a56fde75f..ea1457efff8d9209f8051a6a318809d2146922d1 100644 (file)
@@ -758,7 +758,7 @@ ComlibInstanceHandle::ComlibInstanceHandle(const ComlibInstanceHandle &h){
 
     //We DO NOT copy the source processor
     //Source PE is initialized here
-    _srcPe = CkMyPe();
+    _srcPe = h._srcPe;
 }
 
 void ComlibInstanceHandle::init(){
@@ -783,7 +783,7 @@ void ComlibInstanceHandle::beginIteration() {
     //into the constructor of an array and is using it directly from
     //Main :: main
     if(_srcPe == -1) {
-        ComlibPrintf("Warning:Instance Handle needs to be a readonly or a private variable of an array element\n");
+        //ComlibPrintf("Warning:Instance Handle needs to be a readonly or a private variable of an array element\n");
         _srcPe = CkMyPe();
     }
 
index a068466d6550f8144336d3450cb3914ea91b6089..71e7c33edeeacd71b22a4b127d96ebea0a1e685f 100644 (file)
@@ -73,7 +73,8 @@ class ComlibInstanceHandle {
     ComlibInstanceHandle();
     ComlibInstanceHandle(const ComlibInstanceHandle &h);
     ComlibInstanceHandle(int instid, CkGroupID dmid);    
-    
+   
+    void setForwardingOnMigration(){toForward = 1;} 
     void init();
     void beginIteration();
     void endIteration();
@@ -83,17 +84,14 @@ class ComlibInstanceHandle {
     CharmStrategy *getStrategy();        
     int getSourcePe() {return _srcPe;}
 
+    void setSourcePe() {_srcPe = CkMyPe();}
+
     friend class ComlibManager;
     void pup(PUP::er &p) {
         p | _instid;
         p | _dmid;
         p | _srcPe;
         p | toForward;
-
-        //Fresh instance handle, so set My processor
-        if(p.isUnpacking())
-            if(_srcPe == -1)
-                _srcPe = CkMyPe();
     }
 };