-static const char *
-vppcom_app_state_str (app_state_t state)
-{
- char *st;
-
- switch (state)
- {
- case STATE_APP_START:
- st = "STATE_APP_START";
- break;
-
- case STATE_APP_CONN_VPP:
- st = "STATE_APP_CONN_VPP";
- break;
-
- case STATE_APP_ENABLED:
- st = "STATE_APP_ENABLED";
- break;
-
- case STATE_APP_ATTACHED:
- st = "STATE_APP_ATTACHED";
- break;
-
- default:
- st = "UNKNOWN_APP_STATE";
- break;
- }
-
- return st;
-}
-
-int
-vcl_wait_for_app_state_change (app_state_t app_state)
-{
- vcl_worker_t *wrk = vcl_worker_get_current ();
- f64 timeout = clib_time_now (&wrk->clib_time) + vcm->cfg.app_timeout;
-
- while (clib_time_now (&wrk->clib_time) < timeout)
- {
- if (vcm->app_state == app_state)
- return VPPCOM_OK;
- if (vcm->app_state == STATE_APP_FAILED)
- return VPPCOM_ECONNABORTED;
- }
- VDBG (0, "timeout waiting for state %s (%d)",
- vppcom_app_state_str (app_state), app_state);
- vcl_evt (VCL_EVT_SESSION_TIMEOUT, vcm, app_state);
-
- return VPPCOM_ETIMEDOUT;
-}
-