Fix for hang from Ron Sluiter.

This commit is contained in:
Andrew Johnson
2010-05-18 16:12:36 -05:00
parent 6eb36e1224
commit 6790acf78f

View File

@@ -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]);