CkArrayMap: routines to deregister an array
authorPhil Miller <mille121@illinois.edu>
Tue, 20 Aug 2013 23:05:36 +0000 (18:05 -0500)
committerPhil Miller <mille121@illinois.edu>
Tue, 20 Aug 2013 23:17:37 +0000 (18:17 -0500)
src/ck-core/cklocation.C
src/ck-core/cklocation.h

index ce8608b200d44ec40d66eb41e9ce26511c19be37..a8f487c28c826f8df78b18d85581a45d4b5c9dec 100644 (file)
@@ -164,6 +164,8 @@ CkArrayMap::CkArrayMap(void) { }
 CkArrayMap::~CkArrayMap() { }
 int CkArrayMap::registerArray(const CkArrayIndex& numElements, CkArrayID aid)
 {return 0;}
+void CkArrayMap::unregisterArray(int idx)
+{ }
 
 #define CKARRAYMAP_POPULATE_INITIAL(POPULATE_CONDITION) \
         int i; \
@@ -350,6 +352,12 @@ public:
     amaps[idx] = new arrayMapInfo(numElements);
     return idx;
   }
+
+  void unregisterArray(int idx)
+  {
+    delete amaps[idx];
+    amaps[idx] = NULL;
+  }
  
   int procNum(int arrayHdl, const CkArrayIndex &i) {
     int flati;
@@ -917,6 +925,10 @@ public:
     arrs[idx] = new arrInfo(numElements, speeds);
     return idx;
   }
+  void unregisterArray(int idx)
+  {
+    arrs[idx].destroy();
+  }
   int procNum(int arrayHdl, const CkArrayIndex &i)
   {
     return arrs[arrayHdl]->getMap(i);
index 53e1cb5f01093a55ae94829e7265cc3d652e3677..a1d178ccbc435e85f7a658aa8f87aa0df7b16217 100644 (file)
@@ -92,6 +92,7 @@ public:
   CkArrayMap(CkMigrateMessage *m): IrrGroup(m) {}
   virtual ~CkArrayMap();
   virtual int registerArray(const CkArrayIndex& numElements, CkArrayID aid);
+  virtual void unregisterArray(int idx);
   virtual void populateInitial(int arrayHdl,CkArrayIndex& numElements,void *ctorMsg,CkArrMgr *mgr);
   virtual int procNum(int arrayHdl,const CkArrayIndex &element) =0;
   virtual int homePe(int arrayHdl,const CkArrayIndex &element)