Scroom  0.14
async-deleter.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <scroom/threadpool.hh>
11 
12 namespace Detail
13 {
14  template <typename T>
15  void call_delete(T* p)
16  {
17  delete p;
18  }
19 } // namespace Detail
20 
22 {
24 } // namespace Scroom::Detail::ThreadPool
25 
40 template <typename T>
42 {
43 private:
45 
46 public:
49  {
50  }
51 
52  void operator()(T* p) { deleter->schedule(boost::bind(&Detail::call_delete<T>, p)); }
53 };
ThreadPool::Ptr
boost::shared_ptr< ThreadPool > Ptr
Definition: threadpool.hh:169
threadpool.hh
Scroom::Detail::ThreadPool::getDeleter
::ThreadPool::Ptr getDeleter()
Definition: async-deleter.cc:13
Scroom
Definition: assertions.hh:14
ThreadPool
Definition: threadpool.hh:46
Scroom::Detail::ThreadPool
Definition: async-deleter.hh:21
AsyncDeleter
Definition: async-deleter.hh:41
Detail::call_delete
void call_delete(T *p)
Definition: async-deleter.hh:15
AsyncDeleter::operator()
void operator()(T *p)
Definition: async-deleter.hh:52
Detail
Definition: async-deleter.hh:12
AsyncDeleter::deleter
ThreadPool::Ptr deleter
Definition: async-deleter.hh:44
AsyncDeleter::AsyncDeleter
AsyncDeleter()
Definition: async-deleter.hh:47