CMS 3D CMS Logo

FunctorTask.h
Go to the documentation of this file.
1 #ifndef FWCore_Concurrency_FunctorTask_h
2 #define FWCore_Concurrency_FunctorTask_h
3 // -*- C++ -*-
4 //
5 // Package: Concurrency
6 // Class : FunctorTask
7 //
15 //
16 // Original Author: Chris Jones
17 // Created: Thu Feb 21 13:46:31 CST 2013
18 // $Id$
19 //
20 
21 // system include files
22 #include <atomic>
23 #include <exception>
24 #include <memory>
25 #include "tbb/task.h"
26 
27 // user include files
28 
29 // forward declarations
30 
31 namespace edm {
32  template <typename F>
33  class FunctorTask : public tbb::task {
34  public:
35  explicit FunctorTask(F f) : func_(std::move(f)) {}
36 
37  task* execute() override {
38  func_();
39  return nullptr;
40  };
41 
42  private:
43  F func_;
44  };
45 
46  template <typename ALLOC, typename F>
47  FunctorTask<F>* make_functor_task(ALLOC&& iAlloc, F f) {
48  return new (iAlloc) FunctorTask<F>(std::move(f));
49  }
50 } // namespace edm
51 
52 #endif
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::make_functor_task
FunctorTask< F > * make_functor_task(ALLOC &&iAlloc, F f)
Definition: FunctorTask.h:47
edm::FunctorTask::func_
F func_
Definition: FunctorTask.h:40
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
edm::FunctorTask::FunctorTask
FunctorTask(F f)
Definition: FunctorTask.h:35
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:252
edm::FunctorTask::execute
task * execute() override
Definition: FunctorTask.h:37
edm::FunctorTask
Definition: FunctorTask.h:33
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76