CMS 3D CMS Logo

include_first_syncWait.h
Go to the documentation of this file.
1 #ifndef FWCore_Concurrency_syncWait_h
2 #define FWCore_Concurrency_syncWait_h
3 //
4 // syncWait.h
5 //
6 // This file must be included before any other file that include tbb headers
7 //
8 // Created by Chris Jones on 2/24/21.
9 //
12 #include "oneapi/tbb/task_group.h"
13 #include <exception>
14 
15 namespace edm {
16  template <typename F>
17  [[nodiscard]] std::exception_ptr syncWait(F&& iFunc) {
18  std::exception_ptr exceptPtr{};
19  oneapi::tbb::task_group group;
21  group.run([&]() { iFunc(WaitingTaskHolder(group, &last)); }); //group.run
22 
23  return last.waitNoThrow();
24  }
25 } // namespace edm
26 #endif /* FWCore_Concurrency_syncWait_h */
std::exception_ptr syncWait(F &&iFunc)
HLT enums.
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163