下面是一个代码示例:按值返回由互斥量守护的shared_ptr是否安全?
class A {
boost::mutex a_mutex;
boost::shared_ptr<int> a;
boost::shared_ptr<int> clone_a(void) {
boost::lock_guard<boost::mutex> lock(a_mutex);
return a;
}
};
的建议是,在A::a
的boost::shared_ptr
拷贝构造函数的调用将先于boost::lock_guard
析构函数调用,尽管编译器优化。 那么,拨打A::clone_a()
安全吗?
dupe http://stackoverflow.com/questions/692438/is-boost-shared-ptr-xxx-thread-safe? – eudoxos
你能解释一下为什么你担心它可能不好吗? – curiousguy