C++ Logo

STD-DISCUSSION

Advanced search

Subject: Does the standard guarantee that shared_from_this is thread safe?
From: 刘四维 (liusiwei_at_[hidden])
Date: 2021-06-01 19:34:55


Hi all,

The standard seems not mention the thread-safety info on shared_from_this. However, cpppreference state :


> Effectively executes std::shared_ptr(weak_this), where weak_this is the private mutable std::weak_ptr member of enable_shared_from_this.


Can I take it as a guarantee that it's safe to call shared_from_this in multiple threads? Since if I understand correctly, constructing a shared_ptr with a shared_ptr or weak_ptr object, is thread safe.



Take the following code as an example:



class A : public std::enable_shared_from_this<A&gt; { public: std::shared_ptr<A&gt; clone() { return shared_from_this(); } };



In this case, can I call&nbsp;A::clone()&nbsp;in multiple threads?




Regards



STD-DISCUSSION list run by std-discussion-owner@lists.isocpp.org

Older Archives on Google Groups