I wouldn't be wow'd unless you identified a specific bug and fixed it . In this case you seem to have done that:
Code:
for (unsigned int i = 0; i < num_threads; ++i) {
auto curr = buff[i].tetra_buffer.data();
auto p = buff[i].point_position;
threads.emplace_back([&buff, i, &curr, p]() {
...
Both "curr" and "p" are scoped to the for loop. So when the loop continues, curr and p go out of scope and are recreated/reset. The threads are running asynchronously to the for loop and curr is passed by reference. Assuming the same stack location is used for curr on each iteration, the threads are having their curr values changed out from underneath them. That's bad
Making curr and p local thread variables makes sense to me since they can be created through buff and i which are already being passed.
gg