Improve the round robin stream scheduler.
Approved by: rrs (mentor) MFC after: 3 days
This commit is contained in:
parent
dd2ffb07c6
commit
ac9bce0f3b
@ -7169,20 +7169,14 @@ sctp_select_a_stream(struct sctp_tcb *stcb, struct sctp_association *asoc)
|
||||
|
||||
/* Find the next stream to use */
|
||||
if (asoc->last_out_stream == NULL) {
|
||||
strq = asoc->last_out_stream = TAILQ_FIRST(&asoc->out_wheel);
|
||||
if (asoc->last_out_stream == NULL) {
|
||||
/* huh nothing on the wheel, TSNH */
|
||||
return (NULL);
|
||||
strq = TAILQ_FIRST(&asoc->out_wheel);
|
||||
} else {
|
||||
strq = TAILQ_NEXT(asoc->last_out_stream, next_spoke);
|
||||
if (strq == NULL) {
|
||||
strq = TAILQ_FIRST(&asoc->out_wheel);
|
||||
}
|
||||
goto done_it;
|
||||
}
|
||||
strq = TAILQ_NEXT(asoc->last_out_stream, next_spoke);
|
||||
done_it:
|
||||
if (strq == NULL) {
|
||||
strq = asoc->last_out_stream = TAILQ_FIRST(&asoc->out_wheel);
|
||||
}
|
||||
return (strq);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user