From: Dave Wallace Date: Wed, 29 Nov 2017 08:24:06 +0000 (-0500) Subject: VCL: drain the vpp app event queue. X-Git-Tag: v18.04-rc0~146 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=16cb408f146ad1b7fb7bbf94f746b3a1221cc9be VCL: drain the vpp app event queue. Change-Id: If988b8ad33465819d0e5ab9ef92ffd69b3c7851c Signed-off-by: Dave Wallace --- diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index e180967339b..7fb8e9698d8 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -2850,6 +2850,19 @@ vppcom_session_read_ready (session_t * session, u32 session_index) } } rv = ready; + + if (vcm->app_event_queue->cursize && + !pthread_mutex_trylock (&vcm->app_event_queue->mutex)) + { + u32 i, n_to_dequeue = vcm->app_event_queue->cursize; + session_fifo_event_t e; + + for (i = 0; i < n_to_dequeue; i++) + unix_shared_memory_queue_sub_raw (vcm->app_event_queue, (u8 *) & e); + + pthread_mutex_unlock (&vcm->app_event_queue->mutex); + } + done: return rv; }