Skip to content

Stop using boost::thread_group #17307

@laanwj

Description

@laanwj

boost::thread_group and its associated join/interrupt mechanism has no equivalent in any C++XX standard.

The interrupt mechanism is basically a condition variable, per thread group, that interrupts boost::this_thread::sleep_for and boost::this_thread::sleep and raises boost::thread_interrupted in the member thread when group.interrupt() is called.

Luckily, it's only used for three things:

  • CScheduler
  • ThreadImport
  • Script checking threads

Both of these could have their own interrupt mechanism. Handling "join" for a thread group is trivial.

There's also a bit of usage in the tests, but I think it's related to the above main usages.

It's a blocker every time for changes such as #17253 and #16117.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions