diff --git a/src/db/dbEvent.c b/src/db/dbEvent.c index b298edeed..1a0c0fb4c 100644 --- a/src/db/dbEvent.c +++ b/src/db/dbEvent.c @@ -531,13 +531,16 @@ void epicsShareAPI db_cancel_event (dbEventSubscription es) * would be possible. */ for ( getix = pevent->ev_que->getix; - pevent->ev_que->evque[getix] != EVENTQEMPTY; - getix = RNGINC ( getix ) ) { + pevent->ev_que->evque[getix] != EVENTQEMPTY; ) { if ( pevent->ev_que->evque[getix] == pevent ) { assert ( pevent->ev_que->nCanceled < USHRT_MAX ); pevent->ev_que->nCanceled++; event_remove ( pevent->ev_que, getix, &canceledEvent ); } + getix = RNGINC ( getix ); + if ( getix == pevent->ev_que->getix ) { + break; + } } assert ( pevent->npend == 0u );