misc: refactor clib_bitmap_foreach macro
[vpp.git] / src / vcl / vppcom.c
index da7693f..58c13c2 100644 (file)
@@ -1175,7 +1175,7 @@ vppcom_session_unbind (u32 session_handle)
       vcl_session_table_del_vpp_handle (wrk, accepted_msg->handle);
       vcl_send_session_accepted_reply (session->vpp_evt_q,
                                       accepted_msg->context,
-                                      session->vpp_handle, -1);
+                                      accepted_msg->handle, -1);
     }
   clib_fifo_free (session->accept_evts_fifo);
 
@@ -1284,10 +1284,10 @@ vppcom_app_destroy (void)
   current_wrk = vcl_worker_get_current ();
 
   /* *INDENT-OFF* */
-  pool_foreach (wrk, vcm->workers, ({
+  pool_foreach (wrk, vcm->workers)  {
     if (current_wrk != wrk)
       vcl_worker_cleanup (wrk, 0 /* notify vpp */ );
-  }));
+  }
   /* *INDENT-ON* */
 
   vcl_api_detach (current_wrk);
@@ -1909,10 +1909,10 @@ read_again:
          e->session_index = s->session_index;
        }
     }
-  else if (PREDICT_FALSE (rv < n))
+  else if (PREDICT_FALSE (rv < n && !s->is_dgram))
     {
       /* More data enqueued while reading. Try to drain it
-       * or fill the buffer */
+       * or fill the buffer. Avoid doing that for dgrams */
       buf += rv;
       n -= rv;
       goto read_again;
@@ -2454,7 +2454,7 @@ vppcom_select (int n_bits, vcl_si_set * read_map, vcl_si_set * write_map,
     goto check_rd;
 
   /* *INDENT-OFF* */
-  clib_bitmap_foreach (sid, wrk->wr_bitmap, ({
+  clib_bitmap_foreach (sid, wrk->wr_bitmap)  {
     if (!(session = vcl_session_get (wrk, sid)))
       {
        clib_bitmap_set_no_check ((uword*)write_map, sid, 1);
@@ -2469,13 +2469,13 @@ vppcom_select (int n_bits, vcl_si_set * read_map, vcl_si_set * write_map,
       }
     else
       svm_fifo_add_want_deq_ntf (session->tx_fifo, SVM_FIFO_WANT_DEQ_NOTIF);
-  }));
+  }
 
 check_rd:
   if (!read_map)
     goto check_mq;
 
-  clib_bitmap_foreach (sid, wrk->rd_bitmap, ({
+  clib_bitmap_foreach (sid, wrk->rd_bitmap)  {
     if (!(session = vcl_session_get (wrk, sid)))
       {
        clib_bitmap_set_no_check ((uword*)read_map, sid, 1);
@@ -2488,7 +2488,7 @@ check_rd:
         clib_bitmap_set_no_check ((uword*)read_map, sid, 1);
         bits_set++;
       }
-  }));
+  }
   /* *INDENT-ON* */
 
 check_mq: