Skip to content

Bugfix/barrier fix

This merge fixes a serious undefined behavior condition in ThreadPoolSvc introduced in the thread-tool-terminate merge. The boost::barrier was moved to a function local which could drop out of scope before workers returned from waiting. Now, the barrier is again a class member of the ThreadPoolSvc. Tests are successful.

Additionally, I added a safety check in ThreadPoolSvc::terminateTool that returns FAILURE if the pool wasn't actually initialized.

Finally, I put the ThreadPoolSvc's raw pointer class members into unique_ptrs for automatic deletion.

Merge request reports