diff --git a/src/db/callback.c b/src/db/callback.c index 4e364b181..c387d79bb 100644 --- a/src/db/callback.c +++ b/src/db/callback.c @@ -60,6 +60,10 @@ static void *exitCallback; static char *threadName[NUM_CALLBACK_PRIORITIES] = { "cbLow", "cbMedium", "cbHigh" }; +#define FULL_MSG(name) "callbackRequest: " name " ring buffer full\n" +static char *fullMessage[NUM_CALLBACK_PRIORITIES] = { + FULL_MSG("cbLow"), FULL_MSG("cbMedium"), FULL_MSG("cbHigh") +}; static unsigned int threadPriority[NUM_CALLBACK_PRIORITIES] = { epicsThreadPriorityScanLow - 1, epicsThreadPriorityScanLow + 4, @@ -168,11 +172,7 @@ void callbackRequest(CALLBACK *pcallback) epicsInterruptUnlock(lockKey); if (!pushOK) { - char msg[48] = "callbackRequest: "; - - strcat(msg, threadName[priority]); - strcat(msg, " ring buffer full\n"); - epicsInterruptContextMessage(msg); + epicsInterruptContextMessage(fullMessage[priority]); ringOverflow[priority] = TRUE; } epicsEventSignal(callbackSem[priority]);