Is there a standard terminology that distinguishes between objects that are safe to use in a multi-threaded environment with locking (my object has no unprotected static members) and objects that are safe to use concurrently in a MT environment (maybe because I put locks around all the public methods)?
Let me add a little more explanation: I have a C++ library that is overall safe to use in a multithreaded environment but is not thread safe. The library contains an exception class inherited from std::exception. The what() method returns a char*. Since I'm stuck with the signature defined in the parent, I have to return memory internal to the class rendering this particular method even more unsafe than the rest of the library. I'm looking for some standard terminology to use when documenting this method.