C++ new operator thread safety in linux and gcc 4

c++, gcc, linux, thread-safety

Solution

You will have to look very hard to find a platform that supports threads but doesn't have a thread safe `new`. In fact, the thread safety of `new` (and `malloc`) is one of the reasons it's so slow.

If you want a thread safe STL on the other hand, you may consider Intel TBB which has thread aware containers (although not all operations on them are thread safe).

Problem

Soon i'll start working on a parallel version of a mesh refinement algorithm using shared memory. A professor at the university pointed out that we have to be very careful about thread safety because neither the compiler nor the stl is thread aware. I searched for this question and the answer depended on the compiler (some try to be somewhat thread-aware) and the plattform (if the system calls used by the compiler are thread-safe or not). So, in linux, the gcc 4 compiler produces thread-safe code for the new operator? If not, what is the best way to overcome this problem? Maybe lock each call to the new operator?

Original source