From feef36cc2f2be19de072845e176459fb069cacd4 Mon Sep 17 00:00:00 2001 From: Oleh Dokuka Date: Wed, 27 Feb 2019 11:12:51 +0200 Subject: [PATCH 1/2] rollbacks thread-safe notion and fixes typos --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b62f55c..7cf33051 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ followed by a possibly unbounded number of `onNext` signals (as requested by `Su | Terminal state | For a Publisher: When `onComplete` or `onError` has been signalled. For a Subscriber: When an `onComplete` or `onError` has been received.| | NOP | Execution that has no detectable effect to the calling thread, and can as such safely be called any number of times.| | Serial(ly) | In the context of a [Signal](#term_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. | +| Thread-safe | Can be safely invoked synchronously, or asychronously, without requiring external synchronization to ensure program correctness. | ### SPECIFICATION @@ -142,7 +143,7 @@ public interface Subscriber { | 6 | A `Subscriber` MUST call `Subscription.cancel()` if the `Subscription` is no longer needed. | | [:bulb:](#2.6 "2.6 explained") | *The intent of this rule is to establish that Subscribers cannot just throw Subscriptions away when they are no longer needed, they have to call `cancel` so that resources held by that Subscription can be safely, and timely, reclaimed. An example of this would be a Subscriber which is only interested in a specific element, which would then cancel its Subscription to signal its completion to the Publisher.* | | 7 | A Subscriber MUST ensure that all calls on its Subscription's request and cancel methods are performed [serially](#term_serially). | -| [:bulb:](#2.7 "2.7 explained") | *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..* | +| [:bulb:](#2.7 "2.7 explained") | *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.* | | 8 | A `Subscriber` MUST be prepared to receive one or more `onNext` signals after having called `Subscription.cancel()` if there are still requested elements pending [see [3.12](#3.12)]. `Subscription.cancel()` does not guarantee to perform the underlying cleaning operations immediately. | | [:bulb:](#2.8 "2.8 explained") | *The intent of this rule is to highlight that there may be a delay between calling `cancel` and the Publisher observing that cancellation.* | | 9 | A `Subscriber` MUST be prepared to receive an `onComplete` signal with or without a preceding `Subscription.request(long n)` call. | From 74f02c11e9592978e0018e58a6ca0a1d774ed4ac Mon Sep 17 00:00:00 2001 From: Oleh Dokuka Date: Tue, 26 Feb 2019 15:57:46 +0200 Subject: [PATCH 2/2] Update CopyrightWaivers.txt --- CopyrightWaivers.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CopyrightWaivers.txt b/CopyrightWaivers.txt index af03d01d..76456b36 100644 --- a/CopyrightWaivers.txt +++ b/CopyrightWaivers.txt @@ -42,3 +42,4 @@ angelsanz | Ángel Sanz, angelsanz@users.noreply.github.com shenghaiyang | 盛海洋, shenghaiyang@aliyun.com kiiadi | Kyle Thomson, kylthoms@amazon.com, Amazon.com jroper | James Roper, james@jazzy.id.au, Lightbend Inc. +olegdokuka | Oleh Dokuka, shadowgun@.i.ua, Netifi Inc.