Skip to content

Dispatcher internal await is uncancelable in 3.5.x #3534

@djspiewak

Description

@djspiewak

Relevant wayfinder:

              if (regs.isEmpty) {
                // TODO this needs to be modified to be cancelable
                F.async_[Unit] { cb =>
                  if (!latch.compareAndSet(Noop, () => cb(Completed))) {
                    // state was changed between when we last set the latch and now; complete the callback immediately
                    cb(Completed)
                  }
                }

This code predates the async cancelability change and I'm relatively certain that it is intended to be cancelable. We don't have any tests which exercise that codepath though, so this qualifies as an invisibug.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions