From 6790acf78f99c2a5314be7405497d632fbb2a851 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 18 May 2010 16:12:36 -0500 Subject: [PATCH] Fix for hang from Ron Sluiter. --- src/libCom/test/epicsMessageQueueTest.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libCom/test/epicsMessageQueueTest.cpp b/src/libCom/test/epicsMessageQueueTest.cpp index 3b9ac457b..c9f3f815f 100644 --- a/src/libCom/test/epicsMessageQueueTest.cpp +++ b/src/libCom/test/epicsMessageQueueTest.cpp @@ -89,10 +89,13 @@ receiver(void *arg) expectmsg[sender-1] = 1; while (!testExit) { cbuf[0] = '\0'; - len = q->receive(cbuf, sizeof cbuf); - if ((sscanf(cbuf, "Sender %d -- %d", &sender, &msgNum) == 2) - && (sender >= 1) - && (sender <= 4)) { + len = q->receive(cbuf, sizeof cbuf, 2.0); + if (len < 0 && !testExit) { + testDiag("receiver() received unexpected timeout"); + ++errors; + } + else if (sscanf(cbuf, "Sender %d -- %d", &sender, &msgNum) == 2 && + sender >= 1 && sender <= 4) { if (expectmsg[sender-1] != msgNum) { ++errors; testDiag("%s received %d '%.*s' -- expected %d", epicsThreadGetNameSelf(), len, len, cbuf, expectmsg[sender-1]);