msgQ: Use the datatype for msg prios as specified by user (CMK_MSG_PRIO_TYPE)
authorRamprasad Venkataraman <ramv@illinois.edu>
Tue, 28 Aug 2012 22:12:20 +0000 (17:12 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Sun, 28 Oct 2012 01:13:13 +0000 (20:13 -0500)
src/conv-core/queueing.C

index 40a11370005b60ca0e94377823b7261bee828044..bbd9d650615e687b66860c0f500fed1a01af0126 100644 (file)
@@ -4,8 +4,10 @@
 
 #if CMK_USE_STL_MSGQ
 #include "msgq.h"
 
 #if CMK_USE_STL_MSGQ
 #include "msgq.h"
+typedef CMK_MSG_PRIO_TYPE prio_t;
 #endif
 
 #endif
 
+
 /** @defgroup CharmScheduler 
     @brief The portion of Charm++ responsible for scheduling the execution 
     of Charm++ entry methods
 /** @defgroup CharmScheduler 
     @brief The portion of Charm++ responsible for scheduling the execution 
     of Charm++ entry methods
@@ -558,7 +560,7 @@ Queue CqsCreate(void)
   CqsPrioqInit(&(q->negprioq));
   CqsPrioqInit(&(q->posprioq));
 #if CMK_USE_STL_MSGQ
   CqsPrioqInit(&(q->negprioq));
   CqsPrioqInit(&(q->posprioq));
 #if CMK_USE_STL_MSGQ
-  q->stlQ = (void*) new conv::msgQ<int>;
+  q->stlQ = (void*) new conv::msgQ<prio_t>;
 #endif
   return q;
 }
 #endif
   return q;
 }
@@ -568,7 +570,7 @@ void CqsDelete(Queue q)
   CmiFree(q->negprioq.heap);
   CmiFree(q->posprioq.heap);
 #if CMK_USE_STL_MSGQ
   CmiFree(q->negprioq.heap);
   CmiFree(q->posprioq.heap);
 #if CMK_USE_STL_MSGQ
-  if (q->stlQ != NULL) delete (conv::msgQ<int>*)(q->stlQ);
+  if (q->stlQ != NULL) delete (conv::msgQ<prio_t>*)(q->stlQ);
 #endif
   CmiFree(q);
 }
 #endif
   CmiFree(q);
 }
@@ -581,10 +583,10 @@ unsigned int CqsMaxLength(Queue q)
 #if CMK_USE_STL_MSGQ
 
 unsigned int CqsLength(Queue q)
 #if CMK_USE_STL_MSGQ
 
 unsigned int CqsLength(Queue q)
-{ return ( (conv::msgQ<int>*)(q->stlQ) )->size(); }
+{ return ( (conv::msgQ<prio_t>*)(q->stlQ) )->size(); }
 
 int CqsEmpty(Queue q)
 
 int CqsEmpty(Queue q)
-{ return ( (conv::msgQ<int>*)(q->stlQ) )->empty(); }
+{ return ( (conv::msgQ<prio_t>*)(q->stlQ) )->empty(); }
 
 void CqsEnqueueGeneral(Queue q, void *data, int strategy, int priobits,unsigned int *prioptr)
 {
 
 void CqsEnqueueGeneral(Queue q, void *data, int strategy, int priobits,unsigned int *prioptr)
 {
@@ -593,22 +595,22 @@ void CqsEnqueueGeneral(Queue q, void *data, int strategy, int priobits,unsigned
                    strategy == CQS_QUEUEING_BFIFO ||
                    strategy == CQS_QUEUEING_LFIFO);
     if (priobits >= sizeof(int)*8 && strategy != CQS_QUEUEING_FIFO && strategy != CQS_QUEUEING_LIFO)
                    strategy == CQS_QUEUEING_BFIFO ||
                    strategy == CQS_QUEUEING_LFIFO);
     if (priobits >= sizeof(int)*8 && strategy != CQS_QUEUEING_FIFO && strategy != CQS_QUEUEING_LIFO)
-        ( (conv::msgQ<int>*)(q->stlQ) )->enq( data, prioptr[0], isFifo);
+        ( (conv::msgQ<prio_t>*)(q->stlQ) )->enq( data, prioptr[0], isFifo);
     else
     else
-        ( (conv::msgQ<int>*)(q->stlQ) )->enq( data, 0, isFifo);
+        ( (conv::msgQ<prio_t>*)(q->stlQ) )->enq( data, 0, isFifo);
 }
 
 void CqsEnqueueFifo(Queue q, void *data)
 }
 
 void CqsEnqueueFifo(Queue q, void *data)
-{ ( (conv::msgQ<int>*)(q->stlQ) )->enq(data); }
+{ ( (conv::msgQ<prio_t>*)(q->stlQ) )->enq(data); }
 
 void CqsEnqueueLifo(Queue q, void *data)
 
 void CqsEnqueueLifo(Queue q, void *data)
-{ ( (conv::msgQ<int>*)(q->stlQ) )->enq(data, 0, false); }
+{ ( (conv::msgQ<prio_t>*)(q->stlQ) )->enq(data, 0, false); }
 
 void CqsEnqueue(Queue q, void *data)
 
 void CqsEnqueue(Queue q, void *data)
-{ ( (conv::msgQ<int>*)(q->stlQ) )->enq(data); }
+{ ( (conv::msgQ<prio_t>*)(q->stlQ) )->enq(data); }
 
 void CqsDequeue(Queue q, void **resp)
 
 void CqsDequeue(Queue q, void **resp)
-{ *resp = (void*) ( (conv::msgQ<int>*)(q->stlQ) )->deq(); }
+{ *resp = (void*) ( (conv::msgQ<prio_t>*)(q->stlQ) )->deq(); }
 
 #else
 
 
 #else
 
@@ -843,7 +845,7 @@ void** CqsEnumeratePrioq(_prioq q, int *num){
 
 #if CMK_USE_STL_MSGQ
 void CqsEnumerateQueue(Queue q, void ***resp){
 
 #if CMK_USE_STL_MSGQ
 void CqsEnumerateQueue(Queue q, void ***resp){
-  conv::msgQ<int> *stlQ = (conv::msgQ<int>*) q->stlQ;
+  conv::msgQ<prio_t> *stlQ = (conv::msgQ<prio_t>*) q->stlQ;
   *resp = (void **)CmiAlloc(stlQ->size() * sizeof(conv::msg_t*));
   stlQ->enumerate(*resp, *resp + stlQ->size());
 }
   *resp = (void **)CmiAlloc(stlQ->size() * sizeof(conv::msg_t*));
   stlQ->enumerate(*resp, *resp + stlQ->size());
 }