Skip to content

Commit

Permalink
Implement variant of windowTimeout with fairBackpressure (#3054)
Browse files Browse the repository at this point in the history
This commit adds a variant of windowTimeout that tries
to honor backpressure of a slow downstream Subscriber
better than the current implementation (which just errors
in the face of backpressure and timeouts).

The operator tries to request the minimum possible amount
from upstream to honor the maxSize, but if a timeout occurs
before all these elements could arrive - and if no more window
is requested from downstream, the elements  get temporarily
stored into a pending window that is opened on timeout, until
1 more window is requested.

See also #1898 and #2920.
Fixes #1099.
  • Loading branch information
OlegDokuka authored Jun 10, 2022
1 parent 812b471 commit f119b13
Show file tree
Hide file tree
Showing 8 changed files with 3,125 additions and 161 deletions.
1 change: 1 addition & 0 deletions reactor-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ blockHoundTest {

jcstress {
mode = 'quick' //quick, default, tough
jcstressDependency 'org.openjdk.jcstress:jcstress-core:0.15'
}

// inherit basic test task + common configuration in root
Expand Down
Loading

0 comments on commit f119b13

Please sign in to comment.