You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor BackendMessageSubscriber and Conversation.
Encapsulate access to nested sink and demand fields with methods. Replace Atomic* fields with volatile ones that are updated through AtomicLongFieldUpdater. Use Operators.addCap(…) to accumulate demand and to prevent overflow.
Introduce buffer for received Conversation that do not have demand. Introduce drainloop to drain the buffer on request(n). Extract constants. Use Operators.on…Dropped(…) to propagate dropped signals.
[resolves#231]
* @param requests the publisher of outbound messages
83
-
* @return a {@link Flux} of incoming messages that ends with the end of the frame (i.e. reception of a {@link ReadyForQuery} message.
82
+
* @param takeUntil the predicate that signals the resulting {@link Flux} to terminate. Typically a check if the {@link BackendMessage} is the last frame of a conversation. Note that the
83
+
* {@link BackendMessage} that matches the predicate is not emitted through the resulting {@link Flux}.
84
+
* @param requests the publisher of outbound messages
85
+
* @return a {@link Flux} of incoming messages that ends with the end of conversation matching {@code takeUntil}. (i.e. reception of a {@link ReadyForQuery} message.
84
86
* @throws IllegalArgumentException if {@code requests} is {@code null}
0 commit comments