Skip to content

Substantial mistake in documentation of Supervision #4004

Open
@DorBSoft

Description

/docs/topics/exception-handling.md

The "Supervision" section appears to be wrong throughout its text by using the term "cancellation" instead of the term "failure".
I.e. the text is suggesting it is about "cancel()", while it is actually about throwing any exception but "CancellationException".

"cancellation is a bidirectional relationship propagating through the whole hierarchy of coroutines.".
Wrong. "Failure is a bidirectional relationship...". "cancel()" is one-directional.

"It is similar to a regular Job with the only exception that cancellation is propagated only downwards."
Wrong.

If there is a need, the fact that cancel() is not bidirectional can be easily seen by doing the following changed in the example code:

val supervisor = coroutineContext//SupervisorJob()
...
cancel/throw AssertionError/("The first child is cancelled")
...
secondChild.join()//order replaced
supervisor.cancel()

Metadata

Assignees

No one assigned

    Labels

    bugguideIssues with the coroutines guide on the website

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions