mrk fixed ring buffer read/write problem 5/91

This commit is contained in:
Janet B. Anderson
1991-05-03 11:09:06 +00:00
parent 1d8955f97e
commit 306dee321d

View File

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