diff --git a/src/db/callback.c b/src/db/callback.c index 8fc4afb6d..4b5331cce 100644 --- a/src/db/callback.c +++ b/src/db/callback.c @@ -51,7 +51,7 @@ #include #include -#define QUEUESIZE 1000 +int callbackQueueSize = 2000; static SEM_ID callbackSem[NUM_CALLBACK_PRIORITIES]; static RING_ID callbackQ[NUM_CALLBACK_PRIORITIES]; static int callbackTaskId[NUM_CALLBACK_PRIORITIES]; @@ -63,6 +63,12 @@ static void wdCallback(long ind); /*callback from taskwd*/ static void start(int ind); /*start or restart a callbackTask*/ /*public routines */ +int callbackSetQueueSize(int size) +{ + callbackQueueSize = size; + return(0); +} + long callbackInit() { int i; @@ -145,7 +151,7 @@ static void start(int ind) errMessage(0,"semBcreate failed while starting a callback task\n"); return; } - if((callbackQ[ind] = rngCreate(sizeof(CALLBACK *) * QUEUESIZE)) == NULL) + if((callbackQ[ind]=rngCreate(sizeof(CALLBACK *)*callbackQueueSize)) == NULL) errMessage(0,"rngCreate failed while starting a callback task"); sprintf(taskName,"cb%s",priorityName[ind]); callbackTaskId[ind] = taskSpawn(taskName,priority, diff --git a/src/db/callback.h b/src/db/callback.h index 3d18c5af7..992beac4a 100644 --- a/src/db/callback.h +++ b/src/db/callback.h @@ -76,10 +76,12 @@ long callbackInit(); void callbackRequest(CALLBACK *); void callbackRequestProcessCallback(CALLBACK *pCallback, int Priority, void *pRec); +int callbackSetQueueSize(int size); #else long callbackInit(); void callbackRequest(); void callbackRequestProcessCallback(); +int callbackSetQueueSize(); #endif /*__STDC__*/