summaryrefslogtreecommitdiff
path: root/sci-libs/opencascade/files/opencascade-7.5.3-tbb-2021.patch
blob: 38770ac9a54190ea08496398c19dd401f42aa04a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
https://github.com/Open-Cascade-SAS/OCCT/commit/740833a6a88e481f474783c426b6f6311ed586d3

From 740833a6a88e481f474783c426b6f6311ed586d3 Mon Sep 17 00:00:00 2001
From: kgv <kgv@opencascade.com>
Date: Mon, 29 Nov 2021 21:26:45 +0300
Subject: [PATCH] 0032697: Configuration - fix compilation errors with oneTBB
 2021

Removed usage of no more existing tbb::task_scheduler_init and tbb::captured_exception.
--- a/src/OSD/OSD_Parallel_TBB.cxx
+++ b/src/OSD/OSD_Parallel_TBB.cxx
@@ -25,7 +25,9 @@ Standard_DISABLE_DEPRECATION_WARNINGS
 #include <tbb/parallel_for.h>
 #include <tbb/parallel_for_each.h>
 #include <tbb/blocked_range.h>
-#include <tbb/task_scheduler_init.h>
+#if TBB_VERSION_MAJOR < 2021
+  #include <tbb/task_scheduler_init.h>
+#endif
 Standard_ENABLE_DEPRECATION_WARNINGS
 
 //=======================================================================
@@ -38,12 +40,16 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin,
                                     const FunctorInterface& theFunctor,
                                     Standard_Integer theNbItems)
 {
+#if TBB_VERSION_MAJOR >= 2021
+  // task_scheduler_init is removed,
+  // exceptions are captured without proxy tbb::captured_exception object
+  (void )theNbItems;
+  tbb::parallel_for_each (theBegin, theEnd, theFunctor);
+#else
   try
   {
     const Handle(OSD_ThreadPool)& aThreadPool = OSD_ThreadPool::DefaultPool();
-    const Standard_Integer aNbThreads = theNbItems > 0 ?
-      aThreadPool->NbDefaultThreadsToLaunch() : -1;
-
+    const Standard_Integer aNbThreads = theNbItems > 0 ? aThreadPool->NbDefaultThreadsToLaunch() : -1;
     tbb::task_scheduler_init aScheduler (aNbThreads);
     tbb::parallel_for_each (theBegin, theEnd, theFunctor);
   }
@@ -51,6 +57,7 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin,
   {
     throw Standard_ProgramError (anException.what());
   }
+#endif
 }
 
 #endif /* HAVE_TBB */