fixed the cmipool init.
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 9 Feb 2011 20:20:57 +0000 (14:20 -0600)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 9 Feb 2011 20:20:57 +0000 (14:20 -0600)
src/conv-core/cmipool.c

index c388966bb0ee3cce7a85fdd6a773fea9ec70f292..ef4eddce12d89f35d321064b91110508c96ad376 100644 (file)
@@ -42,7 +42,6 @@ extern void free_nomigrate(void *mem);
 void CmiPoolAllocInit(int numBins)
 {
   int i;
-  if (CpvInitialized(bins)) return;
   CpvInitialize(char **, bins);
   CpvInitialize(int *, binLengths);
   CpvInitialize(int, maxBin);
@@ -51,6 +50,7 @@ void CmiPoolAllocInit(int numBins)
   CpvInitialize(int, numOFrees);
   CpvInitialize(int, numFrees);
 
+  if (CpvAccess(bins) == NULL) {
   CpvAccess(bins) = (char **) malloc_nomigrate(  numBins*sizeof(char *));
   CpvAccess(binLengths) = (int *) malloc_nomigrate(  numBins*sizeof(int));
   CpvAccess(maxBin) = numBins -1;
@@ -58,6 +58,7 @@ void CmiPoolAllocInit(int numBins)
   for (i=0; i<numBins; i++) CpvAccess(binLengths)[i] = 0;
 
   CpvAccess(numKallocs) =  CpvAccess(numMallocs) =  CpvAccess(numFrees)=CpvAccess(numOFrees) = 0;
+  }
 }
 
 #ifdef CMK_OPTIMIZE