Skip to content

[Q] jthread with shared stop_source #45

Description

@perrog

Is there any particular reason why jthread does not allow constructing with external stop_source?
Was this ever considered in the standards?
Can't see any problems with such constructor, so just curious why it isn't in the library.
Well, the only ambiguity case I can find is whatever to do if the stop_source is already stopped.

int main()
{
  std::stop_source s;
  std::jthread p1{s, [](std::stop_token t){ // (does not work)
    doWork1(t);                             // t = s.get_token()
  }};

  std::jthread p2{s, [](std::stop_token t){  // (does not work)
    doWork2(t);                              // t = s.get_token()
  }};

  s.request_stop(); // stop both threads.
}

Obviously, this is trivial example, but more realistic scenarios can be a thread group, or dependent threads, that may benefit a shared stop_source.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions