session: fix transport closed and disconnect race
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie7ff4bac22e9dbb449610072b52d1ec4e46fe757
This commit is contained in:

committed by
Dave Barach

parent
4af3fdfdd0
commit
7c90be5e29
@ -162,8 +162,10 @@ app_worker_flush_events_inline (app_worker_t *app_wrk, u32 thread_index,
|
||||
{
|
||||
if (old_state >= SESSION_STATE_TRANSPORT_CLOSING)
|
||||
{
|
||||
session_set_state (s, old_state);
|
||||
app_worker_close_notify (app_wrk, s);
|
||||
session_set_state (s,
|
||||
clib_max (old_state, s->session_state));
|
||||
if (!(s->flags & SESSION_F_APP_CLOSED))
|
||||
app->cb_fns.session_disconnect_callback (s);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -188,8 +190,9 @@ app_worker_flush_events_inline (app_worker_t *app_wrk, u32 thread_index,
|
||||
}
|
||||
if (old_state >= SESSION_STATE_TRANSPORT_CLOSING)
|
||||
{
|
||||
session_set_state (s, old_state);
|
||||
app_worker_close_notify (app_wrk, s);
|
||||
session_set_state (s, clib_max (old_state, s->session_state));
|
||||
if (!(s->flags & SESSION_F_APP_CLOSED))
|
||||
app->cb_fns.session_disconnect_callback (s);
|
||||
}
|
||||
break;
|
||||
case SESSION_CTRL_EVT_DISCONNECTED:
|
||||
|
Reference in New Issue
Block a user