From e97439c7df0dd0a30a319f559a7b492f5052e720 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 3 Oct 2008 19:28:34 +0000 Subject: [PATCH] Ensure the last test actually completes and reports... --- src/libCom/test/epicsMessageQueueTest.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/libCom/test/epicsMessageQueueTest.cpp b/src/libCom/test/epicsMessageQueueTest.cpp index a63cb2772..3b9ac457b 100644 --- a/src/libCom/test/epicsMessageQueueTest.cpp +++ b/src/libCom/test/epicsMessageQueueTest.cpp @@ -27,7 +27,8 @@ #include "testMain.h" static const char *msg1 = "1234567890This is a very long message."; -static int testExit = 0; +static volatile int testExit = 0; +static epicsEventId finished; /* * In Numerical Recipes in C: The Art of Scientific Computing (William H. @@ -105,6 +106,7 @@ receiver(void *arg) testDiag("Sender %d -- %d messages", sender, expectmsg[sender-1]-1); } testOk1(errors == 0); + epicsEventSignal(finished); } extern "C" void @@ -125,7 +127,6 @@ sender(void *arg) extern "C" void messageQueueTest(void *parm) { - epicsEventId *pfinished = (epicsEventId *) parm; unsigned int i; char cbuf[80]; int len; @@ -278,19 +279,17 @@ extern "C" void messageQueueTest(void *parm) epicsThreadSleep(300.0); testExit = 1; - epicsThreadSleep(1.0); - epicsEventSignal(*pfinished); } MAIN(epicsMessageQueueTest) { testPlan(58); - epicsEventId finished = epicsEventMustCreate(epicsEventEmpty); + finished = epicsEventMustCreate(epicsEventEmpty); epicsThreadCreate("messageQueueTest", epicsThreadPriorityMedium, epicsThreadGetStackSize(epicsThreadStackMedium), - messageQueueTest, (void *) &finished); + messageQueueTest, NULL); epicsEventWait(finished);