Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
tcp: force deschedule if no send space available
[vpp.git]
/
src
/
vnet
/
session
/
session.c
diff --git
a/src/vnet/session/session.c
b/src/vnet/session/session.c
index
15d949c
..
8b268c0
100644
(file)
--- a/
src/vnet/session/session.c
+++ b/
src/vnet/session/session.c
@@
-130,7
+130,8
@@
session_add_self_custom_tx_evt (transport_connection_t * tc, u8 has_prio)
if (!(s->flags & SESSION_F_CUSTOM_TX))
{
s->flags |= SESSION_F_CUSTOM_TX;
if (!(s->flags & SESSION_F_CUSTOM_TX))
{
s->flags |= SESSION_F_CUSTOM_TX;
- if (svm_fifo_set_event (s->tx_fifo))
+ if (svm_fifo_set_event (s->tx_fifo)
+ || transport_connection_is_descheduled (tc))
{
session_worker_t *wrk;
session_evt_elt_t *elt;
{
session_worker_t *wrk;
session_evt_elt_t *elt;
@@
-141,6
+142,7
@@
session_add_self_custom_tx_evt (transport_connection_t * tc, u8 has_prio)
elt = session_evt_alloc_old (wrk);
elt->evt.session_index = tc->s_index;
elt->evt.event_type = SESSION_IO_EVT_TX;
elt = session_evt_alloc_old (wrk);
elt->evt.session_index = tc->s_index;
elt->evt.event_type = SESSION_IO_EVT_TX;
+ tc->flags &= ~TRANSPORT_CONNECTION_F_DESCHED;
}
}
}
}
}
}