Seastar
High performance C++ framework for concurrent servers
|
Allows obtaining a non-owning reference (weak_ptr) to the object.
A live weak_ptr object doesn't prevent the referenced object form being destroyed.
The underlying pointer held by weak_ptr is valid as long as the referenced object is alive. When the object dies, all weak_ptr objects associated with it are emptied.
A weak reference is obtained like this:
class X : public weakly_referencable<X> {}; auto x = std::make_unique<X>(); weak_ptr<X> ptr = x->weak_from_this();
The user of weak_ptr can check if it still holds a valid pointer like this:
if (ptr) ptr->do_something();
#include <seastar/core/weak_ptr.hh>
Public Member Functions | |
weakly_referencable (weakly_referencable &&)=delete | |
weakly_referencable (const weakly_referencable &)=delete | |
weak_ptr< T > | weak_from_this () noexcept |