blob: ad06cc100bc4e9bd2116686bd285f30925ece572 [file] [log] [blame] [view]
hadihariri7db55532018-09-15 10:35:08 +02001The main coroutines guide has moved to the [docs folder](docs/coroutines-guide.md) and split up into smaller documents.
Roman Elizarov715acd32018-10-08 20:20:12 +03002
3## Table of contents
4
5<!--- TOC_REF docs/basics.md -->
6* <a name='coroutine-basics'></a>[Coroutine basics](docs/basics.md#coroutine-basics)
7 * <a name='your-first-coroutine'></a>[Your first coroutine](docs/basics.md#your-first-coroutine)
8 * <a name='bridging-blocking-and-non-blocking-worlds'></a>[Bridging blocking and non-blocking worlds](docs/basics.md#bridging-blocking-and-non-blocking-worlds)
9 * <a name='waiting-for-a-job'></a>[Waiting for a job](docs/basics.md#waiting-for-a-job)
10 * <a name='structured-concurrency'></a>[Structured concurrency](docs/basics.md#structured-concurrency)
11 * <a name='scope-builder'></a>[Scope builder](docs/basics.md#scope-builder)
12 * <a name='extract-function-refactoring'></a>[Extract function refactoring](docs/basics.md#extract-function-refactoring)
13 * <a name='coroutines-are-light-weight'></a>[Coroutines ARE light-weight](docs/basics.md#coroutines-are-light-weight)
14 * <a name='global-coroutines-are-like-daemon-threads'></a>[Global coroutines are like daemon threads](docs/basics.md#global-coroutines-are-like-daemon-threads)
15<!--- TOC_REF docs/cancellation-and-timeouts.md -->
16* <a name='cancellation-and-timeouts'></a>[Cancellation and timeouts](docs/cancellation-and-timeouts.md#cancellation-and-timeouts)
17 * <a name='cancelling-coroutine-execution'></a>[Cancelling coroutine execution](docs/cancellation-and-timeouts.md#cancelling-coroutine-execution)
18 * <a name='cancellation-is-cooperative'></a>[Cancellation is cooperative](docs/cancellation-and-timeouts.md#cancellation-is-cooperative)
19 * <a name='making-computation-code-cancellable'></a>[Making computation code cancellable](docs/cancellation-and-timeouts.md#making-computation-code-cancellable)
20 * <a name='closing-resources-with-finally'></a>[Closing resources with finally](docs/cancellation-and-timeouts.md#closing-resources-with-finally)
21 * <a name='run-non-cancellable-block'></a>[Run non-cancellable block](docs/cancellation-and-timeouts.md#run-non-cancellable-block)
22 * <a name='timeout'></a>[Timeout](docs/cancellation-and-timeouts.md#timeout)
23<!--- TOC_REF docs/composing-suspending-functions.md -->
24* <a name='composing-suspending-functions'></a>[Composing suspending functions](docs/composing-suspending-functions.md#composing-suspending-functions)
25 * <a name='sequential-by-default'></a>[Sequential by default](docs/composing-suspending-functions.md#sequential-by-default)
26 * <a name='concurrent-using-async'></a>[Concurrent using async](docs/composing-suspending-functions.md#concurrent-using-async)
27 * <a name='lazily-started-async'></a>[Lazily started async](docs/composing-suspending-functions.md#lazily-started-async)
28 * <a name='async-style-functions'></a>[Async-style functions](docs/composing-suspending-functions.md#async-style-functions)
29 * <a name='structured-concurrency-with-async'></a>[Structured concurrency with async](docs/composing-suspending-functions.md#structured-concurrency-with-async)
30<!--- TOC_REF docs/coroutine-context-and-dispatchers.md -->
31* <a name='coroutine-context-and-dispatchers'></a>[Coroutine context and dispatchers](docs/coroutine-context-and-dispatchers.md#coroutine-context-and-dispatchers)
32 * <a name='dispatchers-and-threads'></a>[Dispatchers and threads](docs/coroutine-context-and-dispatchers.md#dispatchers-and-threads)
33 * <a name='unconfined-vs-confined-dispatcher'></a>[Unconfined vs confined dispatcher](docs/coroutine-context-and-dispatchers.md#unconfined-vs-confined-dispatcher)
34 * <a name='debugging-coroutines-and-threads'></a>[Debugging coroutines and threads](docs/coroutine-context-and-dispatchers.md#debugging-coroutines-and-threads)
35 * <a name='jumping-between-threads'></a>[Jumping between threads](docs/coroutine-context-and-dispatchers.md#jumping-between-threads)
36 * <a name='job-in-the-context'></a>[Job in the context](docs/coroutine-context-and-dispatchers.md#job-in-the-context)
37 * <a name='children-of-a-coroutine'></a>[Children of a coroutine](docs/coroutine-context-and-dispatchers.md#children-of-a-coroutine)
38 * <a name='parental-responsibilities'></a>[Parental responsibilities](docs/coroutine-context-and-dispatchers.md#parental-responsibilities)
39 * <a name='naming-coroutines-for-debugging'></a>[Naming coroutines for debugging](docs/coroutine-context-and-dispatchers.md#naming-coroutines-for-debugging)
40 * <a name='combining-context-elements'></a>[Combining context elements](docs/coroutine-context-and-dispatchers.md#combining-context-elements)
Vsevolod Tolstopyatove9123ca2019-03-01 15:40:16 +030041 * <a name='coroutine-scope'></a>[Coroutine scope](docs/coroutine-context-and-dispatchers.md#coroutine-scope)
Roman Elizarov715acd32018-10-08 20:20:12 +030042 * <a name='thread-local-data'></a>[Thread-local data](docs/coroutine-context-and-dispatchers.md#thread-local-data)
43<!--- TOC_REF docs/exception-handling.md -->
44* <a name='exception-handling'></a>[Exception handling](docs/exception-handling.md#exception-handling)
45 * <a name='exception-propagation'></a>[Exception propagation](docs/exception-handling.md#exception-propagation)
46 * <a name='coroutineexceptionhandler'></a>[CoroutineExceptionHandler](docs/exception-handling.md#coroutineexceptionhandler)
47 * <a name='cancellation-and-exceptions'></a>[Cancellation and exceptions](docs/exception-handling.md#cancellation-and-exceptions)
48 * <a name='exceptions-aggregation'></a>[Exceptions aggregation](docs/exception-handling.md#exceptions-aggregation)
49* <a name='supervision'></a>[Supervision](docs/exception-handling.md#supervision)
50 * <a name='supervision-job'></a>[Supervision job](docs/exception-handling.md#supervision-job)
51 * <a name='supervision-scope'></a>[Supervision scope](docs/exception-handling.md#supervision-scope)
52 * <a name='exceptions-in-supervised-coroutines'></a>[Exceptions in supervised coroutines](docs/exception-handling.md#exceptions-in-supervised-coroutines)
53<!--- TOC_REF docs/channels.md -->
54* <a name='channels-experimental'></a>[Channels (experimental)](docs/channels.md#channels-experimental)
55 * <a name='channel-basics'></a>[Channel basics](docs/channels.md#channel-basics)
56 * <a name='closing-and-iteration-over-channels'></a>[Closing and iteration over channels](docs/channels.md#closing-and-iteration-over-channels)
57 * <a name='building-channel-producers'></a>[Building channel producers](docs/channels.md#building-channel-producers)
58 * <a name='pipelines'></a>[Pipelines](docs/channels.md#pipelines)
59 * <a name='prime-numbers-with-pipeline'></a>[Prime numbers with pipeline](docs/channels.md#prime-numbers-with-pipeline)
60 * <a name='fan-out'></a>[Fan-out](docs/channels.md#fan-out)
61 * <a name='fan-in'></a>[Fan-in](docs/channels.md#fan-in)
62 * <a name='buffered-channels'></a>[Buffered channels](docs/channels.md#buffered-channels)
63 * <a name='channels-are-fair'></a>[Channels are fair](docs/channels.md#channels-are-fair)
64 * <a name='ticker-channels'></a>[Ticker channels](docs/channels.md#ticker-channels)
65<!--- TOC_REF docs/shared-mutable-state-and-concurrency.md -->
66* <a name='shared-mutable-state-and-concurrency'></a>[Shared mutable state and concurrency](docs/shared-mutable-state-and-concurrency.md#shared-mutable-state-and-concurrency)
67 * <a name='the-problem'></a>[The problem](docs/shared-mutable-state-and-concurrency.md#the-problem)
68 * <a name='volatiles-are-of-no-help'></a>[Volatiles are of no help](docs/shared-mutable-state-and-concurrency.md#volatiles-are-of-no-help)
69 * <a name='thread-safe-data-structures'></a>[Thread-safe data structures](docs/shared-mutable-state-and-concurrency.md#thread-safe-data-structures)
70 * <a name='thread-confinement-fine-grained'></a>[Thread confinement fine-grained](docs/shared-mutable-state-and-concurrency.md#thread-confinement-fine-grained)
71 * <a name='thread-confinement-coarse-grained'></a>[Thread confinement coarse-grained](docs/shared-mutable-state-and-concurrency.md#thread-confinement-coarse-grained)
72 * <a name='mutual-exclusion'></a>[Mutual exclusion](docs/shared-mutable-state-and-concurrency.md#mutual-exclusion)
73 * <a name='actors'></a>[Actors](docs/shared-mutable-state-and-concurrency.md#actors)
74<!--- TOC_REF docs/select-expression.md -->
75* <a name='select-expression-experimental'></a>[Select expression (experimental)](docs/select-expression.md#select-expression-experimental)
76 * <a name='selecting-from-channels'></a>[Selecting from channels](docs/select-expression.md#selecting-from-channels)
77 * <a name='selecting-on-close'></a>[Selecting on close](docs/select-expression.md#selecting-on-close)
78 * <a name='selecting-to-send'></a>[Selecting to send](docs/select-expression.md#selecting-to-send)
79 * <a name='selecting-deferred-values'></a>[Selecting deferred values](docs/select-expression.md#selecting-deferred-values)
80 * <a name='switch-over-a-channel-of-deferred-values'></a>[Switch over a channel of deferred values](docs/select-expression.md#switch-over-a-channel-of-deferred-values)
81<!--- END -->