Update dependency org.reactivestreams:reactive-streams-tck to v1.0.3 - autoclosed #512
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.0.2
->1.0.3
Release Notes
reactive-streams/reactive-streams
v1.0.3
Compare Source
Announcement:
We—the Reactive Streams community—are pleased to announce the immediate availability of
Reactive Streams 1.0.3
. This update toReactive Streams
brings the following improvements over1.0.2
.Highlights:
Specification clarifications 1.0.3
Glossary term "External synchronization" replaced by "Serial(ly)"
1.0.2: Access coordination for thread safety purposes implemented outside of the constructs defined in this specification, using techniques such as, but not limited to,
atomics
,monitors
, orlocks
.1.0.3 In the context of a Signal, non-overlapping. In the context of the JVM, calls to methods on an object are serial if and only if there is a happens-before relationship between those calls (implying also that the calls do not overlap). When the calls are performed asynchronously, coordination to establish the happens-before relationship is to be implemented using techniques such as, but not limited to, atomics, monitors, or locks.
Publisher Rule 3 (Rule and Intent clarified)
1.0.2:
onSubscribe
,onNext
,onError
andonComplete
signaled to aSubscriber
MUST be signaled in a thread-safe manner—and if performed by multiple threads—use external synchronization.The intent of this rule is to make it clear that external synchronization must be employed if the Publisher intends to send signals from multiple/different threads.
1.0.3:
onSubscribe
,onNext
,onError
andonComplete
signaled to aSubscriber
MUST be signaled serially.The intent of this rule is to permit the signalling of signals (including from multiple threads) if and only if a happens-before relation between each of the signals is established.
Subscriber Rule 1 (Intent clarified)
1.0.2: A
Subscriber
MUST signal demand viaSubscription.request(long n)
to receiveonNext
signals.The intent of this rule is to establish that it is the responsibility of the Subscriber to signal when, and how many, elements it is able and willing to receive.
1.0.3: A
Subscriber
MUST signal demand viaSubscription.request(long n)
to receiveonNext
signals.The intent of this rule is to establish that it is the responsibility of the Subscriber to decide when and how many elements it is able and willing to receive. To avoid signal reordering caused by reentrant Subscription methods, it is strongly RECOMMENDED for synchronous Subscriber implementations to invoke Subscription methods at the very end of any signal processing. It is RECOMMENDED that Subscribers request the upper limit of what they are able to process, as requesting only one element at a time results in an inherently inefficient "stop-and-wait" protocol.
Subscriber Rule 5 (Intent clarified)
1.0.2: A
Subscriber
MUST callSubscription.cancel()
on the givenSubscription
after anonSubscribe
signal if it already has an activeSubscription
The intent of this rule is to prevent that two, or more, separate Publishers from thinking that they can interact with the same Subscriber. Enforcing this rule means that resource leaks are prevented since extra Subscriptions will be cancelled.
1.0.3: A
Subscriber
MUST callSubscription.cancel()
on the givenSubscription
after anonSubscribe
signal if it already has an activeSubscription
The intent of this rule is to prevent that two, or more, separate Publishers from trying to interact with the same Subscriber. Enforcing this rule means that resource leaks are prevented since extra Subscriptions will be cancelled. Failure to conform to this rule may lead to violations of Publisher rule 1, amongst others. Such violations can lead to hard-to-diagnose bugs.
Subscriber Rule 7 (Rule and Intent clarified)
1.0.2: A
Subscriber
MUST ensure that all calls on itsSubscription
take place from the same thread or provide for respective external synchronization.The intent of this rule is to establish that external synchronization must be added if a Subscriber will be using a Subscription concurrently by two or more threads.
1.0.3: A Subscriber MUST ensure that all calls on its Subscription's request and cancel methods are performed serially.
The intent of this rule is to permit the calling of the request and cancel methods (including from multiple threads) if and only if a happens-before relation between each of the calls is established.
TCK alterations 1.0.3
PublisherVerification.optional_spec105_emptyStreamMustTerminateBySignallingOnComplete
fails if the publisher completes synchronously (#422)createFailedFlowPublisher
returns null (#425)required_spec208_mustBePreparedToReceiveOnNextSignalsAfterHavingCalledSubscriptionCancel
does not wait for request before invoking onNext (#277)Contributors
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled due to failing status checks.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.