Scroom  0.14
AsyncDeleter< T > Class Template Reference

#include <async-deleter.hh>

Collaboration diagram for AsyncDeleter< T >:
Collaboration graph

Public Member Functions

 AsyncDeleter ()
 
void operator() (T *p)
 

Private Attributes

ThreadPool::Ptr deleter
 

Detailed Description

template<typename T>
class AsyncDeleter< T >

Allow boost shared pointers to asynchronously delete their targets.

When some objects last shared pointer goes out of scope, the object is deleted. Usually, this is done on the thread that destroys the last pointer. This class allows destruction to be done on a separate thread.

This is especially advantageous if deleting the object takes a long time and there is no immediate hurry. Deleting ThreadPool::Queue objects, for example, blocks as long as a thread is currently executing a job on the queue. This might take some time you do not wish to wait.

Constructor & Destructor Documentation

◆ AsyncDeleter()

template<typename T >
AsyncDeleter< T >::AsyncDeleter ( )
inline

Member Function Documentation

◆ operator()()

template<typename T >
void AsyncDeleter< T >::operator() ( T *  p)
inline
52 { deleter->schedule(boost::bind(&Detail::call_delete<T>, p)); }

Member Data Documentation

◆ deleter

template<typename T >
ThreadPool::Ptr AsyncDeleter< T >::deleter
private

The documentation for this class was generated from the following file:
Scroom::Detail::ThreadPool::getDeleter
::ThreadPool::Ptr getDeleter()
Definition: async-deleter.cc:13
AsyncDeleter::deleter
ThreadPool::Ptr deleter
Definition: async-deleter.hh:44