No es buena práctica hacer locks() directamente, es mucho mejor usar una clase envolvente como unique_lock:
Código C++:
Ver originalvoid fun(double& suma){
double x;
x = distUni(generator);
unique_lock<std::mutex> control(barrera);
cout << x << endl;
suma += x;
}
Los unique_lock cierran el mutex en el constructor y lo liberan en el destructor. Esto es mucho más seguro porque en caso de que salte una excepción, te aseguras que se suelte el mutex.