2

Simple question, but I did not find an answer.

Given

struct Foo {
  std::atomic_int i;
  void setMin(int j);
}

How do I set i to std::min(i,j)? If there is a race between two calls setMin(j1) and setMin(j2), the result should be std::min(i,j1,j2), and naturally the same for more than 2 concurrent calls.


I found Atomic Minimum on x86 using OpenMP which says "[C++11] does not have support for atomic minimum. "

MSalters
  • 173,980
  • 10
  • 155
  • 350

0 Answers0