Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
uni20::cuda::ResourceLease< Resource > Class Template Reference

Move-only exclusive lease of one provider-resource pool slot. More...

#include <resource_pool.hpp>

Public Member Functions

Resource & get () const
 Access the exclusively leased provider resource.
 
 operator bool () const noexcept
 Return whether this object currently owns a pool slot.
 
ResourceLease & operator= (ResourceLease &&other) noexcept
 
ResourceLease & operator= (ResourceLease const &)=delete
 
void release () noexcept
 Return the resource to its pool before this object's destruction.
 
 ResourceLease () noexcept=default
 
 ResourceLease (ResourceLease &&other) noexcept
 
 ResourceLease (ResourceLease const &)=delete
 
 ~ResourceLease ()
 

Friends

class ResourcePool< Resource >
 

Detailed Description

template<class Resource>
class uni20::cuda::ResourceLease< Resource >

Move-only exclusive lease of one provider-resource pool slot.

Destroying or explicitly releasing the lease returns the resource to the oldest queued waiter, or to the pool's idle set.

Constructor & Destructor Documentation

◆ ResourceLease() [1/3]

template<class Resource >
uni20::cuda::ResourceLease< Resource >::ResourceLease ( )
defaultnoexcept

◆ ResourceLease() [2/3]

template<class Resource >
uni20::cuda::ResourceLease< Resource >::ResourceLease ( ResourceLease< Resource > const &  )
delete

◆ ResourceLease() [3/3]

template<class Resource >
uni20::cuda::ResourceLease< Resource >::ResourceLease ( ResourceLease< Resource > &&  other)
inlinenoexcept

◆ ~ResourceLease()

template<class Resource >
uni20::cuda::ResourceLease< Resource >::~ResourceLease ( )
inline

Member Function Documentation

◆ get()

template<class Resource >
Resource & uni20::cuda::ResourceLease< Resource >::get ( ) const

Access the exclusively leased provider resource.

◆ operator bool()

template<class Resource >
uni20::cuda::ResourceLease< Resource >::operator bool ( ) const
inlineexplicitnoexcept

Return whether this object currently owns a pool slot.

◆ operator=() [1/2]

template<class Resource >
ResourceLease & uni20::cuda::ResourceLease< Resource >::operator= ( ResourceLease< Resource > &&  other)
inlinenoexcept

◆ operator=() [2/2]

template<class Resource >
ResourceLease & uni20::cuda::ResourceLease< Resource >::operator= ( ResourceLease< Resource > const &  )
delete

◆ release()

template<class Resource >
void uni20::cuda::ResourceLease< Resource >::release ( )
noexcept

Return the resource to its pool before this object's destruction.

Friends And Related Symbol Documentation

◆ ResourcePool< Resource >

template<class Resource >
friend class ResourcePool< Resource >
friend

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