segment_manager_free (sm);
}
- pool_put (app_workers, app_wrk);
if (CLIB_DEBUG)
clib_memset (app_wrk, 0xfe, sizeof (*app_wrk));
+ pool_put (app_workers, app_wrk);
}
application_t *
return 0;
}
+int
+app_worker_migrate_notify (app_worker_t * app_wrk, session_t * s,
+ session_handle_t new_sh)
+{
+ application_t *app = application_get (app_wrk->app_index);
+ app->cb_fns.session_migrate_callback (s, new_sh);
+ return 0;
+}
+
int
app_worker_own_session (app_worker_t * app_wrk, session_t * s)
{
svm_msg_q_msg_t msg;
svm_msg_q_t *mq;
+ if (app_worker_application_is_builtin (app_wrk))
+ return app_worker_builtin_rx (app_wrk, s);
+
+ /* Make sure the session is in established state within external apps.
+ * Should be removed once we confirm closes to apps */
if (PREDICT_FALSE (s->session_state != SESSION_STATE_READY
&& s->session_state != SESSION_STATE_LISTENING))
return 0;
- if (app_worker_application_is_builtin (app_wrk))
- return app_worker_builtin_rx (app_wrk, s);
-
if (svm_fifo_has_event (s->rx_fifo))
return 0;