Skip to content

Commit

Permalink
Add basic cancellation docs
Browse files Browse the repository at this point in the history
  • Loading branch information
kelunik committed May 16, 2017
1 parent be2a9f8 commit 47357f2
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions docs/cancellation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Cancellation

Amp provides primitives to allow the cancellation of operations, namely `CancellationTokenSource` and `CancellationToken`.

Every operation that supports cancellation accepts an instance of `CancellationToken` as (optional) argument. The operation then subscribes with `CancellationToken::subscribe()` to any cancellation requests that might happen. If the operation consists of any sub-operations that support cancellation, it passes that same `CancellationToken` instance down to these sub-operations.

The original caller creates a `CancellationToken` by creating an instance of `CancellationTokenSource` and passing `$cancellationTokenSource->getToken()` to the operation. Only the original caller has access to the `CancellationTokenSource` and can cancel the operation using `CancellationTokenSource::cancel()`.

> **Note:** Cancellations are advisory only and have don't care semantics. A DNS resolver might ignore cancellation requests after the query has been sent as the response has to be processed anyway and can still be cached. An HTTP client might continue a nearly finished HTTP request to reuse the connection, but might abort a chunked encoding response as it cannot know the end.

0 comments on commit 47357f2

Please sign in to comment.