Move CtvInitialize from initnode routines to
authorOrion Lawlor <olawlor@acm.org>
Tue, 5 Aug 2003 23:44:04 +0000 (23:44 +0000)
committerOrion Lawlor <olawlor@acm.org>
Tue, 5 Aug 2003 23:44:04 +0000 (23:44 +0000)
initproc routines.  Every processor can now
safely call CtvInitialize, and failing to do
so can leave a processor without storage space
for a Ctv.

src/libs/ck-libs/ampi/ampi.C
src/libs/ck-libs/armci/armci.ci
src/libs/ck-libs/armci/armci_setup.C
src/libs/ck-libs/tcharm/tcharm.C

index 665767b631b18ccc845caa4858074ea6fdd16fb5..55c20d3944e3e18fd412a4a416c7dbdaf9fc0f8c 100644 (file)
@@ -16,7 +16,7 @@
 
 /* change this define to "x" to trace all send/recv's */
 #define MSG_ORDER_DEBUG(x) /* empty */
-#define STARTUP_DEBUG(x) /* ckout<<"[pe "<<CkMyPe()<<"] "<< x <<endl; */
+#define STARTUP_DEBUG(x)  /* ckout<<"ampi[pe "<<CkMyPe()<<"] "<< x <<endl; */
 
 #if 0
 #define AMPI_DEBUG CkPrintf
@@ -312,8 +312,6 @@ CtvDeclare(ampiParent*, ampiPtr);
 CtvDeclare(int, ampiInitDone);
 static void ampiNodeInit(void)
 {
-  CtvInitialize(ampiParent*, ampiPtr);
-  CtvInitialize(int,ampiInitDone);
   mpi_nworlds=0;
   for(int i=0;i<MPI_MAX_COMM_WORLDS; i++)
   {
@@ -327,6 +325,8 @@ static void ampiNodeInit(void)
 }
 
 static void ampiProcInit(void){
+  CtvInitialize(ampiParent*, ampiPtr);
+  CtvInitialize(int,ampiInitDone);
   REGISTER_AMPI
   initAmpiProjections();
 }
index 3dcaede5a071fba25284860b4d497b9a9b2e83af..54149b68853c5ead05917e11aec8e3dba011cc0f 100644 (file)
@@ -1,5 +1,5 @@
 module armci {
-       initcall void armciNodeInit(void);
+       initproc void armciProcInit(void);
 
        readonly int armci_nproc;
 
index b876d2083ef2ca276b4db064aed867e3cee95ac9..f5db7c5bec82b9d257c78a05fb4b0a6f037643fa 100644 (file)
@@ -39,7 +39,7 @@ CDECL int ARMCI_Init(void) {
 CtvDeclare(ArmciVirtualProcessor *, _armci_ptr);
 
 // Node initialization (made by initcall of the module armci)
-void armciNodeInit(void) {
+void armciProcInit(void) {
   CtvInitialize(ArmciVirtualProcessor, _armci_ptr);
   CtvAccess(_armci_ptr) = NULL;
 
index 5197244087e68d7f2f1eba0820409cc0427fbcce..d836d936bea9b2b0277d9e1ad1809aa9cbd57288 100644 (file)
@@ -58,14 +58,14 @@ static int tcharm_initted=0;
 
 void TCharm::nodeInit(void)
 {
-  CtvInitialize(TCharm *,_curTCharm);
-  CtvAccess(_curTCharm)=NULL;
-
-  tcharm_initted=1;
 }
 
 void TCharm::procInit(void)
 {
+  CtvInitialize(TCharm *,_curTCharm);
+  CtvAccess(_curTCharm)=NULL;
+  tcharm_initted=1;
+
   // called on every pe to eat these arguments
   char **argv=CkGetArgv();
   tcharm_nomig=CmiGetArgFlagDesc(argv,"+tcharm_nomig","Disable migration support (debugging)");
@@ -727,7 +727,7 @@ void TCharm::semaPut(int id,void *data) {
        TCharmSemaphore *s=findSema(id);
        if (s->data!=NULL) CkAbort("Duplicate calls to TCharm::semaPut!");
        s->data=data;
-       DBG("semaPut "<<id);
+       DBG("semaPut "<<id<<" "<<data);
        if (s->thread!=NULL) {//Awaken the thread
                s->thread=NULL;
                resume();
@@ -740,7 +740,7 @@ void TCharm::semaPut(int id,void *data) {
 void *TCharm::semaGet(int id) {
        TCharmSemaphore *s=getSema(id);
        void *ret=s->data;
-       DBG("semaGet "<<id);
+       DBG("semaGet "<<id<<" "<<ret);
        // Now remove the semaphore from the list:
        freeSema(s);
        return ret;