XRootD
Loading...
Searching...
No Matches
XrdEc::ThreadPool Class Reference

#include <XrdEcThreadPool.hh>

Collaboration diagram for XrdEc::ThreadPool:

Public Member Functions

 ~ThreadPool ()
 Destructor.
template<typename FUNC, typename ... ARGs>
std::future< std::invoke_result_t< FUNC, ARGs... > > Execute (FUNC func, ARGs... args)
 Schedule a functional (together with its arguments) for execution.

Static Public Member Functions

static ThreadPoolInstance ()
 Singleton access.

Detailed Description

Definition at line 38 of file XrdEcThreadPool.hh.

Constructor & Destructor Documentation

◆ ~ThreadPool()

XrdEc::ThreadPool::~ThreadPool ( )
inline

Destructor.

Definition at line 143 of file XrdEcThreadPool.hh.

144 {
145 threadpool.Stop();
146 threadpool.Finalize();
147 }

Member Function Documentation

◆ Execute()

template<typename FUNC, typename ... ARGs>
std::future< std::invoke_result_t< FUNC, ARGs... > > XrdEc::ThreadPool::Execute ( FUNC func,
ARGs... args )
inline

Schedule a functional (together with its arguments) for execution.

Definition at line 163 of file XrdEcThreadPool.hh.

164 {
165 using RET = std::invoke_result_t<FUNC, ARGs...>;
166 auto *job = new AnyJob<FUNC, RET, ARGs...>( func, std::move( args )... );
167 std::future<RET> ftr = job->GetFuture();
168 threadpool.QueueJob( job, nullptr );
169 return ftr;
170 }

Referenced by XrdEc::WrtBuff::Encode().

Here is the caller graph for this function:

◆ Instance()

ThreadPool & XrdEc::ThreadPool::Instance ( )
inlinestatic

Singleton access.

Definition at line 152 of file XrdEcThreadPool.hh.

153 {
154 static ThreadPool instance;
155 return instance;
156 }

Referenced by XrdEc::WrtBuff::Encode().

Here is the caller graph for this function:

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