MeshLib C++ Docs
Loading...
Searching...
No Matches
MRParallel.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRPch/MRTBB.h"
4
5namespace MR
6{
9
10
11namespace Parallel
12{
13
15{
16 auto operator() ( auto && f, auto id ) const { return f( id ); }
17 auto operator() ( auto && f, auto id, auto && subrange ) const { return f( id, subrange ); }
18};
19
21{
22 auto operator() () const { return CallSimply{}; }
23};
24
25template<typename T>
27{
28 T & tls;
29 auto operator() ( auto && f, auto id ) const { return f( id, tls ); }
30 auto operator() ( auto && f, auto id, auto && subrange ) const { return f( id, subrange, tls ); }
31};
32
33template<typename L>
35{
36 tbb::enumerable_thread_specific<L> & e;
37 auto operator() () const { return CallWithTLS<L>{ e.local() }; }
38};
39
40}
41
42}
auto operator()(auto &&f, auto id) const
Definition MRParallel.h:16
auto operator()() const
Definition MRParallel.h:37
auto operator()() const
Definition MRParallel.h:22
T & tls
Definition MRParallel.h:28
tbb::enumerable_thread_specific< L > & e
Definition MRParallel.h:36
auto operator()(auto &&f, auto id) const
Definition MRParallel.h:29
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRParallel.h:21
Definition MRParallel.h:15
Definition MRParallel.h:35
Definition MRParallel.h:27