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.