From 306dee321d9d92a2784b570d59a973aecbd8e56d Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Fri, 3 May 1991 11:09:06 +0000 Subject: [PATCH] mrk fixed ring buffer read/write problem 5/91 --- src/db/dbScan.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/db/dbScan.c b/src/db/dbScan.c index 9d0cceb3f..b85a8aa6d 100644 --- a/src/db/dbScan.c +++ b/src/db/dbScan.c @@ -451,7 +451,8 @@ ioEventTask() semTake(&ioEventSem); /* process requests in the command ring buffer */ - while (rngBufGet(ioEventQ,pintr_event,INTR_EVENT_SZ) == INTR_EVENT_SZ){ + while (rngNBytes(ioEventQ)>=INTR_EVENT_SZ){ + rngBufGet(ioEventQ,pintr_event,INTR_EVENT_SZ); /* find the event list */ event_index = 0; pio_event_list = &io_event_lists[0]; @@ -541,7 +542,8 @@ eventTask() semTake(&eventSem); /* process requests in the command ring buffer */ - while (rngBufGet(eventQ,&event,sizeof(short)) == sizeof(short)){ + while (rngNBytes(ioEventQ)>=sizeof(short)){ + rngBufGet(eventQ,&event,sizeof(short)); /* find the event list */ event_index = 0; @@ -656,7 +658,8 @@ callbackTask(){ callbackRequest(pcallback) struct callback *pcallback; { - if(rngBufPut(callbackQ,&pcallback,sizeof(pcallback))!=sizeof(pcallback)) { + if(rngNBytes(ioEventQ)>=sizeof(pcallback)) { + rngBufPut(callbackQ,&pcallback,sizeof(pcallback)); logMsg("callbackQ full\n"); } else { semGive(&callbackSem);