vcl: support for eventfd mq signaling
[vpp.git] / src / vnet / session / session.c
index 897cb1a..6378fe8 100644 (file)
@@ -753,9 +753,10 @@ stream_session_disconnect_notify (transport_connection_t * tc)
   stream_session_t *s;
 
   s = session_get (tc->s_index, tc->thread_index);
-  server = application_get (s->app_index);
-  server->cb_fns.session_disconnect_callback (s);
   s->session_state = SESSION_STATE_CLOSING;
+  server = application_get_if_valid (s->app_index);
+  if (server)
+    server->cb_fns.session_disconnect_callback (s);
 }
 
 /**
@@ -1244,6 +1245,11 @@ session_vpp_event_queues_allocate (session_manager_main_t * smm)
       cfg->q_nitems = evt_q_length;
       cfg->ring_cfgs = rc;
       smm->vpp_event_queues[i] = svm_msg_q_alloc (cfg);
+      if (smm->evt_qs_use_memfd_seg)
+       {
+         if (svm_msg_q_alloc_consumer_eventfd (smm->vpp_event_queues[i]))
+           clib_warning ("eventfd returned");
+       }
     }
 
   if (smm->evt_qs_use_memfd_seg)