core 1.5.0
Shared MPI block decomposition, asynchronous ghost-layer exchange, SDF geometry, load balancing (header-only C++20)
Loading...
Searching...
No Matches
peclet::core::python::Releasable Class Referenceabstract

Base of everything on the binding side that owns Kokkos Views on Python's behalf. More...

#include <kokkos_teardown.hpp>

Inheritance diagram for peclet::core::python::Releasable:
peclet::core::python::ViewCapsule< V >

Public Member Functions

 Releasable () noexcept
 
 Releasable (const Releasable &) noexcept
 
 Releasable (Releasable &&) noexcept
 
Releasable & operator= (const Releasable &) noexcept
 
Releasable & operator= (Releasable &&) noexcept
 
virtual ~Releasable ()
 
virtual void release () noexcept=0
 

Static Public Member Functions

static std::set< Releasable * > & registry ()
 This module's live registry.
 

Detailed Description

Base of everything on the binding side that owns Kokkos Views on Python's behalf.

Registration is automatic (constructor/destructor); release() must leave the object safe to destroy after Kokkos::finalize, i.e. holding no View that still has an allocation.

Definition at line 56 of file kokkos_teardown.hpp.

Constructor & Destructor Documentation

◆ Releasable() [1/3]

peclet::core::python::Releasable::Releasable ( )
inlinenoexcept

Definition at line 58 of file kokkos_teardown.hpp.

References registry().

◆ Releasable() [2/3]

peclet::core::python::Releasable::Releasable ( const Releasable &  )
inlinenoexcept

Definition at line 59 of file kokkos_teardown.hpp.

References registry().

◆ Releasable() [3/3]

peclet::core::python::Releasable::Releasable ( Releasable &&  )
inlinenoexcept

Definition at line 60 of file kokkos_teardown.hpp.

References registry().

◆ ~Releasable()

virtual peclet::core::python::Releasable::~Releasable ( )
inlinevirtual

Definition at line 63 of file kokkos_teardown.hpp.

References registry().

Member Function Documentation

◆ operator=() [1/2]

Releasable & peclet::core::python::Releasable::operator= ( const Releasable &  )
inlinenoexcept

Definition at line 61 of file kokkos_teardown.hpp.

◆ operator=() [2/2]

Releasable & peclet::core::python::Releasable::operator= ( Releasable &&  )
inlinenoexcept

Definition at line 62 of file kokkos_teardown.hpp.

◆ release()

virtual void peclet::core::python::Releasable::release ( )
pure virtualnoexcept

◆ registry()

static std::set< Releasable * > & peclet::core::python::Releasable::registry ( )
inlinestatic

This module's live registry.

Heap-allocated and never destroyed, so the capsule deleters Python runs during its final module teardown can still unregister safely.

Definition at line 68 of file kokkos_teardown.hpp.

Referenced by Releasable(), Releasable(), Releasable(), peclet::core::python::release_all(), and ~Releasable().


The documentation for this class was generated from the following file: