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
* Reword the BufferOverflow KDoc for consistency in the entry list
Before, the description of `SUSPEND` was phrased in terms of what
will happen, while the rest of the entries were described in an
imperative form, that is, as commands as to what should happen.
Now, all entries are clarified using a descriptive form.
* Describe the situations in which BufferOverflow options are useful
* Expand the documentation for channel consumption functions
Added explanations of what exactly happens on each code path,
how these operators ensure that all elements get processed
eventually, and provided some usage examples.
* Specify the behavior of Channel.consumeEach on scope cancellation
* Extend the documentation for `ProducerScope.awaitClose`
Filed #4149
* Reword a misleading statement in the `produce` documentation
Currently, the documentation states that uncaught exceptions will
lead to the channel being closed.
"Uncaught exceptions" is a special thing in kotlinx.coroutines:
<https://kotlinlang.org/docs/exception-handling.html#coroutineexceptionhandler>
These are not just exceptions that are not wrapped in a try-catch,
these are exceptions that can not be propagated to a root coroutine
via structured concurrency.
Fixed the wording and added a test that shows that uncaught
coroutine exceptions are not handled in any special manner.
* Document `awaitClose` and `invokeOnClose` interactions
Turns out, only a single invocation of either `awaitClose` or
`invokeOnClose` is allowed in the lifetime of a channel.
Document that.
* Document how consuming operators handle failed channels
* Document cancelling the coroutine but not the channel of `produce`
* Don't use the magic constant 0 in default parameters of `produce`
Instead, use `Channel.RENDEZVOUS` so that a meaningful constant
is shown in Dokka's output.
* Fix an incorrect statement in `produce` docs
Currently, the docs claim that attempting to receive from a failed
channel fails. However, the documentation for `Channel` itself
correctly states that before `receive` fails, the elements that
were already sent will be processed first. Corrected this and
added a test demonstrating the behavior.
* Add samples to the `produce` documentation and restructure it
0 commit comments