vapi: Add option to dispatch with timeout

Type: improvement

Change-Id: I606efc90d9b1b8e2a2590a8b4e0021e2508642b2
Signed-off-by: Dau Do <daudo@yahoo.com>
diff --git a/src/vpp-api/vapi/vapi.c b/src/vpp-api/vapi/vapi.c
index 022f023..26c5708 100644
--- a/src/vpp-api/vapi/vapi.c
+++ b/src/vpp-api/vapi/vapi.c
@@ -1792,14 +1792,15 @@
 }
 
 vapi_error_e
-vapi_dispatch_one (vapi_ctx_t ctx)
+vapi_dispatch_one_timedwait (vapi_ctx_t ctx, u32 wait_time)
 {
   VAPI_DBG ("vapi_dispatch_one()");
   void *msg;
   uword size;
   svm_q_conditional_wait_t cond =
-    vapi_is_nonblocking (ctx) ? SVM_Q_NOWAIT : SVM_Q_WAIT;
-  vapi_error_e rv = vapi_recv (ctx, &msg, &size, cond, 0);
+    vapi_is_nonblocking (ctx) ? (wait_time ? SVM_Q_TIMEDWAIT : SVM_Q_NOWAIT) :
+				      SVM_Q_WAIT;
+  vapi_error_e rv = vapi_recv (ctx, &msg, &size, cond, wait_time);
   if (VAPI_OK != rv)
     {
       VAPI_DBG ("vapi_recv failed with rv=%d", rv);
@@ -1847,6 +1848,12 @@
 }
 
 vapi_error_e
+vapi_dispatch_one (vapi_ctx_t ctx)
+{
+  return vapi_dispatch_one_timedwait (ctx, 0);
+}
+
+vapi_error_e
 vapi_dispatch (vapi_ctx_t ctx)
 {
   vapi_error_e rv = VAPI_OK;