From 97d449b7eeba0c83ab125c6851c9736b8a9dcd87 Mon Sep 17 00:00:00 2001 From: tbbdev Date: Thu, 15 Sep 2016 14:59:42 +0300 Subject: [PATCH] Committing Intel(R) TBB 4.4 Update 3 source code --- CHANGES | 36 + Makefile | 2 +- README.md | 4 +- build/AIX.gcc.inc | 2 +- build/AIX.inc | 2 +- build/FreeBSD.clang.inc | 2 +- build/FreeBSD.gcc.inc | 2 +- build/FreeBSD.inc | 2 +- build/Makefile.rml | 2 +- build/Makefile.tbb | 2 +- build/Makefile.tbbmalloc | 2 +- build/Makefile.tbbproxy | 2 +- build/Makefile.test | 2 +- build/SunOS.gcc.inc | 2 +- build/SunOS.inc | 2 +- build/SunOS.suncc.inc | 2 +- build/android.gcc.inc | 30 +- build/android.icc.inc | 128 + build/android.inc | 41 +- build/android.linux.inc | 4 +- build/android.linux.launcher.sh | 7 +- build/android.macos.inc | 4 +- build/android.windows.inc | 4 +- build/big_iron.inc | 2 +- build/common.inc | 2 +- build/common_rules.inc | 4 +- build/detect.js | 2 +- build/generate_tbbvars.bat | 2 +- build/generate_tbbvars.sh | 2 +- build/index.html | 2 +- build/ios.clang.inc | 23 + build/ios.macos.inc | 36 + build/linux.clang.inc | 2 +- build/linux.gcc.inc | 2 +- build/linux.icc.inc | 2 +- build/linux.inc | 18 +- build/linux.pathcc.inc | 2 +- build/linux.xl.inc | 2 +- build/macos.clang.inc | 23 +- build/macos.gcc.inc | 2 +- build/macos.icc.inc | 2 +- build/macos.inc | 27 +- build/mic.icc.inc | 2 +- build/mic.linux.inc | 2 +- build/mic.linux.launcher.sh | 8 +- build/mic.offload.inc | 2 +- build/test_launcher.bat | 2 +- build/test_launcher.sh | 2 +- build/version_info_aix.sh | 2 +- build/version_info_android.sh | 2 +- build/version_info_linux.sh | 2 +- build/version_info_macos.sh | 2 +- build/version_info_sunos.sh | 2 +- build/version_info_windows.js | 4 +- build/vs2010/index.html | 4 +- build/vs2010/tbb.vcxproj | 143 +- build/vs2010/tbbmalloc.vcxproj | 106 +- build/vs2010/tbbmalloc_proxy.vcxproj | 40 +- build/windows.cl.inc | 2 +- build/windows.gcc.inc | 2 +- build/windows.icl.inc | 2 +- build/windows.inc | 2 +- build/xbox360.cl.inc | 2 +- build/xbox360.inc | 2 +- doc/Release_Notes.txt | 13 +- doc/html/a00001.html | 2 +- doc/html/a00002.html | 4 +- doc/html/a00003.html | 2 +- doc/html/a00004.html | 2 +- doc/html/a00005.html | 2 +- doc/html/a00006.html | 2 +- doc/html/a00007.html | 8 +- doc/html/a00008.html | 2 +- doc/html/a00009.html | 4 +- doc/html/a00010.html | 86 +- doc/html/a00011.html | 6 +- doc/html/a00012.html | 8 +- doc/html/a00013.html | 6 +- doc/html/a00014.html | 10 +- doc/html/a00015.html | 8 +- doc/html/a00016.html | 8 +- doc/html/a00017.html | 8 +- doc/html/a00018.html | 8 +- doc/html/a00019.html | 8 +- doc/html/a00020.html | 216 +- doc/html/a00021.html | 8 +- doc/html/a00022.html | 6 +- doc/html/a00023.html | 36 +- doc/html/a00024.html | 35 +- doc/html/{a00023.png => a00024.png} | Bin doc/html/a00025.html | 34 +- doc/html/a00025.png | Bin 2213 -> 0 bytes doc/html/a00026.html | 44 +- doc/html/a00026.png | Bin 1561 -> 2213 bytes doc/html/a00027.html | 309 +-- doc/html/a00027.png | Bin 0 -> 1561 bytes doc/html/a00028.html | 311 ++- doc/html/a00029.html | 113 +- doc/html/a00030.html | 87 +- doc/html/a00031.html | 247 +- doc/html/a00031.png | Bin 1883 -> 0 bytes doc/html/a00032.html | 253 +- doc/html/a00032.png | Bin 1110 -> 1883 bytes doc/html/a00033.html | 578 +---- doc/html/a00033.png | Bin 5251 -> 1110 bytes doc/html/a00034.html | 591 ++++- doc/html/a00034.png | Bin 1158 -> 5251 bytes doc/html/a00035.html | 138 +- doc/html/a00035.png | Bin 0 -> 1158 bytes doc/html/a00036.html | 95 +- doc/html/a00037.html | 56 +- doc/html/a00038.html | 42 +- doc/html/a00038.png | Bin 1103 -> 0 bytes doc/html/a00039.html | 27 +- doc/html/a00039.png | Bin 1106 -> 1103 bytes doc/html/a00040.html | 165 +- doc/html/a00040.png | Bin 835 -> 1106 bytes doc/html/a00041.html | 196 +- doc/html/a00041.png | Bin 0 -> 835 bytes doc/html/a00042.html | 60 +- doc/html/a00043.html | 100 +- doc/html/a00043.png | Bin 2624 -> 0 bytes doc/html/a00044.html | 121 +- doc/html/a00044.png | Bin 2180 -> 2624 bytes doc/html/a00045.html | 114 +- doc/html/a00045.png | Bin 2303 -> 2180 bytes doc/html/a00046.html | 93 +- doc/html/a00046.png | Bin 0 -> 2303 bytes doc/html/a00047.html | 365 +-- doc/html/a00047.png | Bin 766 -> 0 bytes doc/html/a00048.html | 1056 ++------ doc/html/a00048.png | Bin 1052 -> 766 bytes doc/html/a00049.html | 1039 +++++++- doc/html/a00049.png | Bin 1068 -> 1052 bytes doc/html/a00050.html | 574 +---- doc/html/a00050.png | Bin 0 -> 1068 bytes doc/html/a00051.html | 652 ++++- doc/html/a00051.png | Bin 872 -> 0 bytes doc/html/a00052.html | 259 +- doc/html/a00052.png | Bin 2163 -> 872 bytes doc/html/a00053.html | 160 +- doc/html/a00053.png | Bin 0 -> 2163 bytes doc/html/a00054.html | 149 +- doc/html/a00054.png | Bin 2174 -> 0 bytes doc/html/a00055.html | 148 +- doc/html/a00055.png | Bin 2109 -> 2174 bytes doc/html/a00056.html | 146 +- doc/html/a00056.png | Bin 2095 -> 2109 bytes doc/html/a00057.html | 147 +- doc/html/a00057.png | Bin 0 -> 2095 bytes doc/html/a00058.html | 801 +----- doc/html/a00058.png | Bin 1057 -> 0 bytes doc/html/a00059.html | 804 +++++- doc/html/a00059.png | Bin 1888 -> 1057 bytes doc/html/a00060.html | 95 +- doc/html/a00060.png | Bin 0 -> 1888 bytes doc/html/a00061.html | 123 +- doc/html/a00061.png | Bin 2370 -> 0 bytes doc/html/a00062.html | 263 +- doc/html/a00062.png | Bin 996 -> 2370 bytes doc/html/a00063.html | 251 +- doc/html/a00063.png | Bin 621 -> 996 bytes doc/html/a00064.html | 60 +- doc/html/a00064.png | Bin 1261 -> 621 bytes doc/html/a00065.html | 34 +- doc/html/a00065.png | Bin 0 -> 1261 bytes doc/html/a00066.html | 68 +- doc/html/a00067.html | 88 +- doc/html/a00068.html | 66 +- doc/html/a00068.png | Bin 1053 -> 0 bytes doc/html/a00069.html | 221 +- doc/html/a00069.png | Bin 1259 -> 1053 bytes doc/html/a00070.html | 281 +- doc/html/a00070.png | Bin 757 -> 1259 bytes doc/html/a00071.html | 128 +- doc/html/a00071.png | Bin 0 -> 757 bytes doc/html/a00072.html | 61 +- doc/html/a00073.html | 46 +- doc/html/a00074.html | 90 +- doc/html/{a00073.png => a00074.png} | Bin doc/html/a00075.html | 94 +- doc/html/a00076.html | 124 +- doc/html/a00077.html | 141 +- doc/html/{a00076.png => a00077.png} | Bin doc/html/a00078.html | 318 +-- doc/html/a00079.html | 355 ++- doc/html/{a00078.png => a00079.png} | Bin doc/html/a00080.html | 136 +- doc/html/a00081.html | 120 +- doc/html/{a00080.png => a00081.png} | Bin doc/html/a00082.html | 74 +- doc/html/a00082.png | Bin 495 -> 0 bytes doc/html/a00083.html | 57 +- doc/html/a00083.png | Bin 1376 -> 495 bytes doc/html/a00084.html | 52 +- doc/html/a00084.png | Bin 989 -> 1376 bytes doc/html/a00085.html | 50 +- doc/html/a00085.png | Bin 1034 -> 989 bytes doc/html/a00086.html | 50 +- doc/html/a00086.png | Bin 1111 -> 1034 bytes doc/html/a00087.html | 50 +- doc/html/a00087.png | Bin 1162 -> 1111 bytes doc/html/a00088.html | 50 +- doc/html/a00088.png | Bin 1209 -> 1162 bytes doc/html/a00089.html | 52 +- doc/html/a00089.png | Bin 1259 -> 1209 bytes doc/html/a00090.html | 50 +- doc/html/a00090.png | Bin 1300 -> 1259 bytes doc/html/a00091.html | 50 +- doc/html/a00091.png | Bin 1322 -> 1300 bytes doc/html/a00092.html | 50 +- doc/html/a00092.png | Bin 1351 -> 1322 bytes doc/html/a00093.html | 95 +- doc/html/a00093.png | Bin 0 -> 1351 bytes doc/html/a00094.html | 68 +- doc/html/a00095.html | 37 +- doc/html/{a00094.png => a00095.png} | Bin doc/html/a00096.html | 81 +- doc/html/a00096.png | Bin 1992 -> 0 bytes doc/html/a00097.html | 78 +- doc/html/a00097.png | Bin 1706 -> 1992 bytes doc/html/a00098.html | 42 +- doc/html/a00098.png | Bin 1724 -> 1706 bytes doc/html/a00099.html | 48 +- doc/html/a00099.png | Bin 0 -> 1724 bytes doc/html/a00100.html | 22 +- doc/html/a00101.html | 20 +- doc/html/a00102.html | 297 +-- doc/html/a00102.png | Bin 1884 -> 0 bytes doc/html/a00103.html | 297 ++- doc/html/a00103.png | Bin 671 -> 1884 bytes doc/html/a00104.html | 142 +- doc/html/a00104.png | Bin 0 -> 671 bytes doc/html/a00105.html | 121 +- doc/html/a00106.html | 104 +- doc/html/a00107.html | 67 +- doc/html/a00107.png | Bin 489 -> 0 bytes doc/html/a00108.html | 177 +- doc/html/a00108.png | Bin 960 -> 489 bytes doc/html/a00109.html | 250 +- doc/html/a00109.png | Bin 3871 -> 960 bytes doc/html/a00110.html | 185 +- doc/html/a00110.png | Bin 680 -> 3871 bytes doc/html/a00111.html | 157 +- doc/html/a00111.png | Bin 1052 -> 680 bytes doc/html/a00112.html | 83 +- doc/html/a00112.png | Bin 704 -> 1052 bytes doc/html/a00113.html | 42 +- doc/html/a00113.png | Bin 724 -> 704 bytes doc/html/a00114.html | 51 +- doc/html/a00114.png | Bin 0 -> 724 bytes doc/html/a00115.html | 20 +- doc/html/a00116.html | 16 +- doc/html/a00117.html | 16 +- doc/html/a00118.html | 88 +- doc/html/a00119.html | 139 +- doc/html/a00119.png | Bin 1144 -> 1161 bytes doc/html/a00120.html | 169 +- doc/html/a00120.png | Bin 0 -> 1144 bytes doc/html/a00121.html | 165 +- doc/html/a00122.html | 60 +- doc/html/a00123.html | 45 +- doc/html/a00124.html | 55 +- doc/html/a00124.png | Bin 693 -> 0 bytes doc/html/a00125.html | 174 +- doc/html/a00125.png | Bin 1018 -> 693 bytes doc/html/a00126.html | 198 +- doc/html/a00126.png | Bin 1139 -> 1018 bytes doc/html/a00127.html | 71 +- doc/html/a00127.png | Bin 0 -> 1139 bytes doc/html/a00128.html | 34 +- doc/html/a00128.png | Bin 1395 -> 0 bytes doc/html/a00129.html | 36 +- doc/html/a00129.png | Bin 1387 -> 1395 bytes doc/html/a00130.html | 75 +- doc/html/a00130.png | Bin 1729 -> 1387 bytes doc/html/a00131.html | 83 +- doc/html/a00131.png | Bin 855 -> 1729 bytes doc/html/a00132.html | 265 +- doc/html/a00132.png | Bin 2524 -> 855 bytes doc/html/a00133.html | 110 +- doc/html/a00133.png | Bin 625 -> 1159 bytes doc/html/a00134.html | 338 ++- doc/html/a00134.png | Bin 612 -> 2524 bytes doc/html/a00135.html | 108 +- doc/html/a00135.png | Bin 0 -> 625 bytes doc/html/a00136.html | 125 +- doc/html/a00136.png | Bin 0 -> 612 bytes doc/html/a00137.html | 98 +- doc/html/a00138.html | 389 +-- doc/html/a00138.png | Bin 4094 -> 0 bytes doc/html/a00139.html | 92 +- doc/html/a00139.png | Bin 1828 -> 0 bytes doc/html/a00140.html | 422 ++- doc/html/a00140.png | Bin 1782 -> 4094 bytes doc/html/a00141.html | 409 +-- doc/html/a00141.png | Bin 4409 -> 1828 bytes doc/html/a00142.html | 106 +- doc/html/a00142.png | Bin 754 -> 1782 bytes doc/html/a00143.html | 398 ++- doc/html/a00143.png | Bin 776 -> 4409 bytes doc/html/a00144.html | 194 +- doc/html/a00144.png | Bin 657 -> 754 bytes doc/html/a00145.html | 71 +- doc/html/a00145.png | Bin 0 -> 776 bytes doc/html/a00146.html | 186 +- doc/html/a00146.png | Bin 0 -> 657 bytes doc/html/a00147.html | 20 +- doc/html/a00148.html | 20 +- doc/html/a00149.html | 20 +- doc/html/a00150.html | 19 +- doc/html/a00151.html | 16 +- doc/html/a00152.html | 19 +- doc/html/a00153.html | 19 +- doc/html/a00154.html | 19 +- doc/html/a00155.html | 138 +- doc/html/a00155.png | Bin 4584 -> 0 bytes doc/html/a00156.html | 71 +- doc/html/a00157.html | 200 +- doc/html/a00157.png | Bin 766 -> 4584 bytes doc/html/a00158.html | 71 +- doc/html/{a00156.png => a00158.png} | Bin doc/html/a00159.html | 116 +- doc/html/a00159.png | Bin 0 -> 766 bytes doc/html/a00160.html | 275 +- doc/html/a00161.html | 101 +- doc/html/a00162.html | 287 ++- doc/html/{a00160.png => a00162.png} | Bin doc/html/a00163.html | 159 +- doc/html/a00163.png | Bin 594 -> 0 bytes doc/html/a00164.html | 101 +- doc/html/a00164.png | Bin 622 -> 0 bytes doc/html/a00165.html | 150 +- doc/html/a00165.png | Bin 655 -> 622 bytes doc/html/a00166.html | 175 +- doc/html/a00166.png | Bin 645 -> 655 bytes doc/html/a00167.html | 125 +- doc/html/a00167.png | Bin 651 -> 798 bytes doc/html/a00168.html | 42 +- doc/html/a00168.png | Bin 574 -> 743 bytes doc/html/a00169.html | 125 +- doc/html/a00169.png | Bin 798 -> 651 bytes doc/html/a00170.html | 74 +- doc/html/a00170.png | Bin 604 -> 645 bytes doc/html/a00171.html | 62 +- doc/html/a00171.png | Bin 743 -> 542 bytes doc/html/a00172.html | 108 +- doc/html/a00172.png | Bin 542 -> 594 bytes doc/html/a00173.html | 63 +- doc/html/a00173.png | Bin 839 -> 604 bytes doc/html/a00174.html | 108 +- doc/html/a00174.png | Bin 4585 -> 574 bytes doc/html/a00175.html | 86 +- doc/html/a00175.png | Bin 1309 -> 839 bytes doc/html/a00176.html | 393 +-- doc/html/a00176.png | Bin 4402 -> 4585 bytes doc/html/a00177.html | 228 +- doc/html/a00177.png | Bin 1766 -> 1309 bytes doc/html/a00178.html | 437 +++- doc/html/a00178.png | Bin 729 -> 4402 bytes doc/html/a00179.html | 303 ++- doc/html/a00179.png | Bin 777 -> 1766 bytes doc/html/a00180.html | 217 +- doc/html/a00180.png | Bin 5237 -> 729 bytes doc/html/a00181.html | 228 +- doc/html/a00181.png | Bin 961 -> 777 bytes doc/html/a00182.html | 129 +- doc/html/a00182.png | Bin 0 -> 5237 bytes doc/html/a00183.html | 378 +-- doc/html/a00183.png | Bin 656 -> 961 bytes doc/html/a00184.html | 81 +- doc/html/a00185.html | 383 ++- doc/html/a00185.png | Bin 1324 -> 656 bytes doc/html/a00186.html | 87 +- doc/html/{a00184.png => a00186.png} | Bin doc/html/a00187.html | 77 +- doc/html/a00187.png | Bin 538 -> 1324 bytes doc/html/a00188.html | 34 +- doc/html/a00188.png | Bin 620 -> 0 bytes doc/html/a00189.html | 180 +- doc/html/a00189.png | Bin 565 -> 538 bytes doc/html/a00190.html | 219 +- doc/html/a00190.png | Bin 906 -> 620 bytes doc/html/a00191.html | 196 +- doc/html/a00191.png | Bin 906 -> 565 bytes doc/html/a00192.html | 303 ++- doc/html/a00192.png | Bin 0 -> 906 bytes doc/html/a00193.html | 163 +- doc/html/a00193.png | Bin 0 -> 906 bytes doc/html/a00194.html | 264 +- doc/html/a00195.html | 87 +- doc/html/a00196.html | 245 +- doc/html/{a00194.png => a00196.png} | Bin doc/html/a00197.html | 119 +- doc/html/a00197.png | Bin 757 -> 0 bytes doc/html/a00198.html | 151 +- doc/html/a00198.png | Bin 794 -> 0 bytes doc/html/a00199.html | 134 +- doc/html/a00199.png | Bin 815 -> 757 bytes doc/html/a00200.html | 51 +- doc/html/a00200.png | Bin 857 -> 794 bytes doc/html/a00201.html | 62 +- doc/html/a00201.png | Bin 1409 -> 815 bytes doc/html/a00202.html | 82 +- doc/html/a00202.png | Bin 0 -> 857 bytes doc/html/a00203.html | 57 +- doc/html/a00203.png | Bin 0 -> 1409 bytes doc/html/a00204.html | 64 +- doc/html/a00205.html | 43 +- doc/html/a00206.html | 44 +- doc/html/a00207.html | 51 +- doc/html/a00207.png | Bin 1711 -> 0 bytes doc/html/a00208.html | 37 +- doc/html/{a00206.png => a00208.png} | Bin doc/html/a00209.html | 275 +- doc/html/a00209.png | Bin 2518 -> 1711 bytes doc/html/a00210.html | 89 +- doc/html/a00211.html | 292 ++- doc/html/a00211.png | Bin 679 -> 2518 bytes doc/html/a00212.html | 133 + doc/html/{a00210.png => a00212.png} | Bin doc/html/a00213.html | 102 + doc/html/a00213.png | Bin 0 -> 679 bytes doc/html/{a00229.html => a00231.html} | 152 +- doc/html/{a00232.html => a00234.html} | 28 +- doc/html/{a00251.html => a00253.html} | 54 +- doc/html/{a00271.html => a00273.html} | 6 +- doc/html/{a00274.html => a00276.html} | 456 ++-- doc/html/a00289.html | 2294 ----------------- doc/html/a00290.html | 67 - doc/html/a00291.html | 2168 +++++++++++++++- doc/html/a00292.html | 90 +- doc/html/a00293.html | 342 ++- doc/html/a00294.html | 85 +- doc/html/a00295.html | 52 + doc/html/a00296.html | 31 +- doc/html/a00297.html | 65 - doc/html/a00298.html | 13 +- doc/html/a00299.html | 21 +- doc/html/a00300.html | 14 +- doc/html/a00301.html | 27 +- doc/html/a00302.html | 24 +- doc/html/a00303.html | 37 +- doc/html/a00304.html | 39 +- doc/html/a00305.html | 23 +- doc/html/a00306.html | 30 +- doc/html/a00307.html | 10 +- doc/html/a00308.html | 21 +- doc/html/a00309.html | 43 +- doc/html/a00310.html | 96 +- doc/html/a00311.html | 46 +- doc/html/a00312.html | 103 +- doc/html/a00313.html | 19 +- doc/html/a00314.html | 29 +- doc/html/a00315.html | 21 +- doc/html/a00316.html | 16 +- doc/html/a00317.html | 22 +- doc/html/a00318.html | 14 +- doc/html/a00319.html | 17 +- doc/html/a00320.html | 11 +- doc/html/a00321.html | 14 +- doc/html/a00322.html | 14 +- doc/html/a00323.html | 25 +- doc/html/a00324.html | 25 +- doc/html/a00325.html | 25 +- doc/html/a00326.html | 26 +- doc/html/a00327.html | 19 +- doc/html/a00328.html | 22 +- doc/html/a00329.html | 26 +- doc/html/a00330.html | 23 +- doc/html/a00331.html | 39 +- doc/html/a00332.html | 16 +- doc/html/a00333.html | 30 +- doc/html/a00334.html | 10 +- doc/html/a00335.html | 20 +- doc/html/a00336.html | 16 +- doc/html/a00337.html | 34 +- doc/html/a00338.html | 26 +- doc/html/a00339.html | 30 +- doc/html/a00340.html | 34 +- doc/html/a00341.html | 25 +- doc/html/a00342.html | 34 +- doc/html/a00343.html | 43 +- doc/html/a00344.html | 20 +- doc/html/a00345.html | 34 +- doc/html/a00346.html | 10 +- doc/html/a00347.html | 23 +- doc/html/a00348.html | 10 +- doc/html/a00349.html | 24 +- doc/html/a00350.html | 10 +- doc/html/a00351.html | 14 +- doc/html/a00352.html | 10 +- doc/html/a00353.html | 11 +- doc/html/a00354.html | 10 +- doc/html/a00355.html | 10 +- doc/html/a00356.html | 16 +- doc/html/a00357.html | 22 +- doc/html/a00358.html | 29 +- doc/html/a00359.html | 25 +- doc/html/a00360.html | 31 +- doc/html/a00361.html | 28 +- doc/html/a00362.html | 39 +- doc/html/a00363.html | 73 +- doc/html/a00364.html | 60 +- doc/html/a00365.html | 74 +- doc/html/a00366.html | 65 +- doc/html/a00367.html | 35 +- doc/html/a00368.html | 66 +- doc/html/a00369.html | 19 +- doc/html/a00370.html | 40 +- doc/html/a00371.html | 30 +- doc/html/a00372.html | 25 +- doc/html/a00373.html | 49 +- doc/html/a00374.html | 45 +- doc/html/a00375.html | 80 +- doc/html/a00376.html | 85 +- doc/html/a00377.html | 108 +- doc/html/a00378.html | 161 +- doc/html/a00379.html | 64 +- doc/html/a00380.html | 153 ++ doc/html/a00381.html | 114 +- doc/html/a00382.html | 155 -- doc/html/a00383.html | 201 +- doc/html/a00384.html | 112 +- doc/html/a00385.html | 110 +- doc/html/a00386.html | 27 +- doc/html/a00387.html | 19 +- doc/html/a00388.html | 28 +- doc/html/a00389.html | 20 +- doc/html/a00390.html | 20 +- doc/html/a00391.html | 20 +- doc/html/a00392.html | 20 +- doc/html/a00393.html | 20 +- doc/html/a00394.html | 20 +- doc/html/a00395.html | 20 +- doc/html/a00396.html | 20 +- doc/html/a00397.html | 34 +- doc/html/a00398.html | 32 +- doc/html/a00399.html | 46 +- doc/html/a00400.html | 74 +- doc/html/a00401.html | 32 +- doc/html/a00402.html | 74 +- doc/html/a00403.html | 49 +- doc/html/a00404.html | 46 +- doc/html/a00405.html | 54 +- doc/html/a00406.html | 36 +- doc/html/a00407.html | 31 +- doc/html/a00408.html | 27 +- doc/html/a00409.html | 51 +- doc/html/a00410.html | 30 +- doc/html/a00411.html | 48 +- doc/html/a00412.html | 25 +- doc/html/a00413.html | 25 +- doc/html/a00414.html | 31 +- doc/html/a00415.html | 31 +- doc/html/a00416.html | 29 +- doc/html/a00417.html | 33 +- doc/html/a00418.html | 19 +- doc/html/a00419.html | 14 +- doc/html/a00420.html | 13 +- doc/html/a00421.html | 13 +- doc/html/a00422.html | 14 +- doc/html/a00423.html | 10 +- doc/html/a00424.html | 11 +- doc/html/a00425.html | 11 +- doc/html/a00426.html | 11 +- doc/html/a00427.html | 14 +- doc/html/a00428.html | 23 +- doc/html/a00429.html | 13 +- doc/html/a00430.html | 15 +- doc/html/a00431.html | 29 +- doc/html/a00432.html | 16 +- doc/html/a00433.html | 17 +- doc/html/a00434.html | 103 +- doc/html/a00435.html | 23 +- doc/html/a00436.html | 15 +- doc/html/a00437.html | 99 +- doc/html/a00438.html | 22 +- doc/html/a00439.html | 21 +- doc/html/a00440.html | 22 +- doc/html/a00441.html | 40 +- doc/html/a00442.html | 29 +- doc/html/a00443.html | 22 +- doc/html/a00444.html | 66 +- doc/html/a00445.html | 44 +- doc/html/a00446.html | 22 +- doc/html/a00447.html | 65 +- doc/html/a00448.html | 62 +- doc/html/a00449.html | 32 +- doc/html/a00450.html | 40 +- doc/html/a00451.html | 40 +- doc/html/a00452.html | 24 +- doc/html/a00453.html | 14 +- doc/html/a00454.html | 22 +- doc/html/a00455.html | 13 +- doc/html/a00456.html | 14 +- doc/html/a00457.html | 21 +- doc/html/a00458.html | 51 +- doc/html/a00459.html | 30 +- doc/html/a00460.html | 36 +- doc/html/a00461.html | 49 +- doc/html/a00462.html | 36 +- doc/html/a00463.html | 33 +- doc/html/a00464.html | 11 +- doc/html/a00465.html | 21 +- doc/html/a00466.html | 11 +- doc/html/a00467.html | 19 +- doc/html/a00468.html | 26 +- doc/html/a00469.html | 25 +- doc/html/a00470.html | 28 +- doc/html/a00471.html | 35 +- doc/html/a00472.html | 25 +- doc/html/a00473.html | 34 +- doc/html/a00474.html | 26 +- doc/html/a00475.html | 19 +- doc/html/a00476.html | 26 +- doc/html/a00477.html | 16 +- doc/html/a00478.html | 28 +- doc/html/a00479.html | 19 +- doc/html/a00480.html | 14 +- doc/html/a00481.html | 21 +- doc/html/a00482.html | 22 +- doc/html/a00483.html | 19 +- doc/html/a00484.html | 17 +- doc/html/a00485.html | 32 +- doc/html/a00486.html | 26 +- doc/html/a00487.html | 42 +- doc/html/a00488.html | 75 + doc/html/a00489.html | 68 + doc/html/a00490.html | 83 + doc/html/annotated.html | 384 +-- doc/html/classes.html | 136 +- .../dir_525f2cc589630bacbdc3bb450847427e.html | 2 +- .../dir_63fb2cc293d133785b96e521fa051167.html | 2 +- .../dir_87119f26c7695cbc270003e99bc7f49f.html | 118 +- .../dir_b9976680b2be72d2d0b8fca1c31202a2.html | 2 +- doc/html/files.html | 8 +- doc/html/functions.html | 60 +- doc/html/functions_0x62.html | 26 +- doc/html/functions_0x63.html | 78 +- doc/html/functions_0x64.html | 52 +- doc/html/functions_0x65.html | 76 +- doc/html/functions_0x66.html | 20 +- doc/html/functions_0x67.html | 22 +- doc/html/functions_0x68.html | 4 +- doc/html/functions_0x69.html | 61 +- doc/html/functions_0x6a.html | 4 +- doc/html/functions_0x6c.html | 26 +- doc/html/functions_0x6d.html | 34 +- doc/html/functions_0x6e.html | 14 +- doc/html/functions_0x6f.html | 60 +- doc/html/functions_0x70.html | 32 +- doc/html/functions_0x71.html | 8 +- doc/html/functions_0x72.html | 122 +- doc/html/functions_0x73.html | 81 +- doc/html/functions_0x74.html | 114 +- doc/html/functions_0x75.html | 18 +- doc/html/functions_0x76.html | 12 +- doc/html/functions_0x77.html | 12 +- doc/html/functions_0x7e.html | 68 +- doc/html/functions_enum.html | 10 +- doc/html/functions_eval.html | 20 +- doc/html/functions_func.html | 48 +- doc/html/functions_func_0x62.html | 24 +- doc/html/functions_func_0x63.html | 70 +- doc/html/functions_func_0x64.html | 36 +- doc/html/functions_func_0x65.html | 54 +- doc/html/functions_func_0x66.html | 12 +- doc/html/functions_func_0x67.html | 22 +- doc/html/functions_func_0x68.html | 4 +- doc/html/functions_func_0x69.html | 49 +- doc/html/functions_func_0x6a.html | 4 +- doc/html/functions_func_0x6c.html | 24 +- doc/html/functions_func_0x6d.html | 26 +- doc/html/functions_func_0x6e.html | 10 +- doc/html/functions_func_0x6f.html | 50 +- doc/html/functions_func_0x70.html | 24 +- doc/html/functions_func_0x71.html | 8 +- doc/html/functions_func_0x72.html | 112 +- doc/html/functions_func_0x73.html | 62 +- doc/html/functions_func_0x74.html | 112 +- doc/html/functions_func_0x75.html | 18 +- doc/html/functions_func_0x77.html | 12 +- doc/html/functions_func_0x7e.html | 68 +- doc/html/functions_rela.html | 14 +- doc/html/functions_type.html | 84 +- doc/html/functions_vars.html | 34 +- doc/html/globals.html | 24 +- doc/html/globals_func.html | 24 +- doc/html/hierarchy.html | 548 ++-- doc/html/index.html | 2 +- doc/html/modules.html | 14 +- doc/html/namespacemembers.html | 38 +- doc/html/namespacemembers_enum.html | 6 +- doc/html/namespacemembers_eval.html | 10 +- doc/html/namespacemembers_func.html | 22 +- doc/html/namespacemembers_type.html | 6 +- doc/html/namespaces.html | 6 +- doc/html/pages.html | 2 +- examples/GettingStarted/index.html | 2 +- .../GettingStarted/sub_string_finder/Makefile | 4 +- .../sub_string_finder/Makefile.windows | 2 +- .../sub_string_finder/index.html | 2 +- .../sub_string_finder/sub_string_finder.cpp | 2 +- .../sub_string_finder_extended.cpp | 2 +- .../sub_string_finder_pretty.cpp | 2 +- examples/Makefile | 3 +- examples/common/copy_libraries.bat | 2 +- examples/common/gui/Makefile.gmake | 2 +- examples/common/gui/Makefile.win | 2 +- examples/common/gui/convideo.cpp | 2 +- examples/common/gui/d2dvideo.cpp | 2 +- examples/common/gui/dxcheck.bat | 2 +- examples/common/gui/gdivideo.cpp | 2 +- examples/common/gui/macvideo.cpp | 12 +- examples/common/gui/video.h | 2 +- examples/common/gui/winvideo.h | 2 +- .../common/gui/xcode/tbbExample/Info.plist | 59 - .../common/gui/xcode/tbbExample/OpenGLView.h | 26 +- .../common/gui/xcode/tbbExample/OpenGLView.m | 74 +- .../xcode/tbbExample/en.lproj/MainMenu.xib | 339 +-- .../gui/xcode/tbbExample/iOS.storyboard | 28 + examples/common/gui/xcode/tbbExample/main.m | 27 +- .../gui/xcode/tbbExample/tbbAppDelegate.h | 18 +- .../gui/xcode/tbbExample/tbbAppDelegate.m | 27 +- .../tbbExample/tbbExample-Info.ios.plist | 44 + .../xcode/tbbExample/tbbExample-Info.plist | 16 +- .../xcode/tbbExample/tbbExample-Prefix.pch | 11 +- examples/common/gui/xvideo.cpp | 2 +- examples/common/index.html | 2 +- examples/common/utility/fast_random.h | 2 +- examples/common/utility/utility.h | 8 +- .../count_strings/Makefile | 4 +- .../count_strings/Makefile.windows | 2 +- .../count_strings/count_strings.cpp | 2 +- .../count_strings/index.html | 2 +- examples/concurrent_hash_map/index.html | 2 +- .../shortpath/Makefile | 4 +- .../shortpath/Makefile.windows | 2 +- .../shortpath/index.html | 4 +- .../shortpath/shortpath.cpp | 2 +- examples/graph/binpack/Makefile | 4 +- examples/graph/binpack/Makefile.windows | 2 +- examples/graph/binpack/binpack.cpp | 48 +- examples/graph/binpack/index.html | 2 +- examples/graph/cholesky/Makefile | 4 +- examples/graph/cholesky/Makefile.windows | 2 +- examples/graph/cholesky/cholesky.cpp | 2 +- examples/graph/cholesky/index.html | 2 +- examples/graph/cholesky/init.cpp | 2 +- examples/graph/dining_philosophers/Makefile | 4 +- .../dining_philosophers/Makefile.windows | 2 +- .../dining_philosophers.cpp | 2 +- examples/graph/dining_philosophers/index.html | 6 +- examples/graph/fgbzip2/Makefile | 4 +- examples/graph/fgbzip2/Makefile.windows | 2 +- examples/graph/fgbzip2/blocksort.cpp | 2 +- examples/graph/fgbzip2/bzlib.cpp | 2 +- examples/graph/fgbzip2/bzlib.h | 2 +- examples/graph/fgbzip2/bzlib_private.h | 2 +- examples/graph/fgbzip2/compress.cpp | 2 +- examples/graph/fgbzip2/crctable.cpp | 2 +- examples/graph/fgbzip2/decompress.cpp | 2 +- examples/graph/fgbzip2/fgbzip2.cpp | 2 +- examples/graph/fgbzip2/huffman.cpp | 2 +- examples/graph/fgbzip2/index.html | 2 +- examples/graph/fgbzip2/randtable.cpp | 2 +- examples/graph/index.html | 2 +- examples/graph/logic_sim/D_latch.h | 2 +- examples/graph/logic_sim/Makefile | 4 +- examples/graph/logic_sim/Makefile.windows | 2 +- examples/graph/logic_sim/basics.h | 2 +- examples/graph/logic_sim/four_bit_adder.h | 2 +- examples/graph/logic_sim/index.html | 2 +- examples/graph/logic_sim/one_bit_adder.h | 2 +- examples/graph/logic_sim/test_all.cpp | 5 +- examples/graph/logic_sim/two_bit_adder.h | 2 +- examples/graph/som/Makefile | 4 +- examples/graph/som/Makefile.windows | 2 +- examples/graph/som/index.html | 2 +- examples/graph/som/som.cpp | 2 +- examples/graph/som/som.h | 2 +- examples/graph/som/som_graph.cpp | 2 +- examples/index.html | 75 +- examples/parallel_do/index.html | 2 +- .../parallel_do/parallel_preorder/Graph.cpp | 2 +- .../parallel_do/parallel_preorder/Graph.h | 2 +- .../parallel_do/parallel_preorder/Makefile | 4 +- .../parallel_preorder/Makefile.windows | 2 +- .../parallel_do/parallel_preorder/Matrix.h | 2 +- .../parallel_do/parallel_preorder/index.html | 2 +- .../parallel_do/parallel_preorder/main.cpp | 2 +- .../parallel_preorder/parallel_preorder.cpp | 2 +- examples/parallel_for/game_of_life/Makefile | 4 +- .../game_of_life/Makefile.windows | 2 +- examples/parallel_for/game_of_life/index.html | 2 +- .../game_of_life/src/AssemblyInfo.cpp | 2 +- .../parallel_for/game_of_life/src/Board.h | 2 +- .../game_of_life/src/Evolution.cpp | 2 +- .../parallel_for/game_of_life/src/Evolution.h | 2 +- .../parallel_for/game_of_life/src/Form1.h | 2 +- .../game_of_life/src/Game_of_life.cpp | 2 +- .../game_of_life/src/Update_state.cpp | 2 +- examples/parallel_for/index.html | 2 +- .../parallel_for/polygon_overlay/Makefile | 6 +- .../polygon_overlay/Makefile.windows | 2 +- .../parallel_for/polygon_overlay/index.html | 2 +- .../parallel_for/polygon_overlay/polymain.cpp | 2 +- .../parallel_for/polygon_overlay/polymain.h | 2 +- .../parallel_for/polygon_overlay/polyover.cpp | 2 +- .../parallel_for/polygon_overlay/polyover.h | 2 +- .../polygon_overlay/pover_global.h | 2 +- .../polygon_overlay/pover_video.cpp | 2 +- .../polygon_overlay/pover_video.h | 2 +- .../parallel_for/polygon_overlay/rpolygon.h | 2 +- .../polygon_overlay.xcodeproj/project.pbxproj | 198 +- .../xcschemes/tbbExample.ios.xcscheme | 91 + .../xcschemes/tbbExample.xcscheme | 18 +- examples/parallel_for/seismic/Makefile | 6 +- .../parallel_for/seismic/Makefile.windows | 2 +- examples/parallel_for/seismic/index.html | 2 +- examples/parallel_for/seismic/main.cpp | 2 +- .../parallel_for/seismic/seismic_video.cpp | 2 +- examples/parallel_for/seismic/seismic_video.h | 2 +- examples/parallel_for/seismic/universe.cpp | 2 +- examples/parallel_for/seismic/universe.h | 2 +- .../xcode/seismic.xcodeproj/project.pbxproj | 271 +- .../xcschemes/tbbExample.ios.xcscheme | 119 + .../xcschemes/tbbExample.xcscheme | 18 +- examples/parallel_for/tachyon/Makefile | 6 +- .../parallel_for/tachyon/Makefile.windows | 2 +- .../tachyon/android/AndroidManifest.xml | 2 +- .../tachyon/android/jni/Android.mk | 2 +- .../tachyon/android/jni/Application.mk | 6 +- .../tachyon/android/jni/jni-engine.cpp | 2 +- .../tachyon/android/project.properties | 2 +- .../intel/tbb/example/tachyon/tachyon.java | 2 +- .../tachyon/android_as/app/build.gradle | 67 + .../tachyon/android_as/build.gradle | 43 + .../tachyon/android_as/settings.gradle | 21 + examples/parallel_for/tachyon/index.html | 26 +- .../tachyon/msvs/win8ui/App.xaml.cpp | 2 +- .../tachyon/msvs/win8ui/App.xaml.h | 2 +- .../tachyon/msvs/win8ui/DirectXBase.cpp | 2 +- .../tachyon/msvs/win8ui/DirectXBase.h | 2 +- .../tachyon/msvs/win8ui/DirectXPage.xaml.cpp | 2 +- .../tachyon/msvs/win8ui/DirectXPage.xaml.h | 2 +- .../msvs/win8ui/copy_libraries_and_assets.bat | 2 +- .../parallel_for/tachyon/msvs/win8ui/pch.h | 2 +- .../msvs/win8ui/tbbTachyonRenderer.cpp | 2 +- .../tachyon/msvs/win8ui/tbbTachyonRenderer.h | 2 +- examples/parallel_for/tachyon/src/api.cpp | 2 +- examples/parallel_for/tachyon/src/api.h | 2 +- examples/parallel_for/tachyon/src/apigeom.cpp | 2 +- .../parallel_for/tachyon/src/apitrigeom.cpp | 2 +- .../parallel_for/tachyon/src/apitrigeom.h | 2 +- examples/parallel_for/tachyon/src/bndbox.cpp | 2 +- examples/parallel_for/tachyon/src/bndbox.h | 2 +- examples/parallel_for/tachyon/src/box.cpp | 2 +- examples/parallel_for/tachyon/src/box.h | 2 +- examples/parallel_for/tachyon/src/camera.cpp | 2 +- examples/parallel_for/tachyon/src/camera.h | 2 +- .../parallel_for/tachyon/src/coordsys.cpp | 2 +- examples/parallel_for/tachyon/src/coordsys.h | 2 +- .../parallel_for/tachyon/src/cylinder.cpp | 2 +- examples/parallel_for/tachyon/src/cylinder.h | 2 +- examples/parallel_for/tachyon/src/extvol.cpp | 2 +- examples/parallel_for/tachyon/src/extvol.h | 2 +- examples/parallel_for/tachyon/src/global.cpp | 2 +- examples/parallel_for/tachyon/src/global.h | 2 +- examples/parallel_for/tachyon/src/grid.cpp | 2 +- examples/parallel_for/tachyon/src/grid.h | 2 +- examples/parallel_for/tachyon/src/imageio.cpp | 2 +- examples/parallel_for/tachyon/src/imageio.h | 2 +- examples/parallel_for/tachyon/src/imap.cpp | 2 +- examples/parallel_for/tachyon/src/imap.h | 2 +- .../parallel_for/tachyon/src/intersect.cpp | 2 +- examples/parallel_for/tachyon/src/intersect.h | 2 +- examples/parallel_for/tachyon/src/jpeg.cpp | 2 +- examples/parallel_for/tachyon/src/jpeg.h | 2 +- examples/parallel_for/tachyon/src/light.cpp | 2 +- examples/parallel_for/tachyon/src/light.h | 2 +- examples/parallel_for/tachyon/src/machine.h | 2 +- examples/parallel_for/tachyon/src/macros.h | 2 +- examples/parallel_for/tachyon/src/main.cpp | 60 +- .../parallel_for/tachyon/src/objbound.cpp | 2 +- examples/parallel_for/tachyon/src/objbound.h | 2 +- examples/parallel_for/tachyon/src/parse.cpp | 2 +- examples/parallel_for/tachyon/src/parse.h | 2 +- examples/parallel_for/tachyon/src/plane.cpp | 2 +- examples/parallel_for/tachyon/src/plane.h | 2 +- examples/parallel_for/tachyon/src/ppm.cpp | 2 +- examples/parallel_for/tachyon/src/ppm.h | 2 +- examples/parallel_for/tachyon/src/pthread.cpp | 2 +- examples/parallel_for/tachyon/src/pthread_w.h | 2 +- examples/parallel_for/tachyon/src/quadric.cpp | 2 +- examples/parallel_for/tachyon/src/quadric.h | 2 +- examples/parallel_for/tachyon/src/render.cpp | 2 +- examples/parallel_for/tachyon/src/render.h | 2 +- examples/parallel_for/tachyon/src/ring.cpp | 2 +- examples/parallel_for/tachyon/src/ring.h | 2 +- examples/parallel_for/tachyon/src/shade.cpp | 2 +- examples/parallel_for/tachyon/src/shade.h | 2 +- examples/parallel_for/tachyon/src/sphere.cpp | 2 +- examples/parallel_for/tachyon/src/sphere.h | 2 +- .../tachyon/src/tachyon_video.cpp | 2 +- .../parallel_for/tachyon/src/tachyon_video.h | 2 +- examples/parallel_for/tachyon/src/texture.cpp | 2 +- examples/parallel_for/tachyon/src/texture.h | 2 +- examples/parallel_for/tachyon/src/tgafile.cpp | 2 +- examples/parallel_for/tachyon/src/tgafile.h | 2 +- examples/parallel_for/tachyon/src/trace.h | 2 +- .../parallel_for/tachyon/src/trace.serial.cpp | 2 +- .../parallel_for/tachyon/src/trace.simple.cpp | 2 +- .../parallel_for/tachyon/src/trace.tbb.cpp | 2 +- .../parallel_for/tachyon/src/trace.tbb1d.cpp | 2 +- .../parallel_for/tachyon/src/trace_rest.cpp | 2 +- .../parallel_for/tachyon/src/triangle.cpp | 2 +- examples/parallel_for/tachyon/src/triangle.h | 2 +- examples/parallel_for/tachyon/src/types.h | 2 +- examples/parallel_for/tachyon/src/ui.cpp | 2 +- examples/parallel_for/tachyon/src/ui.h | 2 +- examples/parallel_for/tachyon/src/util.cpp | 2 +- examples/parallel_for/tachyon/src/util.h | 2 +- examples/parallel_for/tachyon/src/vector.cpp | 2 +- examples/parallel_for/tachyon/src/vector.h | 2 +- examples/parallel_for/tachyon/src/vol.cpp | 2 +- examples/parallel_for/tachyon/src/vol.h | 2 +- .../xcode/tachyon.xcodeproj/project.pbxproj | 309 ++- .../xcschemes/tachyon.serial.xcscheme | 18 +- .../xcschemes/tachyon.tbb.ios.xcscheme | 97 + .../xcschemes/tachyon.tbb.xcscheme | 18 +- .../xcschemes/tachyon.tbb1d.xcscheme | 18 +- examples/parallel_reduce/convex_hull/Makefile | 4 +- .../convex_hull/Makefile.windows | 2 +- .../parallel_reduce/convex_hull/convex_hull.h | 2 +- .../convex_hull/convex_hull_bench.cpp | 2 +- .../convex_hull/convex_hull_sample.cpp | 2 +- .../parallel_reduce/convex_hull/index.html | 2 +- examples/parallel_reduce/index.html | 2 +- examples/parallel_reduce/primes/Makefile | 4 +- .../parallel_reduce/primes/Makefile.windows | 2 +- examples/parallel_reduce/primes/index.html | 2 +- examples/parallel_reduce/primes/main.cpp | 2 +- examples/parallel_reduce/primes/primes.cpp | 2 +- examples/parallel_reduce/primes/primes.h | 2 +- examples/pipeline/index.html | 2 +- examples/pipeline/square/Makefile | 4 +- examples/pipeline/square/Makefile.windows | 2 +- examples/pipeline/square/gen_input.cpp | 2 +- examples/pipeline/square/index.html | 2 +- examples/pipeline/square/square.cpp | 2 +- examples/task/index.html | 2 +- examples/task/tree_sum/Makefile | 4 +- examples/task/tree_sum/Makefile.windows | 2 +- .../tree_sum/OptimizedParallelSumTree.cpp | 2 +- examples/task/tree_sum/SerialSumTree.cpp | 2 +- .../task/tree_sum/SimpleParallelSumTree.cpp | 2 +- examples/task/tree_sum/TreeMaker.h | 2 +- examples/task/tree_sum/common.h | 2 +- examples/task/tree_sum/index.html | 2 +- examples/task/tree_sum/main.cpp | 2 +- examples/task_arena/fractal/Makefile | 6 +- examples/task_arena/fractal/Makefile.windows | 2 +- examples/task_arena/fractal/fractal.cpp | 2 +- examples/task_arena/fractal/fractal.h | 2 +- examples/task_arena/fractal/fractal_video.h | 2 +- examples/task_arena/fractal/index.html | 2 +- examples/task_arena/fractal/main.cpp | 2 +- .../xcode/fractal.xcodeproj/project.pbxproj | 184 +- .../xcschemes/tbbExample.ios.xcscheme | 91 + examples/task_arena/index.html | 2 +- examples/task_group/index.html | 2 +- examples/task_group/sudoku/Makefile | 4 +- examples/task_group/sudoku/Makefile.windows | 2 +- examples/task_group/sudoku/index.html | 2 +- examples/task_group/sudoku/sudoku.cpp | 2 +- examples/test_all/fibonacci/Fibonacci.cpp | 2 +- examples/test_all/fibonacci/Makefile | 4 +- examples/test_all/fibonacci/Makefile.windows | 2 +- examples/test_all/fibonacci/index.html | 2 +- examples/test_all/index.html | 2 +- include/index.html | 2 +- include/serial/tbb/parallel_for.h | 2 +- include/serial/tbb/tbb_annotate.h | 2 +- include/tbb/aggregator.h | 14 +- include/tbb/aligned_space.h | 4 +- include/tbb/atomic.h | 2 +- include/tbb/blocked_range.h | 2 +- include/tbb/blocked_range2d.h | 2 +- include/tbb/blocked_range3d.h | 2 +- include/tbb/cache_aligned_allocator.h | 6 +- include/tbb/combinable.h | 8 +- include/tbb/compat/condition_variable | 2 +- include/tbb/compat/ppl.h | 2 +- include/tbb/compat/thread | 2 +- include/tbb/compat/tuple | 2 +- include/tbb/concurrent_hash_map.h | 18 +- include/tbb/concurrent_lru_cache.h | 2 +- include/tbb/concurrent_priority_queue.h | 2 +- include/tbb/concurrent_queue.h | 14 +- include/tbb/concurrent_unordered_map.h | 2 +- include/tbb/concurrent_unordered_set.h | 4 +- include/tbb/concurrent_vector.h | 2 +- include/tbb/critical_section.h | 8 +- include/tbb/enumerable_thread_specific.h | 6 +- include/tbb/flow_graph.h | 49 +- include/tbb/flow_graph_opencl_node.h | 95 +- include/tbb/global_control.h | 5 +- include/tbb/index.html | 2 +- include/tbb/internal/_aggregator_impl.h | 2 +- include/tbb/internal/_concurrent_queue_impl.h | 2 +- .../tbb/internal/_concurrent_unordered_impl.h | 22 +- include/tbb/internal/_flow_graph_impl.h | 6 +- .../tbb/internal/_flow_graph_indexer_impl.h | 20 +- .../internal/_flow_graph_item_buffer_impl.h | 12 +- include/tbb/internal/_flow_graph_join_impl.h | 14 +- include/tbb/internal/_flow_graph_node_impl.h | 114 +- .../internal/_flow_graph_tagged_buffer_impl.h | 2 +- include/tbb/internal/_flow_graph_trace_impl.h | 70 +- include/tbb/internal/_flow_graph_types_impl.h | 4 +- include/tbb/internal/_mutex_padding.h | 2 +- include/tbb/internal/_range_iterator.h | 2 +- include/tbb/internal/_tbb_hash_compare_impl.h | 4 +- include/tbb/internal/_tbb_strings.h | 2 +- include/tbb/internal/_tbb_windef.h | 4 +- include/tbb/internal/_template_helpers.h | 2 +- .../tbb/internal/_x86_eliding_mutex_impl.h | 2 +- include/tbb/internal/_x86_rtm_rw_mutex_impl.h | 4 +- include/tbb/machine/gcc_armv7.h | 2 +- include/tbb/machine/gcc_generic.h | 4 +- include/tbb/machine/gcc_ia32_common.h | 2 +- include/tbb/machine/gcc_itsx.h | 8 +- include/tbb/machine/ibm_aix51.h | 2 +- include/tbb/machine/icc_generic.h | 4 +- include/tbb/machine/linux_common.h | 2 +- include/tbb/machine/linux_ia32.h | 8 +- include/tbb/machine/linux_ia64.h | 26 +- include/tbb/machine/linux_intel64.h | 2 +- include/tbb/machine/mac_ppc.h | 2 +- include/tbb/machine/macos_common.h | 2 +- include/tbb/machine/mic_common.h | 2 +- include/tbb/machine/msvc_armv7.h | 2 +- include/tbb/machine/msvc_ia32_common.h | 6 +- include/tbb/machine/sunos_sparc.h | 4 +- include/tbb/machine/windows_api.h | 2 +- include/tbb/machine/windows_ia32.h | 2 +- include/tbb/machine/windows_intel64.h | 2 +- include/tbb/machine/xbox360_ppc.h | 18 +- include/tbb/memory_pool.h | 6 +- include/tbb/mutex.h | 12 +- include/tbb/null_mutex.h | 22 +- include/tbb/null_rw_mutex.h | 20 +- include/tbb/parallel_do.h | 72 +- include/tbb/parallel_for.h | 2 +- include/tbb/parallel_for_each.h | 2 +- include/tbb/parallel_invoke.h | 2 +- include/tbb/parallel_reduce.h | 2 +- include/tbb/parallel_scan.h | 48 +- include/tbb/parallel_sort.h | 95 +- include/tbb/parallel_while.h | 28 +- include/tbb/partitioner.h | 4 +- include/tbb/pipeline.h | 72 +- include/tbb/queuing_mutex.h | 2 +- include/tbb/queuing_rw_mutex.h | 2 +- include/tbb/reader_writer_lock.h | 2 +- include/tbb/recursive_mutex.h | 16 +- include/tbb/runtime_loader.h | 2 +- include/tbb/scalable_allocator.h | 2 +- include/tbb/spin_mutex.h | 2 +- include/tbb/spin_rw_mutex.h | 14 +- include/tbb/task.h | 2 +- include/tbb/task_arena.h | 43 +- include/tbb/task_group.h | 6 +- include/tbb/task_scheduler_init.h | 26 +- include/tbb/task_scheduler_observer.h | 6 +- include/tbb/tbb.h | 8 +- include/tbb/tbb_allocator.h | 18 +- include/tbb/tbb_config.h | 64 +- include/tbb/tbb_exception.h | 2 +- include/tbb/tbb_machine.h | 14 +- include/tbb/tbb_profiling.h | 38 +- include/tbb/tbb_stddef.h | 6 +- include/tbb/tbb_thread.h | 34 +- include/tbb/tbbmalloc_proxy.h | 10 +- include/tbb/tick_count.h | 6 +- index.html | 2 +- jni/Android.mk | 5 +- jni/Application.mk | 24 +- src/Makefile | 2 +- src/index.html | 2 +- src/old/concurrent_queue_v2.cpp | 2 +- src/old/concurrent_queue_v2.h | 2 +- src/old/concurrent_vector_v2.cpp | 2 +- src/old/concurrent_vector_v2.h | 2 +- src/old/spin_rw_mutex_v2.cpp | 2 +- src/old/spin_rw_mutex_v2.h | 2 +- src/old/task_v2.cpp | 2 +- src/old/test_concurrent_queue_v2.cpp | 2 +- src/old/test_concurrent_vector_v2.cpp | 2 +- src/old/test_mutex_v2.cpp | 2 +- src/old/test_task_scheduler_observer_v3.cpp | 2 +- src/perf/coarse_grained_raii_lru_cache.h | 2 +- src/perf/cpq_pdes.cpp | 13 +- src/perf/fibonacci_impl_tbb.cpp | 2 +- src/perf/perf.cpp | 2 +- src/perf/perf.h | 2 +- src/perf/perf_sched.cpp | 2 +- src/perf/run_statistics.sh | 2 +- src/perf/statistics.cpp | 2 +- src/perf/statistics.h | 2 +- src/perf/statistics_xml.h | 2 +- src/perf/time_cpq_throughput_test.cpp | 13 +- src/perf/time_fibonacci_cutoff.cpp | 2 +- src/perf/time_framework.h | 4 +- src/perf/time_hash_map.cpp | 2 +- src/perf/time_hash_map_fill.cpp | 12 +- src/perf/time_hash_map_fill.html | 2 +- src/perf/time_locked_work.cpp | 2 +- src/perf/time_lru_cache_throughput.cpp | 7 +- src/perf/time_parallel_for_each.cpp | 4 +- src/perf/time_sandbox.h | 2 +- src/perf/time_vector.cpp | 24 +- src/rml/client/index.html | 2 +- src/rml/client/library_assert.h | 2 +- src/rml/client/omp_dynamic_link.cpp | 2 +- src/rml/client/omp_dynamic_link.h | 2 +- src/rml/client/rml_factory.h | 2 +- src/rml/client/rml_omp.cpp | 2 +- src/rml/client/rml_tbb.cpp | 2 +- src/rml/include/index.html | 2 +- src/rml/include/rml_base.h | 2 +- src/rml/include/rml_omp.h | 2 +- src/rml/include/rml_tbb.h | 2 +- src/rml/index.html | 2 +- src/rml/perfor/omp_nested.cpp | 2 +- src/rml/perfor/omp_simple.cpp | 2 +- src/rml/perfor/tbb_multi_omp.cpp | 2 +- src/rml/perfor/tbb_simple.cpp | 2 +- src/rml/perfor/thread_level.h | 2 +- src/rml/server/index.html | 2 +- src/rml/server/irml.rc | 4 +- src/rml/server/job_automaton.h | 2 +- src/rml/server/lin-rml-export.def | 2 +- src/rml/server/rml_server.cpp | 2 +- src/rml/server/thread_monitor.h | 2 +- src/rml/server/wait_counter.h | 2 +- src/rml/server/win32-rml-export.def | 2 +- src/rml/server/win64-rml-export.def | 2 +- src/rml/test/rml_omp_stub.cpp | 2 +- src/rml/test/test_job_automaton.cpp | 2 +- src/rml/test/test_rml_mixed.cpp | 2 +- src/rml/test/test_rml_omp.cpp | 2 +- src/rml/test/test_rml_omp_c_linkage.c | 2 +- src/rml/test/test_rml_tbb.cpp | 2 +- src/rml/test/test_server.h | 2 +- src/rml/test/test_thread_monitor.cpp | 2 +- src/tbb/arena.cpp | 94 +- src/tbb/arena.h | 143 +- src/tbb/cache_aligned_allocator.cpp | 2 +- src/tbb/cilk-tbb-interop.h | 12 +- src/tbb/concurrent_hash_map.cpp | 4 +- src/tbb/concurrent_monitor.cpp | 2 +- src/tbb/concurrent_monitor.h | 6 +- src/tbb/concurrent_queue.cpp | 14 +- src/tbb/concurrent_vector.cpp | 2 +- src/tbb/condition_variable.cpp | 2 +- src/tbb/critical_section.cpp | 2 +- src/tbb/custom_scheduler.h | 10 +- src/tbb/dynamic_link.cpp | 2 +- src/tbb/dynamic_link.h | 4 +- src/tbb/governor.cpp | 24 +- src/tbb/governor.h | 2 +- src/tbb/ia32-masm/atomic_support.asm | 2 +- src/tbb/ia32-masm/itsx.asm | 2 +- src/tbb/ia32-masm/lock_byte.asm | 2 +- src/tbb/ia64-gas/atomic_support.s | 2 +- src/tbb/ia64-gas/ia64_misc.s | 2 +- src/tbb/ia64-gas/lock_byte.s | 2 +- src/tbb/ia64-gas/log2.s | 2 +- src/tbb/ia64-gas/pause.s | 2 +- src/tbb/ibm_aix51/atomic_support.c | 2 +- src/tbb/index.html | 2 +- src/tbb/intel64-masm/atomic_support.asm | 2 +- src/tbb/intel64-masm/intel64_misc.asm | 2 +- src/tbb/intel64-masm/itsx.asm | 2 +- src/tbb/intrusive_list.h | 20 +- src/tbb/itt_notify.cpp | 6 +- src/tbb/itt_notify.h | 10 +- src/tbb/lin32-tbb-export.def | 2 +- src/tbb/lin32-tbb-export.lst | 2 +- src/tbb/lin64-tbb-export.def | 2 +- src/tbb/lin64-tbb-export.lst | 2 +- src/tbb/lin64ipf-tbb-export.def | 2 +- src/tbb/lin64ipf-tbb-export.lst | 2 +- src/tbb/mac32-tbb-export.def | 2 +- src/tbb/mac32-tbb-export.lst | 2 +- src/tbb/mac64-tbb-export.def | 2 +- src/tbb/mac64-tbb-export.lst | 2 +- src/tbb/mailbox.h | 16 +- src/tbb/market.cpp | 268 +- src/tbb/market.h | 46 +- src/tbb/mutex.cpp | 34 +- src/tbb/observer_proxy.cpp | 2 +- src/tbb/observer_proxy.h | 4 +- src/tbb/pipeline.cpp | 2 +- src/tbb/private_server.cpp | 38 +- src/tbb/queuing_mutex.cpp | 3 +- src/tbb/queuing_rw_mutex.cpp | 19 +- src/tbb/reader_writer_lock.cpp | 4 +- src/tbb/recursive_mutex.cpp | 28 +- src/tbb/scheduler.cpp | 30 +- src/tbb/scheduler.h | 45 +- src/tbb/scheduler_common.h | 2 +- src/tbb/scheduler_utility.h | 10 +- src/tbb/semaphore.cpp | 4 +- src/tbb/semaphore.h | 24 +- src/tbb/spin_mutex.cpp | 2 +- src/tbb/spin_rw_mutex.cpp | 4 +- src/tbb/task.cpp | 2 +- src/tbb/task_group_context.cpp | 2 +- src/tbb/task_stream.h | 2 +- src/tbb/tbb_assert_impl.h | 2 +- src/tbb/tbb_main.cpp | 37 +- src/tbb/tbb_main.h | 14 +- src/tbb/tbb_misc.cpp | 14 +- src/tbb/tbb_misc.h | 4 +- src/tbb/tbb_misc_ex.cpp | 26 +- src/tbb/tbb_resource.rc | 4 +- src/tbb/tbb_statistics.cpp | 10 +- src/tbb/tbb_statistics.h | 32 +- src/tbb/tbb_thread.cpp | 4 +- src/tbb/tbb_version.h | 2 +- src/tbb/tls.h | 2 +- src/tbb/tools_api/disable_warnings.h | 2 +- src/tbb/tools_api/internal/ittnotify.h | 210 -- src/tbb/tools_api/ittnotify.h | 135 +- src/tbb/tools_api/ittnotify_config.h | 58 +- src/tbb/tools_api/ittnotify_static.c | 386 ++- src/tbb/tools_api/ittnotify_static.h | 4 +- src/tbb/tools_api/ittnotify_types.h | 2 +- src/tbb/tools_api/legacy/ittnotify.h | 27 +- src/tbb/tools_api/prototype/ittnotify.h | 213 -- src/tbb/win32-tbb-export.def | 2 +- src/tbb/win32-tbb-export.lst | 2 +- src/tbb/win64-gcc-tbb-export.def | 2 +- src/tbb/win64-gcc-tbb-export.lst | 2 +- src/tbb/win64-tbb-export.def | 2 +- src/tbb/win64-tbb-export.lst | 2 +- src/tbb/winrt-tbb-export.lst | 2 +- src/tbb/x86_rtm_rw_mutex.cpp | 23 +- src/tbb/xbox360-tbb-export.def | 2 +- src/tbbmalloc/Customize.h | 4 +- src/tbbmalloc/MapMemory.h | 2 +- src/tbbmalloc/Statistics.h | 2 +- src/tbbmalloc/TypeDefinitions.h | 2 +- src/tbbmalloc/backend.cpp | 2 +- src/tbbmalloc/backref.cpp | 2 +- src/tbbmalloc/frontend.cpp | 13 +- src/tbbmalloc/index.html | 2 +- src/tbbmalloc/large_objects.cpp | 6 +- src/tbbmalloc/lin32-proxy-export.def | 2 +- src/tbbmalloc/lin32-tbbmalloc-export.def | 2 +- src/tbbmalloc/lin64-proxy-export.def | 2 +- src/tbbmalloc/lin64-tbbmalloc-export.def | 2 +- src/tbbmalloc/lin64ipf-proxy-export.def | 2 +- src/tbbmalloc/lin64ipf-tbbmalloc-export.def | 2 +- src/tbbmalloc/mac32-tbbmalloc-export.def | 2 +- src/tbbmalloc/mac64-tbbmalloc-export.def | 2 +- src/tbbmalloc/proxy.cpp | 2 +- src/tbbmalloc/proxy.h | 6 +- src/tbbmalloc/proxy_overload_osx.h | 2 +- src/tbbmalloc/shared_utils.h | 2 +- src/tbbmalloc/tbb_function_replacement.cpp | 2 +- src/tbbmalloc/tbb_function_replacement.h | 2 +- src/tbbmalloc/tbbmalloc.cpp | 2 +- src/tbbmalloc/tbbmalloc.rc | 4 +- src/tbbmalloc/tbbmalloc_internal.h | 2 +- src/tbbmalloc/tbbmalloc_internal_api.h | 2 +- src/tbbmalloc/win32-gcc-tbbmalloc-export.def | 2 +- src/tbbmalloc/win32-tbbmalloc-export.def | 2 +- src/tbbmalloc/win64-gcc-tbbmalloc-export.def | 2 +- src/tbbmalloc/win64-tbbmalloc-export.def | 2 +- src/tbbmalloc/xbox360-tbbmalloc-export.def | 2 +- src/tbbproxy/tbbproxy-windows.asm | 2 +- src/tbbproxy/tbbproxy.cpp | 2 +- src/test/harness.h | 2 +- src/test/harness_allocator.h | 11 +- src/test/harness_allocator_overload.h | 2 +- src/test/harness_assert.h | 6 +- src/test/harness_bad_expr.h | 8 +- src/test/harness_barrier.h | 2 +- src/test/harness_checktype.h | 6 +- src/test/harness_concurrency.h | 4 +- src/test/harness_concurrency_checker.h | 2 +- src/test/harness_concurrency_tracker.h | 2 +- src/test/harness_cpu.h | 12 +- src/test/harness_defs.h | 4 +- src/test/harness_dynamic_libs.h | 4 +- src/test/harness_eh.h | 8 +- src/test/harness_fp.h | 2 +- src/test/harness_graph.h | 86 +- src/test/harness_inject_scheduler.h | 4 +- src/test/harness_iterator.h | 16 +- src/test/harness_m128.h | 8 +- src/test/harness_memory.h | 12 +- src/test/harness_mic.h | 2 +- src/test/harness_report.h | 10 +- src/test/harness_runtime_loader.h | 2 +- src/test/harness_task.h | 8 +- src/test/harness_tbb_independence.h | 2 +- src/test/harness_test_cases_framework.h | 2 +- src/test/harness_tsx.h | 4 +- src/test/test_ScalableAllocator.cpp | 4 +- src/test/test_ScalableAllocator_STL.cpp | 2 +- src/test/test_aggregator.cpp | 10 +- src/test/test_aligned_space.cpp | 4 +- src/test/test_allocator.h | 18 +- src/test/test_allocator_STL.h | 8 +- src/test/test_assembly.cpp | 12 +- src/test/test_async_node.cpp | 54 +- src/test/test_atomic.cpp | 12 +- src/test/test_blocked_range.cpp | 2 +- src/test/test_blocked_range2d.cpp | 6 +- src/test/test_blocked_range3d.cpp | 8 +- src/test/test_broadcast_node.cpp | 22 +- src/test/test_buffer_node.cpp | 22 +- src/test/test_cache_aligned_allocator.cpp | 2 +- src/test/test_cache_aligned_allocator_STL.cpp | 2 +- src/test/test_cilk_common.h | 4 +- src/test/test_cilk_dynamic_load.cpp | 4 +- src/test/test_cilk_interop.cpp | 4 +- src/test/test_combinable.cpp | 62 +- src/test/test_composite_node.cpp | 106 +- src/test/test_concurrent_hash_map.cpp | 2 +- src/test/test_concurrent_lru_cache.cpp | 2 +- src/test/test_concurrent_monitor.cpp | 4 +- src/test/test_concurrent_priority_queue.cpp | 26 +- src/test/test_concurrent_queue.cpp | 14 +- src/test/test_concurrent_queue_whitebox.cpp | 2 +- src/test/test_concurrent_unordered_common.h | 6 +- src/test/test_concurrent_unordered_map.cpp | 12 +- src/test/test_concurrent_unordered_set.cpp | 2 +- src/test/test_concurrent_vector.cpp | 8 +- src/test/test_condition_variable.h | 2 +- src/test/test_container_move_support.h | 4 +- src/test/test_continue_node.cpp | 34 +- src/test/test_critical_section.cpp | 24 +- src/test/test_dynamic_link.cpp | 4 +- src/test/test_eh_algorithms.cpp | 2 +- src/test/test_eh_flow_graph.cpp | 2 +- src/test/test_eh_tasks.cpp | 74 +- src/test/test_enumerable_thread_specific.cpp | 12 +- src/test/test_examples_common_utility.cpp | 2 +- src/test/test_fast_random.cpp | 10 +- src/test/test_flow_graph.cpp | 20 +- src/test/test_flow_graph_whitebox.cpp | 2 +- src/test/test_fp.cpp | 6 +- src/test/test_function_node.cpp | 78 +- src/test/test_global_control.cpp | 401 ++- src/test/test_global_control_whitebox.cpp | 2 +- src/test/test_halt.cpp | 8 +- src/test/test_handle_perror.cpp | 4 +- src/test/test_hw_concurrency.cpp | 2 +- src/test/test_indexer_node.cpp | 78 +- src/test/test_initializer_list.h | 2 +- src/test/test_inits_loop.cpp | 2 +- src/test/test_intrusive_list.cpp | 6 +- src/test/test_ittnotify.cpp | 2 +- src/test/test_join_node.cpp | 4 +- src/test/test_lambda.cpp | 4 +- src/test/test_limiter_node.cpp | 24 +- src/test/test_malloc_atexit.cpp | 8 +- src/test/test_malloc_compliance.cpp | 4 +- src/test/test_malloc_init_shutdown.cpp | 2 +- src/test/test_malloc_lib_unload.cpp | 2 +- src/test/test_malloc_overload.cpp | 12 +- src/test/test_malloc_pools.cpp | 2 +- src/test/test_malloc_pure_c.c | 2 +- src/test/test_malloc_regression.cpp | 2 +- src/test/test_malloc_used_by_lib.cpp | 2 +- src/test/test_malloc_whitebox.cpp | 16 +- src/test/test_model_plugin.cpp | 4 +- src/test/test_multifunction_node.cpp | 86 +- src/test/test_mutex.cpp | 2 +- src/test/test_mutex_native_threads.cpp | 8 +- src/test/test_opencl_node.cl | 2 +- src/test/test_opencl_node.cpp | 60 +- .../test_opencl_precompiled_kernel_gpu.clbin | Bin 4486 -> 4457 bytes src/test/test_openmp.cpp | 20 +- src/test/test_overwrite_node.cpp | 6 +- src/test/test_parallel_do.cpp | 6 +- src/test/test_parallel_for.cpp | 2 +- src/test/test_parallel_for_each.cpp | 10 +- src/test/test_parallel_for_vectorization.cpp | 2 +- src/test/test_parallel_invoke.cpp | 2 +- src/test/test_parallel_pipeline.cpp | 56 +- src/test/test_parallel_reduce.cpp | 18 +- src/test/test_parallel_scan.cpp | 28 +- src/test/test_parallel_sort.cpp | 132 +- src/test/test_parallel_while.cpp | 22 +- src/test/test_partitioner.h | 2 +- src/test/test_partitioner_whitebox.cpp | 2 +- src/test/test_partitioner_whitebox.h | 4 +- src/test/test_pipeline.cpp | 34 +- src/test/test_pipeline_with_tbf.cpp | 58 +- src/test/test_priority_queue_node.cpp | 22 +- src/test/test_queue_node.cpp | 40 +- src/test/test_range_based_for.h | 2 +- src/test/test_reader_writer_lock.cpp | 2 +- src/test/test_runtime_loader.cpp | 2 +- src/test/test_rwm_upgrade_downgrade.cpp | 4 +- src/test/test_semaphore.cpp | 2 +- src/test/test_sequencer_node.cpp | 32 +- src/test/test_source_node.cpp | 50 +- src/test/test_split_node.cpp | 2 +- src/test/test_static_assert.cpp | 2 +- src/test/test_std_thread.cpp | 2 +- src/test/test_tagged_msg.cpp | 8 +- src/test/test_task.cpp | 2 +- src/test/test_task_arena.cpp | 127 +- src/test/test_task_assertions.cpp | 6 +- src/test/test_task_auto_init.cpp | 2 +- src/test/test_task_enqueue.cpp | 43 +- src/test/test_task_group.cpp | 2 +- src/test/test_task_leaks.cpp | 10 +- src/test/test_task_priority.cpp | 52 +- src/test/test_task_scheduler_init.cpp | 6 +- src/test/test_task_scheduler_observer.cpp | 4 +- src/test/test_task_steal_limit.cpp | 4 +- src/test/test_tbb_condition_variable.cpp | 2 +- src/test/test_tbb_fork.cpp | 2 +- src/test/test_tbb_header.cpp | 9 +- src/test/test_tbb_thread.cpp | 2 +- src/test/test_tbb_version.cpp | 15 +- src/test/test_thread.h | 30 +- src/test/test_tick_count.cpp | 16 +- src/test/test_tuple.cpp | 6 +- src/test/test_write_once_node.cpp | 14 +- src/test/test_yield.cpp | 6 +- 1440 files changed, 29851 insertions(+), 27317 deletions(-) create mode 100644 build/android.icc.inc create mode 100644 build/ios.clang.inc create mode 100644 build/ios.macos.inc rename doc/html/{a00023.png => a00024.png} (100%) delete mode 100644 doc/html/a00025.png create mode 100644 doc/html/a00027.png delete mode 100644 doc/html/a00031.png create mode 100644 doc/html/a00035.png delete mode 100644 doc/html/a00038.png create mode 100644 doc/html/a00041.png delete mode 100644 doc/html/a00043.png create mode 100644 doc/html/a00046.png delete mode 100644 doc/html/a00047.png create mode 100644 doc/html/a00050.png delete mode 100644 doc/html/a00051.png create mode 100644 doc/html/a00053.png delete mode 100644 doc/html/a00054.png create mode 100644 doc/html/a00057.png delete mode 100644 doc/html/a00058.png create mode 100644 doc/html/a00060.png delete mode 100644 doc/html/a00061.png create mode 100644 doc/html/a00065.png delete mode 100644 doc/html/a00068.png create mode 100644 doc/html/a00071.png rename doc/html/{a00073.png => a00074.png} (100%) rename doc/html/{a00076.png => a00077.png} (100%) rename doc/html/{a00078.png => a00079.png} (100%) rename doc/html/{a00080.png => a00081.png} (100%) delete mode 100644 doc/html/a00082.png create mode 100644 doc/html/a00093.png rename doc/html/{a00094.png => a00095.png} (100%) delete mode 100644 doc/html/a00096.png create mode 100644 doc/html/a00099.png delete mode 100644 doc/html/a00102.png create mode 100644 doc/html/a00104.png delete mode 100644 doc/html/a00107.png create mode 100644 doc/html/a00114.png create mode 100644 doc/html/a00120.png delete mode 100644 doc/html/a00124.png create mode 100644 doc/html/a00127.png delete mode 100644 doc/html/a00128.png create mode 100644 doc/html/a00135.png create mode 100644 doc/html/a00136.png delete mode 100644 doc/html/a00138.png delete mode 100644 doc/html/a00139.png create mode 100644 doc/html/a00145.png create mode 100644 doc/html/a00146.png delete mode 100644 doc/html/a00155.png rename doc/html/{a00156.png => a00158.png} (100%) create mode 100644 doc/html/a00159.png rename doc/html/{a00160.png => a00162.png} (100%) delete mode 100644 doc/html/a00163.png delete mode 100644 doc/html/a00164.png create mode 100644 doc/html/a00182.png rename doc/html/{a00184.png => a00186.png} (100%) delete mode 100644 doc/html/a00188.png create mode 100644 doc/html/a00192.png create mode 100644 doc/html/a00193.png rename doc/html/{a00194.png => a00196.png} (100%) delete mode 100644 doc/html/a00197.png delete mode 100644 doc/html/a00198.png create mode 100644 doc/html/a00202.png create mode 100644 doc/html/a00203.png delete mode 100644 doc/html/a00207.png rename doc/html/{a00206.png => a00208.png} (100%) create mode 100644 doc/html/a00212.html rename doc/html/{a00210.png => a00212.png} (100%) create mode 100644 doc/html/a00213.html create mode 100644 doc/html/a00213.png rename doc/html/{a00229.html => a00231.html} (89%) rename doc/html/{a00232.html => a00234.html} (88%) rename doc/html/{a00251.html => a00253.html} (90%) rename doc/html/{a00271.html => a00273.html} (97%) rename doc/html/{a00274.html => a00276.html} (85%) delete mode 100644 doc/html/a00289.html delete mode 100644 doc/html/a00290.html create mode 100644 doc/html/a00295.html delete mode 100644 doc/html/a00297.html create mode 100644 doc/html/a00380.html delete mode 100644 doc/html/a00382.html create mode 100644 doc/html/a00488.html create mode 100644 doc/html/a00489.html create mode 100644 doc/html/a00490.html delete mode 100644 examples/common/gui/xcode/tbbExample/Info.plist create mode 100644 examples/common/gui/xcode/tbbExample/iOS.storyboard create mode 100644 examples/common/gui/xcode/tbbExample/tbbExample-Info.ios.plist create mode 100644 examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme create mode 100644 examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme create mode 100644 examples/parallel_for/tachyon/android_as/app/build.gradle create mode 100644 examples/parallel_for/tachyon/android_as/build.gradle create mode 100644 examples/parallel_for/tachyon/android_as/settings.gradle create mode 100644 examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.ios.xcscheme create mode 100644 examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme delete mode 100644 src/tbb/tools_api/internal/ittnotify.h delete mode 100644 src/tbb/tools_api/prototype/ittnotify.h diff --git a/CHANGES b/CHANGES index 1421c433..f2fc2d38 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,42 @@ The list of most significant changes made over time in Intel(R) Threading Building Blocks (Intel(R) TBB). +Intel TBB 4.4 Update 3 +TBB_INTERFACE_VERSION == 9003 + +Changes (w.r.t. Intel TBB 4.4 Update 2): + +- Modified parallel_sort to not require a default constructor for values + and to use iter_swap() for value swapping. +- Added support for creating or initializing a task_arena instance that + is connected to the arena currently used by the thread. +- graph/binpack example modified to use multifunction_node. +- For performance analysis, use Intel(R) VTune(TM) Amplifier XE 2015 + and higher; older versions are no longer supported. +- Improved support for compilation with disabled RTTI, by omitting its use + in auxiliary code, such as assertions. However some functionality, + particularly the flow graph, does not work if RTTI is disabled. +- The tachyon example for Android* can be built using Android Studio 1.5 + and higher with experimental Gradle plugin 0.4.0. + +Preview Features: + +- Added class opencl_subbufer that allows using OpenCL* sub-buffer + objects with opencl_node. +- Class global_control supports the value of 1 for + max_allowed_parallelism. + +Bugs fixed: + +- Fixed a race causing "TBB Warning: setaffinity syscall failed" message. +- Fixed a compilation issue on OS X* with Intel(R) C++ Compiler 15.0. +- Fixed a bug in queuing_rw_mutex::downgrade() that could temporarily + block new readers. +- Fixed speculative_spin_rw_mutex to stop using the lazy subscription + technique due to its known flaws. +- Fixed memory leaks in the tool support code. + +------------------------------------------------------------------------ Intel TBB 4.4 Update 2 TBB_INTERFACE_VERSION == 9002 diff --git a/Makefile b/Makefile index bc459897..38f1c3c4 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/README.md b/README.md index 4051868f..25699054 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Intel(R) Threading Building Blocks 4.4 Update 2 +# Intel(R) Threading Building Blocks 4.4 Update 3 Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take full advantage of multicore performance, that are portable, composable and have future-proof scalability. @@ -8,7 +8,7 @@ Here are the latest [Changes] (CHANGES) and [Release Notes] (doc/Release_Notes.txt) (contains system requirements and known issues). ## Licensing -Intel(R) TBB 4.4 Update 2 is licensed under [GPLv2] (COPYING) with the runtime exception. +Intel(R) TBB 4.4 Update 3 is licensed under [GPLv2] (COPYING) with the runtime exception. ## Documentation * Intel(R) TBB [tutorial] (https://software.intel.com/en-us/tbb-tutorial) diff --git a/build/AIX.gcc.inc b/build/AIX.gcc.inc index 3b19a6d9..b096ea7d 100644 --- a/build/AIX.gcc.inc +++ b/build/AIX.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/AIX.inc b/build/AIX.inc index 5f87361d..1fe0dda3 100644 --- a/build/AIX.inc +++ b/build/AIX.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.clang.inc b/build/FreeBSD.clang.inc index 5cee5d78..742277b0 100644 --- a/build/FreeBSD.clang.inc +++ b/build/FreeBSD.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc index 20f00271..2107a8f7 100644 --- a/build/FreeBSD.gcc.inc +++ b/build/FreeBSD.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/FreeBSD.inc b/build/FreeBSD.inc index 11d125e0..30d14041 100644 --- a/build/FreeBSD.inc +++ b/build/FreeBSD.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.rml b/build/Makefile.rml index 43cba2dd..c56bb6fd 100644 --- a/build/Makefile.rml +++ b/build/Makefile.rml @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbb b/build/Makefile.tbb index 06e76e2b..fc654971 100644 --- a/build/Makefile.tbb +++ b/build/Makefile.tbb @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc index f2be65e1..25e61ee3 100644 --- a/build/Makefile.tbbmalloc +++ b/build/Makefile.tbbmalloc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.tbbproxy b/build/Makefile.tbbproxy index 706037e7..a7ce066a 100644 --- a/build/Makefile.tbbproxy +++ b/build/Makefile.tbbproxy @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/Makefile.test b/build/Makefile.test index 13e1ef6c..aac409bc 100644 --- a/build/Makefile.test +++ b/build/Makefile.test @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.gcc.inc b/build/SunOS.gcc.inc index 65df43c8..dfeda539 100644 --- a/build/SunOS.gcc.inc +++ b/build/SunOS.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.inc b/build/SunOS.inc index 6f46bab5..be790739 100644 --- a/build/SunOS.inc +++ b/build/SunOS.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/SunOS.suncc.inc b/build/SunOS.suncc.inc index 5a6c6d90..0215e605 100644 --- a/build/SunOS.suncc.inc +++ b/build/SunOS.suncc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/android.gcc.inc b/build/android.gcc.inc index fd4607af..90b573ba 100644 --- a/build/android.gcc.inc +++ b/build/android.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -45,14 +45,12 @@ ifeq ($(APP_PIE), false) PIE_FLAG= endif -LINK_FLAGS = -Wl,-rpath-link=. -rdynamic $(PIE_FLAG) +LINK_FLAGS = -Wl,-rpath-link=. -rdynamic C_FLAGS = $(CPLUS_FLAGS) -# gcc 4.4 and higher support C++11 -ifneq (,$(shell $(CPLUS) -dumpversion | egrep "^(4\.[4-9]|[5-9])")) - # On Android/gcc 4.4.3, -std=c++0x causes ::int64_t and ::uint64_t to be undefined. - CPP11_FLAGS = -std=gnu++0x $(DEFINE_KEY)_TBB_CPP0X -endif +# Supported g++ versions support C++11 +# On Android/gcc 4.4.3, -std=c++0x causes ::int64_t and ::uint64_t to be undefined. +CPP11_FLAGS = -std=c++11 $(DEFINE_KEY)_TBB_CPP0X ifeq ($(cfg), release) CPLUS_FLAGS = -O2 @@ -67,14 +65,6 @@ ifneq (,$(findstring $(arch),ia32 intel64)) CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY endif -ifneq (0, $(dlopen_workaround)) - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=1 - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=1 -else - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=0 - CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=0 -endif - ifeq (0, $(dynamic_load)) CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0 endif @@ -95,15 +85,13 @@ ifeq (ia32,$(arch)) # TODO: Determine best setting of -march and add to CPLUS_FLAGS CPLUS_FLAGS += -m32 LIB_LINK_FLAGS += -m32 -endif - -ifeq (intel64,$(arch)) +else ifeq (intel64,$(arch)) CPLUS_FLAGS += -m64 LIB_LINK_FLAGS += -m64 -endif - -ifeq (arm,$(findstring arm,$(arch))) +else ifeq (arm,$(arch)) CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0 +else ifeq (arm64,$(arch)) + CPLUS_FLAGS += -march=armv8-a endif #------------------------------------------------------------------------------ diff --git a/build/android.icc.inc b/build/android.icc.inc new file mode 100644 index 00000000..216cf7b4 --- /dev/null +++ b/build/android.icc.inc @@ -0,0 +1,128 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + + +COMPILE_ONLY = -c -MMD +PREPROC_ONLY = -E -x c++ +INCLUDE_KEY = -I +DEFINE_KEY = -D +OUTPUT_KEY = -o # +OUTPUTOBJ_KEY = -o # +PIC_KEY = -fPIC +WARNING_AS_ERROR_KEY = -Werror +WARNING_KEY = +TEST_WARNING_KEY = -Wshadow -Woverloaded-virtual -Wextra + +WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor +DYLIB_KEY = -shared +EXPORT_KEY = -Wl,--version-script, +LIBDL = -ldl + +CPLUS = icpc +CONLY = icc + +# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK +LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + +# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly +PIE_FLAG = -pie +ifeq ($(APP_PIE), false) + PIE_FLAG= +endif + +LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +C_FLAGS = $(CPLUS_FLAGS) + +CPP11_FLAGS = -std=c++11 $(DEFINE_KEY)_TBB_CPP0X + +ifeq ($(cfg), release) + CPLUS_FLAGS = -O2 +endif +ifeq ($(cfg), debug) + CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG +endif + +CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H + +ifneq (,$(findstring $(arch),ia32 intel64)) + CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY +endif + +ifeq (0, $(dynamic_load)) + CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0 +endif + + +# Paths to the NDK prebuilt tools and libraries +CPLUS_FLAGS += --sysroot=$(SYSROOT) +LIB_LINK_FLAGS += --sysroot=$(SYSROOT) +# the -static-intel flag is to remove the need to copy Intel-specific libs to the device. +LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared -static-intel + +# This causes CPP11_FLAGS to be issued twice for test_lambda.cpp +# TODO: Fix this in general for all platforms once the correct strategy is determined. +ifneq (00,$(lambdas)$(cpp0x)) + CXX_ONLY_FLAGS += $(CPP11_FLAGS) +endif + +ifeq (ia32,$(arch)) + # TODO: Determine best setting of -march and add to CPLUS_FLAGS + CPLUS_FLAGS += -m32 -march=pentium4 -falign-stack=maintain-16-byte + LIB_LINK_FLAGS += -m32 +else + ifeq (intel64,$(arch)) + CPLUS_FLAGS += -m64 + LIB_LINK_FLAGS += -m64 + endif +endif + +ifeq (arm,$(findstring arm,$(arch))) + $(error "Unsupported architecture $(arch) for icc compiler") +endif + +#------------------------------------------------------------------------------ +# Setting assembler data. +#------------------------------------------------------------------------------ +TBB_ASM.OBJ= +MALLOC_ASM.OBJ= + +ASM = $(tbb_tool_prefix)as +ifeq (intel64,$(arch)) + ASM_FLAGS += --64 +endif +ifeq (ia32,$(arch)) + ASM_FLAGS += --32 +endif +ifeq ($(cfg),debug) + ASM_FLAGS += -g +endif + +ASSEMBLY_SOURCE=$(arch)-gas +#------------------------------------------------------------------------------ +# End of setting assembler data. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# Setting tbbmalloc data. +#------------------------------------------------------------------------------ + +M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions + +#------------------------------------------------------------------------------ +# End of setting tbbmalloc data. +#------------------------------------------------------------------------------ diff --git a/build/android.inc b/build/android.inc index 061e308b..6c398834 100644 --- a/build/android.inc +++ b/build/android.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,35 +28,34 @@ ifeq (android,$(findstring android,$(tbb_os))) $(error TBB only supports cross-compilation for Android. Specify "target=android" instead.) endif -ifneq ("command line","$(origin arch)") - ifeq (icc,$(compiler)) - export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) - export arch:=ia32 - else ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) - export arch:=intel64 - else - $(error "No support for Android in $(COMPILER_VERSION)") - endif - - else - ifdef ANDROID_SERIAL - uname_m:=$(shell adb shell uname -m) - ifeq (i686,$(uname_m)) +ifndef BUILDING_PHASE + ifneq ("command line","$(origin arch)") + ifeq (icc,$(compiler)) + export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 + else ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) + export arch:=intel64 else - export arch:=$(uname_m) + $(error "No support for Android in $(COMPILER_VERSION)") endif + else - ifndef arch - $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set") + ifdef ANDROID_SERIAL + uname_m:=$(shell adb shell uname -m) + ifeq (i686,$(uname_m)) + export arch:=ia32 + else + export arch:=$(uname_m) + endif endif endif endif endif -# Many OS versions (Android 4.0.[0-3] for example) need workaround for dlopen to avoid non-recursive loader lock hang -export dlopen_workaround = 1 +ifeq ("$(arch)","") + $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set") +endif # Android platform only supported from TBB 4.1 forward NO_LEGACY_TESTS = 1 diff --git a/build/android.linux.inc b/build/android.linux.inc index ab40bcc9..cfaef9e8 100644 --- a/build/android.linux.inc +++ b/build/android.linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/android.linux.launcher.sh b/build/android.linux.launcher.sh index 5de025cb..68eb8e4d 100644 --- a/build/android.linux.launcher.sh +++ b/build/android.linux.launcher.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -84,11 +84,11 @@ else # fi # # Find the TBB libraries and add them to the list. # Add TBB libraries from the current directory that contains libtbb* files -files="$(/bin/ls libtbb* 2> /dev/null)" # +files="$(ls libtbb* 2> /dev/null)" # [ -z "$files" ] || fnamelist="$fnamelist $files" # # Add any libraries built for specific tests. exeroot=${exename%\.*} # -files="$(/bin/ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" # +files="$(ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" # [ -z "$files" ] || fnamelist="$fnamelist $files" # # TODO: Add extra libraries from the Intel(R) Compiler for certain tests # found=$(echo $exename | egrep 'test_malloc_atexit\|test_malloc_lib_unload' 2> /dev/null) @@ -137,6 +137,7 @@ for fullname in "$@"; do { # [ -z "$ldpreload" ] || run_prefix="LD_PRELOAD='$ldpreload' $run_prefix" # [ $verbose ] && echo Running $run_prefix ./$exename $* # run_env="$run_env cd $targetdir; export LD_LIBRARY_PATH=." # +[ -z "$VIRTUAL_MACHINE" ] || run_env="$run_env; export VIRTUAL_MACHINE=$VIRTUAL_MACHINE" # # The return_code file is the best way found to return the status of the test execution when using adb shell. eval 'adb shell "$run_env; $run_prefix ./$exename $* || echo -n \$? >error_code"' "${OUTPUT}" # # Capture the return code string and remove the trailing \r from the return_code file contents diff --git a/build/android.macos.inc b/build/android.macos.inc index 2f1b3483..04b2da3a 100644 --- a/build/android.macos.inc +++ b/build/android.macos.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/android.windows.inc b/build/android.windows.inc index 742f240a..c402d91a 100644 --- a/build/android.windows.inc +++ b/build/android.windows.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ endif gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion) ifdef ANDROID_NDK_ROOT - $(warning "NDK version $(ANDROID_NDK_ROOT)") ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT))) + $(warning "NDK version $(ndk_version)") else $(warning "NDK version not set in environment, using \'unknown\' instead.") ndk_version:=unknown diff --git a/build/big_iron.inc b/build/big_iron.inc index 9bafc78d..40a48071 100644 --- a/build/big_iron.inc +++ b/build/big_iron.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/common.inc b/build/common.inc index 6aa702d8..a068247b 100644 --- a/build/common.inc +++ b/build/common.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/common_rules.inc b/build/common_rules.inc index 410bd9af..b99f9819 100644 --- a/build/common_rules.inc +++ b/build/common_rules.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -92,7 +92,7 @@ endef LINK_FILES+=$(TEST_LIBS) # Rule for generating executable test %.$(TEST_EXT): %.$(OBJ) $(TEST_LIBS) $(TEST_PREREQUISITE) $(if $(use_proxy),$(PROXY.LIB)) - $(call make-test-binary,$@,$< $(LINK_FILES)) + $(call make-test-binary,$@,$< $(LINK_FILES) $(PIE_FLAG)) # Rules for generating a test DLL %_dll.$(DLL): LINK_FLAGS += $(PIC_KEY) $(DYLIB_KEY) diff --git a/build/detect.js b/build/detect.js index 9315fe2f..ebe6c9b2 100644 --- a/build/detect.js +++ b/build/detect.js @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/generate_tbbvars.bat b/build/generate_tbbvars.bat index 2eb47c17..29cf74dc 100644 --- a/build/generate_tbbvars.bat +++ b/build/generate_tbbvars.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 2005-2015 Intel Corporation. All Rights Reserved. +REM Copyright 2005-2016 Intel Corporation. All Rights Reserved. REM REM This file is part of Threading Building Blocks. Threading Building Blocks is free software; REM you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/generate_tbbvars.sh b/build/generate_tbbvars.sh index 2f15e1a6..cea33ad4 100644 --- a/build/generate_tbbvars.sh +++ b/build/generate_tbbvars.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/index.html b/build/index.html index 7c69ebb5..268e8d04 100644 --- a/build/index.html +++ b/build/index.html @@ -223,7 +223,7 @@ See the Makefile infrastructure files for examples.
Up to parent directory

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel and Itanium are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/build/ios.clang.inc b/build/ios.clang.inc new file mode 100644 index 00000000..a4b6db43 --- /dev/null +++ b/build/ios.clang.inc @@ -0,0 +1,23 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + +include $(tbb_root)/build/macos.clang.inc + +CPLUS_FLAGS += -miphoneos-version-min=8.0 +LINK_FLAGS += -miphoneos-version-min=8.0 +LIB_LINK_FLAGS += -miphoneos-version-min=8.0 diff --git a/build/ios.macos.inc b/build/ios.macos.inc new file mode 100644 index 00000000..f03bd8c8 --- /dev/null +++ b/build/ios.macos.inc @@ -0,0 +1,36 @@ +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. +# +# This file is part of Threading Building Blocks. Threading Building Blocks is free software; +# you can redistribute it and/or modify it under the terms of the GNU General Public License +# version 2 as published by the Free Software Foundation. Threading Building Blocks is +# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. You should have received a copy of +# the GNU General Public License along with Threading Building Blocks; if not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software library without +# restriction. Specifically, if other files instantiate templates or use macros or inline +# functions from this file, or you compile this file and link it with other files to produce +# an executable, this file does not by itself cause the resulting executable to be covered +# by the GNU General Public License. This exception does not however invalidate any other +# reasons why the executable file might be covered by the GNU General Public License. + +ifneq ($(arch),$(filter $(arch),ia32 intel64 armv7 armv7s arm64)) + $(error $(arch) is unknown architecture. Known arhitechtures are ia32 intel64 armv7 armv7s arm64) +endif + +# if target is ios but arch is ia32/intel64 then build for 32/64 simulator! +ifeq (,$(SDKROOT)) + ifeq ($(arch),$(filter $(arch),ia32 intel64)) + export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneSimulator.*' 2>/dev/null) + else + export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null) + endif +endif +ifeq (,$(SDKROOT)) + $(error iOS* SDK not found) +endif + +ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/") +runtime:=cc$(clang_version)_ios$(ios_version) diff --git a/build/linux.clang.inc b/build/linux.clang.inc index de9aee53..891d0c5d 100644 --- a/build/linux.clang.inc +++ b/build/linux.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc index 9d93cfc1..0112665f 100644 --- a/build/linux.gcc.inc +++ b/build/linux.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.icc.inc b/build/linux.icc.inc index 4d1da053..41d381dc 100644 --- a/build/linux.icc.inc +++ b/build/linux.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.inc b/build/linux.inc index 0fae3485..b2a9abb6 100644 --- a/build/linux.inc +++ b/build/linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,14 +20,16 @@ ifeq (icc,$(compiler)) export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 - endif - ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) - export arch:=intel64 - endif - ifneq (,$(findstring IA-64, $(COMPILER_VERSION))) - export arch:=ia64 + else + ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) + export arch:=intel64 + else + ifneq (,$(findstring IA-64, $(COMPILER_VERSION))) + export arch:=ia64 + endif + endif endif ifeq (,$(arch)) $(warning "Unknown Intel compiler") diff --git a/build/linux.pathcc.inc b/build/linux.pathcc.inc index 477de031..c4f8ea84 100644 --- a/build/linux.pathcc.inc +++ b/build/linux.pathcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/linux.xl.inc b/build/linux.xl.inc index 083b8832..1b8d1495 100644 --- a/build/linux.xl.inc +++ b/build/linux.xl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.clang.inc b/build/macos.clang.inc index b56d86ca..d297f8e2 100644 --- a/build/macos.clang.inc +++ b/build/macos.clang.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -86,26 +86,15 @@ ifeq (ppc32,$(arch)) LIB_LINK_FLAGS += -arch ppc endif -ifeq (armv7,$(arch)) - CPLUS_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch armv7 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode -endif - -ifeq (armv7s,$(arch)) - CPLUS_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch armv7s -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode -endif - -ifeq (arm64,$(arch)) - CPLUS_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LINK_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode - LIB_LINK_FLAGS += -arch arm64 -miphoneos-version-min=8.0 -Wno-implicit-function-declaration -fembed-bitcode +ifeq ($(arch),$(filter $(arch),armv7 armv7s arm64)) + CPLUS_FLAGS += -arch $(arch) + LINK_FLAGS += -arch $(arch) + LIB_LINK_FLAGS += -arch $(arch) endif ifdef SDKROOT CPLUS_FLAGS += -isysroot $(SDKROOT) + LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/ LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/ endif diff --git a/build/macos.gcc.inc b/build/macos.gcc.inc index 75a9b8c8..5947b245 100644 --- a/build/macos.gcc.inc +++ b/build/macos.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.icc.inc b/build/macos.icc.inc index cadeb1d8..f9255675 100644 --- a/build/macos.icc.inc +++ b/build/macos.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/macos.inc b/build/macos.inc index e386826c..b876c429 100644 --- a/build/macos.inc +++ b/build/macos.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,10 +20,10 @@ ifeq (icc,$(compiler)) export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') - ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) + ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION))) export arch:=ia32 else - ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) + ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION))) export arch:=intel64 endif endif @@ -48,23 +48,12 @@ ifndef arch endif endif -ifeq (ios,$(target)) - ifneq (armv7, $(arch)) - $(error $(arch) not supported for target 'ios') - endif - export SDKROOT?=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null) - ifeq (,$(SDKROOT)) - $(error iOS SDK not found) - endif - # next, use a single compiler include file for both iOS* and OS X* builds. - override target:=macos - export target -endif - ifndef runtime - gcc_version:=$(shell gcc -dumpversion) - os_version:=$(shell /usr/bin/sw_vers -productVersion) - export runtime:=cc$(gcc_version)_os$(os_version) + clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/") + ifndef os_version + os_version:=$(shell /usr/bin/sw_vers -productVersion) + endif + export runtime:=cc$(clang_version)_os$(os_version) endif native_compiler := clang diff --git a/build/mic.icc.inc b/build/mic.icc.inc index 448f1a22..3a1b8bff 100644 --- a/build/mic.icc.inc +++ b/build/mic.icc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/mic.linux.inc b/build/mic.linux.inc index 00b28e46..36ee9e29 100644 --- a/build/mic.linux.inc +++ b/build/mic.linux.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/mic.linux.launcher.sh b/build/mic.linux.launcher.sh index 0409f760..e8b8fdc3 100644 --- a/build/mic.linux.launcher.sh +++ b/build/mic.linux.launcher.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -72,6 +72,7 @@ targetdir="`$RSH mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" # hostdir="`mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" # # function copy_files { # + [ $verbose ] && echo Going to copy $* # eval "cp $* $hostdir/ $SUPPRESS 2>/dev/null || exit \$?" # eval "$RCP $hostdir/* $MICDEV:$targetdir/ $SUPPRESS 2>/dev/null || exit \$?" # eval "rm $hostdir/* $SUPPRESS 2>/dev/null || exit \$?" # @@ -100,8 +101,11 @@ fnamelist="" # # For example, go through MIC_LD_LIBRARY_PATH and add TBB libraries from the first # directory that contains tbb files mic_dir_list=`echo .:$MIC_LD_LIBRARY_PATH | tr : " "` # +[ $verbose ] && echo Searching libraries in $mic_dir_list for name in $ldd_list; do # adds the first matched name in specified dirs - fnamelist+="`find $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: # + found="`find -L $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: # + [ $verbose ] && echo File $name: $found + fnamelist+=$found done # # # Remove extra spaces. diff --git a/build/mic.offload.inc b/build/mic.offload.inc index 0cf51a2a..8bf0fd7a 100644 --- a/build/mic.offload.inc +++ b/build/mic.offload.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/test_launcher.bat b/build/test_launcher.bat index 35bbf433..eefe00bd 100644 --- a/build/test_launcher.bat +++ b/build/test_launcher.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 2005-2015 Intel Corporation. All Rights Reserved. +REM Copyright 2005-2016 Intel Corporation. All Rights Reserved. REM REM This file is part of Threading Building Blocks. Threading Building Blocks is free software; REM you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/test_launcher.sh b/build/test_launcher.sh index 882e36c9..cea0c62f 100644 --- a/build/test_launcher.sh +++ b/build/test_launcher.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_aix.sh b/build/version_info_aix.sh index 5df78aff..64725e0e 100644 --- a/build/version_info_aix.sh +++ b/build/version_info_aix.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_android.sh b/build/version_info_android.sh index 55af4ea5..32ec518c 100644 --- a/build/version_info_android.sh +++ b/build/version_info_android.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_linux.sh b/build/version_info_linux.sh index 5df78aff..64725e0e 100644 --- a/build/version_info_linux.sh +++ b/build/version_info_linux.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_macos.sh b/build/version_info_macos.sh index 2db20af0..37b99842 100644 --- a/build/version_info_macos.sh +++ b/build/version_info_macos.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_sunos.sh b/build/version_info_sunos.sh index 3ac838c4..7a021e2e 100644 --- a/build/version_info_sunos.sh +++ b/build/version_info_sunos.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/version_info_windows.js b/build/version_info_windows.js index b0df0985..653d295b 100644 --- a/build/version_info_windows.js +++ b/build/version_info_windows.js @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -40,7 +40,7 @@ WScript.echo( "#N \": BUILD_OS\\t\\t" + if ( WScript.Arguments(0).toLowerCase().match("gcc") ) { tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version"); - WScript.echo( "#N \": BUILD_COMPILER\\t" + + WScript.echo( "#N \": BUILD_GCC\\t" + tmpExec.StdOut.ReadLine() + "\" ENDL \\" ); diff --git a/build/vs2010/index.html b/build/vs2010/index.html index 8f506a13..20afc154 100644 --- a/build/vs2010/index.html +++ b/build/vs2010/index.html @@ -12,7 +12,7 @@ This directory contains the Visual Studio* 2010 solution to build Intel® Thr
tbb.vcxproj
Library project file.
tbbmalloc.vcxproj -
Scalable allocator library project file. Allocator sources are expected to be located in ../../src/tbbmalloc folder.
+
Scalable allocator library project file.
tbbmalloc_proxy.vcxproj
Standard allocator replacement project file.
@@ -20,7 +20,7 @@ This directory contains the Visual Studio* 2010 solution to build Intel® Thr
Up to parent directory

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/build/vs2010/tbb.vcxproj b/build/vs2010/tbb.vcxproj index 4ba5a591..f86cda22 100644 --- a/build/vs2010/tbb.vcxproj +++ b/build/vs2010/tbb.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -197,9 +197,6 @@ true EnableFastChecks MultiThreadedDebugDLL - false - - Level4 ProgramDatabase false @@ -249,9 +246,6 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) MultiThreadedDLL - false - - Level4 ProgramDatabase @@ -306,9 +300,6 @@ true EnableFastChecks MultiThreadedDebug - false - - Level4 ProgramDatabase false @@ -358,9 +349,6 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) MultiThreaded - false - - Level4 ProgramDatabase @@ -396,46 +384,38 @@ true building atomic_support.obj - ml64 /Fo"intel64\Debug-MT\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Debug\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release-MT\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Debug-MT\intel64_misc.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Debug-MT\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Debug\intel64_misc.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Debug\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Release-MT\intel64_misc.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Release-MT\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) true building intel64_misc.obj - ml64 /Fo"intel64\Release\intel64_misc.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm - - intel64\Release\intel64_misc.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm + $(IntDir)%(FileName).obj;%(Outputs) /coff /Zi @@ -454,24 +434,20 @@ true building itsx.obj - ml64 /Fo"intel64\Debug-MT\itsx.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Debug-MT\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Debug\itsx.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Debug\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Release-MT\itsx.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Release-MT\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) true building itsx.obj - ml64 /Fo"intel64\Release\itsx.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm - - intel64\Release\itsx.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm + $(IntDir)%(FileName).obj;%(Outputs) /coff /Zi @@ -569,44 +545,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/build/vs2010/tbbmalloc.vcxproj b/build/vs2010/tbbmalloc.vcxproj index ad9a793d..e228346d 100644 --- a/build/vs2010/tbbmalloc.vcxproj +++ b/build/vs2010/tbbmalloc.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -167,14 +167,11 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) true - - Default MultiThreadedDebugDLL - - Level4 ProgramDatabase + false /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -196,17 +193,13 @@ Disabled .;%(AdditionalIncludeDirectories) false - - Default MultiThreadedDebugDLL - false true - - Level4 ProgramDatabase false + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -224,13 +217,10 @@ /c /MD /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreadedDLL - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -253,14 +243,10 @@ /c /MD /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreadedDLL - false - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -282,14 +268,11 @@ .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) true - - Default MultiThreadedDebug - - Level4 ProgramDatabase + false /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -311,17 +294,13 @@ Disabled .;%(AdditionalIncludeDirectories) false - - Default MultiThreadedDebug - false true - - Level4 ProgramDatabase false + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -339,13 +318,10 @@ /c /MT /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreaded - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -355,8 +331,6 @@ true true false - - MachineX86 @@ -368,14 +342,10 @@ /c /MT /O2 /Zi /EHs- /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /volatile:iso /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I. .;%(AdditionalIncludeDirectories) %(PreprocessorDefinitions) - - MultiThreaded - false - - Level4 ProgramDatabase + false /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions) @@ -394,24 +364,20 @@ true building atomic_support.obj - ml64 /Fo"intel64\Debug-MT\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Debug\atomic_support.obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Debug\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release-MT\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release-MT\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) true building atomic_support.obj - ml64 /Fo"intel64\Release\atomic_support.obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm - - intel64\Release\atomic_support.obj;%(Outputs) + ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm + $(IntDir)%(FileName).obj;%(Outputs) @@ -493,13 +459,7 @@ - - - - - - - + diff --git a/build/vs2010/tbbmalloc_proxy.vcxproj b/build/vs2010/tbbmalloc_proxy.vcxproj index 6462df2c..4cc79246 100644 --- a/build/vs2010/tbbmalloc_proxy.vcxproj +++ b/build/vs2010/tbbmalloc_proxy.vcxproj @@ -107,29 +107,29 @@ <_ProjectFileVersion>10.0.40219.1 - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)ia32\$(Configuration)\ - $(SolutionDir)ia32\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false - $(SolutionDir)intel64\$(Configuration)\ - $(SolutionDir)intel64\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\ false AllRules.ruleset @@ -199,7 +199,6 @@ Default MultiThreadedDebugDLL - false true @@ -255,7 +254,6 @@ MultiThreadedDLL - false Level4 @@ -313,7 +311,6 @@ Default MultiThreadedDebug - false true @@ -369,7 +366,6 @@ MultiThreaded - false Level4 @@ -405,9 +401,7 @@ /I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions) /I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions) - - - + {b15f131e-328a-4d42-adc2-9ff4ca6306d8} diff --git a/build/windows.cl.inc b/build/windows.cl.inc index aebc0b5e..1e3eb8f1 100644 --- a/build/windows.cl.inc +++ b/build/windows.cl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.gcc.inc b/build/windows.gcc.inc index 2a6d0006..d6ffbab2 100644 --- a/build/windows.gcc.inc +++ b/build/windows.gcc.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.icl.inc b/build/windows.icl.inc index 68751686..4c6616f5 100644 --- a/build/windows.icl.inc +++ b/build/windows.icl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/windows.inc b/build/windows.inc index 0ada045e..7cdb51ff 100644 --- a/build/windows.inc +++ b/build/windows.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/xbox360.cl.inc b/build/xbox360.cl.inc index 8cd0bc11..34d3cde3 100644 --- a/build/xbox360.cl.inc +++ b/build/xbox360.cl.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/build/xbox360.inc b/build/xbox360.inc index f3573d60..a995d3da 100644 --- a/build/xbox360.inc +++ b/build/xbox360.inc @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/doc/Release_Notes.txt b/doc/Release_Notes.txt index 6a47fa0b..6046ca4b 100644 --- a/doc/Release_Notes.txt +++ b/doc/Release_Notes.txt @@ -83,6 +83,11 @@ Software - Supported Compilers starting from gcc 4.1 and higher Xcode* 6.3 and higher and command line tools (OS X* only) +Software - Supported Performance Analysis Tools + + Intel(R) VTune(TM) Amplifier XE 2015 and higher. + Intel(R) Inspector XE 2015 and higher. + Intel(R) Advisor XE 2015 and higher. Known Issues ------------ @@ -162,14 +167,8 @@ Library Issues 4.8.2, and 4.9.2), the destructor of a task_group might not throw missing_wait exception. - - On OS X* 10.11 some examples might fail to run via makefiles in - case System Integrity Protection is enabled. In such case - instead of `make ` use the following command: - `run_cmd="DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" make ` - or run executables directly. - ------------------------------------------------------------------------ -Copyright (C) 2005-2015 Intel Corporation. All Rights Reserved. +Copyright (C) 2005-2016 Intel Corporation. All Rights Reserved. Intel, Xeon and Pentium are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/doc/html/a00001.html b/doc/html/a00001.html index 5d398fdd..c8a55e11 100644 --- a/doc/html/a00001.html +++ b/doc/html/a00001.html @@ -50,7 +50,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00002.html b/doc/html/a00002.html index adfece92..47645d20 100644 --- a/doc/html/a00002.html +++ b/doc/html/a00002.html @@ -36,7 +36,7 @@

Class Body implementing the concept of parallel_do body must define:

    -
  • B::operator()(
    +
  • B::operator()(
    cv_item_type item,
    parallel_do_feeder<item_type>& feeder
    ) const
    @@ -53,7 +53,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00003.html b/doc/html/a00003.html index fec1b11f..4025768f 100644 --- a/doc/html/a00003.html +++ b/doc/html/a00003.html @@ -46,7 +46,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00004.html b/doc/html/a00004.html index 7f94ce5b..a80516ea 100644 --- a/doc/html/a00004.html +++ b/doc/html/a00004.html @@ -48,7 +48,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00005.html b/doc/html/a00005.html index d538b45c..3ee7b7d9 100644 --- a/doc/html/a00005.html +++ b/doc/html/a00005.html @@ -34,7 +34,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00006.html b/doc/html/a00006.html index 4033ce67..98accfea 100644 --- a/doc/html/a00006.html +++ b/doc/html/a00006.html @@ -50,7 +50,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00007.html b/doc/html/a00007.html index 243601c3..d21f12c8 100644 --- a/doc/html/a00007.html +++ b/doc/html/a00007.html @@ -34,17 +34,17 @@
Requirements on iterators for parallel_sort
-

Requirements on value type T of RandomAccessIterator for parallel_sort:

+

Requirements on the iterator type It and its value type T for parallel_sort:

    -
  • void swap( T& x, T& y )
    -
    Swaps x and y
  • +
  • void iter_swap( It a, It b )
    +
    Swaps the values of the elements the given iterators a and b are pointing to. It should be a random access iterator.
  • bool Compare::operator()( const T& x, const T& y )
    True if x comes before y;

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00008.html b/doc/html/a00008.html index 14967095..8ddc6616 100644 --- a/doc/html/a00008.html +++ b/doc/html/a00008.html @@ -48,7 +48,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00009.html b/doc/html/a00009.html index 19f5f524..6cb56564 100644 --- a/doc/html/a00009.html +++ b/doc/html/a00009.html @@ -34,7 +34,7 @@
__TBB_malloc_proxy_caller Struct Reference
@@ -45,7 +45,7 @@

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00010.html b/doc/html/a00010.html index 547432d5..c385f037 100644 --- a/doc/html/a00010.html +++ b/doc/html/a00010.html @@ -33,14 +33,14 @@
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
@@ -56,7 +56,7 @@ Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCom
-tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
@@ -67,12 +67,12 @@ typedef
concurrent_hash_map::value_type  - - + - - +concurrent_hash_map::value_type  + +
value_type
 Type of value.
 
- Public Types inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+
- Public Types inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
value_type
 Type of value.
 
@@ -84,45 +84,45 @@ reference  - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

Public Member Functions

operator-> () const
 Return pointer to associated value in hash table.
 
- Public Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- Public Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+bool empty () const
 True if result is empty.
 
+void release ()
 Set to null.
 
+const_reference operator* () const
 Return reference to associated value in hash table.
 
+const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - + - - - - - + + + + - +

Additional Inherited Members

- Protected Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+
- Protected Member Functions inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
bool is_writer ()
 
- Protected Attributes inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
-nodemy_node
 
+
 
- Protected Attributes inherited from tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
+nodemy_node
 
hashcode_t my_hash
 
 

Detailed Description

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
@@ -135,7 +135,7 @@ class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::acce


-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00011.html b/doc/html/a00011.html index df96603c..b53b337c 100644 --- a/doc/html/a00011.html +++ b/doc/html/a00011.html @@ -33,13 +33,13 @@
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference
@@ -57,7 +57,7 @@ void release ()

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00012.html b/doc/html/a00012.html index e3c0ad23..0dd3102e 100644 --- a/doc/html/a00012.html +++ b/doc/html/a00012.html @@ -33,13 +33,13 @@
tbb::interface6::aggregator Class Reference
@@ -70,7 +70,7 @@ Public Member Functions Additional Inherited Members - Private Member Functions inherited from tbb::interface6::aggregator_ext< internal::basic_handler > aggregator_ext (const internal::basic_handler &h) + aggregator_ext (const internal::basic_handler &h)   void process (aggregator_operation *op)  EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
@@ -116,7 +116,7 @@ template<typename Body >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00013.html b/doc/html/a00013.html index e039fd3f..4517ac9e 100644 --- a/doc/html/a00013.html +++ b/doc/html/a00013.html @@ -33,14 +33,14 @@
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
@@ -142,7 +142,7 @@ template<typename handler_type>

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00014.html b/doc/html/a00014.html index f9b945c9..692d1326 100644 --- a/doc/html/a00014.html +++ b/doc/html/a00014.html @@ -33,7 +33,7 @@ +List of all members
tbb::interface6::aggregator_operation Class Reference
@@ -52,8 +52,8 @@ Inheritance diagram for tbb::interface6::aggregator_operation:
-tbb::interface6::internal::basic_operation_base -tbb::interface6::internal::basic_operation< Body > +tbb::interface6::internal::basic_operation_base +tbb::interface6::internal::basic_operation< Body >
@@ -120,7 +120,7 @@ template<typename handler_type >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00015.html b/doc/html/a00015.html index 6f33cfd4..9f18e085 100644 --- a/doc/html/a00015.html +++ b/doc/html/a00015.html @@ -33,15 +33,15 @@
-
tbb::aligned_space< T, N > Class Template Reference
+
tbb::aligned_space< T, N > Class Template Reference
@@ -73,7 +73,7 @@ class tbb::aligned_space< T, N >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00016.html b/doc/html/a00016.html index 258670d2..bfc3f7bd 100644 --- a/doc/html/a00016.html +++ b/doc/html/a00016.html @@ -33,13 +33,13 @@
tbb::flow::interface8::allocate_buffer< T > Struct Template Reference
@@ -52,12 +52,12 @@ static const bool 
value 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00017.html b/doc/html/a00017.html index a4b763c7..f96380f1 100644 --- a/doc/html/a00017.html +++ b/doc/html/a00017.html @@ -33,13 +33,13 @@
tbb::flow::interface8::allocate_buffer< queueing > Struct Template Reference
@@ -52,12 +52,12 @@ static const bool value 
The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00018.html b/doc/html/a00018.html index 0bc4673b..82a4dea9 100644 --- a/doc/html/a00018.html +++ b/doc/html/a00018.html @@ -33,14 +33,14 @@
tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Class Template Reference
@@ -71,12 +71,12 @@ void set_async_gateway  
The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00019.html b/doc/html/a00019.html index 7539af68..cbc4a7c6 100644 --- a/doc/html/a00019.html +++ b/doc/html/a00019.html @@ -33,14 +33,14 @@
tbb::flow::interface8::internal::async_gateway< Output > Class Template Referenceabstract
@@ -87,12 +87,12 @@ class tbb::flow::interface8::internal::async_gateway< Output >

Pure virtual template class that defines interface for async communication.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00020.html b/doc/html/a00020.html index 2e653638..1fabe6b5 100644 --- a/doc/html/a00020.html +++ b/doc/html/a00020.html @@ -33,7 +33,7 @@ +List of all members
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Class Template Reference
@@ -59,16 +59,16 @@ Inheritance diagram for tbb::flow::interface8::async_node< Input, Output, Pol
-tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > +tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > tbb::flow::interface8::internal::async_gateway< Output > -tbb::flow::interface8::sender< Output > -tbb::flow::interface8::graph_node +tbb::flow::interface8::sender< Output > +tbb::flow::interface8::graph_node
- +

Classes

struct  try_put_functor
struct  try_put_functor
 
+typedef sender< input_type >  +typedef receiver< output_type >  +internal::edge_container
+< successor_type >  - - + - - - - + + + - - + - - + - + - - - - - - - - + + + + + + + - - - + + + - +

@@ -80,10 +80,10 @@ typedef Input 

input_typeoutput_type
 
-typedef sender< input_type > predecessor_type
predecessor_type
 
-typedef receiver< output_type > successor_type
successor_type
 
typedef
@@ -92,68 +92,68 @@ typedef
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Public Types inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
typedef Input input_type
 
-typedef null_type output_type
 
+
 
+typedef null_type output_type
 
typedef
internal::wrap_tuple_elements
< N,
internal::multifunction_output,
tuple< Output > >::type 
output_ports_type
 
+
 
typedef
internal::multifunction_input
< input_type,
output_ports_type, Allocator > 
fInput_type
 
+
 
typedef
internal::function_input_queue
< input_type, Allocator > 
input_queue_type
 
 
- Public Types inherited from tbb::flow::interface8::internal::async_gateway< Output >
typedef Output output_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
-typedef Output output_type
 The output type of this sender.
 
-typedef receiver< Output > successor_type
 The successor type for this node.
 
+
- Public Types inherited from tbb::flow::interface8::sender< Output >
+typedef Output output_type
 The output type of this sender.
 
+typedef receiver< Output > successor_type
 The successor type for this node.
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
 
- + @@ -177,11 +177,11 @@ void  +bool  +bool built_successors_type &  +void  +void  @@ -203,59 +203,59 @@ void  - - - - - - + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

template<typename Body >
 async_node (graph &g, size_t concurrency, Body body)
 async_node (graph &g, size_t concurrency, Body body)
 
 async_node (const async_node &other)
set_name (const char *name)
 
-bool register_successor (successor_type &r)
register_successor (successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &r)
remove_successor (successor_type &r)
 Removes a successor from this node.
 
@@ -192,10 +192,10 @@ template<typename Body >
built_successors ()
 
-void internal_add_built_successor (successor_type &r)
internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
internal_delete_built_successor (successor_type &r)
 
void copy_successors (successor_list_type &l)
copy_successors (
size_t successor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
+
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
void set_name (const char *name)
 
+
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::sender< Output >
-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (Output &)
 Request an item from the sender.
 
-virtual bool try_reserve (Output &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-virtual void internal_add_built_successor (successor_type &)=0
 
-virtual void internal_delete_built_successor (successor_type &)=0
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::sender< Output >
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (Output &)
 Request an item from the sender.
 
+virtual bool try_reserve (Output &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+virtual void internal_add_built_successor (successor_type &)=0
 
+virtual void internal_delete_built_successor (successor_type &)=0
 
@@ -272,27 +272,27 @@ Protected Member Functions - - + - +

Protected Types

-typedef multifunction_node
+typedef multifunction_node
< Input, tuple< Output >
, Policy, Allocator > 
base_type
 
void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
void reset_node (reset_flags f)
 
 
- - - - - - - - - + + + + + + + + - +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
static const int N
 
 

Detailed Description

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
@@ -300,12 +300,12 @@ class tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >

Implements async node.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00021.html b/doc/html/a00021.html index 7c70d4ae..b36dd111 100644 --- a/doc/html/a00021.html +++ b/doc/html/a00021.html @@ -33,15 +33,15 @@
-
tbb::atomic< T > Struct Template Reference
+
tbb::atomic< T > Struct Template Reference
@@ -82,7 +82,7 @@ struct tbb::atomic< T >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00022.html b/doc/html/a00022.html index 6f498fae..5e423424 100644 --- a/doc/html/a00022.html +++ b/doc/html/a00022.html @@ -33,13 +33,13 @@
tbb::atomic< void * > Struct Template Reference
@@ -81,7 +81,7 @@ struct tbb::atomic< void * >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00023.html b/doc/html/a00023.html index ed300390..a66237a1 100644 --- a/doc/html/a00023.html +++ b/doc/html/a00023.html @@ -4,7 +4,7 @@ -tbb::bad_last_alloc Class Reference +tbb::interface7::task_arena::attach Struct Reference @@ -33,46 +33,28 @@
-
-
tbb::bad_last_alloc Class Reference
+
tbb::interface7::task_arena::attach Struct Reference
-

Exception for concurrent containers. +

Tag class used to indicate the "attaching" constructor. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::bad_last_alloc:
-
-
- - - -
- - - - -

-Public Member Functions

-const char * what () const throw ()
 
+

#include <task_arena.h>

Detailed Description

-

Exception for concurrent containers.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Tag class used to indicate the "attaching" constructor.

    +

    The documentation for this struct was generated from the following file:
      +
    • task_arena.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00024.html b/doc/html/a00024.html index 1beaae1a..ef3a2851 100644 --- a/doc/html/a00024.html +++ b/doc/html/a00024.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_handler Class Reference +tbb::bad_last_alloc Class Reference @@ -33,31 +33,46 @@
-
tbb::interface6::internal::basic_handler Class Reference
+
tbb::bad_last_alloc Class Reference
+ +

Exception for concurrent containers. + More...

+ +

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::bad_last_alloc:
+
+
+ + + +
- - + +

Public Member Functions

-void operator() (aggregator_operation *op_list) const
 
+const char * what () const throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • +

    Detailed Description

    +

    Exception for concurrent containers.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00023.png b/doc/html/a00024.png similarity index 100% rename from doc/html/a00023.png rename to doc/html/a00024.png diff --git a/doc/html/a00025.html b/doc/html/a00025.html index cca6e968..c4035a06 100644 --- a/doc/html/a00025.html +++ b/doc/html/a00025.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_operation< Body > Class Template Reference +tbb::interface6::internal::basic_handler Class Reference @@ -33,41 +33,23 @@
-
tbb::interface6::internal::basic_operation< Body > Class Template Reference
+
tbb::interface6::internal::basic_handler Class Reference
-
-Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
-
-
- - -tbb::interface6::internal::basic_operation_base -tbb::interface6::aggregator_operation - -
- - -

Public Member Functions

basic_operation (const Body &b)
 
- - - - + +

-Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
+void operator() (aggregator_operation *op_list) const
 

The documentation for this class was generated from the following file:
  • aggregator.h
  • @@ -75,7 +57,7 @@ Additional Inherited Members

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00025.png b/doc/html/a00025.png deleted file mode 100644 index cadf33aedd5b7cd17f7b012f1bad70f6bc772756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2213 zcmeAS@N?(olHy`uVBq!ia0y~yVDe#LVCdjrW?*1YigBr8U|^64@CkAK|NlP&1H+3q zUrYNBO<-VP0OJD(4zPCKk!N6F;3x_53ugEa0as6j7%?z#n0UH4hEy=Vz59C7>^(vb z7hNZBy7#}gKVO2SV`BRg>GLbkZD=l?zVz+8{l^MrCKt*aXPa=~dXJ!>r^^vNP2rMB zMy@VfJZCPLJVjG!k?$#%xl4Qm1#^ScUZ|vYb!1F7a#X)-#QXjE&y}n0)l^NpE?Vro zT2<-MgnYg^-{k~9ifIa$6ooB&=4zh*{@RDTtN-rv5fr?ynA+r5mAb2S^6UGDTU;}C zT9;|xe|*;X#hom<*!fSNuHJVu{Ic_==dbPFu1ei~ENfC`{As@Rf}itNy>)kynPlXs zp6|NMy<}G0`t-;db7t7*$4?Fpy`1#v>5rYM>AhCh&i;2YSTsV1uYUZiD;C}bYNr`%)lB*Ph z@BR+`6}9ZB+NwlN;XmI0s#2ovyeo1LO<47iePZT%=kS!MT&2{e`t#97z8{yHpMAUP z(u7RIpSPOhX3m=JG4sLw%lelK_BK5a^*4`;zodLLzjCr*xvJ8mjyh*0B`Z+4pP#UDZe!o06Q-B$ z{9EetfwRUVWtH$lKW~>K;!Au!Os?^p)!p&K2021BgI!!^PvNxkoT;RAYl+VV&r>3T z7u8am{16fR{xK7$N9&V3PLbg8F&$SG_vB zJiRj3(EJT=*4K5?->YQ%dOB_x)KBl|=z4duuG>d`!_K^!v#wv*Gd23K-{bG8T^$wu z&5{4!r)VvmBA=#wS$9s%e>t@)3!et=J3c%8!p^HUyX;P%zHYVQEnmIvCaK_X|KBSY z-?drst~x#^Dork=cJ5u)u+8;tKF*TwUdMgkwq~wY{Qvtq%jUUH2|87OsxGC+0I&$4_QzKfHR?+;fI5U)LBtTlT&v_^V3jrEHxIy%F|$mt*_ewL|@+y>3>j zd1*e~zij5SYw5e~estwl#l+ux_@Odp>a%NCr}CU`ef9R5bXLvWYfSPQmru{0s;HkD z_uqW?w4hV<2h3AvZMuEsao{|?biJ><^~)C7&Wy|4;=JtWn$IQiCqr~U=(rsDQ?txx z``o-scl4)b)+*0FvE|>~dea)+(`npaPlTo1I`^y9=QXR6QkGrNvYlIayyt6P7IC+_SUjn>+(aDVsovZ7L$%*ieL59oUq7e5W~`dTx?=kQmD`9G5;#!h?rWS+pP z2gTa@tER8-dw5=?IJ)4S&H0ZqUtVpy^Ezq%>B!|T-!(t)4N=Myk2w1;(CDtv?M>gJ zs&*MK-+8x#?noIu_|C3MY>iALqXOl^|m!`ezDG|X!ms25Lnz5i_ z&3%c_(kYj)3LXtzRw#2kMdopca)5K%ug6=7td^=(; zsl9k`e*P9tP`-0L#ljBCQ4g}$=`HoWppx387o=vP2F+LElG7h_K(kS7N=lP5G;@_q zoXFYdF;k)O@)Dm5u5M};O3)l8E;;i-$LXgDM`y|nEwvGG?6@KnpPkuV6S4Lb=JI`)aDR=FwY5gth zQ(qVItqqnF(|!AJ#{BTdaqGY57yr}S@O0PVukUXE4OV;cBx2dKg=Xh}T-$K@NA1i9 zw)W<|KVMKL)O>x3%|PXN#lO~>GSem);_!VH8O7BwZ`1?AK4SH&e&CT z%U|~GGsn{VzmqN-eO~bD^_rAf(<}c?yZ2YrVUzSsId!YOapyOE*wcLU`P=NE2L%SP!%Rwe7St*%Bo4>XKFo7Pi}d!FDk`6*qO=qmC5#fJHPUV=3GuLt&HcruX5w> ztJLbP0ekOOIa|NwwqJJO*1vn&pA{OD?@e5}uf_eS&Ec3=(*Jx+s*Uzu%4qlLj(q;| zTKsaq$-Cn#_MR*DIK?t|kL1i%+V@?Sg--cV^doB8S+O#`orc@yeYG%pTmNu%k@VCc zwHIlMkStPd|KZ<5>6zE$t|)*1^s+&8x6#_a5v*sUmTj$^aKLcAim7Vz_3Tp3{wYDM z^P?*R_tup1)IZyNT-EQq&GDM!>nE;X9rtYA(KVM#_;tf9cS`NQ_3^a+3Q!FZUma0j z|5#Ia&cp9A*K8M@QGB&Nzo!1s6i%y?CrWJMPqE;L#*>Ge%qs0Jc*==wIr+KKuPsqx iQldl~+lR_O{2%72dz}38O^|_sfx*+&&t;ucLK6UXL@}8F diff --git a/doc/html/a00026.html b/doc/html/a00026.html index 60d6a926..0e35ed7f 100644 --- a/doc/html/a00026.html +++ b/doc/html/a00026.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::basic_operation_base Class Reference +tbb::interface6::internal::basic_operation< Body > Class Template Reference @@ -33,33 +33,33 @@
-
tbb::interface6::internal::basic_operation_base Class Referenceabstract
+
tbb::interface6::internal::basic_operation< Body > Class Template Reference
-Inheritance diagram for tbb::interface6::internal::basic_operation_base:
+Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
- - + + +tbb::interface6::internal::basic_operation_base tbb::interface6::aggregator_operation -tbb::interface6::internal::basic_operation< Body >
- - - + + +

-Friends

-class basic_handler
 

+Public Member Functions

basic_operation (const Body &b)
 
@@ -68,20 +68,6 @@ Additional Inherited Membersagg_finished } - - - - - - - - - - -

Additional Inherited Members

 
- Public Member Functions inherited from tbb::interface6::aggregator_operation
-void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
-aggregator_operationnext ()
 
-void set_next (aggregator_operation *n)
 

The documentation for this class was generated from the following file:
-
tbb::blocked_range< Value > Class Template Reference
+
tbb::interface6::internal::basic_operation_base Class Referenceabstract
- -

A range over which to iterate. - More...

- -

#include <blocked_range.h>

+
+Inheritance diagram for tbb::interface6::internal::basic_operation_base:
+
+
+ + +tbb::interface6::aggregator_operation +tbb::interface6::internal::basic_operation< Body > + +
- - - - - - - -

-Public Types

typedef Value const_iterator
 Type of a value. More...
 
-typedef std::size_t size_type
 Type for size of a range.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 blocked_range ()
 Construct range with default-constructed values for begin and end. More...
 
blocked_range (Value begin_, Value end_, size_type grainsize_=1)
 Construct range over half-open interval [begin,end), with the given grainsize.
 
-const_iterator begin () const
 Beginning of range.
 
-const_iterator end () const
 One past last value in range.
 
size_type size () const
 Size of the range. More...
 
-size_type grainsize () const
 The grain size for this range.
 
-bool empty () const
 True if range is empty.
 
bool is_divisible () const
 True if range is divisible. More...
 
 blocked_range (blocked_range &r, split)
 Split range. More...
 
 blocked_range (blocked_range &r, proportional_split &proportion)
 Split range. More...
 
- - - - -

-Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
- - - - - - -

Friends

-template<typename RowValue , typename ColValue >
class blocked_range2d
 
-template<typename RowValue , typename ColValue , typename PageValue >
class blocked_range3d
 
-

Detailed Description

-

template<typename Value>
-class tbb::blocked_range< Value >

- -

A range over which to iterate.

-

Member Typedef Documentation

- -
-
-
-template<typename Value>
- - - - -
typedef Value tbb::blocked_range< Value >::const_iterator
-
- -

Type of a value.

-

Called a const_iterator for sake of algorithms that need to treat a blocked_range as an STL container.

- -
-
-

Constructor & Destructor Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
tbb::blocked_range< Value >::blocked_range ()
-
-inline
-
- -

Construct range with default-constructed values for begin and end.

-

Requires that Value have a default constructor.

- -
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
split  
)
-
-inline
-
- -

Split range.

-

The new Range *this has the second part, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

- -
-
- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
proportional_split & proportion 
)
-
-inline
-
- -

Split range.

-

The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

- -
-
-

Member Function Documentation

- -
-
-
-template<typename Value>
- - - - - -
- - - - - - - -
bool tbb::blocked_range< Value >::is_divisible () const
-
-inline
-
-
- -
-
-
-template<typename Value>
- - - - - + + +
- - - - - - - -
size_type tbb::blocked_range< Value >::size () const
-
-inline
+class basic_handler
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, +agg_finished + }
 
- Public Member Functions inherited from tbb::interface6::aggregator_operation
+void start ()
 Call start before handling this operation.
 
void finish ()
 Call finish when done handling this operation. More...
 
+aggregator_operationnext ()
 
+void set_next (aggregator_operation *n)
 
-
- -

Size of the range.

-

Unspecified if end()<begin().

- -

Referenced by tbb::blocked_range< I >::is_divisible().

- -
-

The documentation for this class was generated from the following file:
    -
  • blocked_range.h
  • +
  • aggregator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00027.png b/doc/html/a00027.png new file mode 100644 index 0000000000000000000000000000000000000000..0f94299e82ac6d9c147a19a509648b78560c3d88 GIT binary patch literal 1561 zcmeAS@N?(olHy`uVBq!ia0y~yU{qvaVCdjrW?*2LzkKa(1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=>k3a7$B+ufw{xHOtu_#F z6?az8{YYvIpI*JE=2C^FQ`9D?Xiiw7nCLOd=FkL{$`(b> zPaMvZo)jLwu*vSX{^YxVZ(YuH)0{EYW76r_jj3-Ym2|I{p4C@pwIuxD?#H$FC#dW_ zTJHy_Hm&ffWVtJ&=-UusQypA=pd?dvd- zGOqC~+PSlBTj`Yeg;eGe|^rD?#|7Sa&wUe3Raf$Q)c16!$9?0P+*rsywai+%7DNR#?q?kVh+AuIR za3*pbc=(aSm7(~MK*QnS01c)YLTwB+hxi-ZC73>NI5Ws4avV_RVXSCTWau|wc_7%v zU~@=-0?FggC8MULa!yN)RNKJ7!r+W**kbc9KJO!!Em7IkF!S+s+X6YhDbF=zuI~D; zdpd@JXS($6oQzxFwyX|6xZp#rGsE|SsLJ~nULUsqzy0M+*9}XrPu-~BAAT;Z)c^YW zGETn3{eH6~X3ssId_9$OQ|a|{Mdqp}e9~_?Uf#7G7T@32t-k+P`}}EM^T_5?Iy08v z+z@-WDqx%7=I3g%U$V1zoxatu&D43n^=-kO4^_{-*<`lcI=XF^|KnXj|K_ zFn^w{vJ4S=bDYJupL`&*OYolLuS1q4XD^7KTlh^+dS1oPTN>TJb~ygheyd}1-#l9S zt6{va`!a}WHbqWrIX+L?cLK_}~nPE(c#AMGWWepsRg z=;O?c$Z4t((^4e|Fv7hwm-;`N800md#d8vqr<72e%1LD&&q?kQlT`W*R6OO{7pB&J zi+{Ra#pj#$-Lxr9ffv?n)0Meeq^!Df@fp`iRr8c{-0j!br)Ataw&f%w?kAP>Zw|Xw z6#eqf1@Bj%>u1l4Wr?oZx^H#;)11)nC4aM~KQQ?7VoB%5o0T?YvC|Zy%irph2REH5 zk#b%-yS9d9yGdeZJ z>s8c`edpZU`eJJi23*a`TsODx?$X1Y+yA~%+$i#{FOQhxKvDSIBzOZSs3 -tbb::blocked_range2d< RowValue, ColValue > Class Template Reference +tbb::blocked_range< Value > Class Template Reference @@ -33,7 +33,7 @@ +Friends | +List of all members
-
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
+
tbb::blocked_range< Value > Class Template Reference
-

A 2-dimensional range that models the Range concept. +

A range over which to iterate. More...

-

#include <blocked_range2d.h>

+

#include <blocked_range.h>

- - - - - + + + + + +

Public Types

-typedef blocked_range< RowValue > row_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< ColValue > col_range_type
 
typedef Value const_iterator
 Type of a value. More...
 
+typedef std::size_t size_type
 Type for size of a range.
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

blocked_range2d (RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
blocked_range2d (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range2d (blocked_range2d &r, split)
 
blocked_range2d (blocked_range2d &r, proportional_split &proportion)
 
-template<typename Split >
void do_split (blocked_range2d &r, Split &split_obj)
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
 blocked_range ()
 Construct range with default-constructed values for begin and end. More...
 
blocked_range (Value begin_, Value end_, size_type grainsize_=1)
 Construct range over half-open interval [begin,end), with the given grainsize.
 
+const_iterator begin () const
 Beginning of range.
 
+const_iterator end () const
 One past last value in range.
 
size_type size () const
 Size of the range. More...
 
+size_type grainsize () const
 The grain size for this range.
 
+bool empty () const
 True if range is empty.
 
bool is_divisible () const
 True if range is divisible. More...
 
 blocked_range (blocked_range &r, split)
 Split range. More...
 
 blocked_range (blocked_range &r, proportional_split &proportion)
 Split range. More...
 
- - - + + + +

Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+ + + + + + +

+Friends

+template<typename RowValue , typename ColValue >
class blocked_range2d
 
+template<typename RowValue , typename ColValue , typename PageValue >
class blocked_range3d
 

Detailed Description

-

template<typename RowValue, typename ColValue = RowValue>
-class tbb::blocked_range2d< RowValue, ColValue >

+

template<typename Value>
+class tbb::blocked_range< Value >

+ +

A range over which to iterate.

+

Member Typedef Documentation

+ +
+
+
+template<typename Value>
+ + + + +
typedef Value tbb::blocked_range< Value >::const_iterator
+
+ +

Type of a value.

+

Called a const_iterator for sake of algorithms that need to treat a blocked_range as an STL container.

+ +
+
+

Constructor & Destructor Documentation

+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
tbb::blocked_range< Value >::blocked_range ()
+
+inline
+
+ +

Construct range with default-constructed values for begin and end.

+

Requires that Value have a default constructor.

+ +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
split  
)
+
+inline
+
+ +

Split range.

+

The new Range *this has the second part, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

+ +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::blocked_range< Value >::blocked_range (blocked_range< Value > & r,
proportional_split & proportion 
)
+
+inline
+
+ +

Split range.

+

The new Range *this has the second part split according to specified proportion, the old range r has the first part. Unspecified if end()<begin() or !is_divisible().

+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
bool tbb::blocked_range< Value >::is_divisible () const
+
+inline
+
+ +

True if range is divisible.

+

Unspecified if end()<begin().

+ +

Referenced by tbb::blocked_range2d< RowValue, ColValue >::is_divisible(), and tbb::blocked_range3d< PageValue, RowValue, ColValue >::is_divisible().

-

A 2-dimensional range that models the Range concept.

-

The documentation for this class was generated from the following file:
    -
  • blocked_range2d.h
  • +
+
+ +
+
+
+template<typename Value>
+ + + + + +
+ + + + + + + +
size_type tbb::blocked_range< Value >::size () const
+
+inline
+
+ +

Size of the range.

+

Unspecified if end()<begin().

+ +

Referenced by tbb::blocked_range< I >::is_divisible().

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • blocked_range.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00029.html b/doc/html/a00029.html index 3feaee30..ba27cca3 100644 --- a/doc/html/a00029.html +++ b/doc/html/a00029.html @@ -4,7 +4,7 @@ -tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference +tbb::blocked_range2d< RowValue, ColValue > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
+
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
-

A 3-dimensional range that models the Range concept. +

A 2-dimensional range that models the Range concept. More...

-

#include <blocked_range3d.h>

+

#include <blocked_range2d.h>

- - - - - - - + + + + +

Public Types

-typedef blocked_range< PageValue > page_range_type
 Type for size of an iteration range.
 
-typedef blocked_range< RowValue > row_range_type
 
-typedef blocked_range< ColValue > col_range_type
 
+typedef blocked_range< RowValue > row_range_type
 Type for size of an iteration range.
 
+typedef blocked_range< ColValue > col_range_type
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + +

Public Member Functions

blocked_range3d (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
blocked_range3d (PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
-bool empty () const
 True if range is empty.
 
-bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range3d (blocked_range3d &r, split)
 
blocked_range3d (blocked_range3d &r, proportional_split &proportion)
 
+
blocked_range2d (RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
 
blocked_range2d (RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
 
+bool empty () const
 True if range is empty.
 
+bool is_divisible () const
 True if range is divisible into two pieces.
 
blocked_range2d (blocked_range2d &r, split)
 
blocked_range2d (blocked_range2d &r, proportional_split &proportion)
 
template<typename Split >
void do_split (blocked_range3d &r, Split &split_obj)
 
-const page_range_typepages () const
 The pages of the iteration space.
 
-const row_range_typerows () const
 The rows of the iteration space.
 
-const col_range_typecols () const
 The columns of the iteration space.
 
void do_split (blocked_range2d &r, Split &split_obj)
 
+const row_range_typerows () const
 The rows of the iteration space.
 
+const col_range_typecols () const
 The columns of the iteration space.
 
- - - + + +

Static Public Attributes

-static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
+static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 

Detailed Description

-

template<typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue>
-class tbb::blocked_range3d< PageValue, RowValue, ColValue >

+

template<typename RowValue, typename ColValue = RowValue>
+class tbb::blocked_range2d< RowValue, ColValue >

-

A 3-dimensional range that models the Range concept.

+

A 2-dimensional range that models the Range concept.


The documentation for this class was generated from the following file:
    -
  • blocked_range3d.h
  • +
  • blocked_range2d.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00030.html b/doc/html/a00030.html index 0417c2c4..50813bdf 100644 --- a/doc/html/a00030.html +++ b/doc/html/a00030.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference +tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference @@ -33,21 +33,96 @@
+
-
tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference
+
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    A 3-dimensional range that models the Range concept. + More...

    + +

    #include <blocked_range3d.h>

    + + + + + + + + + +

    +Public Types

    +typedef blocked_range< PageValue > page_range_type
     Type for size of an iteration range.
     
    +typedef blocked_range< RowValue > row_range_type
     
    +typedef blocked_range< ColValue > col_range_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    blocked_range3d (PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end)
     
    blocked_range3d (PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize)
     
    +bool empty () const
     True if range is empty.
     
    +bool is_divisible () const
     True if range is divisible into two pieces.
     
    blocked_range3d (blocked_range3d &r, split)
     
    blocked_range3d (blocked_range3d &r, proportional_split &proportion)
     
    +template<typename Split >
    void do_split (blocked_range3d &r, Split &split_obj)
     
    +const page_range_typepages () const
     The pages of the iteration space.
     
    +const row_range_typerows () const
     The rows of the iteration space.
     
    +const col_range_typecols () const
     The columns of the iteration space.
     
    + + + + +

    +Static Public Attributes

    +static const bool is_splittable_in_proportion = true
     Static field to support proportional split.
     
    +

    Detailed Description

    +

    template<typename PageValue, typename RowValue = PageValue, typename ColValue = RowValue>
    +class tbb::blocked_range3d< PageValue, RowValue, ColValue >

    + +

    A 3-dimensional range that models the Range concept.

    +

    The documentation for this class was generated from the following file:
      +
    • blocked_range3d.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00031.html b/doc/html/a00031.html index 1b6d0ddc..ebfaeb5c 100644 --- a/doc/html/a00031.html +++ b/doc/html/a00031.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::broadcast_node< T > Class Template Reference +tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference @@ -33,256 +33,21 @@
-
-
tbb::flow::interface8::broadcast_node< T > Class Template Reference
+
tbb::flow::interface8::internal::broadcast_cache< T, M > Class Template Reference
- -

Forwards messages of type T to all successors. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::broadcast_node< T >:
-
-
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

broadcast_node (graph &g)
 
broadcast_node (const broadcast_node &src)
 
-void set_name (const char *name)
 
-virtual bool register_successor (receiver< T > &r)
 Adds a successor.
 
-virtual bool remove_successor (receiver< T > &r)
 Removes s as a successor.
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 build a task to run the successor if possible. Default is old behavior.
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::broadcast_node< T >

- -

Forwards messages of type T to all successors.

-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00031.png b/doc/html/a00031.png deleted file mode 100644 index a7f7e8e6154c8ae0e05bdb4ad587ca57ed049710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1883 zcmeAS@N?(olHy`uVBq!ia0y~yVEWI%z|g_L%)r3lKDWeyfq_9Hz$e7@|9_D9i#K0O z`wvZEU|;~_0|ySUcHWU^U|`@V3GxeO_zwYBPlXsUFtEMyba4!+V0?S`WmS`hfZN0A zMe_>&m)jicO}qF)NSO;8*=gtw^|E@yf98@sI2y z^&I=(|3CO*@x8OlB#tM3E>Dv={?WYizref+|IPo{hstp49bfHxyilfo#t;67uK)Od zpMUwZ!0K2%#|M|V$Nx*Ns{Q}L&p7X>_h0#Ag+IIh3p|jtIsJd{&9`gq*8A<6-*?>X zJhtfL|FGsc$mrMq?cUbc9V?VEukd=*|6kx=(!c%tOpg`H)KB@r|Iq)Z zec$6BDv#`2K>koc^;)7tn_eRWW849I0R@NjBlR2?6#xI3%*(*|OZlI31K-Wp^LZH< zcY)Xpj7(n~Hrcaq2q+x*J^2qmBNGe9hkq*nof{Y!nfBP9{4b#3(7^EC{}Z*8REX}r zn|EE6)6r=I|G{;uRyp4~x_;HG2`vfoO*(Z>0{>U9`lZx8U*O39AMzl!a`$|JJJ0_Y z{FwW1>(j%F67HpceSc~7s;sjGThpo^tXgIIz31bJNB`HW{kJ^xeEF(Zd~zTE^B;X! z)qQ-~f8YQ1`tNpJU3Btnf~{Rl=+z$epZ{l_3=ge6%6#}w!~gXihtIO{yM5&QZ*P9( zUv9?w~K`*O{zBC6s#jv) zb^m3n*`KYt`sUIvqpZ-a`|p4JA1Y*G8twgO?MwSf|NA#v&%ZTwN5(CV-FY=tFCu%) z!b`60eQQ|XqUN-D;;rbA(AejVfBru?c|L8g&Dvk4%XCa(vU9dc-KxFs{;&Bb_uqf}>Q%eWUH(&F@#(os#oEZ=+RDH@ z?hma@=fD29Kawce@l~ik`|N6hb-@d)K zvbLRAP_Om>e}>Gu{R(v{zxsdF-#Z+>d|%w5*X#GqUccqrw9VH(Z(O%@e(2;?t90c) z{69H)|J@v`Ew@wd{e1W2`;7nk6CQM{{=4?&{kQ)cR{HNuPj)&kefIg4eXGKJ`L6pG zR$G2i);_21Q5V%rr!iMjs8 zv=)Vb&g)fJKFU|ADt7$8pv~#{r#;S-*|B=F_U|KrDxyZ`v{ z#URqE89+ zv;J+pdbl)rSy$@hTKx!P6VvUydxEN0UrxLGuW!Em48i}3cfS4q{D?1D%s21d4DYAK zfA;UvS8%v4WBcRGgx~Kkp4W_)6M7EHKY`B!N>=QU=~F#k=y&~X=EMI>kMH_ga(&x| z+WMGX`K1THbpIDfaGm_WziYn#^zuVbO(bou>POG>er7xS*2;ui(b8+Tb4TYck6yof z&Z_WL`C?8Da+!bTudZ6Tch!SUNxxY)8lGE|b2Iy&%IS&EnDTQcot}3ql|Np-TK0c)ns}(c^7*RxkN+=}rTq{38l3v4{lkp^$KP-Lvp=zP@_%uC zc4qHu%OjWHw0;;i{YgE?2iD&I&t2-S{@=Mj`#-zR4I5vrxZJ%Jyldj^%y*wDcleyY zT7c=xiJSkO)9harTb*5FH_JGD>&Ev7)|`B}OEb^^`M%)(ZT~Fds;_$|W`Fo}F)h~M zuUTmSe}Ss63jdsc+^^hl{=oj$?pAhfa@RGg=PqH96%Kh~M1CWRk4B-j}k P7#KWV{an^LB{Ts5)+FjR diff --git a/doc/html/a00032.html b/doc/html/a00032.html index ae6ac250..007d9c5f 100644 --- a/doc/html/a00032.html +++ b/doc/html/a00032.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference +tbb::flow::interface8::broadcast_node< T > Class Template Reference @@ -33,61 +33,256 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
+
tbb::flow::interface8::broadcast_node< T > Class Template Reference
-

bucket accessor is to find, rehash, acquire a lock, and access a bucket +

Forwards messages of type T to all successors. More...

-

#include <concurrent_hash_map.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
+Inheritance diagram for tbb::flow::interface8::broadcast_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

bucket_accessor (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 
-void acquire (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 find a bucket by masked hashcode, optionally rehash, and acquire the lock
 
-bool is_writer ()
 check whether bucket is locked for write
 
-bucket * operator() ()
 get bucket pointer
 
broadcast_node (graph &g)
 
broadcast_node (const broadcast_node &src)
 
+void set_name (const char *name)
 
+virtual bool register_successor (receiver< T > &r)
 Adds a successor.
 
+virtual bool remove_successor (receiver< T > &r)
 Removes s as a successor.
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &t)
 build a task to run the successor if possible. Default is old behavior.
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor

+

template<typename T>
+class tbb::flow::interface8::broadcast_node< T >

-

bucket accessor is to find, rehash, acquire a lock, and access a bucket

+

Forwards messages of type T to all successors.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00032.png b/doc/html/a00032.png index 9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05..a7f7e8e6154c8ae0e05bdb4ad587ca57ed049710 100644 GIT binary patch literal 1883 zcmeAS@N?(olHy`uVBq!ia0y~yVEWI%z|g_L%)r3lKDWeyfq_9Hz$e7@|9_D9i#K0O z`wvZEU|;~_0|ySUcHWU^U|`@V3GxeO_zwYBPlXsUFtEMyba4!+V0?S`WmS`hfZN0A zMe_>&m)jicO}qF)NSO;8*=gtw^|E@yf98@sI2y z^&I=(|3CO*@x8OlB#tM3E>Dv={?WYizref+|IPo{hstp49bfHxyilfo#t;67uK)Od zpMUwZ!0K2%#|M|V$Nx*Ns{Q}L&p7X>_h0#Ag+IIh3p|jtIsJd{&9`gq*8A<6-*?>X zJhtfL|FGsc$mrMq?cUbc9V?VEukd=*|6kx=(!c%tOpg`H)KB@r|Iq)Z zec$6BDv#`2K>koc^;)7tn_eRWW849I0R@NjBlR2?6#xI3%*(*|OZlI31K-Wp^LZH< zcY)Xpj7(n~Hrcaq2q+x*J^2qmBNGe9hkq*nof{Y!nfBP9{4b#3(7^EC{}Z*8REX}r zn|EE6)6r=I|G{;uRyp4~x_;HG2`vfoO*(Z>0{>U9`lZx8U*O39AMzl!a`$|JJJ0_Y z{FwW1>(j%F67HpceSc~7s;sjGThpo^tXgIIz31bJNB`HW{kJ^xeEF(Zd~zTE^B;X! z)qQ-~f8YQ1`tNpJU3Btnf~{Rl=+z$epZ{l_3=ge6%6#}w!~gXihtIO{yM5&QZ*P9( zUv9?w~K`*O{zBC6s#jv) zb^m3n*`KYt`sUIvqpZ-a`|p4JA1Y*G8twgO?MwSf|NA#v&%ZTwN5(CV-FY=tFCu%) z!b`60eQQ|XqUN-D;;rbA(AejVfBru?c|L8g&Dvk4%XCa(vU9dc-KxFs{;&Bb_uqf}>Q%eWUH(&F@#(os#oEZ=+RDH@ z?hma@=fD29Kawce@l~ik`|N6hb-@d)K zvbLRAP_Om>e}>Gu{R(v{zxsdF-#Z+>d|%w5*X#GqUccqrw9VH(Z(O%@e(2;?t90c) z{69H)|J@v`Ew@wd{e1W2`;7nk6CQM{{=4?&{kQ)cR{HNuPj)&kefIg4eXGKJ`L6pG zR$G2i);_21Q5V%rr!iMjs8 zv=)Vb&g)fJKFU|ADt7$8pv~#{r#;S-*|B=F_U|KrDxyZ`v{ z#URqE89+ zv;J+pdbl)rSy$@hTKx!P6VvUydxEN0UrxLGuW!Em48i}3cfS4q{D?1D%s21d4DYAK zfA;UvS8%v4WBcRGgx~Kkp4W_)6M7EHKY`B!N>=QU=~F#k=y&~X=EMI>kMH_ga(&x| z+WMGX`K1THbpIDfaGm_WziYn#^zuVbO(bou>POG>er7xS*2;ui(b8+Tb4TYck6yof z&Z_WL`C?8Da+!bTudZ6Tch!SUNxxY)8lGE|b2Iy&%IS&EnDTQcot}3ql|Np-TK0c)ns}(c^7*RxkN+=}rTq{38l3v4{lkp^$KP-Lvp=zP@_%uC zc4qHu%OjWHw0;;i{YgE?2iD&I&t2-S{@=Mj`#-zR4I5vrxZJ%Jyldj^%y*wDcleyY zT7c=xiJSkO)9harTb*5FH_JGD>&Ev7)|`B}OEb^^`M%)(ZT~Fds;_$|W`Fo}F)h~M zuUTmSe}Ss63jdsc+^^hl{=oj$?pAhfa@RGg=PqH96%Kh~M1CWRk4B-j}k P7#KWV{an^LB{Ts5)+FjR literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yV0_QOz!1Q}%)r3FzK8cU0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}``KhOiV@L(#+qt)^7F+SS zP0#za|G)J62@X0x9WIsa+Ap^9uv9a%UB=B%x@l>xGb6bSJhfCb8J|W^`V_EFRg)jV z_$}CWa;{2j->2ApsxPf>)HXfieyu(G>0Yl%dMBUO-e2~8N6p1>tCL&ztG;~yX~sRf zlYZ42r?#v7t^LMh_j&K%srjC}M0Q_(`7dwk)96Y6Y)b3Av%)9U?0fnyEF%8p_wQRD zPgI=m9i;GZ%IWPY^>@Gh`ljv~zO2SONG|Btv?WWX=`cO%_0d5tPV`4 z%pK&A@w|QcuDd_)?=S!TIcedIZ|om@ui37D#W3xTeMDWU{1*9dkIQCku9tt{y=LE> zYx+41HLcXx;u=gK_X z{4J>Z@xHj-YJXNY6V=Dhq<^ZEzhiuV^XJ|C2bS0LGtQ8k@!H~S z?QxMS+nX=0%b$0@`Tg6x{{IUTdlD^t<<76WC9b=_ZC8Zk_wt(6t%vHLiJw%OfB(5i zaGJmizE3ZwNqqi!9_cKlAJR@lUh% rF>*D`Lr=!D^NlwjI-|qLf0}dFfe$!`njxgN@xNAJl#RK diff --git a/doc/html/a00033.html b/doc/html/a00033.html index 4fc3c4c4..55c87b6b 100644 --- a/doc/html/a00033.html +++ b/doc/html/a00033.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::buffer_node< T, A > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference @@ -33,579 +33,61 @@
-
tbb::flow::interface8::buffer_node< T, A > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
-

Forwards messages in arbitrary order. +

bucket accessor is to find, rehash, acquire a lock, and access a bucket More...

-

#include <flow_graph.h>

+

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::sequencer_node< T, A > + +
- - - -

-Classes

class  buffer_operation
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - -

-Protected Types

enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-virtual void internal_forward_task (buffer_operation *op)
 Tries to forward valid items to successors.
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_pop (buffer_operation *op)
 
-virtual void internal_reserve (buffer_operation *op)
 
-virtual void internal_consume (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - -

-Protected Attributes

-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- - - - - - - - - - - - - - + + + + + + + + + + +

-Friends

-class internal::forward_task_bypass< buffer_node< T, A > >
 
-class internal::aggregating_functor< class_type, buffer_operation >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
bucket_accessor (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 
+void acquire (concurrent_hash_map *base, const hashcode_t h, bool writer=false)
 find a bucket by masked hashcode, optionally rehash, and acquire the lock
 
+bool is_writer ()
 check whether bucket is locked for write
 
+bucket * operator() ()
 get bucket pointer
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::buffer_node< T, A >

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor

-

Forwards messages in arbitrary order.

-

Member Function Documentation

- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::register_successor (successor_typer)
-
-inlinevirtual
-
- -

Adds a new successor.

-

Adds successor r to the list of successors; may forward tasks.

- -

Implements tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::remove_successor (successor_typer)
-
-inlinevirtual
-
- -

Removes a successor.

-

Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor.

- -

Implements tbb::flow::interface8::sender< T >.

- -

References tbb::flow::interface8::receiver< T >::remove_predecessor().

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_consume ()
-
-inlinevirtual
-
- -

Consumes a reserved item.

-

true = item is removed from sender and reservation removed

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_get (T & v)
-
-inlinevirtual
-
- -

Request an item from the buffer_node.

-

true = v contains the returned item
- false = no item has been returned

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
- -
-
-
-template<typename T, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::buffer_node< T, A >::try_reserve (T & v)
-
-inlinevirtual
-
- -

Reserves an item.

-

false = no item can be reserved
- true = an item is reserved

- -

Reimplemented from tbb::flow::interface8::sender< T >.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    bucket accessor is to find, rehash, acquire a lock, and access a bucket

    +

The documentation for this class was generated from the following file:
    +
  • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00033.png b/doc/html/a00033.png index 012b7704743d2b4944e6b0274216eadac763aa52..9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05 100644 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yV0_QOz!1Q}%)r3FzK8cU0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}``KhOiV@L(#+qt)^7F+SS zP0#za|G)J62@X0x9WIsa+Ap^9uv9a%UB=B%x@l>xGb6bSJhfCb8J|W^`V_EFRg)jV z_$}CWa;{2j->2ApsxPf>)HXfieyu(G>0Yl%dMBUO-e2~8N6p1>tCL&ztG;~yX~sRf zlYZ42r?#v7t^LMh_j&K%srjC}M0Q_(`7dwk)96Y6Y)b3Av%)9U?0fnyEF%8p_wQRD zPgI=m9i;GZ%IWPY^>@Gh`ljv~zO2SONG|Btv?WWX=`cO%_0d5tPV`4 z%pK&A@w|QcuDd_)?=S!TIcedIZ|om@ui37D#W3xTeMDWU{1*9dkIQCku9tt{y=LE> zYx+41HLcXx;u=gK_X z{4J>Z@xHj-YJXNY6V=Dhq<^ZEzhiuV^XJ|C2bS0LGtQ8k@!H~S z?QxMS+nX=0%b$0@`Tg6x{{IUTdlD^t<<76WC9b=_ZC8Zk_wt(6t%vHLiJw%OfB(5i zaGJmizE3ZwNqqi!9_cKlAJR@lUh% rF>*D`Lr=!D^NlwjI-|qLf0}dFfe$!`njxgN@xNAJl#RK literal 5251 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUn!0>~EnSp^JdLgq90|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}GM99;{F{Fa=?cLW=n_@)T zE*@NRy7XWApQmyKp949kybtc)~^D!bcro}z+6!n!9rw_X#QY~$?Ua3JPnarRnWwaT`J zhK8O0ist=4Q0xy;w13X?Yf-yHn}_6NOxw%U}h_02zN%)-L5r#XJk^Yb70=HIP*9rF0{ z`Ny+vPuhO%mi|PD5B3{nt=(#NKmVUF)UDT_@3gMldhM3%@4qnp^PgXfs(w_sGderB z7%X-EofqO$i#eBxnbWGq%azjo`k84wqH&5O>?HH4^|YP0>?tt5!KD8YHXG`1x6 zx-K&l6BEFgCEOlAu2%R0sFULTR=83G5yPw7l4Bg{=XX#p#B!b8DO{kxooEZ2M^|dL)gSf zqE#R2e(ig|`2FuX$?KlwvDaO%m)o|()vNN(?sN;ix_yt{`RkYG$GwQ|FS2_1?9O@F{`KaT zm)?ro$Nc@d{#O0gYwNaOuZz>2@!bAv(Y^Sz|DmB0b7?;^-sidkW`&_e$1Z zOgVY^|H+5Szy{@N+gnrFhfBN(Dm-8KO|KIb+Lhap-?|WYV(rEuP_d0Lb96u}3uO*kB z-nl&MwCXzkvOV{HJXm`Ax9alL>+G3pdGqSc&fnfMXZ`xevs0&EoxVEk>W6RBKko^( zVRL`CH1VyX{*333wX;jiYa(N{tX{l)`{;6x+yAcJ`sXjcJZyZ-Kk-AqL~P~{fzZ(P zUvJsS|E^f|WMk{$y=$|t->$5Ged}x4^8SJg-TO`c z_++fznjfKeK6=j__w|oo-aT8{e8lIJ;f=`9uR^DvRj#hMlagH2IJJFG$-Lu-cl>d@ zeEsH!2WPoId=vh3uGH=Kveo&we!o!tul~tK_t}Zkvpedi&yCH_eRZ+*{nMZSzRExS zxop?@Pk)*m^yfUE8h`Hcx}I&z7Vh*s^5XmS{Tsqhd}jOjW4_56+b8$uKL2~Y!r*!T zrpw1J+w}LHKl%CP!&R%|vRB%?-@nY!=FO}ppZDZ#DYU8Ldhv6~$5!{seLAxyKY!iq z(`9}3^NWdfaxdcNKG)wrr$4%XIxnBR{DM{Mwx7J#9e-=T-TC`7zNOsRo*7YnV!y)q z$YMolKsWe{QeltJ3>tZ2IL= zDt1~kb^<`)Ff7?}WD(_|_-#C8R zvt9Z5>K?hzpAyU~_r-jDr@ZajtrIFI$|v28%D%rXW#0A*%lk4rR|55 zm^G81=RPu&`e2}Oo2T-mO?YT-g3$)iXW^k=ue=7;P5B8MHFah@U$rVi`+R8V$F$0Q zH6eBW+nG<>CfJ0Bu2rmDw<_xJ?GOU=%1Xgz z8)#Xn#CGw;?|uFI-v4$@xm0`qdv=3;Dmx?h=_QH0GfmbgPHtmOJ+Pt8N9x)H&%;ti znGxsmrgI+tWRw}|Z<>)~w&9kbIDsv~K$~2n}t|$*Y1J}JA zH)6o`G~;Y$?dy91^JpX&F=d_kl0Mm0VH%=_XS= zv;k)S!u|SN?{7aJPuP;}_ea)$+Fw@2Z?{u5DL0uzH{N z@N3ZZ?u3f&1)N=Dg!`W!Ulpj(t3Mv2o(TrrED;c5LgLn9lt^s*y~b@$JH{?YSr z=5_9KCqKWHFSbAby{lUP+Vxudu3~UVeEw^4e)&1RTjlHLHsA66d?)cyU9U7&oYSSPE_TfLc@!c;A93g#>S~!7Mqs+r8&2Dkvx zZa()C)NWJJW=Pg~euS#sMj#Ob!l? z3ayI`rYV;M1Oz^WP{Y6*4)?$Rjoe>Vw=L5ezOjfND zn+z%V+Zw(XcDa@Bm|G`ZQ+hY$_=g*F@9U+9hTeT8Co}WSUc1?=R>|+KUVDD|rvJ0v zty=YK+VAvz8t0||SFc*NFX7#u_+S2hARBDXf38bDR{dhzy3o+=X>sqazQ5CMx@y(I zw;O)mJzjg^Wa{TVclR$}^=jeF&vho7SFKv_4bmmE_+shr?WdmiAFh7(Y1z&9cKb5* z_w(FKZI5kdo-Tjf_W0{L+uF+)fB*lpk+0t-qVkWO&BBY;zkZ0E50{L6U-Ih7uIIaN ztCklR-nEMV^U1tlzv71d-aCsb?>)M|`Ny8g=^Pw89*guImaZr%-^Z&|TG<@e?;k$z zd(ZhjwbSFz%f=*cvRrxe>)ih@UQJ)q)6YBqQsL{$dFRvRb{YRt&i{Al;>qTmeHQ0u z|EZof@B87Ip`o?0pLiJGCr@~8{eJK4?N2iwf17i#`roEUyMCP9nlDsXeDdKZ%bgY5 zQbHR4pZq-cdExu@dwkD6NQ|5D-1na?_qpE>&#YRt4^&Wp|G3HK{rKy>TD1E9LC2nTVVF=kNM(?yfK6zG=@-3a?r9`t1%|k83}#mwx{9tN#3>&-;ww z+Ic?JR4Mb{ulGM)^7-HURauYT-TnIZ$5xyAd4?5DkC$6lMNM9A7G<>Jz!LWMvoGaM zC453lg}(oKme9K=ix!{# zeCXiqpEBJKA6>krA%1?^9o{2}XXmC@)-GC}Zt$mCF6QOa%DDfaIFmoOX4R|LlhQdV zHO5aGk7aAHr9h8`VoUOE5^P(^QfBmU~ z#L%lg#`E1mulD}8|K9s~&y78+Vd35Vxn_65%I#&LSCj24ub7`J4!x>B39P^Q;)+$j zwEvaOTfORE*Aq#md+v(@L$}U=bgztA_Vl|fUX^7CX$OJa1#%YdtoEh$zWe>}e~n<- z)xqI_^esnl2Xq>=4!)H)-Oky;!QsF$m_Yj6%b<}4jvHa%LY{HI!y{04nxblYz%@Vc z{aSnfzv}LN?|<8~fO_3&(1HtGyq}qB6CMg1FaZ@@@Bx+>P~d}l`Om!Otp=4-pt3k7 z{%kS0kb3uC&HC8$JAcY7SFd^%_WgrL=+*Og_x^g`{BHlMS5?0sUiJXBY!cRqKdszv zxHx69s(j&Uv%gemd(!H_kO)X!ZE4Fa|d+Ga2RW^CX!&5^|cl6q+y}Pn!)vJ||hQTkt zdB-JX%5rX9v3|}osV1^8_Rou3-|ZRl-oK0abJ6|4+#dV$pUau%LTcsL&ny3%>fA5< zedpTiYo@KozaCb8e!4fTU;pF(O1m|)MapMAzr1yyEVR)Pr2#4;D&^)I=Dz;%;0f1s z>Kf2e8>s7&RU@&0t>z3m?bR-L}PqVsrL?`~_2#|JY`CRT5#t|+%F zta&o)#p_KMo8#pZ<~;wXdM-M&bgyqyjrz^d(9h7Y5C0q!x^?UPFPm1qs^9yL5u6WZ zyk7hHj_m$btM)x={RtgB+YZX7+o00=&vveQ)entdQ1*lmE)h&guOMBAREGnX{xN@T XjGnyM>0T5A0|SGntDnm{r-UW|qijwy diff --git a/doc/html/a00034.html b/doc/html/a00034.html index 783274c2..6496051c 100644 --- a/doc/html/a00034.html +++ b/doc/html/a00034.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference +tbb::flow::interface8::buffer_node< T, A > Class Template Reference @@ -33,68 +33,579 @@
-
tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference
+
tbb::flow::interface8::buffer_node< T, A > Class Template Reference
+ +

Forwards messages in arbitrary order. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >::buffer_operation:
+Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::sequencer_node< T, A >
+ + + +

+Classes

class  buffer_operation
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

buffer_operation (const T &e, op_type t)
 
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+ + + + + + + + + + + + +

+Protected Types

enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Public Attributes

-char type
 
-task * ltask
 
-union {
   input_type *   elem
 
   successor_type *   r
 
   predecessor_type *   p
 
   size_t   cnt_val
 
   successor_list_type *   svec
 
   predecessor_list_type *   pvec
 
}; 
 
-T * elem
 

+Protected Member Functions

+virtual void handle_operations (buffer_operation *op_list)
 
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+virtual void internal_forward_task (buffer_operation *op)
 Tries to forward valid items to successors.
 
+virtual void internal_push (buffer_operation *op)
 
+virtual void internal_pop (buffer_operation *op)
 
+virtual void internal_reserve (buffer_operation *op)
 
+virtual void internal_consume (buffer_operation *op)
 
+virtual void internal_release (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
+ + + + + + + + + + + + + + +

+Friends

+class internal::forward_task_bypass< buffer_node< T, A > >
 
+class internal::aggregating_functor< class_type, buffer_operation >
 
+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+

Detailed Description

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::buffer_node< T, A >

+ +

Forwards messages in arbitrary order.

+

Member Function Documentation

+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::register_successor (successor_typer)
+
+inlinevirtual
+
+ +

Adds a new successor.

+

Adds successor r to the list of successors; may forward tasks.

+ +

Implements tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::remove_successor (successor_typer)
+
+inlinevirtual
+
+ +

Removes a successor.

+

Removes successor r from the list of successors. It also calls r.remove_predecessor(*this) to remove this node as a predecessor.

+ +

Implements tbb::flow::interface8::sender< T >.

+ +

References tbb::flow::interface8::receiver< T >::remove_predecessor().

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + +
+ + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_consume ()
+
+inlinevirtual
+
+ +

Consumes a reserved item.

+

true = item is removed from sender and reservation removed

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_get (T & v)
+
+inlinevirtual
+
+ +

Request an item from the buffer_node.

+

true = v contains the returned item
+ false = no item has been returned

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_release ()
+
+inlinevirtual
+
+ +

Release a reserved item.

+

true = item has been released and so remains in sender

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+
+ +
+
+
+template<typename T, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::buffer_node< T, A >::try_reserve (T & v)
+
+inlinevirtual
+
+ +

Reserves an item.

+

false = no item can be reserved
+ true = an item is reserved

+ +

Reimplemented from tbb::flow::interface8::sender< T >.

+ +
+

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00034.png b/doc/html/a00034.png index ec16bbca9206adc1b725040c422de04630c7f54e..012b7704743d2b4944e6b0274216eadac763aa52 100644 GIT binary patch literal 5251 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUn!0>~EnSp^JdLgq90|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}GM99;{F{Fa=?cLW=n_@)T zE*@NRy7XWApQmyKp949kybtc)~^D!bcro}z+6!n!9rw_X#QY~$?Ua3JPnarRnWwaT`J zhK8O0ist=4Q0xy;w13X?Yf-yHn}_6NOxw%U}h_02zN%)-L5r#XJk^Yb70=HIP*9rF0{ z`Ny+vPuhO%mi|PD5B3{nt=(#NKmVUF)UDT_@3gMldhM3%@4qnp^PgXfs(w_sGderB z7%X-EofqO$i#eBxnbWGq%azjo`k84wqH&5O>?HH4^|YP0>?tt5!KD8YHXG`1x6 zx-K&l6BEFgCEOlAu2%R0sFULTR=83G5yPw7l4Bg{=XX#p#B!b8DO{kxooEZ2M^|dL)gSf zqE#R2e(ig|`2FuX$?KlwvDaO%m)o|()vNN(?sN;ix_yt{`RkYG$GwQ|FS2_1?9O@F{`KaT zm)?ro$Nc@d{#O0gYwNaOuZz>2@!bAv(Y^Sz|DmB0b7?;^-sidkW`&_e$1Z zOgVY^|H+5Szy{@N+gnrFhfBN(Dm-8KO|KIb+Lhap-?|WYV(rEuP_d0Lb96u}3uO*kB z-nl&MwCXzkvOV{HJXm`Ax9alL>+G3pdGqSc&fnfMXZ`xevs0&EoxVEk>W6RBKko^( zVRL`CH1VyX{*333wX;jiYa(N{tX{l)`{;6x+yAcJ`sXjcJZyZ-Kk-AqL~P~{fzZ(P zUvJsS|E^f|WMk{$y=$|t->$5Ged}x4^8SJg-TO`c z_++fznjfKeK6=j__w|oo-aT8{e8lIJ;f=`9uR^DvRj#hMlagH2IJJFG$-Lu-cl>d@ zeEsH!2WPoId=vh3uGH=Kveo&we!o!tul~tK_t}Zkvpedi&yCH_eRZ+*{nMZSzRExS zxop?@Pk)*m^yfUE8h`Hcx}I&z7Vh*s^5XmS{Tsqhd}jOjW4_56+b8$uKL2~Y!r*!T zrpw1J+w}LHKl%CP!&R%|vRB%?-@nY!=FO}ppZDZ#DYU8Ldhv6~$5!{seLAxyKY!iq z(`9}3^NWdfaxdcNKG)wrr$4%XIxnBR{DM{Mwx7J#9e-=T-TC`7zNOsRo*7YnV!y)q z$YMolKsWe{QeltJ3>tZ2IL= zDt1~kb^<`)Ff7?}WD(_|_-#C8R zvt9Z5>K?hzpAyU~_r-jDr@ZajtrIFI$|v28%D%rXW#0A*%lk4rR|55 zm^G81=RPu&`e2}Oo2T-mO?YT-g3$)iXW^k=ue=7;P5B8MHFah@U$rVi`+R8V$F$0Q zH6eBW+nG<>CfJ0Bu2rmDw<_xJ?GOU=%1Xgz z8)#Xn#CGw;?|uFI-v4$@xm0`qdv=3;Dmx?h=_QH0GfmbgPHtmOJ+Pt8N9x)H&%;ti znGxsmrgI+tWRw}|Z<>)~w&9kbIDsv~K$~2n}t|$*Y1J}JA zH)6o`G~;Y$?dy91^JpX&F=d_kl0Mm0VH%=_XS= zv;k)S!u|SN?{7aJPuP;}_ea)$+Fw@2Z?{u5DL0uzH{N z@N3ZZ?u3f&1)N=Dg!`W!Ulpj(t3Mv2o(TrrED;c5LgLn9lt^s*y~b@$JH{?YSr z=5_9KCqKWHFSbAby{lUP+Vxudu3~UVeEw^4e)&1RTjlHLHsA66d?)cyU9U7&oYSSPE_TfLc@!c;A93g#>S~!7Mqs+r8&2Dkvx zZa()C)NWJJW=Pg~euS#sMj#Ob!l? z3ayI`rYV;M1Oz^WP{Y6*4)?$Rjoe>Vw=L5ezOjfND zn+z%V+Zw(XcDa@Bm|G`ZQ+hY$_=g*F@9U+9hTeT8Co}WSUc1?=R>|+KUVDD|rvJ0v zty=YK+VAvz8t0||SFc*NFX7#u_+S2hARBDXf38bDR{dhzy3o+=X>sqazQ5CMx@y(I zw;O)mJzjg^Wa{TVclR$}^=jeF&vho7SFKv_4bmmE_+shr?WdmiAFh7(Y1z&9cKb5* z_w(FKZI5kdo-Tjf_W0{L+uF+)fB*lpk+0t-qVkWO&BBY;zkZ0E50{L6U-Ih7uIIaN ztCklR-nEMV^U1tlzv71d-aCsb?>)M|`Ny8g=^Pw89*guImaZr%-^Z&|TG<@e?;k$z zd(ZhjwbSFz%f=*cvRrxe>)ih@UQJ)q)6YBqQsL{$dFRvRb{YRt&i{Al;>qTmeHQ0u z|EZof@B87Ip`o?0pLiJGCr@~8{eJK4?N2iwf17i#`roEUyMCP9nlDsXeDdKZ%bgY5 zQbHR4pZq-cdExu@dwkD6NQ|5D-1na?_qpE>&#YRt4^&Wp|G3HK{rKy>TD1E9LC2nTVVF=kNM(?yfK6zG=@-3a?r9`t1%|k83}#mwx{9tN#3>&-;ww z+Ic?JR4Mb{ulGM)^7-HURauYT-TnIZ$5xyAd4?5DkC$6lMNM9A7G<>Jz!LWMvoGaM zC453lg}(oKme9K=ix!{# zeCXiqpEBJKA6>krA%1?^9o{2}XXmC@)-GC}Zt$mCF6QOa%DDfaIFmoOX4R|LlhQdV zHO5aGk7aAHr9h8`VoUOE5^P(^QfBmU~ z#L%lg#`E1mulD}8|K9s~&y78+Vd35Vxn_65%I#&LSCj24ub7`J4!x>B39P^Q;)+$j zwEvaOTfORE*Aq#md+v(@L$}U=bgztA_Vl|fUX^7CX$OJa1#%YdtoEh$zWe>}e~n<- z)xqI_^esnl2Xq>=4!)H)-Oky;!QsF$m_Yj6%b<}4jvHa%LY{HI!y{04nxblYz%@Vc z{aSnfzv}LN?|<8~fO_3&(1HtGyq}qB6CMg1FaZ@@@Bx+>P~d}l`Om!Otp=4-pt3k7 z{%kS0kb3uC&HC8$JAcY7SFd^%_WgrL=+*Og_x^g`{BHlMS5?0sUiJXBY!cRqKdszv zxHx69s(j&Uv%gemd(!H_kO)X!ZE4Fa|d+Ga2RW^CX!&5^|cl6q+y}Pn!)vJ||hQTkt zdB-JX%5rX9v3|}osV1^8_Rou3-|ZRl-oK0abJ6|4+#dV$pUau%LTcsL&ny3%>fA5< zedpTiYo@KozaCb8e!4fTU;pF(O1m|)MapMAzr1yyEVR)Pr2#4;D&^)I=Dz;%;0f1s z>Kf2e8>s7&RU@&0t>z3m?bR-L}PqVsrL?`~_2#|JY`CRT5#t|+%F zta&o)#p_KMo8#pZ<~;wXdM-M&bgyqyjrz^d(9h7Y5C0q!x^?UPFPm1qs^9yL5u6WZ zyk7hHj_m$btM)x={RtgB+YZX7+o00=&vveQ)entdQ1*lmE)h&guOMBAREGnX{xN@T XjGnyM>0T5A0|SGntDnm{r-UW|qijwy literal 1158 zcmeAS@N?(olHy`uVBq!ia0y~yV2os7U9A}qqTFhbPT6y%$nv}F}n+!a)JTI-*+B9j(LM3faNjSqw zZTC0XPxZSj3-9pi%U`w@-n9PjX3u%9la}mT_v}r-vbN{$TUK@HU6V>ems@6E?mJ)K zHf?2TUeQWh^ZwH_q3`(IJ5uS^*`3%O5BgAbUSWiUVJlUqg;Ky?APZL_3r427nM1i$!++iW)%^b zerH>4@|`1-Gi#&dmh;V;{V;Ngch36>fB)Ui*?-^t|J`*OU)GfQR+sP9TPJ;EMr-Li zhR=QT+`Fa*PTI9==H`70M>@odmZl5bF29@e*zU~DWm>k~U#iY|ZCX*g>EXP$Uu|}z z`(MAkGySmR&HcRZ+^Rm$D^0bL`?PY>ulGAIo!5^qyB=jd@4=0_n2moO;y2EoeXpO# zVb9{}N}fUS$5T{aF1%wn{mJ~-#gmupU)1BFnNqIz=W?vP)`_Y!LMQ*VdRSWSmigHG z*>AE+X{e>Pr>f^e%}wZ`{%eA%vG&ZFd$k+t-S#thG3c*8!KCuy`g$ks5Bs`w9GdJB zxOES_*4o5iskM$lQfm`!@vrSCX3d;>=1iOzTL4oQQGcxABc|QB^Q(nFs>t)xT zOcyy2c7N7R;}^F#Tl0PJzn-)1)$GE z_^bSreIw)lH~y(_e!lzq{J%uf-MxyeZO5Lr7n_;%-nRWO8SQ3&d3(KSO6+ZeMuWWM z9lN5Iv;26@cC&lq^v>g&JlXTZ_x6>%aXQ!c;o0>`$4{R=oBA?e_xUu7OJCRVzP^$0 z@XwFUuXt;FGB|gr=RHZOH7-lp9Gg<|q`z(t@1ZHxHGj5VD*G~d*W>i#=4_7cZL(a) zQ+6MicQjAzM(TH^n?HqSwD;fN{QK+co;9C~J<2v%>qX4&dUo#B<{S4CA}?vD9RFW! z`TFyb-Y*aJp5`!Tny1fpc_XTJzf3dTKiRx{kBeDc(%xVh^DiIFENl*){d#lS@y&Dg zR-AX+RLK4A*uB^%mNylpV{5b5zgej!cjwN -tbb::cache_aligned_allocator< T > Class Template Reference +tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference @@ -33,112 +33,68 @@
-
tbb::cache_aligned_allocator< T > Class Template Reference
+
tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <cache_aligned_allocator.h>

+
+Inheritance diagram for tbb::flow::interface8::buffer_node< T, A >::buffer_operation:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

Public Member Functions

cache_aligned_allocator (const cache_aligned_allocator &) throw ()
 
-template<typename U >
 cache_aligned_allocator (const cache_aligned_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *hint=0)
 Allocate space for n objects, starting on a cache/sector line.
 
-void deallocate (pointer p, size_type)
 Free block of memory that starts on a cache line.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
buffer_operation (const T &e, op_type t)
 
+ + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+char type
 
+task * ltask
 
+union {
   input_type *   elem
 
   successor_type *   r
 
   predecessor_type *   p
 
   size_t   cnt_val
 
   successor_list_type *   svec
 
   predecessor_list_type *   pvec
 
}; 
 
+T * elem
 
-

Detailed Description

-

template<typename T>
-class tbb::cache_aligned_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00035.png b/doc/html/a00035.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16bbca9206adc1b725040c422de04630c7f54e GIT binary patch literal 1158 zcmeAS@N?(olHy`uVBq!ia0y~yV2os7U9A}qqTFhbPT6y%$nv}F}n+!a)JTI-*+B9j(LM3faNjSqw zZTC0XPxZSj3-9pi%U`w@-n9PjX3u%9la}mT_v}r-vbN{$TUK@HU6V>ems@6E?mJ)K zHf?2TUeQWh^ZwH_q3`(IJ5uS^*`3%O5BgAbUSWiUVJlUqg;Ky?APZL_3r427nM1i$!++iW)%^b zerH>4@|`1-Gi#&dmh;V;{V;Ngch36>fB)Ui*?-^t|J`*OU)GfQR+sP9TPJ;EMr-Li zhR=QT+`Fa*PTI9==H`70M>@odmZl5bF29@e*zU~DWm>k~U#iY|ZCX*g>EXP$Uu|}z z`(MAkGySmR&HcRZ+^Rm$D^0bL`?PY>ulGAIo!5^qyB=jd@4=0_n2moO;y2EoeXpO# zVb9{}N}fUS$5T{aF1%wn{mJ~-#gmupU)1BFnNqIz=W?vP)`_Y!LMQ*VdRSWSmigHG z*>AE+X{e>Pr>f^e%}wZ`{%eA%vG&ZFd$k+t-S#thG3c*8!KCuy`g$ks5Bs`w9GdJB zxOES_*4o5iskM$lQfm`!@vrSCX3d;>=1iOzTL4oQQGcxABc|QB^Q(nFs>t)xT zOcyy2c7N7R;}^F#Tl0PJzn-)1)$GE z_^bSreIw)lH~y(_e!lzq{J%uf-MxyeZO5Lr7n_;%-nRWO8SQ3&d3(KSO6+ZeMuWWM z9lN5Iv;26@cC&lq^v>g&JlXTZ_x6>%aXQ!c;o0>`$4{R=oBA?e_xUu7OJCRVzP^$0 z@XwFUuXt;FGB|gr=RHZOH7-lp9Gg<|q`z(t@1ZHxHGj5VD*G~d*W>i#=4_7cZL(a) zQ+6MicQjAzM(TH^n?HqSwD;fN{QK+co;9C~J<2v%>qX4&dUo#B<{S4CA}?vD9RFW! z`TFyb-Y*aJp5`!Tny1fpc_XTJzf3dTKiRx{kBeDc(%xVh^DiIFENl*){d#lS@y&Dg zR-AX+RLK4A*uB^%mNylpV{5b5zgej!cjwN -tbb::cache_aligned_allocator< void > Class Template Reference +tbb::cache_aligned_allocator< T > Class Template Reference @@ -33,53 +33,112 @@
-
tbb::cache_aligned_allocator< void > Class Template Reference
+
tbb::cache_aligned_allocator< T > Class Template Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

#include <cache_aligned_allocator.h>

- +

Classes

struct  rebind
struct  rebind
 
- - - - - - + + + + + + + + + + + + + + +

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef size_t size_type
 
+typedef ptrdiff_t difference_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

cache_aligned_allocator (const cache_aligned_allocator &) throw ()
 
+template<typename U >
 cache_aligned_allocator (const cache_aligned_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *hint=0)
 Allocate space for n objects, starting on a cache/sector line.
 
+void deallocate (pointer p, size_type)
 Free block of memory that starts on a cache line.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 

Detailed Description

-

template<>
-class tbb::cache_aligned_allocator< void >

+

template<typename T>
+class tbb::cache_aligned_allocator< T >

-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

+

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

+

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.


The documentation for this class was generated from the following file:
  • cache_aligned_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00037.html b/doc/html/a00037.html index ffe6de31..86091fd5 100644 --- a/doc/html/a00037.html +++ b/doc/html/a00037.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference +tbb::cache_aligned_allocator< void > Class Template Reference @@ -33,41 +33,53 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
+
tbb::cache_aligned_allocator< void > Class Template Reference
+ +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. + More...

+ +

#include <cache_aligned_allocator.h>

- - - - - + + +

-Public Member Functions

call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
-void dismiss ()
 

+Classes

struct  rebind
 
- - - + + + + + + +

-Public Attributes

-concurrent_hash_mapmy_ch_map
 

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Detailed Description

    +

    template<>
    +class tbb::cache_aligned_allocator< void >

    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

    The documentation for this class was generated from the following file:
      +
    • cache_aligned_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00038.html b/doc/html/a00038.html index dceb3f04..a3c3f068 100644 --- a/doc/html/a00038.html +++ b/doc/html/a00038.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::callback< Callback, T > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference @@ -33,43 +33,41 @@
-
tbb::flow::interface8::callback< Callback, T > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
-
-Inheritance diagram for tbb::flow::interface8::callback< Callback, T >:
-
-
- - -tbb::flow::interface8::callback_base - -
- - - - + + + + +

Public Member Functions

callback (graph &g, Callback c, const T &t)
 
-void call () const
 
call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
+void dismiss ()
 
+ + +

+Public Attributes

+concurrent_hash_mapmy_ch_map
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00038.png b/doc/html/a00038.png deleted file mode 100644 index d4d69067fab426f1deda506dfe36b4178b15b71e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1103 zcmeAS@N?(olHy`uVBq!ia0y~yU}R@tVCdjrW?*2r`{bSu0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}``JShXV@L(#+qt*P9%~7> zn6Hhz{Qv*)9MC5R!G`^-?2V9Q)kX>oucynPU6KCH92016F=Xcv~|{w-T$Lw-?sC$+wv7gZ1QHl z9&2gyxMlb6&|RGEu{A$9_|)HZclRGXDs$&VRT^HreePC35*hMd!EAv9?Z=%ZyxuSIpQdD=FFxe4{h3wmi^S6Hhq=C_nWqB_ntZPP3!M0 z3wC2}P0_OScND&AdwY<{-*_U6Lh#}0i}^hwo`(!N$7 zeA49HAGytE7Osmro*lMUer=S@?Kj$WGnNOPNxHQuS2eo!Zjt6mTj$)E;;BnN28o63 z%ocPrH@3bY{d|$!7R&2t^LN}mY0z6(#+ScVqogl8XX_5p_NNv)cb9)J)qI(v%9kDb z?JPIn>zB7dx-OX)&8V}rUsAcPDZktK^uyBUIdg4J$Ca2GpZ*n8lTo*|tJwYdB1!qU z>b3G#dR_cqYd3z*+f^o}=Z@CIRf#)j+;+;>$-Zl}TkL*y{EV4@%l>llCF|I1 zeVdl%dy@Z=0$*BMBC1M_Cf*n2A#qc7B-vSYR0P921UExeR7dIVSRcE+l}m5 z4x6`yS{(cF-CBP;^Mp&hY27*78LXv(GOU?Z`a6ZEDWf($h;-zVmD? zycIg_nD%CZt8RzoE#p%`y#UB3kd#~}!b{;8;-*fS2O3jM*-E*(5I(zPZ&-bHc zde1&z>VCK|hkNhFHI=82d@k5mtiJ7y1;d}Ty%Eor7gTIL)&G(CK;scdnInt}-ZDoP fJ__*Cyi}hbdnL)?tM4QR1_lOCS3j3^P6 -tbb::flow::interface8::callback_base Class Reference +tbb::flow::interface8::callback< Callback, T > Class Template Reference @@ -33,32 +33,35 @@
-
tbb::flow::interface8::callback_base Class Referenceabstract
+
tbb::flow::interface8::callback< Callback, T > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::callback_base:
+Inheritance diagram for tbb::flow::interface8::callback< Callback, T >:
- - -tbb::flow::interface8::callback< Callback, T > + + +tbb::flow::interface8::callback_base
- - + + + +

Public Member Functions

-virtual void call () const =0
 
callback (graph &g, Callback c, const T &t)
 
+void call () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -66,7 +69,7 @@ virtual void call () c

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00039.png b/doc/html/a00039.png index 6650f1591a879f68d5c40ef8501f77878d311bb0..d4d69067fab426f1deda506dfe36b4178b15b71e 100644 GIT binary patch delta 1025 zcmcb_ah_vBO#MAi7srqa#__`+V_`$n>*;V)+De%2}7x`#Ik;YOH&IilC zvO5U1OCFYQ6lm{oR5-%uz_d-poWbK0a|6o~6?@_s^B(tjYyKa6__OHI>Cnl} zMRQM87gW5v{Mh_#@$JopzmFaIs_2udBc*+t-wuI+Jv3Q+=*#bnV?D&6BpyxiQ64mwpTq3)`73=w@zgeL?#9BDpP=*VE?jxO>u| zx3G*af2~GIUv|#c9ir_|Ep+ZK|6Z#3GDVdyJM`OGZobzqZ-aDQGB27@XKTNta$8e= zxAWiNIcZv33N^=75j$9*@> z9j%G05_izJ?Ub*Reb;EW*!}AG88iQu{pI3I*0I_8HZ9HfB>y7?zO=N+M+$t864Iu9 zePF2XH!JNWsCWw?LD++vKdd)T5Q@ z!$%?ZLIL&$ox&9sHk;mR#;Vr_MZ4a8a*;b>eR>MpjqF(to418p9Q*OzT7Nt9giG3d z=cfzzt(+w@>2=7yhY27*78LXv(GOU?Z`a6ZEDWf($h;-zVmD?ycIg_nD%CZt8RzoE#p%`ng^?R@J%XS_qir;hbXG+bA_uX@^t~z_}e$V%#WqQv(U+R9iFo%2Z#x<3v zk9;oJSFFD6jRnJ>w7n6}mKRiPJ=On_`9R|lN0}px3f?kD7Cs8_(!5lkAA2Rq;j8Z? Q1_lNOPgg&ebxsLQ0HMS73IG5A delta 1028 zcmX@lafxF>O#MSo7srqa#Xg#zrxn>7jr*b5DeyLU}<-emIs&f9(8*6u5m-E{KI8?M+h55FaQ z7wYe{%MH!%n0fR6>eYV@9&9+S$QNCj`KT(K@4HQ6TG`ZlEr<2$?Q2-tg})y?npkMa zZoHXY>-J9xzU`m)|DQQi|Musjx2wYKWA?7z{x~7+8&hYqMMv|@$SD>ge40yD823c| zXHY4OF#IFTQTRcE#Yu)iWr5gEMu$oA3@QpDKZ#@1gH=!2{=pgKJ(dp;-!*6yTAY7q zmLw~3Tu$}ot&4m+&obS3J#P!+wjw@DZk(O{KL0TGUo0$9azTN z@hhzE#lNh{&-)%Nnk_F^ojb=$?-c*r+Krzxi*FQK|Eu4(qHyD}(=V6`a!tSf+ICNO zv-HQ^-&qgDU!VWL;Q688<9rvU{!!q2#2}!`_eg<{A(bq9^?o%~ zpA_3Gf9#4nb#r>uRr8g9-=0{jdah(|-ECjdYus1ULd%&BCZwxT(VS@Y`VC*2yRlzf*7mn%W%B;-elINfr_`=18^fO|bs6uw=U$z4xNrZ<_uW$B*?W45c4V(!d3}3nzN9?=b9Mfr(|yk8EdQsL z-v9U6!sfsS%eoVm&zV74#rd42duOwSiOjOhSxf#inDAWQ?^H$>NfxY diff --git a/doc/html/a00040.html b/doc/html/a00040.html index 1e7873a3..ce4ad208 100644 --- a/doc/html/a00040.html +++ b/doc/html/a00040.html @@ -4,7 +4,7 @@ -tbb::captured_exception Class Reference +tbb::flow::interface8::callback_base Class Reference @@ -33,179 +33,40 @@
-
tbb::captured_exception Class Reference
+
tbb::flow::interface8::callback_base Class Referenceabstract
- -

This class is used by TBB to propagate information about unhandled exceptions into the root thread. - More...

- -

#include <tbb_exception.h>

-Inheritance diagram for tbb::captured_exception:
+Inheritance diagram for tbb::flow::interface8::callback_base:
- - -tbb::tbb_exception + + +tbb::flow::interface8::callback< Callback, T >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

captured_exception (const captured_exception &src)
 
captured_exception (const char *name_, const char *info)
 
-captured_exceptionoperator= (const captured_exception &src)
 
captured_exception
-*__TBB_EXPORTED_METHOD 
move () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
-const char *__TBB_EXPORTED_METHOD name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char *__TBB_EXPORTED_METHOD what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
-void __TBB_EXPORTED_METHOD set (const char *name, const char *info) throw ()
 
-void __TBB_EXPORTED_METHOD clear () throw ()
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
+virtual void call () const =0
 
-

Detailed Description

-

This class is used by TBB to propagate information about unhandled exceptions into the root thread.

-

Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers.

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy ()
throw (
)
-
-virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
captured_exception* __TBB_EXPORTED_METHOD tbb::captured_exception::move ()
throw (
)
-
-virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::captured_exception::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

- -
-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00040.png b/doc/html/a00040.png index 131abf604d940965927a6b649f954dbc6663df1c..6650f1591a879f68d5c40ef8501f77878d311bb0 100644 GIT binary patch delta 1064 zcmX@ic8No=Gr-TCmrII^fq{Y7)59f*fq{{ofq|iegPDPW;qH@rIujMG>X{#Ux;TbZ zFutApy6m$SkBj+_=&Qf?fAp+j^Cpx3ci!&%wsv2k?52}v-f+d9dH5~ayHJ0pU2bT8$IP4mSFiqS z@LeBW&n)5@maYdKu6XJ5n8F8uxI(ZoVScH_XHZcP`AHO`9-?~6_7Bb=@3DM<_^v^t(Bk|v>xkzeSl{c+1;sZ*fV!V2AyjA5YUxDDHH8UR@BOcm3yvYpdk$--+0_W9=E=V)vih zx9GfHbADf!%&m2s;z zU%B#~R}Ab`N_w|kcUQkX_wl$a&*jMU=O6A#?>t%ed#_;r(M0a{++Uw!;#6J29t7-K zlrLAHaWOoc-QtpdQG}hceM{}PN%{TG=O4a(k}-G3>A*79j$dJQFaBjse%|+J(QJ9S z>fAY2dZ+l`)^7ZqS$w0=y8hq36@?p*oqoYokZbz&*S34Qo25VQ{?2+J{`&j}2G0)# zALqL;^^XGIBL)FgzDEjt41wm*u#ab$WU)qKAB&TW4O^oC`%}*b1yF)u=l~~=25{;i z%&A|o{egk+KIgmF zW4Zn9b2e-5J$Bn^-On#ies8%aCs(+`p2w1>yvif*!cUp@otkqFzdU(2P`cfE@$K}R z=}%1;&z3$dzWvf2lkzF`-lsR6`}Jn^iG^>qUYG8!XY;G6`lQ%i`D0hqshiWIu9~m> z`}V|I)pI3#>u&psUgN%+7Fy19Fd<#-y9D3kL%BPD&Ye@FJJ<5xj^;$G*KhdJ+>QO> zvbMi9E0gzs_j_TK^}&ZsE!OLeIBb=**ueU!&Et zQ8M>pw)Bxxvx@56>MU%3O4_$*y#BTGWU+hU#k2hVd(Hf08;_L5+Zg^#smplZJ@@LY z!+rZ-zVDV2&)(Bhv?F`<%In)p^Cji^pR4m1o$hl!XZb(1^!~rk7B&YySk|4ee9jEY pD$eID-8-8tOk|d2&RX)H!G!1Xeov_k7X}6f22WQ%mvv4FO#p@}@R0xj delta 791 zcmcb_ahOf9Gr-TCmrII^fq{Y7)59f*fq`KX0|P?`2Qvc$gY^q1$BBwo^-PyMT^vIy z7~jr)J!!Rq0Nd>ItIqu1|1t0*(=3ZuyLMlh=Xp`mxF}QbM0}9fN?nh%G+jZjv^2Se zDQV9>@_N;_$G`eqJ>|@qyyDoE_7=+$+b#agaDJ7%Pp)3n(s=Xbn6Oii*DU2ZxkktJ z+?h8z%g;G`=3G&1=8v5EsYUOuPdSwvdgjtcYg1$E(`Uuab>9nTzhs|s zN7lS%s`WeeDQC{y`yAj8wz2-t+gUSfTLX-YKW7AME}b%q>49V%L+-_SmtJ3;6I|`J zH!$0eSL(UPbmzsA!tFO@Y zJ^lMg)UKsl?nZT=*eg3ddfiTGuSs8c!udC>*Xs5D@mcb-wAZ937ZyxXiB+7Ua#DGU z%E`syuXe4==4wct6p;} zE9U}LsA{pLc5A{J*lX4mKK*%3uyN6!bwUUFA~ogN|6ZS=mBnv9Z9@K8_v2GEUrjmO zb8?RTyHx88Q}3PqmO94aExC2)&fE-L=^^(m==r_9JCe4%eRHjudF8UKaLei5Nw-h$ z`xv?O@&!zg$y281+p*Z~L@mPivEO z_Xgj3w`1qMUE$ZHcHUn)JK8$$<-)2hr>R^NO1^kc8bLVEmW4YTHlF%?vVa6Y&V jjd6*-wNrw!I_pzkmda?a36f@DU|{fc^>bP0l+XkKO)zbA diff --git a/doc/html/a00041.html b/doc/html/a00041.html index 9f1877ea..7df6a0d5 100644 --- a/doc/html/a00041.html +++ b/doc/html/a00041.html @@ -4,7 +4,7 @@ -tbb::combinable< T > Class Template Reference +tbb::captured_exception Class Reference @@ -33,69 +33,179 @@
-
tbb::combinable< T > Class Template Reference
+
tbb::captured_exception Class Reference
-

Thread-local storage with optional reduction. +

This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...

-

#include <combinable.h>

+

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::captured_exception:
+
+
+ + +tbb::tbb_exception + +
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename finit >
 combinable (finit _finit)
 
~combinable ()
 destructor
 
combinable (const combinable &other)
 
-combinableoperator= (const combinable &other)
 
-void clear ()
 
-T & local ()
 
-T & local (bool &exists)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
captured_exception (const captured_exception &src)
 
captured_exception (const char *name_, const char *info)
 
+captured_exceptionoperator= (const captured_exception &src)
 
captured_exception
+*__TBB_EXPORTED_METHOD 
move () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
+const char *__TBB_EXPORTED_METHOD name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char *__TBB_EXPORTED_METHOD what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
+void __TBB_EXPORTED_METHOD set (const char *name, const char *info) throw ()
 
+void __TBB_EXPORTED_METHOD clear () throw ()
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 

Detailed Description

-

template<typename T>
-class tbb::combinable< T >

+

This class is used by TBB to propagate information about unhandled exceptions into the root thread.

+

Exception of this type is thrown by TBB in the root thread (thread that started a parallel algorithm ) if an unhandled exception was intercepted during the algorithm execution in one of the workers.

+
See Also
tbb::tbb_exception
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
void __TBB_EXPORTED_METHOD tbb::captured_exception::destroy ()
throw (
)
+
+virtual
+
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implements tbb::tbb_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
captured_exception* __TBB_EXPORTED_METHOD tbb::captured_exception::move ()
throw (
)
+
+virtual
+
+ +

Creates and returns pointer to the deep copy of this exception object.

+

Move semantics is allowed.

+ +

Implements tbb::tbb_exception.

-

Thread-local storage with optional reduction.

-

The documentation for this class was generated from the following file:
    -
  • combinable.h
  • +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::captured_exception::throw_self ()
+
+inlinevirtual
+
+ +

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implements tbb::tbb_exception.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00041.png b/doc/html/a00041.png new file mode 100644 index 0000000000000000000000000000000000000000..131abf604d940965927a6b649f954dbc6663df1c GIT binary patch literal 835 zcmeAS@N?(olHy`uVBq!ia0y~yV3@?fz|g_L%)r24{ldwSfq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}bjj1jF{Fa=?cCRsRx1dw z%|5^C%2YId3^+-$874%9=lUtaQ_Ut3CS8aRz ztIyR_&Ya0Bj$LVQu`IFO;?E4{SIPV2>P0P$H(!nkJN0=n6~$)$$eCL7?)sEdxuIt+eY7?;wmyAU++6p)aP~{~DR*SeYo=PiW1n*7 z%)QS6{$LC1|Gb?wv$i$B$oO+cu;$V!vzQ)8#xdkxoOkK<)j7e{UV8(x{dl#G_A!6p zRAuN7VEVv8fU;kEr8M@sSjnU-LJL(q_|>ZOQf+UB~ReA(WfRu9~#s+@d2Imm0} z`z8OSen}k;tlBlXT{daoROfXwqOVzc-YT~6uAE@0vy|(o%#^98CM?-(c? z1vBF6e2X_+47n8btyfj_so~Oxn?q0Sj1Shzzb^eCaH)CsvkG0`)4z{I?OM9!ZdCV) zy|UAz*X@+{n)HPyoPWc5tzPdRpCvy_drf+BVZkJoSj8zSCzYqDoLn6KYS+4Ku7>mq z#x1VZUhBh){oZPRbz5s`xMLk7F%k!CY*u2 zW?kXapVtH%7yVf$bf7O%Q=a|r^%+`O{N~dpJZ`Lqtei&0hMF{7E+tApS=vzA_D66wR^<}Ay U_L?AR1_lNOPgg&ebxsLQ0Hd~my8r+H literal 0 HcmV?d00001 diff --git a/doc/html/a00042.html b/doc/html/a00042.html index 036f5ec0..5add4eeb 100644 --- a/doc/html/a00042.html +++ b/doc/html/a00042.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference +tbb::combinable< T > Class Template Reference @@ -33,21 +33,69 @@
+
-
tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference
+
tbb::combinable< T > Class Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    Thread-local storage with optional reduction. + More...

    + +

    #include <combinable.h>

    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<typename finit >
     combinable (finit _finit)
     
    ~combinable ()
     destructor
     
    combinable (const combinable &other)
     
    +combinableoperator= (const combinable &other)
     
    +void clear ()
     
    +T & local ()
     
    +T & local (bool &exists)
     
    +template<typename combine_func_t >
    combine (combine_func_t f_combine)
     
    +template<typename combine_func_t >
    void combine_each (combine_func_t f_combine)
     
    +

    Detailed Description

    +

    template<typename T>
    +class tbb::combinable< T >

    + +

    Thread-local storage with optional reduction.

    +

    The documentation for this class was generated from the following file:
      +
    • combinable.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00043.html b/doc/html/a00043.html index a65c2170..39a3218c 100644 --- a/doc/html/a00043.html +++ b/doc/html/a00043.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference @@ -33,111 +33,21 @@
-
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >:
-
-
- - -tbb::flow::interface8::graph_node - -
- - - - - - -

-Public Types

-typedef tbb::flow::tuple
-< receiver< InputTypes > &... > 
input_ports_type
 
-typedef tbb::flow::tuple
-< sender< OutputTypes > &... > 
output_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
-template<typename T1 , typename T2 >
void set_external_ports (T1 &&input_ports_tuple, T2 &&output_ports_tuple)
 
-template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
-template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
-template<typename... Nodes>
void add_nodes (Nodes &...)
 
-template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
-void set_name (const char *name)
 
-input_ports_type input_ports ()
 
-output_ports_type output_ports ()
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset_node (reset_flags)
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00043.png b/doc/html/a00043.png deleted file mode 100644 index e2672430d7e1c3e4c614a89d0a040fa8fd14c3b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2624 zcmeAS@N?(olHy`uVBq!ia0y~yU^&3Rz|g_L%)r24b|HNm0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`^Sq~vV@L(#+q-Y0Zuu~` zUNmi<{`=4QAE5%C47EAFx5RhnPMhJcR#No&xIrB6X`RoG=65MM)Oj*;RIZ&wUH!6DHlc2=>Gu)syYVUaEV(tGIiQ-@x--2H4bp zlb)2<-r1(|b2~U_>>50SJU6XnXzCaP<|z>O2aA~2Bi1Z*3~MlQ2YEUYjfT?sZBO!V5o zOm`&S_&=fThaUz&@rH$`Riu-9q`-*R@{DErSrB@jHVvGzye6GBNhm%SS$uBiR&e?% zyW9X#a1D~ie3{Lj&oO;ICpsIP&dhml%qhM$r#NpdSo_^SCmMPmfBJU4==Y9W8|_P<*BKlx(+<7JQgzQ-@uUH*E{TK)KIjMn>} zf9yH^Z?{-?nkF{vggMaF){^#A{!UVD0MyYsn8OX{i)`0+;WoiqLP zX;sJRf3LgG+rH*}%$vPA71p(t$ErA{pIf_rOHH@s^FNND1bifWw%_SRe)-wYr&qVD zc>ev+ur|8*UX5t~*K=3H%@SU$fK1xXK? z2cFH@{A^BfHaK&>S;jcK_}r}Gb88_PbT(VgIm_&GmfNp^(#Xj?G|iQqHy##PT!G@8 zbioaV$5w#R4L*^YqsAg4Zys`TahY9da6Fg?Dt2ysF6L%qwXUqnI=CPKTwX3?Y;Nk^ z`(-t2b5rdeFy#v>O=h$4aBaI@1IqJaqQQ-sjdeFDgYudt1Ox

e5VpIKO0rK{@d>efAf{`@(JagSX@ zMC6ZZt<=H=3mznzz|GRosE|NtS8S;)%DzZh=1qvJu4t4PqcKflK?3yjQISXqC+ zFllbeElqPg*k^TiK|=K0$bb!t{fsqkgr$p#yjgLXhilu_nXIhVui(n=ExUR8^wafE z-+lb(vggeXyC+X|c9`1TVV2+3!)I6Yf5Q8_H|t}i^7h31{KC9H`M9C{fBtE^-_7}c z_M&-0z=r+jnZND&^!nwGFN(j~rty zYVSOX6>tB0Z0_81k#`>a^cZF*bo*U{5RZ6|twmAR5f(QH&J})jW zvD>es_Omi8UhU`af3KC#M_)_V`xa*wBU@PG6E@u>Mt}96So!T%PyQPIzH1#l|JPIR z`SI5{cNF`-PDwrQ8Yrv>Tj^6l7p?yI$Q*y*pA zOY9TAyX`&mVsGHTb93)%eo=3~>wjQw^`WFl^_=^L^C_m#!W6jgJ#TdCj^HitE+tGj{Vo{cHT|JjWZWXYrgj@_YaNjb`WK z`t~84(faRh=?z~c!|z{z9r4%efJFDxtOwua_kI2R<*oJZeFy#ZY9}{r?~dzzckb}s zb%*vP|0_CBm;L2^Jt$HZA8oO#&#wP*VvYRr-TVjlHq?GBw9&uLf3@_MolWiBy+@0` z%q}mp`FC#jdcD1M?MG*?5h{2-&+gpyb;?p>bCw)g+e$20nG-& -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,7 +33,7 @@

+List of all members
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >:
- - -tbb::flow::interface8::graph_node + + +tbb::flow::interface8::graph_node
- - +< receiver< InputTypes > &... >  + + +

Public Types

+
typedef tbb::flow::tuple
-< receiver< InputTypes > &... > 
input_ports_type
 
input_ports_type
 
+typedef tbb::flow::tuple
+< sender< OutputTypes > &... > 
output_ports_type
 
- - - - - - - - + + + + + + + - - - + + - - - + + - - - + + - - - + + - - + - - + + + - - - - + + + +

Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
-template<typename T >
void set_external_ports (T &&input_ports_tuple)
 
+
composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+template<typename T1 , typename T2 >
void set_external_ports (T1 &&input_ports_tuple, T2 &&output_ports_tuple)
 
template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+
void add_visible_nodes (const NodeTypes &...n)
 
template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+
void add_nodes (const NodeTypes &...n)
 
template<typename... Nodes>
void add_nodes (Nodes &...)
 
+
void add_nodes (Nodes &...)
 
template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+
void add_visible_nodes (Nodes &...)
 
void set_name (const char *name)
 
+
 
input_ports_type input_ports ()
 
+
 
+output_ports_type output_ports ()
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - +

Protected Member Functions

+
void reset_node (reset_flags)
 
 
- - - - - - - + + + + + + +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00044.png b/doc/html/a00044.png index e22b5a1acb65ffcae93c46072fc197e7bd36180e..e2672430d7e1c3e4c614a89d0a040fa8fd14c3b0 100644 GIT binary patch literal 2624 zcmeAS@N?(olHy`uVBq!ia0y~yU^&3Rz|g_L%)r24b|HNm0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`^Sq~vV@L(#+q-Y0Zuu~` zUNmi<{`=4QAE5%C47EAFx5RhnPMhJcR#No&xIrB6X`RoG=65MM)Oj*;RIZ&wUH!6DHlc2=>Gu)syYVUaEV(tGIiQ-@x--2H4bp zlb)2<-r1(|b2~U_>>50SJU6XnXzCaP<|z>O2aA~2Bi1Z*3~MlQ2YEUYjfT?sZBO!V5o zOm`&S_&=fThaUz&@rH$`Riu-9q`-*R@{DErSrB@jHVvGzye6GBNhm%SS$uBiR&e?% zyW9X#a1D~ie3{Lj&oO;ICpsIP&dhml%qhM$r#NpdSo_^SCmMPmfBJU4==Y9W8|_P<*BKlx(+<7JQgzQ-@uUH*E{TK)KIjMn>} zf9yH^Z?{-?nkF{vggMaF){^#A{!UVD0MyYsn8OX{i)`0+;WoiqLP zX;sJRf3LgG+rH*}%$vPA71p(t$ErA{pIf_rOHH@s^FNND1bifWw%_SRe)-wYr&qVD zc>ev+ur|8*UX5t~*K=3H%@SU$fK1xXK? z2cFH@{A^BfHaK&>S;jcK_}r}Gb88_PbT(VgIm_&GmfNp^(#Xj?G|iQqHy##PT!G@8 zbioaV$5w#R4L*^YqsAg4Zys`TahY9da6Fg?Dt2ysF6L%qwXUqnI=CPKTwX3?Y;Nk^ z`(-t2b5rdeFy#v>O=h$4aBaI@1IqJaqQQ-sjdeFDgYudt1Ox

e5VpIKO0rK{@d>efAf{`@(JagSX@ zMC6ZZt<=H=3mznzz|GRosE|NtS8S;)%DzZh=1qvJu4t4PqcKflK?3yjQISXqC+ zFllbeElqPg*k^TiK|=K0$bb!t{fsqkgr$p#yjgLXhilu_nXIhVui(n=ExUR8^wafE z-+lb(vggeXyC+X|c9`1TVV2+3!)I6Yf5Q8_H|t}i^7h31{KC9H`M9C{fBtE^-_7}c z_M&-0z=r+jnZND&^!nwGFN(j~rty zYVSOX6>tB0Z0_81k#`>a^cZF*bo*U{5RZ6|twmAR5f(QH&J})jW zvD>es_Omi8UhU`af3KC#M_)_V`xa*wBU@PG6E@u>Mt}96So!T%PyQPIzH1#l|JPIR z`SI5{cNF`-PDwrQ8Yrv>Tj^6l7p?yI$Q*y*pA zOY9TAyX`&mVsGHTb93)%eo=3~>wjQw^`WFl^_=^L^C_m#!W6jgJ#TdCj^HitE+tGj{Vo{cHT|JjWZWXYrgj@_YaNjb`WK z`t~84(faRh=?z~c!|z{z9r4%efJFDxtOwua_kI2R<*oJZeFy#ZY9}{r?~dzzckb}s zb%*vP|0_CBm;L2^Jt$HZA8oO#&#wP*VvYRr-TVjlHq?GBw9&uLf3@_MolWiBy+@0` z%q}mp`FC#jdcD1M?MG*?5h{2-&+gpyb;?p>bCw)g+e$20nG-&->jfJyYB9DKkLG_H1pQ78K$4Zv)8(2ul40-Y6=S#4Go>_rQo0OpHuwQynrwZD> zy|;x#;ETQAK|yh}pSxw-9{u~*-sWC5nD_a^+p@6td+oFQ``^Ux_to*2 zSFc)i|NU~7Lp#;l&wj1Ff5-b*UCr&!w~XfPw5rPAF=wA$vdke{^JCg;^DkDvzkg>= zV?ouG&()!Cr|*58w%$ARYW}yyOo?mmW`ABLalH9(yvF2u3-`@g$2b^>wnuZ8U2$1^|Nw_Tp&@W<~ghn|-0{r>N)s=z-Hj?aH| z_Uj3ptKZ$YA^6#92MPXnUu$;#dC%_je(!%C&K7g#hboO1s^8x~z3Ig|^Xj8NB333V zY`ORQnDo@To!2i^@3}VFVMpJG_7*3m#QhuZ?o$(}djGfDQuOA__c3YLjbf+&ytHlQ zm(ZztZF;Bwt*YF+bKZ`Ui0}LE|27nOH$CG0*L%Os&5IT0tg8EaX8PXG&qP?BCksD4 zc%HN6UiE+b8zNu*SAM)#UB6wEdEu&8{CW0nObfr?d%WwDJ$K7xt53gP?fovV+gR|^ zKkVwS+Pm{#xqB*nx%XSR|LVWbtM`AuXAVjQ{d)GtV)lE2G(MjOic3(Eafjsmz2D^^ zdH>73YEbkmfxHSX97+{r_}ZOi_}UMz32VF%m3=WPdvnvyy$%jCiV0DmEX8!>w6_rB zBUAo9PnH>xpuEOVc&b^2>BuB@PnH=GV1bWPoX}i$9l zPoJvBZL)GWa3_dUK)_%pDC_#@H8L>XIi<1Y(t-PymEfBSRcXLSj;pO%Q(Wcl|W2>yQYpz-fmyYDIWyG(2>Vt@W=+W)aN zxh;^1@lkB!hh3jP2GtZ_`uFtD@9T{po(0&+a?D?|SzpGuM~FkW?wPmgW{+`I@r$zdvz^zw@6CF5`ooR<((7Lr{raeGJ%4l6 zfxq7T$HUK;*Izpu+Lqp=zOU$vftP|q&*enT?TN+F%ipzD&HuFh@$Grnr+qwg^eBwT-**4#^0 zsku6%Tv@S^;p2MdhhMkywS4}Ut9I|3ofyaSO6z-%);dJ&;<@_ueAjE)>G!x>uJ#xG z?)@ji8E^h^rYv69p3oEUWjAM)oSAp%e&u4pZ?)KKj(Kte#|dL z0X^}%J$cJHj`#dnW%%CBnThd{p}@M;r!H$+_?3dvq)*z z2J -tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference @@ -33,7 +33,7 @@

+List of all members
-
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
- - -tbb::flow::interface8::graph_node + + +tbb::flow::interface8::graph_node
- - +< receiver< InputTypes > &... >  +

Public Types

+
typedef tbb::flow::tuple
-< sender< OutputTypes > &... > 
output_ports_type
 
input_ports_type
 
- - - - - + + + + - - - + + - - - + + - - - + + - - - + + - - - + + - - - - + + + - - - - + + + +

Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+
composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
template<typename T >
void set_external_ports (T &&output_ports_tuple)
 
+
void set_external_ports (T &&input_ports_tuple)
 
template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+
void add_visible_nodes (const NodeTypes &...n)
 
template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+
void add_nodes (const NodeTypes &...n)
 
template<typename... Nodes>
void add_nodes (Nodes &...)
 
+
void add_nodes (Nodes &...)
 
template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+
void add_visible_nodes (Nodes &...)
 
void set_name (const char *name)
 
-output_ports_type output_ports ()
 
+
 
+input_ports_type input_ports ()
 
void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - +

Protected Member Functions

+
void reset_node (reset_flags)
 
 
- - - - - - - + + + + + + +

Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00045.png b/doc/html/a00045.png index c8701d6fd9352b9bab7358f314dae9249c5216a0..e22b5a1acb65ffcae93c46072fc197e7bd36180e 100644 GIT binary patch literal 2180 zcmeAS@N?(olHy`uVBq!ia0y~yU=d(oVCdjrW?*2*Jow^20|SFZfKQ0)|NkK7i#K0O z`wvZEU|;~_0|ySUcHWU^U|`@V3GxeO_zwYBPlXsUFmMQax;TbZFuuL}HtN+LG1dzc z4?N!W-`Xx>->jfJyYB9DKkLG_H1pQ78K$4Zv)8(2ul40-Y6=S#4Go>_rQo0OpHuwQynrwZD> zy|;x#;ETQAK|yh}pSxw-9{u~*-sWC5nD_a^+p@6td+oFQ``^Ux_to*2 zSFc)i|NU~7Lp#;l&wj1Ff5-b*UCr&!w~XfPw5rPAF=wA$vdke{^JCg;^DkDvzkg>= zV?ouG&()!Cr|*58w%$ARYW}yyOo?mmW`ABLalH9(yvF2u3-`@g$2b^>wnuZ8U2$1^|Nw_Tp&@W<~ghn|-0{r>N)s=z-Hj?aH| z_Uj3ptKZ$YA^6#92MPXnUu$;#dC%_je(!%C&K7g#hboO1s^8x~z3Ig|^Xj8NB333V zY`ORQnDo@To!2i^@3}VFVMpJG_7*3m#QhuZ?o$(}djGfDQuOA__c3YLjbf+&ytHlQ zm(ZztZF;Bwt*YF+bKZ`Ui0}LE|27nOH$CG0*L%Os&5IT0tg8EaX8PXG&qP?BCksD4 zc%HN6UiE+b8zNu*SAM)#UB6wEdEu&8{CW0nObfr?d%WwDJ$K7xt53gP?fovV+gR|^ zKkVwS+Pm{#xqB*nx%XSR|LVWbtM`AuXAVjQ{d)GtV)lE2G(MjOic3(Eafjsmz2D^^ zdH>73YEbkmfxHSX97+{r_}ZOi_}UMz32VF%m3=WPdvnvyy$%jCiV0DmEX8!>w6_rB zBUAo9PnH>xpuEOVc&b^2>BuB@PnH=GV1bWPoX}i$9l zPoJvBZL)GWa3_dUK)_%pDC_#@H8L>XIi<1Y(t-PymEfBSRcXLSj;pO%Q(Wcl|W2>yQYpz-fmyYDIWyG(2>Vt@W=+W)aN zxh;^1@lkB!hh3jP2GtZ_`uFtD@9T{po(0&+a?D?|SzpGuM~FkW?wPmgW{+`I@r$zdvz^zw@6CF5`ooR<((7Lr{raeGJ%4l6 zfxq7T$HUK;*Izpu+Lqp=zOU$vftP|q&*enT?TN+F%ipzD&HuFh@$Grnr+qwg^eBwT-**4#^0 zsku6%Tv@S^;p2MdhhMkywS4}Ut9I|3ofyaSO6z-%);dJ&;<@_ueAjE)>G!x>uJ#xG z?)@ji8E^h^rYv69p3oEUWjAM)oSAp%e&u4pZ?)KKj(Kte#|dL z0X^}%J$cJHj`#dnW%%CBnThd{p}@M;r!H$+_?3dvq)*z z2J z`C8h4XaWNR0~jATaDcV*jyyRUPMpxt(A(k?di6;YePuV&7tJ{9gIJ^FK;NI{1uFAc;X*hm(fPgCpXX%gbpGV0ub02x``r^_2Et`IX|j7`&sb&-`UYS^6#E2*}wQ+bv@sDX`!{Z zes=o*->|VXXHUt_RjaB5{Y8aNTg(l+{&e3i{?EVvm7dQ&UGrqa_j?7FH8x56TC1m> zNte>USpEL|gI4E9U-q0fQaO)~*Z!R_<6FI&ir)0sd%veo znD8USW6zDUUj_^XJ>r-5l^Q@-|zhoeSWes z<}L4qw=d>8FZy~f+)m=}^laa~&x>t2I$z7$1qZ08m?;+K=WL(P*?F(}fB0OsdoS}P ztFAA!=KEWGJL?O-^7ouqMfc=p9l!eZKymxV?|*OIp0Hzn(w$d(zo&orq*&I^ zA;Sm4hAl4HYhAO~vbLCWbo_qK!8mb3!vRo!pVm|1?d9-bpG?0eXGaSQ%Ni9Gg>{k> zr!+*Qx&$$Sa^&U~mLs}q3JMAeLP7!`4hVt;85uXXu&^9^3O1;rp&` zaX6r($kExiIqM)FVFl|D^fgLi63VZhM-Fx)*?c32k@*Er;-f>P2pb|(yLE*td zaQ^lY0%djsPY(wNhXX30vVd_ic@jQR*}75Lx>77hM1%xBdAJNJ3yGE60r;BF8dI|C_$c>-T=XFZu4%5|Ny(?bQz!{=R!q`FHHU z+mma{e*C$(dd|IDJF=he_%65qXP&T-z=spZ6+iC#`1Rq>hZ}yJ_4@N}!jBJO`*ctEb;!o!utk?goOkQBDo&didD_;*Smbl@5{B4`F79i4u>v}{BhcUn~br|gMTakUkZID5g&K7;=qTz@aMDdDgJQ+ z74OcRdZ`t$ys4GC$EqXmeOq507yV4Reed_S(Ej2?|K(TKOxH}h_IH`y_QsF9{mtZe z*?m>({&ym@%sJ`1>RP9y=d$N!Zu<=?`zP-e+7o^{ZACxpcFn_ALo7?`O5SB&&nx3m zk7_+~FSb8$Yx(s3pHr+gcg&sl|4OJ_>ydA&zKR<^^BL;wHUw2zC%3mA`JK+wnflvo zQC@UBcjwZk=iW6ULeKRs|M~+WH{nEId5%PllSN063h0J_0^lcGT$r8FEy`!q7~26dHQ8|escPc_ieEdkH-*9)+UGC2HXE$BHeIxDovsbS@E4rpF{8az>*{jj+mC#YPyHbtdwxru z=l0WJH`hxFa&mG+>^$GSeE-r_daGCNnjSRE{eM7Pdhqnm-!9m!TgRSvd)mt~yQJdI z%s;$;+tyY()cidu_I>wF`>zJ;{=EqG%iaE9hn%t9*S8O<7v z@&utTSY*ANHcwoK6Kp}`*V8g^i4Ia7<2i&-rm9{c4N^A0TTw!9#fl6MC k%DxztJ#m7B-GAna_Ak}z9W^#GFfcH9y85}Sb4q9e03<{!;Q#;t diff --git a/doc/html/a00046.html b/doc/html/a00046.html index 355c2b62..c36cf5c2 100644 --- a/doc/html/a00046.html +++ b/doc/html/a00046.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,21 +33,104 @@
+
-
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >:
+
+
+ + +tbb::flow::interface8::graph_node + +
+ + + + +

+Public Types

+typedef tbb::flow::tuple
+< sender< OutputTypes > &... > 
output_ports_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

composite_node (graph &g, const char *type_name="composite_node")
 
composite_node (graph &g)
 
+template<typename T >
void set_external_ports (T &&output_ports_tuple)
 
+template<typename... NodeTypes>
void add_visible_nodes (const NodeTypes &...n)
 
+template<typename... NodeTypes>
void add_nodes (const NodeTypes &...n)
 
+template<typename... Nodes>
void add_nodes (Nodes &...)
 
+template<typename... Nodes>
void add_visible_nodes (Nodes &...)
 
+void set_name (const char *name)
 
+output_ports_type output_ports ()
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
+ + + +

+Protected Member Functions

+void reset_node (reset_flags)
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00046.png b/doc/html/a00046.png new file mode 100644 index 0000000000000000000000000000000000000000..c8701d6fd9352b9bab7358f314dae9249c5216a0 GIT binary patch literal 2303 zcmeAS@N?(olHy`uVBq!ia0y~yU{PUUVCdjrW?*38xOr+X0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jyyRUPMpxt(A(k?di6;YePuV&7tJ{9gIJ^FK;NI{1uFAc;X*hm(fPgCpXX%gbpGV0ub02x``r^_2Et`IX|j7`&sb&-`UYS^6#E2*}wQ+bv@sDX`!{Z zes=o*->|VXXHUt_RjaB5{Y8aNTg(l+{&e3i{?EVvm7dQ&UGrqa_j?7FH8x56TC1m> zNte>USpEL|gI4E9U-q0fQaO)~*Z!R_<6FI&ir)0sd%veo znD8USW6zDUUj_^XJ>r-5l^Q@-|zhoeSWes z<}L4qw=d>8FZy~f+)m=}^laa~&x>t2I$z7$1qZ08m?;+K=WL(P*?F(}fB0OsdoS}P ztFAA!=KEWGJL?O-^7ouqMfc=p9l!eZKymxV?|*OIp0Hzn(w$d(zo&orq*&I^ zA;Sm4hAl4HYhAO~vbLCWbo_qK!8mb3!vRo!pVm|1?d9-bpG?0eXGaSQ%Ni9Gg>{k> zr!+*Qx&$$Sa^&U~mLs}q3JMAeLP7!`4hVt;85uXXu&^9^3O1;rp&` zaX6r($kExiIqM)FVFl|D^fgLi63VZhM-Fx)*?c32k@*Er;-f>P2pb|(yLE*td zaQ^lY0%djsPY(wNhXX30vVd_ic@jQR*}75Lx>77hM1%xBdAJNJ3yGE60r;BF8dI|C_$c>-T=XFZu4%5|Ny(?bQz!{=R!q`FHHU z+mma{e*C$(dd|IDJF=he_%65qXP&T-z=spZ6+iC#`1Rq>hZ}yJ_4@N}!jBJO`*ctEb;!o!utk?goOkQBDo&didD_;*Smbl@5{B4`F79i4u>v}{BhcUn~br|gMTakUkZID5g&K7;=qTz@aMDdDgJQ+ z74OcRdZ`t$ys4GC$EqXmeOq507yV4Reed_S(Ej2?|K(TKOxH}h_IH`y_QsF9{mtZe z*?m>({&ym@%sJ`1>RP9y=d$N!Zu<=?`zP-e+7o^{ZACxpcFn_ALo7?`O5SB&&nx3m zk7_+~FSb8$Yx(s3pHr+gcg&sl|4OJ_>ydA&zKR<^^BL;wHUw2zC%3mA`JK+wnflvo zQC@UBcjwZk=iW6ULeKRs|M~+WH{nEId5%PllSN063h0J_0^lcGT$r8FEy`!q7~26dHQ8|escPc_ieEdkH-*9)+UGC2HXE$BHeIxDovsbS@E4rpF{8az>*{jj+mC#YPyHbtdwxru z=l0WJH`hxFa&mG+>^$GSeE-r_daGCNnjSRE{eM7Pdhqnm-!9m!TgRSvd)mt~yQJdI z%s;$;+tyY()cidu_I>wF`>zJ;{=EqG%iaE9hn%t9*S8O<7v z@&utTSY*ANHcwoK6Kp}`*V8g^i4Ia7<2i&-rm9{c4N^A0TTw!9#fl6MC k%DxztJ#m7B-GAna_Ak}z9W^#GFfcH9y85}Sb4q9e03<{!;Q#;t literal 0 HcmV?d00001 diff --git a/doc/html/a00047.html b/doc/html/a00047.html index aefad45b..519b9a5a 100644 --- a/doc/html/a00047.html +++ b/doc/html/a00047.html @@ -4,7 +4,7 @@ -tbb::concurrent_bounded_queue< T, A > Class Template Reference +tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference @@ -33,376 +33,21 @@
-
-
tbb::concurrent_bounded_queue< T, A > Class Template Reference
+
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
- -

A high-performance thread-safe blocking concurrent bounded queue. - More...

- -

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef A allocator_type
 Allocator type.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
-typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_bounded_queue,
-const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src)
 Move constructors.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src, const allocator_type &a)
 
-template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
-void push (T &&source)
 Move an item at tail of queue.
 
-template<typename... Arguments>
void emplace (Arguments &&...args)
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
-void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_push (T &&source)
 Move an item at tail of queue if queue is not already full. More...
 
-template<typename... Arguments>
bool try_emplace (Arguments &&...args)
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
-bool empty () const
 Equivalent to size()<=0.
 
-size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
-allocator_type get_allocator () const
 return allocator object
 
-void clear ()
 clear the queue. not thread-safe.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - -

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_bounded_queue< T, A >

- -

A high-performance thread-safe blocking concurrent bounded queue.

-

This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Typedef Documentation

- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - -
typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-
- -

Integral type for representing size of the queue.

-

Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::pop (T & destination)
-
-inline
-
- -

Dequeue item from head of queue.

-

Block until an item becomes available, and then dequeue it.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::concurrent_bounded_queue< T, A >::set_capacity (size_type new_capacity)
-
-inline
-
- -

Set the capacity.

-

Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::concurrent_bounded_queue< T, A >::size () const
-
-inline
-
- -

Return number of pushes minus number of pops.

-

Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed capacity() if there are push operations in flight.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_pop (T & destination)
-
-inline
-
- -

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_push (const T & source)
-
-inline
-
- -

Enqueue an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -
-
- -
-
-
-template<typename T , class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
bool tbb::concurrent_bounded_queue< T, A >::try_push (T && source)
-
-inline
-
- -

Move an item at tail of queue if queue is not already full.

-

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • +
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00047.png b/doc/html/a00047.png deleted file mode 100644 index 3dc03c333709697a42cb92d8e57a8cb283aa9e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmeAS@N?(olHy`uVBq!ia0y~yVED|yz!1Q}%)r3#d%xXe_9*Qkyr;^V9l+I-dW&YCcnU+xgCD zYLe$JE&en7hpj)pH`M2rnr*PPGXH8x@ANZT=Z}|7rF4arvp7 z-lX+slD0K|yZ!&}^Pgq&)_!!Hm+f{{M@(#flHIKdr!Vf^vi))8w%rP^W9`mAnLvc>6i`((3LF+To|!ew=;3dC8mqy@vY_+DxCXs(9A0*x6I7 zG*8j9U8-`L%73Xdlb*ykM^5^aoy4cuvXAA1>|e%`WqdRL|NGVaZbGHgJHB1+&jPnI zR$WM7`>_5X&x818$pib@j2r5C(-{6soniQAI)m{~wgK~x>!=D292aronA^#4VJb}V ztr^SJ?lS(_9yDij$G5+eAFnt4X){IsS=aM}YH{+%*I(P?<2`wrzUk}LTeoM$Z8)yF z`P8*NucpZzQ(v~7cb|_z**Evh9$xabTyS#p+lbY#K2JXO!<5%|TlATkFSBPR3s!dB+z~c2_ruQX zdXcWa(N+5AH=FL8`drD>b>8U*y*BF`-rC%LT$;KoIx_S9+rO21{sq5nfp) zyyvxdx9aYU&WWDE|LWVRiGC@&^RDamy)N^5esKEx1#_7Hw7v6xf93JoGsS`{ zpD-_2dguMN?>n0h+c2Aa{d|T&{~9cqgo`;8zbvi)yRiS3%!1Y#3=9kmp00i_>zopr E00(@9qW}N^ diff --git a/doc/html/a00048.html b/doc/html/a00048.html index 7395eb87..df37093f 100644 --- a/doc/html/a00048.html +++ b/doc/html/a00048.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference +tbb::concurrent_bounded_queue< T, A > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+
tbb::concurrent_bounded_queue< T, A > Class Template Reference
-

Unordered map from Key to T. +

A high-performance thread-safe blocking concurrent bounded queue. More...

-

#include <concurrent_hash_map.h>

+

#include <concurrent_queue.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
+Inheritance diagram for tbb::concurrent_bounded_queue< T, A >:
- - + +
- - - - - - - - - - - - - - - - -

-Classes

class  accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
struct  accessor_not_used
 
class  bucket_accessor
 bucket accessor is to find, rehash, acquire a lock, and access a bucket More...
 
struct  call_clear_on_leave
 
class  const_accessor
 Combines data access, locking, and garbage collection. More...
 
struct  node
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + - - - +internal::concurrent_queue_iterator
+< concurrent_bounded_queue,
+const T >  +

Public Types

-typedef Key key_type
 
-typedef T mapped_type
 
-typedef std::pair< const Key, T > value_type
 
-typedef hash_map_base::size_type size_type
 
-typedef ptrdiff_t difference_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map,
-value_type > 
iterator
 
-typedef
-internal::hash_map_iterator
-< concurrent_hash_map, const
-value_type > 
const_iterator
 
+
+typedef T value_type
 Element type in the queue.
 
+typedef A allocator_type
 Allocator type.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
typedef std::ptrdiff_t size_type
 Integral type for representing size of the queue. More...
 
+typedef std::ptrdiff_t difference_type
 Difference type for iterator.
 
typedef
-internal::hash_map_range
-< iterator > 
range_type
 
+internal::concurrent_queue_iterator
+< concurrent_bounded_queue, T > 
iterator
 
typedef
-internal::hash_map_range
-< const_iterator > 
const_range_type
 
-typedef Allocator allocator_type
 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_hash_map (const allocator_type &a=allocator_type())
 Construct empty table.
 
concurrent_hash_map (size_type n, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
concurrent_hash_map (const concurrent_hash_map &table, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_hash_map (concurrent_hash_map &&table)
 Move constructor.
 
concurrent_hash_map (concurrent_hash_map &&table, const allocator_type &a)
 Move constructor.
 
-template<typename I >
 concurrent_hash_map (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
concurrent_hash_map (std::initializer_list< value_type > il, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
-concurrent_hash_mapoperator= (const concurrent_hash_map &table)
 Assignment.
 
-concurrent_hash_mapoperator= (concurrent_hash_map &&table)
 Move Assignment.
 
-concurrent_hash_mapoperator= (std::initializer_list< value_type > il)
 Assignment.
 
void rehash (size_type n=0)
 Rehashes and optionally resizes the whole table. More...
 
-void clear ()
 Clear table.
 
~concurrent_hash_map ()
 Clear table and destroy it.
 
-range_type range (size_type grainsize=1)
 
-const_range_type range (size_type grainsize=1) const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-std::pair< iterator, iterator > equal_range (const Key &key)
 
-std::pair< const_iterator,
-const_iterator > 
equal_range (const Key &key) const
 
-size_type size () const
 Number of items in table.
 
-bool empty () const
 True if size()==0.
 
-size_type max_size () const
 Upper bound on size.
 
-size_type bucket_count () const
 Returns the current number of buckets.
 
-allocator_type get_allocator () const
 return allocator object
 
-void swap (concurrent_hash_map &table)
 swap two instances. Iterators are invalidated
 
-size_type count (const Key &key) const
 Return count of items (0 or 1)
 
bool find (const_accessor &result, const Key &key) const
 Find item and acquire a read lock on the item. More...
 
bool find (accessor &result, const Key &key)
 Find item and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const Key &key)
 Insert item (if not already present) and acquire a read lock on the item. More...
 
bool insert (accessor &result, const Key &key)
 Insert item (if not already present) and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (const value_type &value)
 Insert item by copying if there is no such key present already. More...
 
bool insert (const_accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (value_type &&value)
 Insert item by copying if there is no such key present already. More...
 
template<typename... Args>
bool emplace (const_accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
template<typename... Args>
bool emplace (accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
template<typename... Args>
bool emplace (Args &&...args)
 Insert item by copying if there is no such key present already. More...
 
-template<typename I >
void insert (I first, I last)
 Insert range [first, last)
 
-void insert (std::initializer_list< value_type > il)
 Insert initializer list.
 
bool erase (const Key &key)
 Erase item. More...
 
bool erase (const_accessor &item_accessor)
 Erase item by const_accessor. More...
 
bool erase (accessor &item_accessor)
 Erase item by accessor. More...
 
- - - -

-Protected Types

-typedef Allocator::template
-rebind< node >::other 
node_allocator_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void delete_node (node_base *n)
 
-nodesearch_bucket (const key_type &key, bucket *b) const
 
-void rehash_bucket (bucket *b_new, const hashcode_t h)
 
-bool lookup (bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node *(*allocate_node)(node_allocator_type &, const Key &, const T *), node *tmp_n=0)
 Insert or find item and optionally acquire a lock on the item.
 
-template<typename Accessor >
bool generic_move_insert (Accessor &&result, value_type &&value)
 
-template<typename Accessor , typename... Args>
bool generic_emplace (Accessor &&result, Args &&...args)
 
-bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
-template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
-void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
-template<typename I >
void internal_copy (I first, I last)
 
const_pointer internal_fast_find (const Key &key) const
 Fast find when no concurrent erasure is used. For internal use inside TBB only! More...
 
- - - - - - - - - - - - -

-Static Protected Member Functions

-static nodeallocate_node_copy_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
-static nodeallocate_node_move_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
-template<typename... Args>
static nodeallocate_node_emplace_construct (node_allocator_type &allocator, Args &&...args)
 
-static nodeallocate_node_default_construct (node_allocator_type &allocator, const Key &key, const T *)
 
-static nodedo_not_allocate_node (node_allocator_type &, const Key &, const T *)
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-node_allocator_type my_allocator
 
-HashCompare my_hash_compare
 
concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src)
 Move constructors.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src, const allocator_type &a)
 
+template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
+void push (const T &source)
 Enqueue an item at tail of queue.
 
+void push (T &&source)
 Move an item at tail of queue.
 
+template<typename... Arguments>
void emplace (Arguments &&...args)
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
+void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_push (T &&source)
 Move an item at tail of queue if queue is not already full. More...
 
+template<typename... Arguments>
bool try_emplace (Arguments &&...args)
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
+bool empty () const
 Equivalent to size()<=0.
 
+size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
+allocator_type get_allocator () const
 return allocator object
 
+void clear ()
 clear the queue. not thread-safe.
 
+iterator unsafe_begin ()
 
+iterator unsafe_end ()
 
+const_iterator unsafe_begin () const
 
+const_iterator unsafe_end () const
 
- - - - - - - - - - - - - - - - - - + +

Friends

+
template<typename Container , typename Value >
class internal::hash_map_iterator
 
-template<typename I >
class internal::hash_map_range
 
-class const_accessor
 
-const_accessoraccessor_location (accessor_not_used const &)
 
-const_accessoraccessor_location (const_accessor &a)
 
-bool is_write_access_needed (accessor const &)
 
-bool is_write_access_needed (const_accessor const &)
 
-bool is_write_access_needed (accessor_not_used const &)
 
class internal::concurrent_queue_iterator
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >

- -

Unordered map from Key to T.

-
concurrent_hash_map is associative container with concurrent access.
-
Compatibility
The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1).
-
Exception Safety
    -
  • Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors.
  • -
  • If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment).
  • -
  • If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results.
  • -
-
-
Changes since TBB 2.1
    -
  • Replaced internal algorithm and data structure. Patent is pending.
  • -
  • Added buckets number argument for constructor
  • -
-
-
Changes since TBB 2.0
    -
  • Fixed exception-safety
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Added constructor from a range of iterators
  • -
  • Added several new overloaded insert() methods
  • -
  • Added get_allocator()
  • -
  • Added swap()
  • -
  • Added count()
  • -
  • Added overloaded erase(accessor &) and erase(const_accessor&)
  • -
  • Added equal_range() [const]
  • -
  • Added [const_]pointer, [const_]reference, and allocator_type types
  • -
  • Added global functions: operator==(), operator!=(), and swap()
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (const_accessorresult,
Args &&... args 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (accessorresult,
Args &&... args 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (Args &&... args)
-
-inline
-
- -

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

+

template<typename T, class A = cache_aligned_allocator<T>>
+class tbb::concurrent_bounded_queue< T, A >

-
-
- +

A high-performance thread-safe blocking concurrent bounded queue.

+

This is the pre-PPL TBB concurrent queue which supports boundedness and blocking semantics. Note that method names agree with the PPL-style concurrent queue. Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

+

Member Typedef Documentation

+
-template<typename Key , typename T , typename HashCompare , typename A >
+template<typename T , class A = cache_aligned_allocator<T>>
- - - - - +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const Key & key)typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-

Erase item.

-

Return true if item was erased by particularly this call.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor::is_writer().

+

Integral type for representing size of the queue.

+

Note that the size_type is a signed integral type. This is because the size can be negative if there are pending pops without corresponding pushes.

- +

Member Function Documentation

+
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase void tbb::concurrent_bounded_queue< T, A >::pop (const_accessoritem_accessor)T & destination)
@@ -608,25 +247,25 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
-

Erase item by const_accessor.

-

Return true if item was erased by particularly this call.

+

Dequeue item from head of queue.

+

Block until an item becomes available, and then dequeue it.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase void tbb::concurrent_bounded_queue< T, A >::set_capacity (accessoritem_accessor)size_type new_capacity)
@@ -637,272 +276,25 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
-

Erase item by accessor.

-

Return true if item was erased by particularly this call.

+

Set the capacity.

+

Setting the capacity to 0 causes subsequent try_push operations to always fail, and subsequent push operations to block forever.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- - -
- + - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find size_type tbb::concurrent_bounded_queue< T, A >::size (const_accessorresult,
const Key & key 
) const
-
-inline
-
- -

Find item and acquire a read lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
- - -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (accessorresult,
const Key & key 
)
-
-inline
-
- -

Find item and acquire a write lock on the item.

-

Return true if item is found, false otherwise.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const Key & key 
)
-
-inline
-
- -

Insert item (if not already present) and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const value_type & value 
)
-
-inline
-
- -

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

- -

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - @@ -912,36 +304,26 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
- - - - - - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const value_type & value)) const
-

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

+

Return number of pushes minus number of pops.

+

Note that the result can be negative if there are pops waiting for the corresponding pushes. The result can also exceed capacity() if there are push operations in flight.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
@@ -951,36 +333,26 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
- + - - - - - + + - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_pop (const_accessorresult,
T & destination) value_type && value 
)
-

Insert item by copying if there is no such key present already and acquire a read lock on the item.

-

Returns true if item is new.

+

Attempt to dequeue an item from head of queue.

+

Does not wait for item to become available. Returns true if successful; false otherwise.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
@@ -990,25 +362,25 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
- + - - - - - + + - - - - - - -
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_push (accessorresult,
const T & source) value_type && value 
)
-

Insert item by copying if there is no such key present already and acquire a write lock on the item.

-

Returns true if item is new.

+

Enqueue an item at tail of queue if queue is not already full.

+

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.

- +
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert bool tbb::concurrent_bounded_queue< T, A >::try_push (value_type && value)T && source)
@@ -1019,68 +391,18 @@ template<typename Key , typename T , typename HashCompare = tbb_hash_compare
-

Insert item by copying if there is no such key present already.

-

Returns true if item is inserted.

- -
- - -
-
-
-template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
- - - - - -
- - - - - - - - -
const_pointer tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::internal_fast_find (const Key & key) const
-
-inlineprotected
-
- -

Fast find when no concurrent erasure is used. For internal use inside TBB only!

-

Return pointer to item with given key, or NULL if no such item exists. Must not be called concurrently with erasure operations.

- -
-
- -
-
-
-template<typename Key , typename T , typename HashCompare , typename A >
- - - - - - - - -
void tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::rehash (size_type n = 0)
-
- -

Rehashes and optionally resizes the whole table.

-

Useful to optimize performance before or after concurrent operations. Also enables using of find() and count() concurrent methods in serial context.

+

Move an item at tail of queue if queue is not already full.

+

Does not wait for queue to become not full. Returns true if item is pushed; false if queue was already full.


The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • +
  • concurrent_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00048.png b/doc/html/a00048.png index 3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808..3dc03c333709697a42cb92d8e57a8cb283aa9e6c 100644 GIT binary patch delta 722 zcmbQk@sCxpGr-TCmrII^fq{Y7)59f*fq~&O0|P?<2Qvc$!|w%~eJ3hf)id>ax;TbZ zFut98_tI(w9#?Vm`*r`#?ZQGj6tevPt6g|0c2Q*m$B}3!j)lg8Dl4^l(>y<|Kd9sR z@2loBb+?`GjHV`e?$Y8v!++TN<9kDWZmHP@TPyRgmh?_PqjmmBiS_>eP3I~P<<#6Z z+>oETE%}Vj(E}3~W^HAixl;RF*(cZfKbID53z>A~TJAHUTJwMFlGlDZTW~7Jt*1P+ zd;9aBR-Yf2pUUY?T7M>KTjRIe|L;EkSvGI&N5^^DZdY~0#O5d2-I{Rv;@&OWA6IVM zt?)Y5?)+0O?@KHHtojtWm^AtVXr7EYX{Fgd2=}CNZ6^Y@y>)w5+=k<-n@?Ta^J<#hG4*BJdH4AkMBb2_@HgM+xa91#)3w*G$mwZ^ZoRea zUf0y!dKW)gzPht7dKTLUjw?&_s`LaHH zX0l*q*UcSaGjl)eysj7N>Kk39e}1#+zNycZOkL-le$Z>PzTvIS?Z>65yP_jA-@pA^ zspntt+eZG@_H&z4*UfugdpC|bTzjkT&gh)z8T_xloto&EvODj(Zr|%NujdD+zh5wi z`A^$B|MyoOuRT*Nxbg|}f~9xfZ~MNp`LGSM$ybffXBhOa!9q&7m_zZ)()zy(`)|oC TXq~~pz`)??>gTe~DWM4f4()Oq delta 1010 zcmeyzI)_8CGr-TCmrII^fq{Y7)59f*fq}7;fq@}_gPDPW;kIk#or#K8^~|e1T^vIy z7~jslUADxEht-=u^7sG$KT3+H<~yiQZaop$CM6YrAnfKR?XDW+n4&Dg&p~irUpE_-PpO) z_rA-;`pOAQGFr?xwr>}IZNz`IGxNxtY!9L~B(?H1s6ILGHaNQ)s z{>{&HCk)`!;dUtA)PQ z)z1?G3Jq_v+AQ zvHW07w_X0Pc6ILbFTAbye*@3C;~V$o2EPp{<(hu7H2Q7jh8Nq+Z$4Sg53f2IDm?~jxg995V# zQ$#qnF5dJZf8Vdwy`5GL4WT`kQZ|RIn|b5oqPl zdB>k!W_{Z4Yq-Df4~whq)yp4LS1)?Jo2UNn-_5ocXXaV2OY^&=!F-RWI_JMT`J+WK^!M)cd}FL(Fsb1a+nEJUqAY0J9-;caM^GiMd?`$=Od2X{9IvkMjfzvHBBa_m~^#3z*{{GNd&*HR$fq{X+ M)78&qol`;+0BiB#>;M1& diff --git a/doc/html/a00049.html b/doc/html/a00049.html index 8ae60d6f..454b8674 100644 --- a/doc/html/a00049.html +++ b/doc/html/a00049.html @@ -4,7 +4,7 @@ -tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+ +

Unordered map from Key to T. + More...

+ +

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
- - + +
+ + + + + + + + + + + + + + + + +

+Classes

class  accessor
 Allows write access to elements and combines data access, locking, and garbage collection. More...
 
struct  accessor_not_used
 
class  bucket_accessor
 bucket accessor is to find, rehash, acquire a lock, and access a bucket More...
 
struct  call_clear_on_leave
 
class  const_accessor
 Combines data access, locking, and garbage collection. More...
 
struct  node
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef handle_object handle
 
+typedef Key key_type
 
+typedef T mapped_type
 
+typedef std::pair< const Key, T > value_type
 
+typedef hash_map_base::size_type size_type
 
+typedef ptrdiff_t difference_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef
+internal::hash_map_iterator
+< concurrent_hash_map,
+value_type > 
iterator
 
+typedef
+internal::hash_map_iterator
+< concurrent_hash_map, const
+value_type > 
const_iterator
 
+typedef
+internal::hash_map_range
+< iterator > 
range_type
 
+typedef
+internal::hash_map_range
+< const_iterator > 
const_range_type
 
+typedef Allocator allocator_type
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
-handle_object operator[] (key_type k)
 
concurrent_hash_map (const allocator_type &a=allocator_type())
 Construct empty table.
 
concurrent_hash_map (size_type n, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
concurrent_hash_map (const concurrent_hash_map &table, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_hash_map (concurrent_hash_map &&table)
 Move constructor.
 
concurrent_hash_map (concurrent_hash_map &&table, const allocator_type &a)
 Move constructor.
 
+template<typename I >
 concurrent_hash_map (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
concurrent_hash_map (std::initializer_list< value_type > il, const allocator_type &a=allocator_type())
 Construct empty table with n preallocated buckets. This number serves also as initial concurrency level.
 
+concurrent_hash_mapoperator= (const concurrent_hash_map &table)
 Assignment.
 
+concurrent_hash_mapoperator= (concurrent_hash_map &&table)
 Move Assignment.
 
+concurrent_hash_mapoperator= (std::initializer_list< value_type > il)
 Assignment.
 
void rehash (size_type n=0)
 Rehashes and optionally resizes the whole table. More...
 
+void clear ()
 Clear table.
 
~concurrent_hash_map ()
 Clear table and destroy it.
 
+range_type range (size_type grainsize=1)
 
+const_range_type range (size_type grainsize=1) const
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+std::pair< iterator, iterator > equal_range (const Key &key)
 
+std::pair< const_iterator,
+const_iterator > 
equal_range (const Key &key) const
 
+size_type size () const
 Number of items in table.
 
+bool empty () const
 True if size()==0.
 
+size_type max_size () const
 Upper bound on size.
 
+size_type bucket_count () const
 Returns the current number of buckets.
 
+allocator_type get_allocator () const
 return allocator object
 
+void swap (concurrent_hash_map &table)
 swap two instances. Iterators are invalidated
 
+size_type count (const Key &key) const
 Return count of items (0 or 1)
 
bool find (const_accessor &result, const Key &key) const
 Find item and acquire a read lock on the item. More...
 
bool find (accessor &result, const Key &key)
 Find item and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const Key &key)
 Insert item (if not already present) and acquire a read lock on the item. More...
 
bool insert (accessor &result, const Key &key)
 Insert item (if not already present) and acquire a write lock on the item. More...
 
bool insert (const_accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, const value_type &value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (const value_type &value)
 Insert item by copying if there is no such key present already. More...
 
bool insert (const_accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
bool insert (accessor &result, value_type &&value)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
bool insert (value_type &&value)
 Insert item by copying if there is no such key present already. More...
 
template<typename... Args>
bool emplace (const_accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
 
template<typename... Args>
bool emplace (accessor &result, Args &&...args)
 Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
 
template<typename... Args>
bool emplace (Args &&...args)
 Insert item by copying if there is no such key present already. More...
 
+template<typename I >
void insert (I first, I last)
 Insert range [first, last)
 
+void insert (std::initializer_list< value_type > il)
 Insert initializer list.
 
bool erase (const Key &key)
 Erase item. More...
 
bool erase (const_accessor &item_accessor)
 Erase item by const_accessor. More...
 
bool erase (accessor &item_accessor)
 Erase item by accessor. More...
 
+ + + +

+Protected Types

+typedef Allocator::template
+rebind< node >::other 
node_allocator_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void delete_node (node_base *n)
 
+nodesearch_bucket (const key_type &key, bucket *b) const
 
+void rehash_bucket (bucket *b_new, const hashcode_t h)
 
+bool lookup (bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node *(*allocate_node)(node_allocator_type &, const Key &, const T *), node *tmp_n=0)
 Insert or find item and optionally acquire a lock on the item.
 
+template<typename Accessor >
bool generic_move_insert (Accessor &&result, value_type &&value)
 
+template<typename Accessor , typename... Args>
bool generic_emplace (Accessor &&result, Args &&...args)
 
+bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
+template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
+void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
+template<typename I >
void internal_copy (I first, I last)
 
const_pointer internal_fast_find (const Key &key) const
 Fast find when no concurrent erasure is used. For internal use inside TBB only! More...
 
+ + + + + + + + + + + + +

+Static Protected Member Functions

+static nodeallocate_node_copy_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
+static nodeallocate_node_move_construct (node_allocator_type &allocator, const Key &key, const T *t)
 
+template<typename... Args>
static nodeallocate_node_emplace_construct (node_allocator_type &allocator, Args &&...args)
 
+static nodeallocate_node_default_construct (node_allocator_type &allocator, const Key &key, const T *)
 
+static nodedo_not_allocate_node (node_allocator_type &, const Key &, const T *)
 
+ + + + +

+Protected Attributes

+node_allocator_type my_allocator
 
+HashCompare my_hash_compare
 
- - + + + + + + + + + + + + + + + + + + +

Friends

-class tbb::internal::aggregating_functor< self_type, aggregated_operation_type >
 
+template<typename Container , typename Value >
class internal::hash_map_iterator
 
+template<typename I >
class internal::hash_map_range
 
+class const_accessor
 
+const_accessoraccessor_location (accessor_not_used const &)
 
+const_accessoraccessor_location (const_accessor &a)
 
+bool is_write_access_needed (accessor const &)
 
+bool is_write_access_needed (const_accessor const &)
 
+bool is_write_access_needed (accessor_not_used const &)
 
+

Detailed Description

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >

+ +

Unordered map from Key to T.

+
concurrent_hash_map is associative container with concurrent access.
+
Compatibility
The class meets all Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1).
+
Exception Safety
    +
  • Hash function is not permitted to throw an exception. User-defined types Key and T are forbidden from throwing an exception in destructors.
  • +
  • If exception happens during insert() operations, it has no effect (unless exception raised by HashCompare::hash() function during grow_segment).
  • +
  • If exception happens during operator=() operation, the container can have a part of source items, and methods size() and empty() can return wrong results.
  • +
+
+
Changes since TBB 2.1
    +
  • Replaced internal algorithm and data structure. Patent is pending.
  • +
  • Added buckets number argument for constructor
  • +
+
+
Changes since TBB 2.0
    +
  • Fixed exception-safety
  • +
  • Added template argument for allocator
  • +
  • Added allocator argument in constructors
  • +
  • Added constructor from a range of iterators
  • +
  • Added several new overloaded insert() methods
  • +
  • Added get_allocator()
  • +
  • Added swap()
  • +
  • Added count()
  • +
  • Added overloaded erase(accessor &) and erase(const_accessor&)
  • +
  • Added equal_range() [const]
  • +
  • Added [const_]pointer, [const_]reference, and allocator_type types
  • +
  • Added global functions: operator==(), operator!=(), and swap()
  • +
+
+

Member Function Documentation

+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (const_accessorresult,
Args &&... args 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (accessorresult,
Args &&... args 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::emplace (Args &&... args)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare , typename A >
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const Key & key)
+
+ +

Erase item.

+

Return true if item was erased by particularly this call.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor::is_writer().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (const_accessoritem_accessor)
+
+inline
+
+ +

Erase item by const_accessor.

+

Return true if item was erased by particularly this call.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::erase (accessoritem_accessor)
+
+inline
+
+ +

Erase item by accessor.

+

Return true if item was erased by particularly this call.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (const_accessorresult,
const Key & key 
) const
+
+inline
+
+ +

Find item and acquire a read lock on the item.

+

Return true if item is found, false otherwise.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::find (accessorresult,
const Key & key 
)
+
+inline
+
+ +

Find item and acquire a write lock on the item.

+

Return true if item is found, false otherwise.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const Key & key 
)
+
+inline
+
+ +

Insert item (if not already present) and acquire a read lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const Key & key 
)
+
+inline
+
+ +

Insert item (if not already present) and acquire a write lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
const value_type & value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
const value_type & value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +

References tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor::release().

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const value_type & value)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (const_accessorresult,
value_type && value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a read lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (accessorresult,
value_type && value 
)
+
+inline
+
+ +

Insert item by copying if there is no such key present already and acquire a write lock on the item.

+

Returns true if item is new.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + +
+ + + + + + + + +
bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (value_type && value)
+
+inline
+
+ +

Insert item by copying if there is no such key present already.

+

Returns true if item is inserted.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+ + + + + +
+ + + + + + + + +
const_pointer tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::internal_fast_find (const Key & key) const
+
+inlineprotected
+
+ +

Fast find when no concurrent erasure is used. For internal use inside TBB only!

+

Return pointer to item with given key, or NULL if no such item exists. Must not be called concurrently with erasure operations.

+ +
+
+ +
+
+
+template<typename Key , typename T , typename HashCompare , typename A >
+ + + + + + + + +
void tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::rehash (size_type n = 0)
+
+ +

Rehashes and optionally resizes the whole table.

+

Useful to optimize performance before or after concurrent operations. Also enables using of find() and count() concurrent methods in serial context.

+ +
+

The documentation for this class was generated from the following file:
    -
  • concurrent_lru_cache.h
  • +
  • concurrent_hash_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00049.png b/doc/html/a00049.png index 856b3afbc688a7b01023a31c6da442bf2c88844f..3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808 100644 GIT binary patch delta 1009 zcmZ3(F^5C3Gr-TCmrII^fq{Y7)59f*fq}7;fq@}_gPDPW;kIk#or#Lp^{YKy978G? z-_E^Vw#15u)tf)^_y7MtN{XlEJE%`?JrUR@B^7@l?B*x!w6xBdH_s+an&NS3?GjGU zE{9nYmT#eRQopf)vayy^$+$6SzGHS-&TroE9!rDZ`lglm-?QC9r=%@20Xjn*tyg9 zzRSh>$_Yy{TFf`LZx?@U#k^H**1t(26PM3;@$~00mwCdIzML<-nacY)u&nCta^^c% z&-w5B|3$%*u`}CglHKE*#+8dYU*37E^X{pI#1*fglp=qRAeMiVI6bTMGM(xtDNRsQ z(PYYWf->}l!5-bqU^7p@f#pHkB^C#Uefxq~5By!i*}$;JWeHcqZBJnaLl1riK@VXD zP6wt53`Z0;3p=n}Vga#L7z|ImVG(FFVVuCA!ocakV`Rz`IGxNxtY!9L~B(?H1s6ILGHaNQ)s z{>{&HCk)`!;dUtA)PQ z&8rtXxJl@qYVqZ#H}9{KoElnscxlPs^IMC$*S)zW`Q%sEGv`!+?=!z0>G3Jq_v+AQ zvHW07w_X0Pc6ILbFTAbye*@3C;~V$o2EPp{<(hu7H2Q7jh8Nq+Z$oqPl zdB>k!W_{Z4Yq-Df4~whq)yp4LS1)?Jo2UNn-_5ocXXaV2OY^lV;zeeLSsQC!6_u@8UYoM0-0w=@uM;lP4RNWpekD0m)OI~T z^832b%ugr2Zk}EJ>&=!F-RWI_JMT`J+WK^!M)cd}FL(Fsb1a+nEJUqAY0J9-;caM^GiMd?`$=Od2X{9IvkMjfzvHBBa_m~^#3z*{{GNd&*HR$fq{X+ M)78&qol`;+03(Lsng9R* delta 1025 zcmbQkv4%sjGr-TCmrII^fq{Y7)59f*fr0S_0|P?<2Qvc$!_x$@NfQ;V>vwy)IEGX( zzMXrs@38?7OZNeWzyIs^c-Fl1d2^R%!?dbnqS2dNymBVisVW_Eap~bz^mLo#cFf89 z5=%se=PU+pT~FbJg{qlMI$u!r*-AF(@vR9<1SKsOOFOOCpVn9Zce{1SB(_Aeh4M?Q*IxB}x$VNFlJHrtWY?O^ z)!m|UcWSv)dq|vE)TDPO)NTi@o_uNV%c?2wo;SBnTf!+}%QKndug8<;^HoeGtftPr z=;}CqN#jP4BgCR6sU1LZ2k$HvGx9Vr?yx?W!N8or@UG7oEWP`24<*vZsc!BrGdemp zDl+gKs6P>r(ZIRk0)ueELPoU%PRu?B^u9bUvswE7_42KEtraiUG8fF+m)^klcVT`{ zOiW(+eTL^R`QEp#zgv6lwfe%{V!vPS*_YnX71>%R9nmmnwUhnj4pbhw0>wRJ$?GSOZm6`v$VB;w(noF;mV>Z({4RqCU-;U#aAgQM$fw? zqFH;--Fn{g&)xWL#nr$c^-s21yhv}or}a(md|bvgx8z@}3yqo6ThCqJAiFKx^Yo%U z`a5(azG~k47P-vXY^T(BTjT4kb&pGPW6r&Bdoo!e{QmyclChDjix#BsnioBF-K!e; z$**{)a+zko)1SFh>5KLHw>{_fomBTKe=Z%%aaVfdu3aI!UQhm?$a~W5v+S1S`m6tT zJj*__I7IJ-ciJWKT*h-1xpj-@`)5Dc{zIJgS*X~iFV&(a7F+Ml74F`*$N2nL|B)|_U#$7Z`10yI*6ktbUbqx0W#bw6?O%VBqF8U=))|VA3%;z+%(V*I^(i==_=8%3k+U UfX6>u1_lNOPgg&ebxsLQ0IB@soB#j- diff --git a/doc/html/a00050.html b/doc/html/a00050.html index c6bbe077..0175a8cf 100644 --- a/doc/html/a00050.html +++ b/doc/html/a00050.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference +tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference @@ -33,7 +33,7 @@ +Friends | +List of all members
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
+
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
- -

Concurrent priority queue. - More...

- -

#include <concurrent_priority_queue.h>

+
+Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
+
+
+ + + +
- - - - - - - - - - - - - - - - - - + +

Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
+typedef handle_object handle
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_priority_queue (const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with default capacity.
 
concurrent_priority_queue (size_type init_capacity, const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with init_sz capacity.
 
-template<typename InputIterator >
 concurrent_priority_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_priority_queue (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from std::initializer_list.
 
 concurrent_priority_queue (const concurrent_priority_queue &src)
 Copy constructor. More...
 
 concurrent_priority_queue (const concurrent_priority_queue &src, const allocator_type &a)
 Copy constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (const concurrent_priority_queue &src)
 Assignment operator. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src)
 Move constructor. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src, const allocator_type &a)
 Move constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (concurrent_priority_queue &&src)
 Move assignment operator. More...
 
-template<typename InputIterator >
void assign (InputIterator begin, InputIterator end)
 Assign the queue from [begin,end) range, not thread-safe.
 
-void assign (std::initializer_list< T > il)
 Assign the queue from std::initializer_list, not thread-safe.
 
-concurrent_priority_queueoperator= (std::initializer_list< T > il)
 Assign from std::initializer_list, not thread-safe.
 
bool empty () const
 Returns true if empty, false otherwise. More...
 
size_type size () const
 Returns the current number of elements contained in the queue. More...
 
void push (const_reference elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
void push (value_type &&elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
template<typename... Args>
void emplace (Args &&...args)
 Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. More...
 
bool try_pop (reference elem)
 Gets a reference to and removes highest priority element. More...
 
void clear ()
 Clear the queue; not thread-safe. More...
 
void swap (concurrent_priority_queue &q)
 Swap this queue with another; not thread-safe. More...
 
-allocator_type get_allocator () const
 Return allocator object.
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::interface5::concurrent_priority_queue< T, Compare, A >

- -

Concurrent priority queue.

-

Constructor & Destructor Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)
-
-inlineexplicit
-
- -

Copy constructor.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
-
-inline
-
- -

Copy constructor with specific allocator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src)
-
-inline
-
- -

Move constructor.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src,
const allocator_typea 
)
-
-inline
-
- -

Move constructor with specific allocator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
-

Member Function Documentation

- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear ()
-
-inline
-
- -

Clear the queue; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace (Args &&... args)
-
-inline
-
- -

Constructs a new element using args as the arguments for its construction and pushes it onto the queue */.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty () const
-
-inline
-
- -

Returns true if empty, false otherwise.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (const concurrent_priority_queue< T, Compare, A > & src)
-
-inline
-
- -

Assignment operator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (concurrent_priority_queue< T, Compare, A > && src)
-
-inline
-
- -

Move assignment operator.

-

This operation is unsafe if there are pending concurrent operations on the src queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem)
-
-inline
-
- -

Pushes elem onto the queue, increasing capacity of queue if necessary.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (value_type && elem)
-
-inline
-
- -

Pushes elem onto the queue, increasing capacity of queue if necessary.

-

This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size () const
-
-inline
-
- -

Returns the current number of elements contained in the queue.

-

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (concurrent_priority_queue< T, Compare, A > & q)
-
-inline
-
- -

Swap this queue with another; not thread-safe.

-

This operation is unsafe if there are pending concurrent operations on the queue.

- -
-
- -
-
-
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - + + + + +
- - - - - - - - -
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (reference elem)
-
-inline
concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
+handle_object operator[] (key_type k)
 
+ + +

+Friends

+class tbb::internal::aggregating_functor< self_type, aggregated_operation_type >
 
-
- -

Gets a reference to and removes highest priority element.

-

If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_priority_queue.h
  • +
  • concurrent_lru_cache.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00050.png b/doc/html/a00050.png new file mode 100644 index 0000000000000000000000000000000000000000..856b3afbc688a7b01023a31c6da442bf2c88844f GIT binary patch literal 1068 zcmeAS@N?(olHy`uVBq!ia0y~yV0^*Az!1Q}%)r3#G(l_<0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`dAFyFV@L(#+qpOU9vkqm zbRS^&`@epVXU$8WH+Ok9OshI38okNID`#Szs?s4BmmXe4Pq#^K$DF(`u|#Be&SK!! z^%PE6sG7;7^F`(N_6w6t7$0-Vc3r=gv@>^a^z(ne9~u6bq3C(oaKi=tmtwM;tz?59 z->bL+GvoD#M?lR5r+Jb6A}#ZfDR2j?KdpNIEA$sY!ZhK(C9Fg*VJIe95#+i@r6p7YM>+PnrE1{@dgpuUCi6R&2OeHm~#xZV&)2F|?lz-blOI!PA`~Ec>t}L1|?bh>UayN8de3g=7^t@Xlnzi@bt>-QO+>P&6 zTn+s3WUIxC^wxV?-}KJMWn6Ph{>8e`m^r=m-1QBz+rm9hFWRHOLr3DP=Dlx`%bd-2 zN`1FAzTR5*xHLEB+zYoSlNG}6?_Vt$8_Bw8LHe$F(NovGs*#`kigzlPY4$t)nLCxf zSg(KEb8g>Bb+7X0(y<(Or8n-{6|(E~(OVlTwcFw{Jl9ImkY*_jt*cK@s2)t=-z!0J~y zcWVi=PirgN3 -tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference +tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference @@ -33,167 +33,549 @@
-
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
-

A high-performance thread-safe non-blocking concurrent queue. +

Concurrent priority queue. More...

-

#include <concurrent_queue.h>

-
-Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
-
-
- - - -
+

#include <concurrent_priority_queue.h>

- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Types

-typedef T value_type
 Element type in the queue.
 
-typedef T & reference
 Reference type.
 
-typedef const T & const_reference
 Const reference type.
 
-typedef size_t size_type
 Integral type for representing size of the queue.
 
-typedef ptrdiff_t difference_type
 Difference type for iterator.
 
-typedef A allocator_type
 Allocator type.
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, T > 
iterator
 
-typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, const T > 
const_iterator
 
+typedef T value_type
 Element type in the queue.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
+typedef size_t size_type
 Integral type for representing size of the queue.
 
+typedef ptrdiff_t difference_type
 Difference type for iterator.
 
+typedef A allocator_type
 Allocator type.
 
- - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
+
concurrent_priority_queue (const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with default capacity.
 
concurrent_priority_queue (size_type init_capacity, const allocator_type &a=allocator_type())
 Constructs a new concurrent_priority_queue with init_sz capacity.
 
template<typename InputIterator >
 concurrent_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_queue (const concurrent_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_queue (concurrent_queue &&src)
 Move constructors.
 
concurrent_queue (concurrent_queue &&src, const allocator_type &a)
 
~concurrent_queue ()
 Destroy queue.
 
-void push (const T &source)
 Enqueue an item at tail of queue.
 
-void push (T &&source)
 
-template<typename... Arguments>
void emplace (Arguments &&...args)
 
bool try_pop (T &result)
 Attempt to dequeue an item from head of queue. More...
 
-size_type unsafe_size () const
 Return the number of items in the queue; thread unsafe.
 
-bool empty () const
 Equivalent to size()==0.
 
-void clear ()
 Clear the queue. not thread-safe.
 
-allocator_type get_allocator () const
 Return allocator object.
 
-iterator unsafe_begin ()
 
-iterator unsafe_end ()
 
-const_iterator unsafe_begin () const
 
-const_iterator unsafe_end () const
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
 concurrent_priority_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_priority_queue (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from std::initializer_list.
 
 concurrent_priority_queue (const concurrent_priority_queue &src)
 Copy constructor. More...
 
 concurrent_priority_queue (const concurrent_priority_queue &src, const allocator_type &a)
 Copy constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (const concurrent_priority_queue &src)
 Assignment operator. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src)
 Move constructor. More...
 
 concurrent_priority_queue (concurrent_priority_queue &&src, const allocator_type &a)
 Move constructor with specific allocator. More...
 
concurrent_priority_queueoperator= (concurrent_priority_queue &&src)
 Move assignment operator. More...
 
+template<typename InputIterator >
void assign (InputIterator begin, InputIterator end)
 Assign the queue from [begin,end) range, not thread-safe.
 
+void assign (std::initializer_list< T > il)
 Assign the queue from std::initializer_list, not thread-safe.
 
+concurrent_priority_queueoperator= (std::initializer_list< T > il)
 Assign from std::initializer_list, not thread-safe.
 
bool empty () const
 Returns true if empty, false otherwise. More...
 
size_type size () const
 Returns the current number of elements contained in the queue. More...
 
void push (const_reference elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
void push (value_type &&elem)
 Pushes elem onto the queue, increasing capacity of queue if necessary. More...
 
template<typename... Args>
void emplace (Args &&...args)
 Constructs a new element using args as the arguments for its construction and pushes it onto the queue */. More...
 
bool try_pop (reference elem)
 Gets a reference to and removes highest priority element. More...
 
void clear ()
 Clear the queue; not thread-safe. More...
 
void swap (concurrent_priority_queue &q)
 Swap this queue with another; not thread-safe. More...
 
+allocator_type get_allocator () const
 Return allocator object.
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::strict_ppl::concurrent_queue< T, A >

+

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+class tbb::interface5::concurrent_priority_queue< T, Compare, A >

+ +

Concurrent priority queue.

+

Constructor & Destructor Documentation

+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)
+
+inlineexplicit
+
+ +

Copy constructor.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
+
+inline
+
+ +

Copy constructor with specific allocator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src)
+
+inline
+
+ +

Move constructor.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (concurrent_priority_queue< T, Compare, A > && src,
const allocator_typea 
)
+
+inline
+
+ +

Move constructor with specific allocator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear ()
+
+inline
+
+ +

Clear the queue; not thread-safe.

+

This operation is unsafe if there are pending concurrent operations on the queue. Resets size, effectively emptying queue; does not free space. May not clear elements added in pending operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace (Args &&... args)
+
+inline
+
+ +

Constructs a new element using args as the arguments for its construction and pushes it onto the queue */.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty () const
+
+inline
+
+ +

Returns true if empty, false otherwise.

+

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (const concurrent_priority_queue< T, Compare, A > & src)
+
+inline
+
+ +

Assignment operator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (concurrent_priority_queue< T, Compare, A > && src)
+
+inline
+
+ +

Move assignment operator.

+

This operation is unsafe if there are pending concurrent operations on the src queue.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem)
+
+inline
+
+ +

Pushes elem onto the queue, increasing capacity of queue if necessary.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (value_type && elem)
+
+inline
+
+ +

Pushes elem onto the queue, increasing capacity of queue if necessary.

+

This operation can be safely used concurrently with other push, try_pop or emplace operations.

+ +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size () const
+
+inline
+
+ +

Returns the current number of elements contained in the queue.

+

Returned value may not reflect results of pending operations. This operation reads shared data and will trigger a race condition.

-

A high-performance thread-safe non-blocking concurrent queue.

-

Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

-

Member Function Documentation

- +
+
+ +
+
+
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (concurrent_priority_queue< T, Compare, A > & q)
+
+inline
+
+ +

Swap this queue with another; not thread-safe.

+

This operation is unsafe if there are pending concurrent operations on the queue.

+ +
+
+
-template<typename T , typename A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00054.png b/doc/html/a00054.png deleted file mode 100644 index 6fa3b58c9af6e07c385a119cbebb0f48e002ea6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2174 zcmeAS@N?(olHy`uVBq!ia0y~yVD4dHUewU;Qb2$u>LL=6%YB zNnftlq;HvIvTWw}uQS%|;pfYpcKrFL$Xxx+k@qW39lxlbf9t#ZzxfhVmP|SR(Jp?6 ztI4dY(wIp_lg?!rdfnQ8`G`eSrF4y^d%p59=Hm68AE*8(@}DH4G5gm4g%a=Y<(a?w z8x{NRTC__4#nKg%9A)y<2-e0Si^kcEsj#)R}xH!-Go0#`}`kd28UzB&I{L8-loab8Pjkxu~^6E8f zo@pH0@cEU? z_APV&eWK1J^tQZA=?(ADjn9u%Xl}e&P{lXl_Jjf;h4Wzxd0xCT8a`4YcAfBv2NYhL}lZ3pwx_exk>@*TaA zx`qGE1|cI$z9TziJZvr$*vDzVul;!R(>i8Ow_CFMpTBk9)%_}Waa}Td_09NezH36m zpDx^auK!4d-p0F~ae~R^9N~-Bw_N?bezASJLCV701=WvLi`K+^Qx*LD#i!@Ds_~@9 zJB;mK3Qw>0ol~>$`V+Sx?zfS9?@89{+|pZp^5~@}iZ4HH?2Hq5yz@w!dR17D=i|Ks zwU3Mh53YD--K=;e@37;t%=9(N5~Al?&sAs~RW^JUTQ*^H-Tc@}{wm+g&4)sjL`#pj z39erzQM>o7dFQsXS!&<5oSMD&2*bM0k6B6X)7`|MT{znMLiq1fce(H$o;ID5pRbQf zEUi#E_Hbj`%QfA}8b@P#`sdx6dc4+p>gUu`VJ8v|zRj}G&RTiz^t)1H!M0cCw{3Uq zz3rnf{Mh%4+{J6l%l}_rvh>!OXHLw& zFTO87Q*UuUxjA>mZiUBf*1S(2rnv5x>N+kZGF_xyh4;o04Ntd8{}k^RfAi$6o1N=v zb+Vi9^9$9NGahyw>}KXqHuSm_8W(Tv-V;Cl$XjJk{ZHS;R9?#1i@y!(s89btKl7vK zob{D|Bz4sm_Qme$7P~8{nkjX^@LT@m{nMF#etWV0zUX^phVH;gJt~r(vpSA~Z0k|+ zJ(4sYvOB3_J~tGn$Wb zBrxzCu=)3AqZA`ZpbaXpZ%c+LlLP~^0e83H0S1YNl@VPGYzG*8jwG=dFt8;ki77WQ z8ZZcNlmP4Mfar43absXkU{Fgk1Zx$9Xzh&X8Cb19zJg0Okzg;)WmAHlIWQW4+;ipt zUa#0W_QYF9mANl1G49tD9 z3{PZole&{qz8CL4&fZ-(V_#tu&nqmuvk=Dx3o zC*57P<*TZHz%Z8Z=|{xInd55xYM|AW(W zQbmqlefGU5{mq(rZ+mu5yquKNTYgVl{rQm{>pfWvUnK8s-Z1x_LX*#B0k`Gv&T)KL zcjx`vU+D_Rm`t7|Nxoi@w{@)q``nE$XDqzwurS&5UbkVU*3^$@KW?ky%{Q;}?Adv3 zx2Q6EqV-+J7}3WDv*neK@(VuB74EhO>-|#t>%?`vgz{pf%SB?Bs*>L#7(*c=PXXnLj8^*PS!tSN@h6 zE_P*!x=}q0^2a{g{Hs{D-ppsUz>0mu -tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,7 +33,7 @@
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
-Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
- - + +
- + - - + +
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (T & result)reference elem)
@@ -204,18 +586,18 @@ template<typename T , typename A = cache_aligned_allocator<T>>
-

Attempt to dequeue an item from head of queue.

-

Does not wait for item to become available. Returns true if successful; false otherwise.

+

Gets a reference to and removes highest priority element.

+

If a highest priority element was found, sets elem and returns true, otherwise returns false. This operation can be safely used concurrently with other push, try_pop or emplace operations.


The documentation for this class was generated from the following file:
    -
  • concurrent_queue.h
  • +
  • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00051.png b/doc/html/a00051.png deleted file mode 100644 index c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872 zcmeAS@N?(olHy`uVBq!ia0y~yVEDtL(DacFFb<&cCSx+X3cu$U*l(ce!Jfj8g zQR_!v4jlih>V0`y%DOuzRZp&*{5jtD-}Mi26VFygJ(}D+t$9n&lZ&+{rnJeg>;3fN zU-Ft9rfK_M|54k2eEny2A6IM_=f4_W z#s02lm+H!}=hb?i_AC7N{x^P-U3|;BSEV&lAv@9=sb{ORr2cWftP(r#R7m-G*a{dP_I%*IzyH+@6b?dgBB)cak~L*}btyFXW2 z*k6(9EOWlLz&blP{P((({d2ybl)WIi(|oU*eb$fplk(TTY`P=8*8e&0+LsmYdg3Pj zX83=2j`{i*PxqKwo%|WNe!6A3`n9C_VJWre+)unK+j6)&>;Ac&>p4D`l%2Ev`D4!Y zy?0H_zOTBIczo|(oj0YQYcD*%6Mc2>-Wk7-9=;bB;lFR<<8}N6{=Pq%_XMuD-naRY z^^@%1CqCAj|9tm*;^S!Uf9K~g$Gnt%!m!^T7QVVqG?$75)-$vmm|!h@>Xae_0|SGn LtDnm{r-UW|C$YId diff --git a/doc/html/a00052.html b/doc/html/a00052.html index 6c96c886..97613aef 100644 --- a/doc/html/a00052.html +++ b/doc/html/a00052.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference @@ -33,132 +33,189 @@
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+ +

A high-performance thread-safe non-blocking concurrent queue. + More...

+ +

#include <concurrent_queue.h>

-Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
+typedef T value_type
 Element type in the queue.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
+typedef size_t size_type
 Integral type for representing size of the queue.
 
+typedef ptrdiff_t difference_type
 Difference type for iterator.
 
+typedef A allocator_type
 Allocator type.
 
+typedef
+internal::concurrent_queue_iterator
+< concurrent_queue, T > 
iterator
 
+typedef
+internal::concurrent_queue_iterator
+< concurrent_queue, const T > 
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_map (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_map (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_map (const concurrent_unordered_map &table)
 
-concurrent_unordered_mapoperator= (const concurrent_unordered_map &table)
 
concurrent_unordered_map (concurrent_unordered_map &&table)
 
-concurrent_unordered_mapoperator= (concurrent_unordered_map &&table)
 
concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
 
concurrent_unordered_map (concurrent_unordered_map &&table, const Allocator &a)
 
-mapped_type & operator[] (const key_type &key)
 
-mapped_type & at (const key_type &key)
 
-const mapped_type & at (const key_type &key) const
 
concurrent_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
+template<typename InputIterator >
 concurrent_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
concurrent_queue (const concurrent_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_queue (concurrent_queue &&src)
 Move constructors.
 
concurrent_queue (concurrent_queue &&src, const allocator_type &a)
 
~concurrent_queue ()
 Destroy queue.
 
+void push (const T &source)
 Enqueue an item at tail of queue.
 
+void push (T &&source)
 
+template<typename... Arguments>
void emplace (Arguments &&...args)
 
bool try_pop (T &result)
 Attempt to dequeue an item from head of queue. More...
 
+size_type unsafe_size () const
 Return the number of items in the queue; thread unsafe.
 
+bool empty () const
 Equivalent to size()==0.
 
+void clear ()
 Clear the queue. not thread-safe.
 
+allocator_type get_allocator () const
 Return allocator object.
 
+iterator unsafe_begin ()
 
+iterator unsafe_end ()
 
+const_iterator unsafe_begin () const
 
+const_iterator unsafe_end () const
 
+ + + + +

+Friends

+template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
+

Detailed Description

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::strict_ppl::concurrent_queue< T, A >

+ +

A high-performance thread-safe non-blocking concurrent queue.

+

Multiple threads may each push and pop concurrently. Assignment construction is not allowed.

+

Member Function Documentation

+ +
+
+
+template<typename T , typename A = cache_aligned_allocator<T>>
+ + + + +
+ + + + + + + + +
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop (T & result)
+
+inline
+
+ +

Attempt to dequeue an item from head of queue.

+

Does not wait for item to become available. Returns true if successful; false otherwise.

+ +
+

The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • +
  • concurrent_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00052.png b/doc/html/a00052.png index 0e3c40436b0749b06f4880bfe7bb6a5d63b2a463..c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b 100644 GIT binary patch delta 829 zcmew?@PbXTGr-TCmrII^fq{Y7)59f*fq~&C0|P?<2Qvc$!<#1MmWhg1^-SMAT^vIy z7~jslJ!!E459@9H;(!19r?V!j#5Wk+^gMeibdEqy%E_POeg9qmAUE-BWz?g|&C{B<^gOv( zdtyqP{JP#xFa9O3$zhtd|MefW{WqSStpEL;pZ62{T>=LQN-eSGi7%V&EO^P3{WX8ri}_S)$)&D%G%7JA;hd1Pj*>laIX zVdhVFgjc<)_N&veQ~d6>PWPwpo1-D}9j`KYR@wUZ71vE%KfU-}FT3S?$*t>OM&79V zICqY>SACrAr@+o<%C)O+Z7+VOeaPmn-E-eL^XC-bzFoWi?Acr2?&Ue#-3rUJHe(3Q z*MC;`am99V{;T0t?C)xJsjdurUajY8zrug-f8!_F#kZ_`ReDo+Raai!+Nx4&Qmp5> z(d4A6<}|gPDn~Cl%?t7pWc^@R%h(bU@oD|~6)zG`iho#8|Dy0@dOmx{GEY7M@5wR> z)6^^-bbN~%B4#~d*l2Q+F)4Er^N~v`>>W$d6wD9z(rgvsR9FDhVD#kl{6G7Jdum_I zkaB$^JF(_Pa{jIDF?+r0-hOI+GI#3ZS$1jL^zTS*tkD*}{UmF*-}H%(4zH;<3f(v} zXZzjf|F&rVE)6rwzrC)kc>fNs_raguetpMwGA8ZDm3B%0fY@)>q|a=86?M}$blsl* zH%qJ$QC4of71uxpYR5m*LVWMuJ@`lAcDBQdBaf z!j^!UCeqqLlX_GnJ!kcbYI?d&>QOm+tZRyjvZvdmw9VR|1fH#Q+3&nRJh$h0EKk^^ zeP_zuv^|q&Rm%6jJoWs+g|x_jdC#-zXP*6aOlQ9P{(YJE=l}eFWP!?3otJ-W9?D(J zc;%@XcQXEx@>&ni7-uJP%}o$Rg})qQs+tFWHZ`?)*QH{aFMYWcf~ z^5^95|GqAC&S)2JXjI4Hw@XS(ey>UkHUD8{xb9wi^wCX_CB!-%j57JpIYjv@h*`M*p|I%w~J7^=AF{PVct! zscarUT&a%yqB>nfawI1}aSknCB zo6^>#S#ocSSQf3k^-tkyqW;y5dzYPvZav#}+2+l$>$XcPcS`>KXY^T~|GQ}OLN4Ds ze+y5p-@ilQuOv&^-SApBr~WrKN4%G>J8gL7$PK;j#;56fCc4ePpQ5pgYkKPZ`SXQy zKUm-C?&|Z8-t_gqxk%;q4U2pDCf%I7O-ZxB@>l=${{46AuZ5iFZ9ABkzSqmjmrwL& z=oWq*&0jaJ7p6Y#irFl*St{>Tb^4!(n$JDg8(EZdk6o)ge&pT0Uy>K|lGUp%tKAov`}-7gjqbUU8be;d=Fx`0j1mxkbBE#Ix;kEB7rtk==UMs48@# zC-*+V+DAr#hZb~yWpiF}x2-wsvRtIQft5vi7Z3NY-JkvXr-UdyZ+&fkd+tZa>zTU( zcL*+B)OW+^k*et8_1k|sFUs|vt!Zcb>TFyR!*_5f%wEi0{Nj<@mrjn)Q_R<9Bp8G& zTphpu#ERp_u6&oR0#fFm2ysEfY|H`wwx!~C2H5x0boZGM8b&*(g z|Bd;he|hG6{d%rnJm0bH+`Z57!PBygt2I@w&VM{*&H7jG|NYEMeEgv>vehAZ);50~ z*SJpqMfUTI{wwZ(&UQP1KlB)Hxznk`C;9%SX)H5ccel2;f7y~>o57jpuk$|j?xDx+w~Gl~psP?oa$JAH07$)6Z`&-p5PW`!EoZN0VK>CQVdP z_T2n4AO)7qle{!jjSPU5063oI>8W;^2Hg8m7(JKnpl>^b0mh8$T!N6=Ftqs)G4xeQj?&E#M`zyNY3FJ4zxI=j~8WZVtDaqHuScRP530_5r$;-9SQ{kSJO z&_XC2&ptN(d=d&KP{$tg2;*4aV3Cm&QzyBrxfF;hTsTEd=v;q!uC#^juPJ<04~?Wz+SuB#k* zcV-En)0Nn$#aGw8UbZst`0Ba)78~6UnRqhtWOwvgi!H&uZQrJOZQnYDyJpL-g$%rR z8~N*mPv+SET%|O9|F*whKgJXbuq7+S2c&F&y-tyNkLdo;iSGZSOTX0I^Ygb@v|i(r zL3!}R(wKuD^=7NL`*K@vyJGfov)s<880%X3^QP>Iud1{I9xdN1>ej^*H|aIwgWexU zZ8u#F3WbP0l+XkKj3M%- diff --git a/doc/html/a00053.html b/doc/html/a00053.html index 5e3ddf52..25c4a168 100644 --- a/doc/html/a00053.html +++ b/doc/html/a00053.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,64 +33,124 @@
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+
+
+ + + +
- - - -

-Classes

class  value_compare
 
- - - - - - + - - - - - -

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef std::pair< const Key, T > value_type
 
+

+Public Types

typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
- - - -

-Protected Member Functions

concurrent_unordered_map_traits (const hash_compare &hc)
 
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Member Functions

-template<class Type1 , class Type2 >
static const Key & get_key (const std::pair< Type1, Type2 > &value)
 
 
+typedef base_type::value_type value_type
 
+typedef T mapped_type
 
+typedef Hasher hasher
 
+typedef Key_equality key_equal
 
+typedef hash_compare key_compare
 
+typedef base_type::allocator_type allocator_type
 
+typedef base_type::pointer pointer
 
+typedef base_type::const_pointer const_pointer
 
+typedef base_type::reference reference
 
+typedef base_type::const_reference const_reference
 
+typedef base_type::size_type size_type
 
+typedef base_type::difference_type difference_type
 
+typedef base_type::iterator iterator
 
+typedef base_type::const_iterator const_iterator
 
+typedef base_type::iterator local_iterator
 
+typedef base_type::const_iterator const_local_iterator
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-hash_compare my_hash_compare
 

+Public Member Functions

concurrent_unordered_map (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (const Allocator &a)
 
+template<typename Iterator >
 concurrent_unordered_map (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_map (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_map (const concurrent_unordered_map &table)
 
+concurrent_unordered_mapoperator= (const concurrent_unordered_map &table)
 
concurrent_unordered_map (concurrent_unordered_map &&table)
 
+concurrent_unordered_mapoperator= (concurrent_unordered_map &&table)
 
concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
 
concurrent_unordered_map (concurrent_unordered_map &&table, const Allocator &a)
 
+mapped_type & operator[] (const key_type &key)
 
+mapped_type & at (const key_type &key)
 
+const mapped_type & at (const key_type &key) const
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_map.h
  • @@ -98,7 +158,7 @@ hash_compare 
my_hash_compa

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00053.png b/doc/html/a00053.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3c40436b0749b06f4880bfe7bb6a5d63b2a463 GIT binary patch literal 2163 zcmeAS@N?(olHy`uVBq!ia0y~yV4ldpz!1Q}%)r2~J%Evsfq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}!Q|=U7*fIbcJAGz$2vSN z{N~p0{~wDN{;w#oZf@E1x|b!zlT6t>J$QC4of71uxpYR5m*LVWMuJ@`lAcDBQdBaf z!j^!UCeqqLlX_GnJ!kcbYI?d&>QOm+tZRyjvZvdmw9VR|1fH#Q+3&nRJh$h0EKk^^ zeP_zuv^|q&Rm%6jJoWs+g|x_jdC#-zXP*6aOlQ9P{(YJE=l}eFWP!?3otJ-W9?D(J zc;%@XcQXEx@>&ni7-uJP%}o$Rg})qQs+tFWHZ`?)*QH{aFMYWcf~ z^5^95|GqAC&S)2JXjI4Hw@XS(ey>UkHUD8{xb9wi^wCX_CB!-%j57JpIYjv@h*`M*p|I%w~J7^=AF{PVct! zscarUT&a%yqB>nfawI1}aSknCB zo6^>#S#ocSSQf3k^-tkyqW;y5dzYPvZav#}+2+l$>$XcPcS`>KXY^T~|GQ}OLN4Ds ze+y5p-@ilQuOv&^-SApBr~WrKN4%G>J8gL7$PK;j#;56fCc4ePpQ5pgYkKPZ`SXQy zKUm-C?&|Z8-t_gqxk%;q4U2pDCf%I7O-ZxB@>l=${{46AuZ5iFZ9ABkzSqmjmrwL& z=oWq*&0jaJ7p6Y#irFl*St{>Tb^4!(n$JDg8(EZdk6o)ge&pT0Uy>K|lGUp%tKAov`}-7gjqbUU8be;d=Fx`0j1mxkbBE#Ix;kEB7rtk==UMs48@# zC-*+V+DAr#hZb~yWpiF}x2-wsvRtIQft5vi7Z3NY-JkvXr-UdyZ+&fkd+tZa>zTU( zcL*+B)OW+^k*et8_1k|sFUs|vt!Zcb>TFyR!*_5f%wEi0{Nj<@mrjn)Q_R<9Bp8G& zTphpu#ERp_u6&oR0#fFm2ysEfY|H`wwx!~C2H5x0boZGM8b&*(g z|Bd;he|hG6{d%rnJm0bH+`Z57!PBygt2I@w&VM{*&H7jG|NYEMeEgv>vehAZ);50~ z*SJpqMfUTI{wwZ(&UQP1KlB)Hxznk`C;9%SX)H5ccel2;f7y~>o57jpuk$|j?xDx+w~Gl~psP?oa$JAH07$)6Z`&-p5PW`!EoZN0VK>CQVdP z_T2n4AO)7qle{!jjSPU5063oI>8W;^2Hg8m7(JKnpl>^b0mh8$T!N6=Ftqs)G4xeQj?&E#M`zyNY3FJ4zxI=j~8WZVtDaqHuScRP530_5r$;-9SQ{kSJO z&_XC2&ptN(d=d&KP{$tg2;*4aV3Cm&QzyBrxfF;hTsTEd=v;q!uC#^juPJ<04~?Wz+SuB#k* zcV-En)0Nn$#aGw8UbZst`0Ba)78~6UnRqhtWOwvgi!H&uZQrJOZQnYDyJpL-g$%rR z8~N*mPv+SET%|O9|F*whKgJXbuq7+S2c&F&y-tyNkLdo;iSGZSOTX0I^Ygb@v|i(r zL3!}R(wKuD^=7NL`*K@vyJGfov)s<880%X3^QP>Iud1{I9xdN1>ej^*H|aIwgWexU zZ8u#F3WbP0l+XkKj3M%- literal 0 HcmV?d00001 diff --git a/doc/html/a00054.html b/doc/html/a00054.html index bf5c466c..3fa42884 100644 --- a/doc/html/a00054.html +++ b/doc/html/a00054.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,115 +33,64 @@
-
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - + + +

-Public Types

+

+Classes

class  value_compare
 
+ + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +

+Protected Types

enum  { allow_multimapping = Allow_multimapping + }
 
+typedef std::pair< const Key, T > value_type
 
typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef T mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
 
+typedef Hash_compare hash_compare
 
+typedef Allocator::template
+rebind< value_type >::other 
allocator_type
 
+ + + +

+Protected Member Functions

concurrent_unordered_map_traits (const hash_compare &hc)
 
+ + + +

+Static Protected Member Functions

+template<class Type1 , class Type2 >
static const Key & get_key (const std::pair< Type1, Type2 > &value)
 
- - - - - - - - - - - - - - - - - - - - - - - + + +

-Public Member Functions

concurrent_unordered_multimap (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (const Allocator &a)
 
-template<typename Iterator >
 concurrent_unordered_multimap (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table)
 
-concurrent_unordered_multimapoperator= (const concurrent_unordered_multimap &table)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table)
 
-concurrent_unordered_multimapoperator= (concurrent_unordered_multimap &&table)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table, const Allocator &a)
 

+Protected Attributes

+hash_compare my_hash_compare
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_map.h
  • @@ -149,7 +98,7 @@ template<typename Iterator >
- - - + - - - - + + + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - +

Public Types

+
typedef Key key_type
 
+
 
typedef base_type::value_type value_type
 
-typedef Key mapped_type
 
+
 
+typedef T mapped_type
 
typedef Hasher hasher
 
+
 
typedef Key_equality key_equal
 
+
 
typedef hash_compare key_compare
 
+
 
typedef base_type::allocator_type allocator_type
 
+
 
typedef base_type::pointer pointer
 
+
 
typedef base_type::const_pointer const_pointer
 
+
 
typedef base_type::reference reference
 
+
 
typedef base_type::const_reference const_reference
 
+
 
typedef base_type::size_type size_type
 
+
 
typedef base_type::difference_type difference_type
 
+
 
typedef base_type::iterator iterator
 
+
 
typedef base_type::const_iterator const_iterator
 
+
 
typedef base_type::iterator local_iterator
 
+
 
typedef base_type::const_iterator const_local_iterator
 
 
- - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_multiset (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (const Allocator &a)
 
+
concurrent_unordered_multimap (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (const Allocator &a)
 
template<typename Iterator >
 concurrent_unordered_multiset (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table)
 
-concurrent_unordered_multisetoperator= (const concurrent_unordered_multiset &table)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table)
 
-concurrent_unordered_multisetoperator= (concurrent_unordered_multiset &&table)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table, const Allocator &a)
 
 concurrent_unordered_multimap (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multimap (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table)
 
+concurrent_unordered_multimapoperator= (const concurrent_unordered_multimap &table)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table)
 
+concurrent_unordered_multimapoperator= (concurrent_unordered_multimap &&table)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 
concurrent_unordered_multimap (concurrent_unordered_multimap &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_set.h
  • +
  • concurrent_unordered_map.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00055.png b/doc/html/a00055.png index 3ef6d1904236c3649eed742e1ffccb737f059db0..6fa3b58c9af6e07c385a119cbebb0f48e002ea6d 100644 GIT binary patch literal 2174 zcmeAS@N?(olHy`uVBq!ia0y~yVD4dHUewU;Qb2$u>LL=6%YB zNnftlq;HvIvTWw}uQS%|;pfYpcKrFL$Xxx+k@qW39lxlbf9t#ZzxfhVmP|SR(Jp?6 ztI4dY(wIp_lg?!rdfnQ8`G`eSrF4y^d%p59=Hm68AE*8(@}DH4G5gm4g%a=Y<(a?w z8x{NRTC__4#nKg%9A)y<2-e0Si^kcEsj#)R}xH!-Go0#`}`kd28UzB&I{L8-loab8Pjkxu~^6E8f zo@pH0@cEU? z_APV&eWK1J^tQZA=?(ADjn9u%Xl}e&P{lXl_Jjf;h4Wzxd0xCT8a`4YcAfBv2NYhL}lZ3pwx_exk>@*TaA zx`qGE1|cI$z9TziJZvr$*vDzVul;!R(>i8Ow_CFMpTBk9)%_}Waa}Td_09NezH36m zpDx^auK!4d-p0F~ae~R^9N~-Bw_N?bezASJLCV701=WvLi`K+^Qx*LD#i!@Ds_~@9 zJB;mK3Qw>0ol~>$`V+Sx?zfS9?@89{+|pZp^5~@}iZ4HH?2Hq5yz@w!dR17D=i|Ks zwU3Mh53YD--K=;e@37;t%=9(N5~Al?&sAs~RW^JUTQ*^H-Tc@}{wm+g&4)sjL`#pj z39erzQM>o7dFQsXS!&<5oSMD&2*bM0k6B6X)7`|MT{znMLiq1fce(H$o;ID5pRbQf zEUi#E_Hbj`%QfA}8b@P#`sdx6dc4+p>gUu`VJ8v|zRj}G&RTiz^t)1H!M0cCw{3Uq zz3rnf{Mh%4+{J6l%l}_rvh>!OXHLw& zFTO87Q*UuUxjA>mZiUBf*1S(2rnv5x>N+kZGF_xyh4;o04Ntd8{}k^RfAi$6o1N=v zb+Vi9^9$9NGahyw>}KXqHuSm_8W(Tv-V;Cl$XjJk{ZHS;R9?#1i@y!(s89btKl7vK zob{D|Bz4sm_Qme$7P~8{nkjX^@LT@m{nMF#etWV0zUX^phVH;gJt~r(vpSA~Z0k|+ zJ(4sYvOB3_J~tGn$Wb zBrxzCu=)3AqZA`ZpbaXpZ%c+LlLP~^0e83H0S1YNl@VPGYzG*8jwG=dFt8;ki77WQ z8ZZcNlmP4Mfar43absXkU{Fgk1Zx$9Xzh&X8Cb19zJg0Okzg;)WmAHlIWQW4+;ipt zUa#0W_QYF9mANl1G49tD9 z3{PZole&{qz8CL4&fZ-(V_#tu&nqmuvk=Dx3o zC*57P<*TZHz%Z8Z=|{xInd55xYM|AW(W zQbmqlefGU5{mq(rZ+mu5yquKNTYgVl{rQm{>pfWvUnK8s-Z1x_LX*#B0k`Gv&T)KL zcjx`vU+D_Rm`t7|Nxoi@w{@)q``nE$XDqzwurS&5UbkVU*3^$@KW?ky%{Q;}?Adv3 zx2Q6EqV-+J7}3WDv*neK@(VuB74EhO>-|#t>%?`vgz{pf%SB?Bs*>L#7(*c=PXXnLj8^*PS!tSN@h6 zE_P*!x=}q0^2a{g{Hs{D-ppsUz>0mul%uackd>289mAxXum(K|wX8LoP0RB%CJos7QJmP5KhF#>&%Z zQi@6@Ti9H%hzav*Kd|Ji#!z)nw@E!JXA^?&>g{uu{MX_pztvFg`-07rzU0JsT#xshB((8l)uLDHRv&#@{(EO-QFiR?u8@;wzb;r> z`d8CUSGe2Z+0EBI(fL_XZcAIv2A}TVa(?@VZF6=?@2h>*ns25mdVZR~&G%PoAF)&~ zjK0klc$?`e=Yh)n>(|cxTKe)h&$Ng4c3p4W-XV9|Y_;CoJslaxH@^MxY11SVrImTB zkN*C%DRkkNDeL1N3!QkkV$Siop_h-Os62gqVE5aatb>1&^Iw;8A8wXd?klqLR`}hO z!f#B=&G$&|Uz%sn@OnnFA zzWP;KT#)wGZnlkFNdKx;ORSx_OrLN~c)#FH?as62AIma!gx+1ZcS>{S%;c+cZ4a({ zWuUvrlgx5kTAvFA^&-~I6Gnl6dwt*_5S>^gP- zv-*tL-)F1uoc(yCo#nH?6YhWimhe~PL~`@i)w@4^YLnjhf7wvw0y;ysnTZwG=aqm6dFJfM+ye$88p6}ht*7`fQKTkjOJ7pIvTOC+6Sw-2? zZBkmoRnJKiRg^uAH@s3g=`m^I63K|tNhvBPJudO=3lSGgR8sPBY3b~!&}CqIaQ!3u z0R{;M<_}40tQeRR7}P#I?@whMj z86_B)4VYK+9bk}Xkc=p0U^~EY=D;du0|vGPwlLWSMgs=p4G=>bAzFDLmJFQMKYmcp z8wd*Ow=o!ioV-T_uMd8(T&;bZaMR`1>3@OwhHTY+r{xcrS6(?*aVPQozWWz{ynb%` zx;%&Bckyurhw1yaPZd|*JwKY?E~50fC1=3r;Dr@?Up0IwDXVyJqxvelP&q-2+egvDO(eBx~scTYCl@JU?9BTd!7xmi#1 z7Vpa0T)N3~^16dh%7t&_Y+X6;Zo>7qN6*Z;SjiuO?r;`|p*}wW=>O4qlnz{IliNtJ>|Yq7TYH-(QipKDj$= z-TmykB`P&;rMq`dUZwrl%kACDJl!p)=d3b$JA2LP{K(haUfF$kVc2}~eUY)i&y`c{ zgJPqW7PB(^N&B}vD*UzT>J@hPFK=D9@mI#$*U~#z?>e?H?dGAX_|o4q{GRb^1!o)l zy!*!D<;K^CH1@13Wq5z;Ym;6)^HtV>i{VEj3{pR?2{m6)8p`Vv%G%U+wPN)yzpozJ zd6&cXm#uDJmF@F2>+X$&PrGk^jJ(R*|2Em=yW*d=HNQ+_gx*p27c9 zEw{dS?D3-?g~aBDvVZvh;jw$oHkPP7hmS<%FVy^9&shBD4~tv&F*61R1_n=8KbLh* G2~7Z}4+(+* diff --git a/doc/html/a00056.html b/doc/html/a00056.html index cd93034d..9c665536 100644 --- a/doc/html/a00056.html +++ b/doc/html/a00056.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,115 +33,115 @@
-
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
-Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
- - + +
- - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - +

Public Types

+
typedef Key key_type
 
+
 
typedef base_type::value_type value_type
 
+
 
typedef Key mapped_type
 
+
 
typedef Hasher hasher
 
+
 
typedef Key_equality key_equal
 
+
 
typedef hash_compare key_compare
 
+
 
typedef base_type::allocator_type allocator_type
 
+
 
typedef base_type::pointer pointer
 
+
 
typedef base_type::const_pointer const_pointer
 
+
 
typedef base_type::reference reference
 
+
 
typedef base_type::const_reference const_reference
 
+
 
typedef base_type::size_type size_type
 
+
 
typedef base_type::difference_type difference_type
 
+
 
typedef base_type::iterator iterator
 
+
 
typedef base_type::const_iterator const_iterator
 
+
 
typedef base_type::iterator local_iterator
 
+
 
typedef base_type::const_iterator const_local_iterator
 
 
- - - - - + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

concurrent_unordered_set (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (const Allocator &a)
 
+
concurrent_unordered_multiset (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (const Allocator &a)
 
template<typename Iterator >
 concurrent_unordered_set (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_set (const concurrent_unordered_set &table)
 
-concurrent_unordered_setoperator= (const concurrent_unordered_set &table)
 
concurrent_unordered_set (concurrent_unordered_set &&table)
 
-concurrent_unordered_setoperator= (concurrent_unordered_set &&table)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
concurrent_unordered_set (concurrent_unordered_set &&table, const Allocator &a)
 
 concurrent_unordered_multiset (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_multiset (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table)
 
+concurrent_unordered_multisetoperator= (const concurrent_unordered_multiset &table)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table)
 
+concurrent_unordered_multisetoperator= (concurrent_unordered_multiset &&table)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
concurrent_unordered_multiset (concurrent_unordered_multiset &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_set.h
  • @@ -149,7 +149,7 @@ template<typename Iterator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00056.png b/doc/html/a00056.png index 9f9a0992510e41f62a52fb5849b985065586c9cb..3ef6d1904236c3649eed742e1ffccb737f059db0 100644 GIT binary patch literal 2109 zcmeAS@N?(olHy`uVBq!ia0y~yU@m1~Ul%uackd>289mAxXum(K|wX8LoP0RB%CJos7QJmP5KhF#>&%Z zQi@6@Ti9H%hzav*Kd|Ji#!z)nw@E!JXA^?&>g{uu{MX_pztvFg`-07rzU0JsT#xshB((8l)uLDHRv&#@{(EO-QFiR?u8@;wzb;r> z`d8CUSGe2Z+0EBI(fL_XZcAIv2A}TVa(?@VZF6=?@2h>*ns25mdVZR~&G%PoAF)&~ zjK0klc$?`e=Yh)n>(|cxTKe)h&$Ng4c3p4W-XV9|Y_;CoJslaxH@^MxY11SVrImTB zkN*C%DRkkNDeL1N3!QkkV$Siop_h-Os62gqVE5aatb>1&^Iw;8A8wXd?klqLR`}hO z!f#B=&G$&|Uz%sn@OnnFA zzWP;KT#)wGZnlkFNdKx;ORSx_OrLN~c)#FH?as62AIma!gx+1ZcS>{S%;c+cZ4a({ zWuUvrlgx5kTAvFA^&-~I6Gnl6dwt*_5S>^gP- zv-*tL-)F1uoc(yCo#nH?6YhWimhe~PL~`@i)w@4^YLnjhf7wvw0y;ysnTZwG=aqm6dFJfM+ye$88p6}ht*7`fQKTkjOJ7pIvTOC+6Sw-2? zZBkmoRnJKiRg^uAH@s3g=`m^I63K|tNhvBPJudO=3lSGgR8sPBY3b~!&}CqIaQ!3u z0R{;M<_}40tQeRR7}P#I?@whMj z86_B)4VYK+9bk}Xkc=p0U^~EY=D;du0|vGPwlLWSMgs=p4G=>bAzFDLmJFQMKYmcp z8wd*Ow=o!ioV-T_uMd8(T&;bZaMR`1>3@OwhHTY+r{xcrS6(?*aVPQozWWz{ynb%` zx;%&Bckyurhw1yaPZd|*JwKY?E~50fC1=3r;Dr@?Up0IwDXVyJqxvelP&q-2+egvDO(eBx~scTYCl@JU?9BTd!7xmi#1 z7Vpa0T)N3~^16dh%7t&_Y+X6;Zo>7qN6*Z;SjiuO?r;`|p*}wW=>O4qlnz{IliNtJ>|Yq7TYH-(QipKDj$= z-TmykB`P&;rMq`dUZwrl%kACDJl!p)=d3b$JA2LP{K(haUfF$kVc2}~eUY)i&y`c{ zgJPqW7PB(^N&B}vD*UzT>J@hPFK=D9@mI#$*U~#z?>e?H?dGAX_|o4q{GRb^1!o)l zy!*!D<;K^CH1@13Wq5z;Ym;6)^HtV>i{VEj3{pR?2{m6)8p`Vv%G%U+wPN)yzpozJ zd6&cXm#uDJmF@F2>+X$&PrGk^jJ(R*|2Em=yW*d=HNQ+_gx*p27c9 zEw{dS?D3-?g~aBDvVZvh;jw$oHkPP7hmS<%FVy^9&shBD4~tv&F*61R1_n=8KbLh* G2~7Z}4+(+* literal 2095 zcmeAS@N?(olHy`uVBq!ia0y~yV6I|dURa6z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0GBzt^XN@Vh0A;Cl?B_EfT&W;(3ik@zhdQ>Dmt8Ayu zQ<3yEnqGS%TLyRIPG~e{##mYvXy+-wz~Rf|Am_;T}kzP{+#=Jhg)#F+9Q+Ylddej z{8h)+^LYBcFK*s>&HS#Plb4hyy|a92D;$4+vWjZb^>3jsMIZZnzJK>g?f#AZ(+Z|t z%w4f!x=oCKl>7GeN!NC5IFS~&cWuPIWeZEgR^8gOrRIeAW&e(CF_jW=a+@C?UAE-W z=5W_O>%IF5n)Y7FO>SQEw)2(BgQ_jJGmh71{xWP%-Sz$Y?IWs-pWixr$=h1r=oV+r z*CH0vRgRud)jjj`&n}&s9J26>W_?w2w%P8@MTX^jmbISr&^qN<@>}uhs-N>0ul+05 z#%}31TjSMM{k`7mH>BU?RhaL)l5fv=eev0A?mO3Ry=Xq;QtZ*Y*IfU{o#x(U-+Vys zd#IT6tE%4in%z^L7x8SpI%V3^1HX>OWG*FQ^VxGzmL`v+z1Ej!hc%i8pR18A500%W(<$GlTkzy7!K@(byg zQ7eSM)m*Rk-O_tM@BNAJ^!i($YLxaK_uDXim;2J|nX9fZlKri}xc*E6*VdZ_LaEzd zPZjLZdg4=+>A3czcdUO<$~pdZcXNWzG}{GzonG?Qb79*Z?oYW>7VB^S>AXl*DsO4I zOp4Z#C(mN4!u>aB?>*P!$1bttkIk)(|0h2)GMI7cu1tvbUY$M0FL^IpO^BO)V%>*d zm!href`z}^ind+XtiHMI;2rl*Yu3yua&EtV*F{R}{+sao|MJY|R{wqVLfvKdBWs@g z(x4|6*6U6u*M`=`+aI*4iLuwbGpGOUV$s&jzAy#IdP@= zZADR^Z{5AVgH3hn{Mf2VDJn0&Us&njS!L>PRbzJRVb{TKVgBToo|i)R&G_-(y-Gg( z&|CjW^PapGQ+a6^C-zpHcfU{N{3BoI9KWuyUij6Gqy0hicF$A!>-TSabM>i@+uf`G zru|5qn)lLk(nJ+y&&wOWsGRheG;v901jw$F9+ymXY(0%8rKn^|!SZM?|4Ubw866zL zpq#A6kibx<{GWlRfzg1$c*7SEW5&___1EM;0+V3^?Vr}zGB77FJWF`VD8ayNAjr*s zfI*@mGop%t?Er(%;Y-X03~UKf)4;keLv^(+Wlvz>Ibfm#*19YaqLtTsfVJ+Q3iZ2> z%Ml(9kgs?Syxs`$Id&)anoqfRyzQFp(zUYuU;C0LH0}7ySToT*x952;6HC|mzaNd2 z&pu;ht4R`AaJq=;Z)>%P^6vU&qJLyx&JEXbI9r~Yw(N^vjjj6L^hp=Khg_Sz^n2f> z-KDGg>%DJ^#J;Y(wf%XucJ%L?xhXSu*-f{%G`_mJ>XFs1TG7p2*LM1yS-oBK^lg(Z z=d_eH!>-v@u755Qs@-w8z<%0so@o!?uHWAI{YcrC*-NjVtSYr)$Uil^Z12;I?eqTz z+pS5D=UV!n?~R3+EzPq>u-vCR6k)+)EE%;32ZvmU*W@_A_b z^K{s3yIW^7ZR6g&kyZV%?9%HiUjGZaCEGo^E?(KNOKPp|*Qqv9v4Re+(I0+>e$4y( z-=peu{M`#t$NMFHnk|$4J=T|R-f~v%LGF*$m#nRBY0dckIm~vY%lwJ=65lQQa%#t< zi6PCuSFiGvtzP*%H|*`Jlm|Zyn>F_srFHyS`P6<=+^0)B*%|J2*x&h@bumTr>hk)X zuT8_`-&WNsuT{9U?)sLG`@Zy9&iy3+WyQ4wuJtz~gi_600>$orWvEmCZoTJ^q=$Y( z*FKYDt2A$C=SWbwYq(O2H?l+df+)_OHU?o6!yd9A6ND^`Y0SGyGOQ!Vsimi_#@ zfj3@vf7)Gh%l!6D&vI9@9qvIb;Vt`fKkn$YVzaiqEB5>{V}<{{fGUP%Q{@gM^Mv!n z&8es`V`(ryeu=rlRDS!9xBL%0=WYBT^|Vw;a`%Q$48J0(81heUmw$6LE#oXB58jjr o%RDt6`bvjfAi3DE@jt@>|9?%dMR{&9FfcH9y85}Sb4q9e04(O_5C8xG diff --git a/doc/html/a00057.html b/doc/html/a00057.html index 6543958f..1ea349df 100644 --- a/doc/html/a00057.html +++ b/doc/html/a00057.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,60 +33,115 @@
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+
+
+ + + +
- - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef Key value_type
 
+

+Public Types

typedef Key key_type
 
-typedef Hash_compare hash_compare
 
-typedef Allocator::template
-rebind< value_type >::other 
allocator_type
 
-typedef hash_compare value_compare
 
 
+typedef base_type::value_type value_type
 
+typedef Key mapped_type
 
+typedef Hasher hasher
 
+typedef Key_equality key_equal
 
+typedef hash_compare key_compare
 
+typedef base_type::allocator_type allocator_type
 
+typedef base_type::pointer pointer
 
+typedef base_type::const_pointer const_pointer
 
+typedef base_type::reference reference
 
+typedef base_type::const_reference const_reference
 
+typedef base_type::size_type size_type
 
+typedef base_type::difference_type difference_type
 
+typedef base_type::iterator iterator
 
+typedef base_type::const_iterator const_iterator
 
+typedef base_type::iterator local_iterator
 
+typedef base_type::const_iterator const_local_iterator
 
- - - -

-Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 
- - - -

-Static Protected Member Functions

-static const Key & get_key (const value_type &value)
 
- - - + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-hash_compare my_hash_compare
 

+Public Member Functions

concurrent_unordered_set (size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (const Allocator &a)
 
+template<typename Iterator >
 concurrent_unordered_set (Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 
concurrent_unordered_set (std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_unordered_set (const concurrent_unordered_set &table)
 
+concurrent_unordered_setoperator= (const concurrent_unordered_set &table)
 
concurrent_unordered_set (concurrent_unordered_set &&table)
 
+concurrent_unordered_setoperator= (concurrent_unordered_set &&table)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
concurrent_unordered_set (concurrent_unordered_set &&table, const Allocator &a)
 

The documentation for this class was generated from the following file:
  • concurrent_unordered_set.h
  • @@ -94,7 +149,7 @@ hash_compare my_hash_compa

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00057.png b/doc/html/a00057.png new file mode 100644 index 0000000000000000000000000000000000000000..9f9a0992510e41f62a52fb5849b985065586c9cb GIT binary patch literal 2095 zcmeAS@N?(olHy`uVBq!ia0y~yV6I|dURa6z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0GBzt^XN@Vh0A;Cl?B_EfT&W;(3ik@zhdQ>Dmt8Ayu zQ<3yEnqGS%TLyRIPG~e{##mYvXy+-wz~Rf|Am_;T}kzP{+#=Jhg)#F+9Q+Ylddej z{8h)+^LYBcFK*s>&HS#Plb4hyy|a92D;$4+vWjZb^>3jsMIZZnzJK>g?f#AZ(+Z|t z%w4f!x=oCKl>7GeN!NC5IFS~&cWuPIWeZEgR^8gOrRIeAW&e(CF_jW=a+@C?UAE-W z=5W_O>%IF5n)Y7FO>SQEw)2(BgQ_jJGmh71{xWP%-Sz$Y?IWs-pWixr$=h1r=oV+r z*CH0vRgRud)jjj`&n}&s9J26>W_?w2w%P8@MTX^jmbISr&^qN<@>}uhs-N>0ul+05 z#%}31TjSMM{k`7mH>BU?RhaL)l5fv=eev0A?mO3Ry=Xq;QtZ*Y*IfU{o#x(U-+Vys zd#IT6tE%4in%z^L7x8SpI%V3^1HX>OWG*FQ^VxGzmL`v+z1Ej!hc%i8pR18A500%W(<$GlTkzy7!K@(byg zQ7eSM)m*Rk-O_tM@BNAJ^!i($YLxaK_uDXim;2J|nX9fZlKri}xc*E6*VdZ_LaEzd zPZjLZdg4=+>A3czcdUO<$~pdZcXNWzG}{GzonG?Qb79*Z?oYW>7VB^S>AXl*DsO4I zOp4Z#C(mN4!u>aB?>*P!$1bttkIk)(|0h2)GMI7cu1tvbUY$M0FL^IpO^BO)V%>*d zm!href`z}^ind+XtiHMI;2rl*Yu3yua&EtV*F{R}{+sao|MJY|R{wqVLfvKdBWs@g z(x4|6*6U6u*M`=`+aI*4iLuwbGpGOUV$s&jzAy#IdP@= zZADR^Z{5AVgH3hn{Mf2VDJn0&Us&njS!L>PRbzJRVb{TKVgBToo|i)R&G_-(y-Gg( z&|CjW^PapGQ+a6^C-zpHcfU{N{3BoI9KWuyUij6Gqy0hicF$A!>-TSabM>i@+uf`G zru|5qn)lLk(nJ+y&&wOWsGRheG;v901jw$F9+ymXY(0%8rKn^|!SZM?|4Ubw866zL zpq#A6kibx<{GWlRfzg1$c*7SEW5&___1EM;0+V3^?Vr}zGB77FJWF`VD8ayNAjr*s zfI*@mGop%t?Er(%;Y-X03~UKf)4;keLv^(+Wlvz>Ibfm#*19YaqLtTsfVJ+Q3iZ2> z%Ml(9kgs?Syxs`$Id&)anoqfRyzQFp(zUYuU;C0LH0}7ySToT*x952;6HC|mzaNd2 z&pu;ht4R`AaJq=;Z)>%P^6vU&qJLyx&JEXbI9r~Yw(N^vjjj6L^hp=Khg_Sz^n2f> z-KDGg>%DJ^#J;Y(wf%XucJ%L?xhXSu*-f{%G`_mJ>XFs1TG7p2*LM1yS-oBK^lg(Z z=d_eH!>-v@u755Qs@-w8z<%0so@o!?uHWAI{YcrC*-NjVtSYr)$Uil^Z12;I?eqTz z+pS5D=UV!n?~R3+EzPq>u-vCR6k)+)EE%;32ZvmU*W@_A_b z^K{s3yIW^7ZR6g&kyZV%?9%HiUjGZaCEGo^E?(KNOKPp|*Qqv9v4Re+(I0+>e$4y( z-=peu{M`#t$NMFHnk|$4J=T|R-f~v%LGF*$m#nRBY0dckIm~vY%lwJ=65lQQa%#t< zi6PCuSFiGvtzP*%H|*`Jlm|Zyn>F_srFHyS`P6<=+^0)B*%|J2*x&h@bumTr>hk)X zuT8_`-&WNsuT{9U?)sLG`@Zy9&iy3+WyQ4wuJtz~gi_600>$orWvEmCZoTJ^q=$Y( z*FKYDt2A$C=SWbwYq(O2H?l+df+)_OHU?o6!yd9A6ND^`Y0SGyGOQ!Vsimi_#@ zfj3@vf7)Gh%l!6D&vI9@9qvIb;Vt`fKkn$YVzaiqEB5>{V}<{{fGUP%Q{@gM^Mv!n z&8es`V`(ryeu=rlRDS!9xBL%0=WYBT^|Vw;a`%Q$48J0(81heUmw$6LE#oXB58jjr o%RDt6`bvjfAi3DE@jt@>|9?%dMR{&9FfcH9y85}Sb4q9e04(O_5C8xG literal 0 HcmV?d00001 diff --git a/doc/html/a00058.html b/doc/html/a00058.html index 6255390b..0191be4a 100644 --- a/doc/html/a00058.html +++ b/doc/html/a00058.html @@ -4,7 +4,7 @@ -tbb::concurrent_vector< T, A > Class Template Reference +tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,775 +33,68 @@
-
tbb::concurrent_vector< T, A > Class Template Reference
+
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
- -

Concurrent vector container. - More...

- -

#include <concurrent_vector.h>

-
-Inheritance diagram for tbb::concurrent_vector< T, A >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

-Public Types

-typedef
-internal::concurrent_vector_base_v3::size_type 
size_type
 
-typedef
-internal::allocator_base< T, A >
-::allocator_type 
allocator_type
 
-typedef T value_type
 
-typedef ptrdiff_t difference_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal::vector_iterator
-< concurrent_vector, T > 
iterator
 
-typedef
-internal::vector_iterator
-< concurrent_vector, const T > 
const_iterator
 
-typedef std::reverse_iterator
-< iterator > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator > 
const_reverse_iterator
 
-typedef std::reverse_iterator
-< iterator, T, T &, T * > 
reverse_iterator
 
-typedef std::reverse_iterator
-< const_iterator, T, const T
-&, const T * > 
const_reverse_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 

+Protected Types

enum  { allow_multimapping = Allow_multimapping + }
 
+typedef Key value_type
 
+typedef Key key_type
 
+typedef Hash_compare hash_compare
 
+typedef Allocator::template
+rebind< value_type >::other 
allocator_type
 
+typedef hash_compare value_compare
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

-Public Member Functions

concurrent_vector (const allocator_type &a=allocator_type())
 Construct empty vector.
 
concurrent_vector (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_vector (const concurrent_vector &vector, const allocator_type &a=allocator_type())
 Copying constructor.
 
concurrent_vector (concurrent_vector &&source)
 Move constructor.
 
concurrent_vector (concurrent_vector &&source, const allocator_type &a)
 
-template<class M >
 concurrent_vector (const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())
 Copying constructor for vector with different allocator type.
 
concurrent_vector (size_type n)
 Construction with initial size specified by argument n.
 
concurrent_vector (size_type n, const_reference t, const allocator_type &a=allocator_type())
 Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance.
 
-template<class I >
 concurrent_vector (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
-concurrent_vectoroperator= (const concurrent_vector &vector)
 Assignment.
 
-concurrent_vectoroperator= (concurrent_vector &&other)
 Move assignment.
 
-template<class M >
concurrent_vectoroperator= (const concurrent_vector< T, M > &vector)
 Assignment for vector with different allocator type.
 
-concurrent_vectoroperator= (std::initializer_list< T > init_list)
 Assignment for initializer_list.
 
iterator grow_by (size_type delta)
 Grow by "delta" elements. More...
 
iterator grow_by (size_type delta, const_reference t)
 Grow by "delta" elements using copying constructor. More...
 
template<typename I >
iterator grow_by (I first, I last)
 
iterator grow_by (std::initializer_list< T > init_list)
 
iterator grow_to_at_least (size_type n)
 Append minimal sequence of elements such that size()>=n. More...
 
iterator grow_to_at_least (size_type n, const_reference t)
 
iterator push_back (const_reference item)
 Push item. More...
 
iterator push_back (T &&item)
 Push item, move-aware. More...
 
template<typename... Args>
iterator emplace_back (Args &&...args)
 Push item, create item "in place" with provided arguments. More...
 
reference operator[] (size_type index)
 Get reference to element at given index. More...
 
-const_reference operator[] (size_type index) const
 Get const reference to element at given index.
 
-reference at (size_type index)
 Get reference to element at given index. Throws exceptions on errors.
 
-const_reference at (size_type index) const
 Get const reference to element at given index. Throws exceptions on errors.
 
-range_type range (size_t grainsize=1)
 Get range for iterating with parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for iterating with parallel algorithms.
 
-size_type size () const
 Return size of vector. It may include elements under construction.
 
-bool empty () const
 Return false if vector is not empty or has elements under construction at least.
 
-size_type capacity () const
 Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value.
 
void reserve (size_type n)
 Allocate enough space to grow to size n without having to allocate more memory later. More...
 
-void resize (size_type n)
 Resize the vector. Not thread-safe.
 
-void resize (size_type n, const_reference t)
 Resize the vector, copy t for new elements. Not thread-safe.
 
-void shrink_to_fit ()
 Optimize memory usage and fragmentation.
 
-size_type max_size () const
 Upper bound on argument to reserve.
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-reverse_iterator rbegin ()
 reverse start iterator
 
-reverse_iterator rend ()
 reverse end iterator
 
-const_reverse_iterator rbegin () const
 reverse start const iterator
 
-const_reverse_iterator rend () const
 reverse end const iterator
 
-const_reverse_iterator crbegin () const
 reverse start const iterator
 
-const_reverse_iterator crend () const
 reverse end const iterator
 
-reference front ()
 the first item
 
-const_reference front () const
 the first item const
 
-reference back ()
 the last item
 
-const_reference back () const
 the last item const
 
-allocator_type get_allocator () const
 return allocator object
 
-void assign (size_type n, const_reference t)
 assign n items by copying t item
 
-template<class I >
void assign (I first, I last)
 assign range [first, last)
 
-void assign (std::initializer_list< T > init_list)
 assigns an initializer list
 
-void swap (concurrent_vector &vector)
 swap two instances
 
void clear ()
 Clear container while keeping memory allocated. More...
 
~concurrent_vector ()
 Clear and destroy vector.
 
-const
-internal::concurrent_vector_base_v3 & 
internal_vector_base () const
 
-template<typename I >
void copy_range (void *dst, const void *p_type_erased_iterator, size_type n)
 

+Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 
- - - - -

-Friends

-template<typename C , typename U >
class internal::vector_iterator
 
-

Detailed Description

-

template<typename T, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_vector< T, A >

- -

Concurrent vector container.

-
concurrent_vector is a container having the following main properties:
-- It provides random indexed access to its elements. The index of the first element is 0.
-- It ensures safe concurrent growing its size (different threads can safely append new elements).
-- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
-
Compatibility
The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.
-
Exception Safety
Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:
    -
  • Throwing an exception is forbidden for destructor of T.
  • -
  • Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.
  • -
-Otherwise, the program's behavior is undefined.
-
If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:
    -
  • There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.
  • -
  • An invalid vector instance cannot be repaired; it is unable to grow anymore.
  • -
  • Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.
  • -
  • Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown.
  • -
-If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.
-
Fragmentation
Unlike an STL vector, a concurrent_vector does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.
-
Changes since TBB 2.1
    -
  • Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated.
  • -
  • Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector
  • -
  • Added resize() methods (not thread-safe)
  • -
  • Added cbegin/cend/crbegin/crend methods
  • -
  • Changed return type of methods grow* and push_back to iterator
  • -
-
-
Changes since TBB 2.0
    -
  • Implemented exception-safety guarantees
  • -
  • Added template argument for allocator
  • -
  • Added allocator argument in constructors
  • -
  • Faster index calculation
  • -
  • First growth call specifies a number of segments to be merged in the first allocation.
  • -
  • Fixed memory blow up for swarm of vector's instances of small size
  • -
  • Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items.
  • -
  • Added STL-like constructors.
  • -
  • Added operators ==, < and derivatives
  • -
  • Added at() method, approved for using after an exception was thrown inside the vector
  • -
  • Added get_allocator() method.
  • -
  • Added assign() methods
  • -
  • Added compact() method to defragment first segments
  • -
  • Added swap() method
  • -
  • range() defaults on grainsize = 1 supporting auto grainsize algorithms.
  • -
-
-

Member Function Documentation

- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - -
void tbb::concurrent_vector< T, A >::clear ()
-
-inline
-
- -

Clear container while keeping memory allocated.

-

To free up the memory, use in conjunction with method compact(). Not thread safe

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
-
-template<typename... Args>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::emplace_back (Args &&... args)
-
-inline
-
- -

Push item, create item "in place" with provided arguments.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta)
-
-inline
-
- -

Grow by "delta" elements.

-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
-
-inline
-
- -

Grow by "delta" elements using copying constructor.

-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
-
-template<typename I >
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (first,
last 
)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_by (std::initializer_list< T > init_list)
-
-inline
-
-

Returns iterator pointing to the first new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
-
-inline
-
- -

Append minimal sequence of elements such that size()>=n.

-

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - - - - - - - - - - - -
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n,
const_reference t 
)
-
-inline
-
-

Analogous to grow_to_at_least( size_type n ) with exception that the new elements are initialized by copying of t instead of default construction.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
reference tbb::concurrent_vector< T, A >::operator[] (size_type index)
-
-inline
-
- -

Get reference to element at given index.

-

This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index < size().

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::push_back (const_reference item)
-
-inline
-
- -

Push item.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - -
- - - - - - - - -
iterator tbb::concurrent_vector< T, A >::push_back (T && item)
-
-inline
-
- -

Push item, move-aware.

-

Returns iterator pointing to the new element.

- -
-
- -
-
-
-template<typename T, class A = cache_aligned_allocator<T>>
- - - - - + + + +
- - - - - - - - -
void tbb::concurrent_vector< T, A >::reserve (size_type n)
-
-inline

+Static Protected Member Functions

+static const Key & get_key (const value_type &value)
 
+ + +

+Protected Attributes

+hash_compare my_hash_compare
 
-
- -

Allocate enough space to grow to size n without having to allocate more memory later.

-

Like most of the methods provided for STL compatibility, this method is not thread safe. The capacity afterwards may be bigger than the requested reservation.

- -
-

The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • +
  • concurrent_unordered_set.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00058.png b/doc/html/a00058.png deleted file mode 100644 index 4ffff4fb1059c9d9a8a0874b4a005bb96fa0379a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1057 zcmeAS@N?(olHy`uVBq!ia0y~yVC-UGU zEl#pD=6<#{V$K>_(Qkq4C%>+bs9*2BYxN?#W7BV`hdfz$?eprYnpH{mUY=Q(<3-hr zmuz>u+HW=2qNo9z`c*bO)Z3>;=%9VdV2fzv6TyI zG1z=CC=?dw7f#;IAd3C)v=lB0Bd0w0}BJ=fxR7@ znG_f*rdnt-?D_Eb$DM^N91Khh?~g2DEpS``*1>RqccUZY4uueqdIyFFZ8sJ$#0Y3H zFf}kJFcdiF1Tg4vh%!v~&|Er^aR+B}ziJ2rNHH8g=+lyW`ss7*V(ZN1|1HkSE5z@8 z5x`h*Y<;MS+_JbIyrDMf4BH{?sWt7Oco6|?v3(wg@7b$yiR(a6F*XV>rk zyOehoPv#s^bxFO@JO9^IoV%mCIlF0kZ0b#=oPF14KV7AL_Qfq}u( L)z4*}Q$iB}nA6U> diff --git a/doc/html/a00059.html b/doc/html/a00059.html index 154286a3..77e0d67b 100644 --- a/doc/html/a00059.html +++ b/doc/html/a00059.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference +tbb::concurrent_vector< T, A > Class Template Reference @@ -33,107 +33,775 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
+
tbb::concurrent_vector< T, A > Class Template Reference
-

Combines data access, locking, and garbage collection. +

Concurrent vector container. More...

-

#include <concurrent_hash_map.h>

+

#include <concurrent_vector.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
+Inheritance diagram for tbb::concurrent_vector< T, A >:
- - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef const
-concurrent_hash_map::value_type 
value_type
 Type of value.
 
+typedef
+internal::concurrent_vector_base_v3::size_type 
size_type
 
+typedef
+internal::allocator_base< T, A >
+::allocator_type 
allocator_type
 
+typedef T value_type
 
+typedef ptrdiff_t difference_type
 
+typedef T & reference
 
+typedef const T & const_reference
 
+typedef T * pointer
 
+typedef const T * const_pointer
 
+typedef
+internal::vector_iterator
+< concurrent_vector, T > 
iterator
 
+typedef
+internal::vector_iterator
+< concurrent_vector, const T > 
const_iterator
 
+typedef std::reverse_iterator
+< iterator > 
reverse_iterator
 
+typedef std::reverse_iterator
+< const_iterator > 
const_reverse_iterator
 
+typedef std::reverse_iterator
+< iterator, T, T &, T * > 
reverse_iterator
 
+typedef std::reverse_iterator
+< const_iterator, T, const T
+&, const T * > 
const_reverse_iterator
 
+typedef generic_range_type
+< iterator > 
range_type
 
+typedef generic_range_type
+< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - -

Public Member Functions

-bool empty () const
 True if result is empty.
 
-void release ()
 Set to null.
 
-const_reference operator* () const
 Return reference to associated value in hash table.
 
-const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
- - - -

-Protected Member Functions

-bool is_writer ()
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-nodemy_node
 
-hashcode_t my_hash
 
concurrent_vector (const allocator_type &a=allocator_type())
 Construct empty vector.
 
concurrent_vector (std::initializer_list< T > init_list, const allocator_type &a=allocator_type())
 Constructor from initializer_list.
 
concurrent_vector (const concurrent_vector &vector, const allocator_type &a=allocator_type())
 Copying constructor.
 
concurrent_vector (concurrent_vector &&source)
 Move constructor.
 
concurrent_vector (concurrent_vector &&source, const allocator_type &a)
 
+template<class M >
 concurrent_vector (const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())
 Copying constructor for vector with different allocator type.
 
concurrent_vector (size_type n)
 Construction with initial size specified by argument n.
 
concurrent_vector (size_type n, const_reference t, const allocator_type &a=allocator_type())
 Construction with initial size specified by argument n, initialization by copying of t, and given allocator instance.
 
+template<class I >
 concurrent_vector (I first, I last, const allocator_type &a=allocator_type())
 Construction with copying iteration range and given allocator instance.
 
+concurrent_vectoroperator= (const concurrent_vector &vector)
 Assignment.
 
+concurrent_vectoroperator= (concurrent_vector &&other)
 Move assignment.
 
+template<class M >
concurrent_vectoroperator= (const concurrent_vector< T, M > &vector)
 Assignment for vector with different allocator type.
 
+concurrent_vectoroperator= (std::initializer_list< T > init_list)
 Assignment for initializer_list.
 
iterator grow_by (size_type delta)
 Grow by "delta" elements. More...
 
iterator grow_by (size_type delta, const_reference t)
 Grow by "delta" elements using copying constructor. More...
 
template<typename I >
iterator grow_by (I first, I last)
 
iterator grow_by (std::initializer_list< T > init_list)
 
iterator grow_to_at_least (size_type n)
 Append minimal sequence of elements such that size()>=n. More...
 
iterator grow_to_at_least (size_type n, const_reference t)
 
iterator push_back (const_reference item)
 Push item. More...
 
iterator push_back (T &&item)
 Push item, move-aware. More...
 
template<typename... Args>
iterator emplace_back (Args &&...args)
 Push item, create item "in place" with provided arguments. More...
 
reference operator[] (size_type index)
 Get reference to element at given index. More...
 
+const_reference operator[] (size_type index) const
 Get const reference to element at given index.
 
+reference at (size_type index)
 Get reference to element at given index. Throws exceptions on errors.
 
+const_reference at (size_type index) const
 Get const reference to element at given index. Throws exceptions on errors.
 
+range_type range (size_t grainsize=1)
 Get range for iterating with parallel algorithms.
 
+const_range_type range (size_t grainsize=1) const
 Get const range for iterating with parallel algorithms.
 
+size_type size () const
 Return size of vector. It may include elements under construction.
 
+bool empty () const
 Return false if vector is not empty or has elements under construction at least.
 
+size_type capacity () const
 Maximum size to which array can grow without allocating more memory. Concurrent allocations are not included in the value.
 
void reserve (size_type n)
 Allocate enough space to grow to size n without having to allocate more memory later. More...
 
+void resize (size_type n)
 Resize the vector. Not thread-safe.
 
+void resize (size_type n, const_reference t)
 Resize the vector, copy t for new elements. Not thread-safe.
 
+void shrink_to_fit ()
 Optimize memory usage and fragmentation.
 
+size_type max_size () const
 Upper bound on argument to reserve.
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+reverse_iterator rbegin ()
 reverse start iterator
 
+reverse_iterator rend ()
 reverse end iterator
 
+const_reverse_iterator rbegin () const
 reverse start const iterator
 
+const_reverse_iterator rend () const
 reverse end const iterator
 
+const_reverse_iterator crbegin () const
 reverse start const iterator
 
+const_reverse_iterator crend () const
 reverse end const iterator
 
+reference front ()
 the first item
 
+const_reference front () const
 the first item const
 
+reference back ()
 the last item
 
+const_reference back () const
 the last item const
 
+allocator_type get_allocator () const
 return allocator object
 
+void assign (size_type n, const_reference t)
 assign n items by copying t item
 
+template<class I >
void assign (I first, I last)
 assign range [first, last)
 
+void assign (std::initializer_list< T > init_list)
 assigns an initializer list
 
+void swap (concurrent_vector &vector)
 swap two instances
 
void clear ()
 Clear container while keeping memory allocated. More...
 
~concurrent_vector ()
 Clear and destroy vector.
 
+const
+internal::concurrent_vector_base_v3 & 
internal_vector_base () const
 
+template<typename I >
void copy_range (void *dst, const void *p_type_erased_iterator, size_type n)
 
- - - - + + +

Friends

-class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
-class accessor
 
+template<typename C , typename U >
class internal::vector_iterator
 

Detailed Description

-

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor

+

template<typename T, class A = cache_aligned_allocator<T>>
+class tbb::concurrent_vector< T, A >

+ +

Concurrent vector container.

+
concurrent_vector is a container having the following main properties:
+- It provides random indexed access to its elements. The index of the first element is 0.
+- It ensures safe concurrent growing its size (different threads can safely append new elements).
+- Adding new elements does not invalidate existing iterators and does not change indices of existing items.
+
Compatibility
The class meets all Container Requirements and Reversible Container Requirements from C++ Standard (See ISO/IEC 14882:2003(E), clause 23.1). But it doesn't meet Sequence Requirements due to absence of insert() and erase() methods.
+
Exception Safety
Methods working with memory allocation and/or new elements construction can throw an exception if allocator fails to allocate memory or element's default constructor throws one. Concurrent vector's element of type T must conform to the following requirements:
    +
  • Throwing an exception is forbidden for destructor of T.
  • +
  • Default constructor of T must not throw an exception OR its non-virtual destructor must safely work when its object memory is zero-initialized.
  • +
+Otherwise, the program's behavior is undefined.
+
If an exception happens inside growth or assignment operation, an instance of the vector becomes invalid unless it is stated otherwise in the method documentation. Invalid state means:
    +
  • There are no guarantees that all items were initialized by a constructor. The rest of items is zero-filled, including item where exception happens.
  • +
  • An invalid vector instance cannot be repaired; it is unable to grow anymore.
  • +
  • Size and capacity reported by the vector are incorrect, and calculated as if the failed operation were successful.
  • +
  • Attempt to access not allocated elements using operator[] or iterators results in access violation or segmentation fault exception, and in case of using at() method a C++ exception is thrown.
  • +
+If a concurrent grow operation successfully completes, all the elements it has added to the vector will remain valid and accessible even if one of subsequent grow operations fails.
+
Fragmentation
Unlike an STL vector, a concurrent_vector does not move existing elements if it needs to allocate more memory. The container is divided into a series of contiguous arrays of elements. The first reservation, growth, or assignment operation determines the size of the first array. Using small number of elements as initial size incurs fragmentation that may increase element access time. Internal layout can be optimized by method compact() that merges several smaller arrays into one solid.
+
Changes since TBB 2.1
    +
  • Fixed guarantees of concurrent_vector::size() and grow_to_at_least() methods to assure elements are allocated.
  • +
  • Methods end()/rbegin()/back() are partly thread-safe since they use size() to get the end of vector
  • +
  • Added resize() methods (not thread-safe)
  • +
  • Added cbegin/cend/crbegin/crend methods
  • +
  • Changed return type of methods grow* and push_back to iterator
  • +
+
+
Changes since TBB 2.0
    +
  • Implemented exception-safety guarantees
  • +
  • Added template argument for allocator
  • +
  • Added allocator argument in constructors
  • +
  • Faster index calculation
  • +
  • First growth call specifies a number of segments to be merged in the first allocation.
  • +
  • Fixed memory blow up for swarm of vector's instances of small size
  • +
  • Added grow_by(size_type n, const_reference t) growth using copying constructor to init new items.
  • +
  • Added STL-like constructors.
  • +
  • Added operators ==, < and derivatives
  • +
  • Added at() method, approved for using after an exception was thrown inside the vector
  • +
  • Added get_allocator() method.
  • +
  • Added assign() methods
  • +
  • Added compact() method to defragment first segments
  • +
  • Added swap() method
  • +
  • range() defaults on grainsize = 1 supporting auto grainsize algorithms.
  • +
+
+

Member Function Documentation

+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + +
void tbb::concurrent_vector< T, A >::clear ()
+
+inline
+
+ +

Clear container while keeping memory allocated.

+

To free up the memory, use in conjunction with method compact(). Not thread safe

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+
+template<typename... Args>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::emplace_back (Args &&... args)
+
+inline
+
+ +

Push item, create item "in place" with provided arguments.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta)
+
+inline
+
+ +

Grow by "delta" elements.

+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (size_type delta,
const_reference t 
)
+
+inline
+
+ +

Grow by "delta" elements using copying constructor.

+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+
+template<typename I >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (first,
last 
)
+
+inline
+
+

Returns iterator pointing to the first new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_by (std::initializer_list< T > init_list)
+
+inline
+
+

Returns iterator pointing to the first new element.

-

Combines data access, locking, and garbage collection.

-

The documentation for this class was generated from the following file:
    -
  • concurrent_hash_map.h
  • +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n)
+
+inline
+
+ +

Append minimal sequence of elements such that size()>=n.

+

The new elements are default constructed. Blocks until all elements in range [0..n) are allocated. May return while other elements are being constructed by other threads. Returns iterator that points to beginning of appended sequence. If no elements were appended, returns iterator pointing to nth element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least (size_type n,
const_reference t 
)
+
+inline
+
+

Analogous to grow_to_at_least( size_type n ) with exception that the new elements are initialized by copying of t instead of default construction.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
reference tbb::concurrent_vector< T, A >::operator[] (size_type index)
+
+inline
+
+ +

Get reference to element at given index.

+

This method is thread-safe for concurrent reads, and also while growing the vector, as long as the calling thread has checked that index < size().

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::push_back (const_reference item)
+
+inline
+
+ +

Push item.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
iterator tbb::concurrent_vector< T, A >::push_back (T && item)
+
+inline
+
+ +

Push item, move-aware.

+

Returns iterator pointing to the new element.

+ +
+
+ +
+
+
+template<typename T, class A = cache_aligned_allocator<T>>
+ + + + + +
+ + + + + + + + +
void tbb::concurrent_vector< T, A >::reserve (size_type n)
+
+inline
+
+ +

Allocate enough space to grow to size n without having to allocate more memory later.

+

Like most of the methods provided for STL compatibility, this method is not thread safe. The capacity afterwards may be bigger than the requested reservation.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • concurrent_vector.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00059.png b/doc/html/a00059.png index e861a116ac2abfa8cb7650d913490b2180287e83..4ffff4fb1059c9d9a8a0874b4a005bb96fa0379a 100644 GIT binary patch delta 1015 zcmaFBw~#}zGr-TCmrII^fq{Y7)59f*fq}7$fq@}_gPDPW!Jz2S{fUZJ^~@VQT^vIy z7~jr)UG!Rkhi&@IvVGs{A5Z?#b|7K5?lPtd7KJgzSn=XMdsJ3fnG-8 z$)Obi7ytO54bNYZbn0bsy`10V!kH7#KRjQ4Jv!~~}6hGD~aHr>}9M zuI%5Pqu#BHS36ab%U$zWqgw0Po^>~4XPqdY8WQ7mDtz;Xw>g$C_rg z4Lu*Vcb;^tTxj4~w>o<-&s)Lkx?&%v^1ZsdV(Fr~knanw#w6<;*YbH$Dtfj)^6UDD`t{zsRxh$UHvN`*$diTFKCiB- zS(Rk(<(YLkUR1q!$#%!9{Z?~Lswais2%V^Y?f#lBqa7iE=06VydIfc#mc9}ydbcdj zTH8x>{XEg%u@6qMg|_W6@bbKMImqyRz}NbgncoC%uUeV^apw$knah6jBGrzCsECG7 z{c~+uX{_r_N9!e)`K?_>r^<5Y>YKgV8n`XQW0JF9b$MW`iske3AwKQbK5m(?r0eq! z`+$$l>;C6WNnXR{X{8d@sQqBWOg+>K!|Tg)Z8dr?M$wv=RCJ@e}g(fI*tjz<^WbQM{> zXw8&B_WbF*GATP=T$*UykXX68>*tocD*GGvSjV#=AcKz`>R(^VRa zb530=zUk(x_%l`^KJ?RX-^l%oxft?eUPP~8ut>McUCk`{Kq)+qM-&_)pin`#CftY!qgJUAFt={{+&AU;=6Z@9O+wjSG%Na*bB{BC`&O({vg>N9We&&nxD%a1R-XH=ySX6f$#Icf4-+be>9Z@l|gQTIvy z_RZqiuZ{u*WKa!N}F*7nRKj_%%E3xZ;U3w9-+7|)h?)qn!B!BsPTkX%fdhL7Dq&HpJyY$N%9=pre zrtR$7wrOL}i%r)TI@;;%muGKIUBk5h5wyv zQyU{f@AR9V4=&%Gx0d6;&C2IKu}AAy983A~Kl<7KO&7m!xcQiWLF$#qy~cmr&QE@5 zANF&r1Vi#7w=eJK{IXy3)U=mP;K0X;7a15QAmJU7bA!B;mQK;*b+FjSz;a;g#ET5q zpTG9@V~&xNF`lix? zmzE~~(fo>`@$3(^i`#EYXQ!ooL(U7w&g3}#V)yIs-FN@O?fvaCH*;hE?*AXR{zF;+ zd)@wZx8MH>Q2)+Z?}@c-V~A# z%EB~0cV0YR61#Z**QBHpJJ*GY({9h6@=>ew`s#fqR@Yw!ESKr{_Ic80q>Y;M~D!cIMFZAL7OruK7rM zhuS;@O4o?z3ioo!Rs6=8?3t`wwH>?jKI;w>REAEwJA_&fJ*F;+^ch1X -tbb::flow::interface8::continue_msg Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference @@ -33,28 +33,107 @@
+
-
tbb::flow::interface8::continue_msg Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
-

An empty class used for messages that mean "I'm done". +

Combines data access, locking, and garbage collection. More...

-

#include <flow_graph.h>

+

#include <concurrent_hash_map.h>

+
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
+
+
+ + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor + +
+ + + + + +

+Public Types

+typedef const
+concurrent_hash_map::value_type 
value_type
 Type of value.
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+bool empty () const
 True if result is empty.
 
+void release ()
 Set to null.
 
+const_reference operator* () const
 Return reference to associated value in hash table.
 
+const_pointer operator-> () const
 Return pointer to associated value in hash table.
 
const_accessor ()
 Create empty result.
 
~const_accessor ()
 Destroy result after releasing the underlying reference.
 
+ + + +

+Protected Member Functions

+bool is_writer ()
 
+ + + + + +

+Protected Attributes

+nodemy_node
 
+hashcode_t my_hash
 
+ + + + + +

+Friends

+class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
+class accessor
 

Detailed Description

-

An empty class used for messages that mean "I'm done".

+

template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
+class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor

+ +

Combines data access, locking, and garbage collection.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00060.png b/doc/html/a00060.png new file mode 100644 index 0000000000000000000000000000000000000000..e861a116ac2abfa8cb7650d913490b2180287e83 GIT binary patch literal 1888 zcmeAS@N?(olHy`uVBq!ia0y~yV0^*Az|g_L%)r1P&D(K-fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}_TJOQF{Fa=?cCc{xA*Y5 zh%c-=_#CftY!qgJUAFt={{+&AU;=6Z@9O+wjSG%Na*bB{BC`&O({vg>N9We&&nxD%a1R-XH=ySX6f$#Icf4-+be>9Z@l|gQTIvy z_RZqiuZ{u*WKa!N}F*7nRKj_%%E3xZ;U3w9-+7|)h?)qn!B!BsPTkX%fdhL7Dq&HpJyY$N%9=pre zrtR$7wrOL}i%r)TI@;;%muGKIUBk5h5wyv zQyU{f@AR9V4=&%Gx0d6;&C2IKu}AAy983A~Kl<7KO&7m!xcQiWLF$#qy~cmr&QE@5 zANF&r1Vi#7w=eJK{IXy3)U=mP;K0X;7a15QAmJU7bA!B;mQK;*b+FjSz;a;g#ET5q zpTG9@V~&xNF`lix? zmzE~~(fo>`@$3(^i`#EYXQ!ooL(U7w&g3}#V)yIs-FN@O?fvaCH*;hE?*AXR{zF;+ zd)@wZx8MH>Q2)+Z?}@c-V~A# z%EB~0cV0YR61#Z**QBHpJJ*GY({9h6@=>ew`s#fqR@Yw!ESKr{_Ic80q>Y;M~D!cIMFZAL7OruK7rM zhuS;@O4o?z3ioo!Rs6=8?3t`wwH>?jKI;w>REAEwJA_&fJ*F;+^ch1X -tbb::flow::interface8::continue_node< Output > Class Template Reference +tbb::flow::interface8::continue_msg Class Reference @@ -33,137 +33,28 @@
-
-
tbb::flow::interface8::continue_node< Output > Class Template Reference
+
tbb::flow::interface8::continue_msg Class Reference
-

Implements an executable node that supports continue_msg -> Output. +

An empty class used for messages that mean "I'm done". More...

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::continue_node< Output >:
-
-
- - -tbb::flow::interface8::graph_node - -
- - - - - - - - - - - - - - -

-Public Types

-typedef continue_msg input_type
 
-typedef Output output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::continue_input
-< Output > 
fInput_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename Body >
 continue_node (graph &g, Body body)
 Constructor for executable node with continue_msg -> Output.
 
-template<typename Body >
 continue_node (graph &g, int number_of_predecessors, Body body)
 Constructor for executable node with continue_msg -> Output.
 
continue_node (const continue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - -

-Protected Member Functions

-internal::broadcast_cache
-< output_type > & 
successors ()
 
-void reset_node (reset_flags f)
 
- - - - - - - - - - -

-Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - -

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

Detailed Description

-

template<typename Output>
-class tbb::flow::interface8::continue_node< Output >

- -

Implements an executable node that supports continue_msg -> Output.

+

An empty class used for messages that mean "I'm done".


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00061.png b/doc/html/a00061.png deleted file mode 100644 index d8775967504b3755493a5c165a0791c2538966e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2370 zcmeAS@N?(olHy`uVBq!ia0y~yV0L6+VCdjrW?*0t(-8nkNCfzVxc>kDpMinl#hb6C z{f8znFff4efddCvJMYLdFfeeG1o;Is{D*+6r$USv7&tC^x;TbZFuuL}I&AeBA-9L^ z-=weoz5lV#@}kOI4xPzQrG6isr&P;yYSxwb%O<`Ls~j2_v}deZb?9e@qd6YSZ~E zA&?*q;W;kQU}0p+QDSp!U|?iosjyw?AfVvTz`z*inYaCHex zndwSLkQ5b_J&=F=`0-=qn0`wGa7?OzDCU|i*P<-s_d14#KCJn|78=@`osbm3vuf3^ zHi?i>Qw6rI*LI0DuUf@+WWlOcjD{<=UfT*04-Mt*a9q1}-BF16s;mQU&C8Ol|6l#? zZ!UY}b;XC>510RKfAO{U z`{U5i=$m;Lo^8;XR~4KQw*Mu!(`RG0+SoNGuFux=pL=^>Z1!5+is_Ep{~7N~g@kTx zzCHE$>vf;=CAXOB@Tb51F=elz$!(rrt9aYz2e+LseH3BTH}|^zE*85oS@w1N{cM-l zp1b}xGxNgEeX{lO$KJ~&?%Vaw#6B>4?b?)d-dTO}7ap^}`!m)0%baTc*uTfiF4jht z-hFQI)#LxsH|@J4Pp^OV)$BR{_sl;pn^vuQe>1dsTgy|E?2q$4pR$ygzR*=8eBVoN zr_GDm=Bn(Rv##`I)hyW=$Me(Us-|i0zPR)8o;~p!Yg!_=JoWpl8*SU_}|G!N$xj99nKJCJ;4S#kxuIE3S&13b~W|iaiIGyYZz9%z- zv$yB0c3iu4+bsE&j{ct$lXZg2%(Ywde+V|`RZP%2&%3K;Ub|_=y!yN4|N7e7>p|gL zpK)R0zyBrwc>LOnr*k~lJbro47XK}euckh#b&E6Gac9e_XJrwkzH?8X^A`^ZtvxO; zxkXFouW*@hUeiXC48Etk%xfJp%%rYFW!E=Kb8qv!7?r*HW^zF2)##glQtUry-R51j zs>=F3|JnEE8IhUqcz^v`le5-j?N+mA;!-7b2PM9ksDZM{u{*CPg3@Z^l?AI-DgNhY z+j{NR?H}qqt5#K+|L<@N4SlaleBN^4$y!^g%LdMKp`pxtY_&BtH7%zvs-80O4c;Nc zdB()|GQ$tv8m9(TP97eQgbQ1bFte!`7$`IzykloCEU-hlv5}FJXV`rzbkAwsVrsj33as~=$`d>sn zqC{bBU0q$<`Sa(`fB5HZ!ahp)HfV0?TiPUX)cH?gEQ3Z|< zljjsYd!1eT!!q^9pQmg3nkKJ)&LDyrP~`qgjEX8*$mlm^kx8&>h6}zOQOzxF$ zRAF;$_}U|s>$k+3f7g-S(h}k;587=nm%I09q2uC>_wJ{&-PPSy2&#Rz{+Zzz@1B3* z<*!YDYqlO<@cG(#9xK0>X}QKPUIl=xy_t65>v!ktap(U!XRVue+kcN{(e$g|gV&|avDWu5s@%SlxmyfW z*Z*5z^z8QZUQm3{57Wo32uK9>z -tbb::flow::interface8::continue_receiver Class Reference +tbb::flow::interface8::continue_node< Output > Class Template Reference @@ -33,7 +33,7 @@
+List of all members
-
tbb::flow::interface8::continue_receiver Class Referenceabstract
+
tbb::flow::interface8::continue_node< Output > Class Template Reference
-

Base class for receivers of completion messages. +

Implements an executable node that supports continue_msg -> Output. More...

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::continue_receiver:
+Inheritance diagram for tbb::flow::interface8::continue_node< Output >:
- - -tbb::flow::interface8::receiver< continue_msg > + + +tbb::flow::interface8::graph_node
- - - - - - - + + + + + + + + - - + + - - - - - - - - - - - - +internal::function_output
+< output_type >  +

Public Types

-typedef continue_msg input_type
 The input type.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+
+typedef continue_msg input_type
 
+typedef Output output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_type > successor_type
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
+internal::continue_input
+< Output > 
fInput_type
 
typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< continue_msg >
-typedef continue_msg input_type
 The input type of this receiver.
 
-typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
fOutput_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
-virtual ~continue_receiver ()
 Destructor.
 
-bool register_predecessor (predecessor_type &)
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &)
 Decrements the trigger threshold. More...
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_predecessor (predecessor_type &s)
 
-void internal_delete_built_predecessor (predecessor_type &s)
 
-void copy_predecessors (predecessor_list_type &v)
 
-size_t predecessor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< continue_msg >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
+template<typename Body >
 continue_node (graph &g, Body body)
 Constructor for executable node with continue_msg -> Output.
 
+template<typename Body >
 continue_node (graph &g, int number_of_predecessors, Body body)
 Constructor for executable node with continue_msg -> Output.
 
continue_node (const continue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - - - -

Protected Member Functions

-task * try_put_task (const input_type &)
 
-void reset_receiver (reset_flags f)
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
-bool is_continue_receiver ()
 
- - - - - - - - - - - + + + +

-Protected Attributes

-built_predecessors_type my_built_predecessors
 
-spin_mutex my_mutex
 
-int my_predecessor_count
 
-int my_current_count
 
-int my_initial_predecessor_count
 
+internal::broadcast_cache
+< output_type > & 
successors ()
 
+void reset_node (reset_flags f)
 
@@ -194,81 +138,32 @@ template<typename X , typename Y > template<typename X , typename Y > - - - - - - +

Friends

class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 
-template<typename TT , typename M >
class internal::successor_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Base class for receivers of completion messages.

-

These receivers automatically reset, but cannot be explicitly waited on

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual task* tbb::flow::interface8::continue_receiver::execute ()
-
-protectedpure virtual
-
- -

Does whatever should happen when the threshold is reached.

-

This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::continue_receiver::remove_predecessor (predecessor_type)
-
-inlinevirtual
-
- -

Decrements the trigger threshold.

-

Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.

+

template<typename Output>
+class tbb::flow::interface8::continue_node< Output >

-

Reimplemented from tbb::flow::interface8::receiver< continue_msg >.

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

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00062.png b/doc/html/a00062.png index 1fbcea13e9a28cf84f895908c4504c1bf67176c4..d8775967504b3755493a5c165a0791c2538966e7 100644 GIT binary patch literal 2370 zcmeAS@N?(olHy`uVBq!ia0y~yV0L6+VCdjrW?*0t(-8nkNCfzVxc>kDpMinl#hb6C z{f8znFff4efddCvJMYLdFfeeG1o;Is{D*+6r$USv7&tC^x;TbZFuuL}I&AeBA-9L^ z-=weoz5lV#@}kOI4xPzQrG6isr&P;yYSxwb%O<`Ls~j2_v}deZb?9e@qd6YSZ~E zA&?*q;W;kQU}0p+QDSp!U|?iosjyw?AfVvTz`z*inYaCHex zndwSLkQ5b_J&=F=`0-=qn0`wGa7?OzDCU|i*P<-s_d14#KCJn|78=@`osbm3vuf3^ zHi?i>Qw6rI*LI0DuUf@+WWlOcjD{<=UfT*04-Mt*a9q1}-BF16s;mQU&C8Ol|6l#? zZ!UY}b;XC>510RKfAO{U z`{U5i=$m;Lo^8;XR~4KQw*Mu!(`RG0+SoNGuFux=pL=^>Z1!5+is_Ep{~7N~g@kTx zzCHE$>vf;=CAXOB@Tb51F=elz$!(rrt9aYz2e+LseH3BTH}|^zE*85oS@w1N{cM-l zp1b}xGxNgEeX{lO$KJ~&?%Vaw#6B>4?b?)d-dTO}7ap^}`!m)0%baTc*uTfiF4jht z-hFQI)#LxsH|@J4Pp^OV)$BR{_sl;pn^vuQe>1dsTgy|E?2q$4pR$ygzR*=8eBVoN zr_GDm=Bn(Rv##`I)hyW=$Me(Us-|i0zPR)8o;~p!Yg!_=JoWpl8*SU_}|G!N$xj99nKJCJ;4S#kxuIE3S&13b~W|iaiIGyYZz9%z- zv$yB0c3iu4+bsE&j{ct$lXZg2%(Ywde+V|`RZP%2&%3K;Ub|_=y!yN4|N7e7>p|gL zpK)R0zyBrwc>LOnr*k~lJbro47XK}euckh#b&E6Gac9e_XJrwkzH?8X^A`^ZtvxO; zxkXFouW*@hUeiXC48Etk%xfJp%%rYFW!E=Kb8qv!7?r*HW^zF2)##glQtUry-R51j zs>=F3|JnEE8IhUqcz^v`le5-j?N+mA;!-7b2PM9ksDZM{u{*CPg3@Z^l?AI-DgNhY z+j{NR?H}qqt5#K+|L<@N4SlaleBN^4$y!^g%LdMKp`pxtY_&BtH7%zvs-80O4c;Nc zdB()|GQ$tv8m9(TP97eQgbQ1bFte!`7$`IzykloCEU-hlv5}FJXV`rzbkAwsVrsj33as~=$`d>sn zqC{bBU0q$<`Sa(`fB5HZ!ahp)HfV0?TiPUX)cH?gEQ3Z|< zljjsYd!1eT!!q^9pQmg3nkKJ)&LDyrP~`qgjEX8*$mlm^kx8&>h6}zOQOzxF$ zRAF;$_}U|s>$k+3f7g-S(h}k;587=nm%I09q2uC>_wJ{&-PPSy2&#Rz{+Zzz@1B3* z<*!YDYqlO<@cG(#9xK0>X}QKPUIl=xy_t65>v!ktap(U!XRVue+kcN{(e$g|gV&|avDWu5s@%SlxmyfW z*Z*5z^z8QZUQm3{57Wo32uK9>zdq}Db49t7RM$!Ik<(H=bx&V174!7^I=@B9a~U$`TDm6p z|Mgn0jeT`GKf=R3FGZ$W2}w^|GX3g2$4PeAWv4tp%PoC#ig!=^$LL9ZzotE9KJ}T` zZr|+7Z*$k_m%Uw6zw7Mvb)^gb<=D=i`*+{|o`7o#b9`2BULEQgyZL83^Ho*z3-50v zS)OZF4BEzeeChYx`#axVJy!edqVYNtaqX8Uw`AO%G0kkh$J$o5D8mj7EfI+`#ar2@VC_zp7Zl@-+O!_tLr7~);f`XWRN^0b^E1PuIGX7Ei z#puBp>#f1CxUOyz*MS8sOa`wGs;p#i_SRrfR~2Fic49P86`?M5*`8(Tl%SxcQ`QAC z1Ub)95orkIWIZq?fWe28^*{;xQ^Q^U63=5pUzj}zmRrqmt}3jiVdX4&hW9Vuw#qwI z-rKWby6?^-6|dP3+`q^>@BZZug?K}Yb>Ybe{aA2_8qgv?w9wL@BEtgL*Ee`wcjh&-J9?36|+|P zwb&{K9*v@%g0YIn@jI~?>~Q2xzAP@>_O}0~C9}arS&@eL<^S!cY^}IAXCp(thB7>apaBJ<_%)VJnIvWR apHXFnrIOiS1xp471_n=8KbLh*2~7Y)!@w5+ diff --git a/doc/html/a00063.html b/doc/html/a00063.html index 8a27c3a8..01c1954d 100644 --- a/doc/html/a00063.html +++ b/doc/html/a00063.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4 Class Reference +tbb::flow::interface8::continue_receiver Class Reference @@ -33,67 +33,242 @@
-
tbb::internal::critical_section_v4 Class Reference
+
tbb::flow::interface8::continue_receiver Class Referenceabstract
+ +

Base class for receivers of completion messages. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::internal::critical_section_v4:
+Inheritance diagram for tbb::flow::interface8::continue_receiver:
- - + + +tbb::flow::interface8::receiver< continue_msg >
- - - + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 

+Public Types

+typedef continue_msg input_type
 The input type.
 
+typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< continue_msg >
+typedef continue_msg input_type
 The input type of this receiver.
 
+typedef sender< continue_msgpredecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void __TBB_EXPORTED_METHOD internal_construct ()
 
-void lock ()
 
-bool try_lock ()
 
-void unlock ()
 
continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
+virtual ~continue_receiver ()
 Destructor.
 
+bool register_predecessor (predecessor_type &)
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &)
 Decrements the trigger threshold. More...
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_predecessor (predecessor_type &s)
 
+void internal_delete_built_predecessor (predecessor_type &s)
 
+void copy_predecessors (predecessor_list_type &v)
 
+size_t predecessor_count ()
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< continue_msg >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
- - - - - - - + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 

+Protected Member Functions

+task * try_put_task (const input_type &)
 
+void reset_receiver (reset_flags f)
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
+bool is_continue_receiver ()
 
+ + + + + + + + + + + +

+Protected Attributes

+built_predecessors_type my_built_predecessors
 
+spin_mutex my_mutex
 
+int my_predecessor_count
 
+int my_current_count
 
+int my_initial_predecessor_count
 
+ + + + + + + + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename U >
class limiter_node
 
+template<typename TT , typename M >
class internal::successor_cache
 
+

Detailed Description

+

Base class for receivers of completion messages.

+

These receivers automatically reset, but cannot be explicitly waited on

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual task* tbb::flow::interface8::continue_receiver::execute ()
+
+protectedpure virtual
+
+ +

Does whatever should happen when the threshold is reached.

+

This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put().

+ +
+
+ +
+
+ + + + +
+ + + + + + + + +
bool tbb::flow::interface8::continue_receiver::remove_predecessor (predecessor_type)
+
+inlinevirtual
+
+ +

Decrements the trigger threshold.

+

Does not check to see if the removal of the predecessor now makes the current count exceed the new threshold. So removing a predecessor while the graph is active can cause unexpected results.

+ +

Reimplemented from tbb::flow::interface8::receiver< continue_msg >.

+ +
+

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00063.png b/doc/html/a00063.png index 835e586da28f510461f35f10ee6b875f87115368..1fbcea13e9a28cf84f895908c4504c1bf67176c4 100644 GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yU=(3sUdq}Db49t7RM$!Ik<(H=bx&V174!7^I=@B9a~U$`TDm6p z|Mgn0jeT`GKf=R3FGZ$W2}w^|GX3g2$4PeAWv4tp%PoC#ig!=^$LL9ZzotE9KJ}T` zZr|+7Z*$k_m%Uw6zw7Mvb)^gb<=D=i`*+{|o`7o#b9`2BULEQgyZL83^Ho*z3-50v zS)OZF4BEzeeChYx`#axVJy!edqVYNtaqX8Uw`AO%G0kkh$J$o5D8mj7EfI+`#ar2@VC_zp7Zl@-+O!_tLr7~);f`XWRN^0b^E1PuIGX7Ei z#puBp>#f1CxUOyz*MS8sOa`wGs;p#i_SRrfR~2Fic49P86`?M5*`8(Tl%SxcQ`QAC z1Ub)95orkIWIZq?fWe28^*{;xQ^Q^U63=5pUzj}zmRrqmt}3jiVdX4&hW9Vuw#qwI z-rKWby6?^-6|dP3+`q^>@BZZug?K}Yb>Ybe{aA2_8qgv?w9wL@BEtgL*Ee`wcjh&-J9?36|+|P zwb&{K9*v@%g0YIn@jI~?>~Q2xzAP@>_O}0~C9}arS&@eL<^S!cY^}IAXCp(thB7>apaBJ<_%)VJnIvWR apHXFnrIOiS1xp471_n=8KbLh*2~7Y)!@w5+ delta 576 zcmaFD{+30tGr-TCmrII^fq{Y7)59f*fq`K!0|P?<2Qvc$L-pmBxQU8Z^^AW!T^vIy z7~jr)+xJ?5$EAO%*XMuvHIpZqIGi|s@6s-hIK$b;3=6DwoQpqmrcG4Mvsvqf>PdG; zeNQ{CD$h@W=2eqz!)MJZkUQJ#eM-x-D){e<<)xQST$r}|>m{#=Oa6zszvqAPJwB=A zSKNM6_Fp^ysjh6c^WVSvxBRmG7mI(@i=GSr{Wp8L{POvG=KWWBn!NY@_QlQLWzGMn z?N#|2dck{Ae^cC~8k38&XZC6}@V{a-Sktzw-p1{i{H(erd5QX*s)mW8=a_$J>|y^9 zSi%2b@dvpB?hkDn`VUnz$hUrHu;Y5qSR--|O~L$c_s--*Br-H>)xTh@5&6PkS9Q^U z`rF`tHUBvm1bt47D*FE7&bn(n4Nlp|ME{=k?U&p3X!;k1<+H3(J?B?FH{KJoN#FGT zdCr&dv$muy4KQ2i*!RYKWH z@6{WFwtcnz_2?3Zbiit*Th~}m*Sl?AGd+3z>u(H8nSNUT{rohhwz=fN_7|(~EG?QA zy8fkbj@<9f-=7M;TlKJ~F5Gf$TA}a$s*0%Z-?f&z#@p4cez#g}N_Ft1>$b~(az{yf z1zN5bK70FgcF@)0uIrEYJ)dHncbS<-UHn(buI=V_e*B=o_`+bvRmC8GcD -tbb::flow::interface8::default_opencl_factory Class Reference +tbb::internal::critical_section_v4 Class Reference @@ -33,47 +33,67 @@
-
tbb::flow::interface8::default_opencl_factory Class Reference
+
tbb::internal::critical_section_v4 Class Reference
-Inheritance diagram for tbb::flow::interface8::default_opencl_factory:
+Inheritance diagram for tbb::internal::critical_section_v4:
- - -tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter > + +
+ + + +

+Classes

class  scoped_lock
 
- - - - - - - + + + + + + + + +

Public Member Functions

default_opencl_factory (opencl_graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >
opencl_factory (opencl_graph &g)
 
-bool init (const opencl_device_list &device_list)
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+void lock ()
 
+bool try_lock ()
 
+void unlock ()
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 

The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
  • critical_section.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00064.png b/doc/html/a00064.png index e66950efeb2243f5a83b7fd24c0d7687bfa1bf55..835e586da28f510461f35f10ee6b875f87115368 100644 GIT binary patch delta 576 zcmaFM`IbeoGr-TCmrII^fq{Y7)59f*fq`K!0|P?<2Qvc$L-pmBxQU8Z^^AW!T^vIy z7~jr)+xJ?5$EAO%*XMuvHIpZqIGi|s@6s-hIK$b;3=6DwoQpqmrcG4Mvsvqf>PdG; zeNQ{CD$h@W=2eqz!)MJZkUQJ#eM-x-D){e<<)xQST$r}|>m{#=Oa6zszvqAPJwB=A zSKNM6_Fp^ysjh6c^WVSvxBRmG7mI(@i=GSr{Wp8L{POvG=KWWBn!NY@_QlQLWzGMn z?N#|2dck{Ae^cC~8k38&XZC6}@V{a-Sktzw-p1{i{H(erd5QX*s)mW8=a_$J>|y^9 zSi%2b@dvpB?hkDn`VUnz$hUrHu;Y5qSR--|O~L$c_s--*Br-H>)xTh@5&6PkS9Q^U z`rF`tHUBvm1bt47D*FE7&bn(n4Nlp|ME{=k?U&p3X!;k1<+H3(J?B?FH{KJoN#FGT zdCr&dv$muy4KQ2i*!RYKWH z@6{WFwtcnz_2?3Zbiit*Th~}m*Sl?AGd+3z>u(H8nSNUT{rohhwz=fN_7|(~EG?QA zy8fkbj@<9f-=7M;TlKJ~F5Gf$TA}a$s*0%Z-?f&z#@p4cez#g}N_Ft1>$b~(az{yf z1zN5bK70FgcF@)0uIrEYJ)dHncbS<-UHn(buI=V_e*B=o_`+bvRmC8GcD z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`rN-06F{Fa=?cCQzpR9OX zrgXWPJH$B!xRr zkE*q2*UA)iPs6R7wLho-P5tMUY4zsDgX{aeCRI&6Ea>?vMXj8BzVVj>hf4322=^Vf zYX7sbxc|moY5zU(#!shw(|%}WC%b;Lbkq;k-SHKlzxatBp8V$B&w}6aNzwdQ=cpAw z|95zYVfk6+-`6i~z7cu*+ryi=wRLXR_x((h&(1rXyittT`07r>-Bq3D*Cy_&mR1)3 zbk#CBc+&43d!offPu9I!oELNa_RQ%1_)NF#uPhM|P#?8TRxO z=Ulcf{jRlp?KJuM4?arw_}zGT)2=Jb{Mq?aViyJbHd}r7%y&zxDx35weTF*!=X0@% zhoi1f|9E&-WmxmMycvmet4j{=$gnNFKQq?;weNe6zf}+Sy*?3HR_wM`(sozF57U*_pfRZE|$R_tnmMYt{x`P1&4YUGsf<(Y7+~+TOoQ%+CojUtnLJeErsx6gz8c z&tK+JJ5@dPU+cF0n`S<#WQG0tynSolZk)1YVV&ffwC3$qpZ|ObSFaDhSG!cw)9Q+R zg1V=sXH_6(#Fr+U`(B|Sb0*0;c>MjNV$;y!RmPxL>OB1e1C!QG zMwie@%pEIJ*ad=5@+mBvBL>Kle6t(%NTLN-xFfqr_pm*&bKFHUtX z2QGyf=r+BQD%);*E%#5})0E#<7yNdvWqJ`hOYrimYa!Dae!+a0-isamr6^JBX9 zS9?tP?5b55|4m@YmcutS-f?zUb*p`!^L((cVy ztvEh-#zq<6{x0QufRE4Vvf8r)=NjK`ytw$}-Ant@c5P(Z!t`Uwq7Apbo^Gqj%-^_r z?YV6;U!=|5n61utuR4m{=MV$YWbPm z%enHm4?Vq_wRUYb&!M}HkLN^QjwmqQ{O-O*Mc~OjuR0k1)b7<4Im!26^DfoXf8Xz% zU_P0VuO!gJ`29Wk&#RSYVT;wgH(r{mp -tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference +tbb::flow::interface8::default_opencl_factory Class Reference @@ -33,31 +33,47 @@
-
tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference
+
tbb::flow::interface8::default_opencl_factory Class Reference
+
+Inheritance diagram for tbb::flow::interface8::default_opencl_factory:
+
+
+ + +tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter > + +
- - + + + + + + +

Public Member Functions

-opencl_device_list operator() (const opencl_device_list &devices)
 
default_opencl_factory (opencl_graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >
opencl_factory (opencl_graph &g)
 
+bool init (const opencl_device_list &device_list)
 
-
The documentation for this struct was generated from the following file:
    +
    The documentation for this class was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00065.png b/doc/html/a00065.png new file mode 100644 index 0000000000000000000000000000000000000000..e66950efeb2243f5a83b7fd24c0d7687bfa1bf55 GIT binary patch literal 1261 zcmeAS@N?(olHy`uVBq!ia0y~yVBF2Xz!1Q}%)r2~-C6r40|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`rN-06F{Fa=?cCQzpR9OX zrgXWPJH$B!xRr zkE*q2*UA)iPs6R7wLho-P5tMUY4zsDgX{aeCRI&6Ea>?vMXj8BzVVj>hf4322=^Vf zYX7sbxc|moY5zU(#!shw(|%}WC%b;Lbkq;k-SHKlzxatBp8V$B&w}6aNzwdQ=cpAw z|95zYVfk6+-`6i~z7cu*+ryi=wRLXR_x((h&(1rXyittT`07r>-Bq3D*Cy_&mR1)3 zbk#CBc+&43d!offPu9I!oELNa_RQ%1_)NF#uPhM|P#?8TRxO z=Ulcf{jRlp?KJuM4?arw_}zGT)2=Jb{Mq?aViyJbHd}r7%y&zxDx35weTF*!=X0@% zhoi1f|9E&-WmxmMycvmet4j{=$gnNFKQq?;weNe6zf}+Sy*?3HR_wM`(sozF57U*_pfRZE|$R_tnmMYt{x`P1&4YUGsf<(Y7+~+TOoQ%+CojUtnLJeErsx6gz8c z&tK+JJ5@dPU+cF0n`S<#WQG0tynSolZk)1YVV&ffwC3$qpZ|ObSFaDhSG!cw)9Q+R zg1V=sXH_6(#Fr+U`(B|Sb0*0;c>MjNV$;y!RmPxL>OB1e1C!QG zMwie@%pEIJ*ad=5@+mBvBL>Kle6t(%NTLN-xFfqr_pm*&bKFHUtX z2QGyf=r+BQD%);*E%#5})0E#<7yNdvWqJ`hOYrimYa!Dae!+a0-isamr6^JBX9 zS9?tP?5b55|4m@YmcutS-f?zUb*p`!^L((cVy ztvEh-#zq<6{x0QufRE4Vvf8r)=NjK`ytw$}-Ant@c5P(Z!t`Uwq7Apbo^Gqj%-^_r z?YV6;U!=|5n61utuR4m{=MV$YWbPm z%enHm4?Vq_wRUYb&!M}HkLN^QjwmqQ{O-O*Mc~OjuR0k1)b7<4Im!26^DfoXf8Xz% zU_P0VuO!gJ`29Wk&#RSYVT;wgH(r{mp -tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference +tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference @@ -33,81 +33,31 @@
-
tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference
+
tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference
- - - -

-Public Types

-typedef T value_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

dependency_msg (const T &data)
 
dependency_msg (opencl_graph &g, const T &data)
 
dependency_msg (const T &data, cl_event event)
 
-T & data (bool wait=true)
 
-const T & data (bool wait=true) const
 
dependency_msg (const dependency_msg &dmsg)
 
dependency_msg (dependency_msg &&dmsg)
 
-dependency_msgoperator= (const dependency_msg &dmsg)
 
-cl_event const * get_event () const
 
-void set_event (cl_event e) const
 
-void set_graph (graph &g)
 
-void clear_event () const
 
-template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 
+opencl_device_list operator() (const opencl_device_list &devices)
 
-
The documentation for this class was generated from the following file:
    +
    The documentation for this struct was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00067.html b/doc/html/a00067.html index 0820202f..652ab2f0 100644 --- a/doc/html/a00067.html +++ b/doc/html/a00067.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::edge_container< C > Class Template Reference +tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference @@ -33,59 +33,81 @@
-
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
+
tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference
- - + +

Public Types

-typedef std::list< C
-*, tbb::tbb_allocator< C * > > 
edge_list_type
 
+typedef T value_type
 
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void add_edge (C &s)
 
-void delete_edge (C &s)
 
-void copy_edges (edge_list_type &v)
 
-size_t edge_count ()
 
-void clear ()
 
-template<typename S >
void sender_extract (S &s)
 
-template<typename R >
void receiver_extract (R &r)
 
dependency_msg (const T &data)
 
dependency_msg (opencl_graph &g, const T &data)
 
dependency_msg (const T &data, cl_event event)
 
+T & data (bool wait=true)
 
+const T & data (bool wait=true) const
 
dependency_msg (const dependency_msg &dmsg)
 
dependency_msg (dependency_msg &&dmsg)
 
+dependency_msgoperator= (const dependency_msg &dmsg)
 
+cl_event const * get_event () const
 
+void set_event (cl_event e) const
 
+void set_graph (graph &g)
 
+void clear_event () const
 
+template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00068.html b/doc/html/a00068.html index bd23f2b0..0a3c86f5 100644 --- a/doc/html/a00068.html +++ b/doc/html/a00068.html @@ -4,7 +4,7 @@ -tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference +tbb::flow::interface8::internal::edge_container< C > Class Template Reference @@ -33,49 +33,59 @@
-
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
+
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
-
-Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
-
-
- - - -
+ + + +

+Public Types

+typedef std::list< C
+*, tbb::tbb_allocator< C * > > 
edge_list_type
 
- - - - -

Public Member Functions

element_construction_guard (pointer an_element)
 
-void dismiss ()
 
- - - + + + + + + + + + + + + + + + +

-Public Attributes

-pointer element
 
+void add_edge (C &s)
 
+void delete_edge (C &s)
 
+void copy_edges (edge_list_type &v)
 
+size_t edge_count ()
 
+void clear ()
 
+template<typename S >
void sender_extract (S &s)
 
+template<typename R >
void receiver_extract (R &r)
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_vector.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00068.png b/doc/html/a00068.png deleted file mode 100644 index 0b05314963f9bf5563543dda942f32e1d95f8dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 zcmeAS@N?(olHy`uVBq!ia0y~yV7$P z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`d5x!wV@L(#+qt*PRvYlJ zy6fNl|Npr9lXjHsuk5fdww}! zg-UF}k~vPQFX!$!d*Z2kQ0<%ReJkrf@oYWwN4eE&lD1~Zq#hI(6$(oUPIPgJVE7Ga_wblv*j3{%Gi=tTd^EgP)^;FQ=YxUObmwl%K)B;6}CW!pZIax+?GWL>^RHEj-<`$i*Cuk4Y$4@ zfB4h#u2s)&2uAFU{dcCsR_BYv=X-}|I2b=O`XXeMa&>=D(&{7M*KM2T7i7Qseq6)a zkBg69b(XK+vb8)syjb^7N!z-Mzh8RnwmO@a7dpqy)TurA@`1ux9Cw*tZ>ZaFb;j*; z%R8^w_T=^)o?Wt8eABv5p|2RfUJP05xv+D6*yGBt+toL#Ztu!bFOt7_=EAomBi3j6 z+j&jyD+S1&oxt|F_Hu4XX=v%aaB%mtH0riry--6RvXEVm|9;UCWh&XTLH#?aqB<-x{{~xA8*f0_`pN zpDs#9?R(KJSryx6_qK4);%PJI?fa9y@_Z}b&HwEe7^>dATljtZ{;cggHYU}k|q7F9kFhG_5Fgp-p=pePZnnHQQi`468Wg>!qfd{&#%jzedBi0Wxe?0 z)>GG-tGq_Rtk6S52&HI-b5=<#BiNx65;` zudm6xdSm-;=i;l|Z?=~Be#z!Pp#AZ{g?}ku-p5R`7u}U}`?fgO2c7;s6>`OQe`X%h zpYo)ACG*o8w_iQeK5)YOd_V)YT~?djr`A2Y0~%CXnJOkBCCofXGUEQn7_Kk>!d}d` Rj)8%J!PC{xWt~$(698f8>ly$6 diff --git a/doc/html/a00069.html b/doc/html/a00069.html index 5310f754..73fb0a12 100644 --- a/doc/html/a00069.html +++ b/doc/html/a00069.html @@ -4,7 +4,7 @@ -tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference +tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference @@ -33,226 +33,49 @@
-
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
+
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
- -

The enumerable_thread_specific container. - More...

- -

#include <enumerable_thread_specific.h>

-Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
+Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator allocator_type
 Basic types.
 
-typedef T value_type
 
-typedef T & reference
 
-typedef const T & const_reference
 
-typedef T * pointer
 
-typedef const T * const_pointer
 
-typedef
-internal_collection_type::size_type 
size_type
 
-typedef
-internal_collection_type::difference_type 
difference_type
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-value_type > 
iterator
 
-typedef
-internal::enumerable_thread_specific_iterator
-< internal_collection_type,
-const value_type > 
const_iterator
 
-typedef generic_range_type
-< iterator > 
range_type
 
-typedef generic_range_type
-< const_iterator > 
const_range_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

enumerable_thread_specific ()
 Default constructor. Each local instance of T is default constructed.
 
-template<typename Finit#if __TBB_ETS_USE_CPP11, typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type #endif>
 enumerable_thread_specific (Finit finit)
 Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
 
enumerable_thread_specific (const T &exemplar)
 Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
 
enumerable_thread_specific (T &&exemplar)
 
-template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type>
 enumerable_thread_specific (P1 &&arg1, P &&...args)
 Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
 
~enumerable_thread_specific ()
 Destructor.
 
-reference local ()
 returns reference to local, discarding exists
 
-reference local (bool &exists)
 Returns reference to calling thread's local copy, creating one if necessary.
 
-size_type size () const
 Get the number of local copies.
 
-bool empty () const
 true if there have been no local copies created
 
-iterator begin ()
 begin iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 begin const iterator
 
-const_iterator end () const
 end const iterator
 
-range_type range (size_t grainsize=1)
 Get range for parallel algorithms.
 
-const_range_type range (size_t grainsize=1) const
 Get const range for parallel algorithms.
 
-void clear ()
 Destroys local copies.
 
enumerable_thread_specific (const enumerable_thread_specific &other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
enumerable_thread_specific (enumerable_thread_specific &&other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
-enumerable_thread_specificoperator= (const enumerable_thread_specific &other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
-enumerable_thread_specificoperator= (enumerable_thread_specific &&other)
 
-template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
-template<typename combine_func_t >
combine (combine_func_t f_combine)
 
-template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
element_construction_guard (pointer an_element)
 
+void dismiss ()
 
- - - - + + +

-Friends

-template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 

+Public Attributes

+pointer element
 
-

Detailed Description

-

template<typename T, typename Allocator, ets_key_usage_type ETS_key_type>
-class tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >

- -

The enumerable_thread_specific container.

-
enumerable_thread_specific has the following properties:
-- thread-local copies are lazily created, with default, exemplar or function initialization.
-- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
-- the contained objects need not have operator=() defined if combine is not used.
-- enumerable_thread_specific containers may be copy-constructed or assigned.
-- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
-- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
-
Segmented iterator
When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.
-
combine and combine_each
    -
  • Both methods are defined for enumerable_thread_specific.
  • -
  • combine() requires the type T have operator=() defined.
  • -
  • neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)
  • -
  • Both are evaluated in serial context (the methods are assumed to be non-benign.)
  • -
-
-

The documentation for this class was generated from the following file:
-
tbb::filter Class Reference
+
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
-

A stage in a pipeline. +

The enumerable_thread_specific container. More...

-

#include <pipeline.h>

+

#include <enumerable_thread_specific.h>

-Inheritance diagram for tbb::filter:
+Inheritance diagram for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >:
- - -tbb::thread_bound_filter + +
- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Attributes

-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

+Public Types

+typedef Allocator allocator_type
 Basic types.
 
+typedef T value_type
 
+typedef T & reference
 
+typedef const T & const_reference
 
+typedef T * pointer
 
+typedef const T * const_pointer
 
+typedef
+internal_collection_type::size_type 
size_type
 
+typedef
+internal_collection_type::difference_type 
difference_type
 
+typedef
+internal::enumerable_thread_specific_iterator
+< internal_collection_type,
+value_type > 
iterator
 
+typedef
+internal::enumerable_thread_specific_iterator
+< internal_collection_type,
+const value_type > 
const_iterator
 
+typedef generic_range_type
+< iterator > 
range_type
 
+typedef generic_range_type
+< const_iterator > 
const_range_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

enumerable_thread_specific ()
 Default constructor. Each local instance of T is default constructed.
 
+template<typename Finit#if __TBB_ETS_USE_CPP11, typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type #endif>
 enumerable_thread_specific (Finit finit)
 Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
 
enumerable_thread_specific (const T &exemplar)
 Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
 
enumerable_thread_specific (T &&exemplar)
 
+template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type>
 enumerable_thread_specific (P1 &&arg1, P &&...args)
 Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
 
~enumerable_thread_specific ()
 Destructor.
 
+reference local ()
 returns reference to local, discarding exists
 
+reference local (bool &exists)
 Returns reference to calling thread's local copy, creating one if necessary.
 
+size_type size () const
 Get the number of local copies.
 
+bool empty () const
 true if there have been no local copies created
 
+iterator begin ()
 begin iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 begin const iterator
 
+const_iterator end () const
 end const iterator
 
+range_type range (size_t grainsize=1)
 Get range for parallel algorithms.
 
+const_range_type range (size_t grainsize=1) const
 Get const range for parallel algorithms.
 
+void clear ()
 Destroys local copies.
 
enumerable_thread_specific (const enumerable_thread_specific &other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
enumerable_thread_specific (enumerable_thread_specific &&other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
 enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
+enumerable_thread_specificoperator= (const enumerable_thread_specific &other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other)
 
+enumerable_thread_specificoperator= (enumerable_thread_specific &&other)
 
+template<typename Alloc , ets_key_usage_type Cachetype>
enumerable_thread_specificoperator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other)
 
+template<typename combine_func_t >
combine (combine_func_t f_combine)
 
+template<typename combine_func_t >
void combine_each (combine_func_t f_combine)
 
+ + + +

+Friends

+template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 

Detailed Description

-

A stage in a pipeline.

-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::exact_exception_propagation
-
-staticprotected
-
-Initial value:
=
-
#if TBB_USE_CAPTURED_EXCEPTION
-
0x0
-
-

7th bit defines exception propagation mode expected by the application.

- -
-
- -
-
- - - - - -
- - - - -
const unsigned char tbb::filter::filter_is_out_of_order = 0x1<<4
-
-staticprotected
-
+

template<typename T, typename Allocator, ets_key_usage_type ETS_key_type>
+class tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >

-

4th bit distinguishes ordered vs unordered filters.

-

The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +

    The enumerable_thread_specific container.

    +
    enumerable_thread_specific has the following properties:
    +- thread-local copies are lazily created, with default, exemplar or function initialization.
    +- thread-local copies do not move (during lifetime, and excepting clear()) so the address of a copy is invariant.
    +- the contained objects need not have operator=() defined if combine is not used.
    +- enumerable_thread_specific containers may be copy-constructed or assigned.
    +- thread-local copies can be managed by hash-table, or can be accessed via TLS storage for speed.
    +- outside of parallel contexts, the contents of all thread-local copies are accessible by iterator or using combine or combine_each methods
    +
    Segmented iterator
    When the thread-local objects are containers with input_iterators defined, a segmented iterator may be used to iterate over all the elements of all thread-local copies.
    +
    combine and combine_each
      +
    • Both methods are defined for enumerable_thread_specific.
    • +
    • combine() requires the type T have operator=() defined.
    • +
    • neither method modifies the contents of the object (though there is no guarantee that the applied methods do not modify the object.)
    • +
    • Both are evaluated in serial context (the methods are assumed to be non-benign.)
    • +
    +
    +

The documentation for this class was generated from the following file:
    +
  • enumerable_thread_specific.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00070.png b/doc/html/a00070.png index a4923e5f6f12f4fc6c995790a39ddc23f8d14425..fba36b8c91269acd17d4473428f5d5e566a1b3e6 100644 GIT binary patch delta 1219 zcmey$`kGU*Gr-TCmrII^fq{Y7)59f*fq`*50|P?<2Qvc$!`k}O;S&|D>RGBhT^vIy z7~jr)UG!Ot$8~y|)#m&Ed;NuS9Af5}{EcasE8X;pTcX7*`p?lbItIqkTt1VSJfk`; z_)fZ}TrzpdSB|?XnYK>mo>Bd$OSCV`v0X5;tDd%m@!OBvdfW3a{TFBZc_sEQW8H7j zyMJPTitqBgWWFQ+*X?cfIe*{Ye|)z7TUmXm>h@PL{K4P9@%xu#C#_6B^Ok?|wTpdh z)0f8qFBnN{^fWc$5OJI~+xu|C`L_Dr_L9+%b^uDx${ z_fOq=(NA;d^5nj+694fzchcueMN4jP_^I{O&Sksq>b?-+*k{(Zv+k|bEG^ZPotv8b z?KDq)UCsXWpV)SU?L7Z+cJRU2S32VETg`NQnZ0|@ZT~fQbzN^>t>oUAt^DgIE8qQh z^XIjf&zdD(i#@;n;6SzXI8-T$oS;d%4;H(s1MF88?ettYF* zo=)B6d8z$U>XMDiRbtPs+NH|;*WlYnh25)*g5NuN?wVHrVYbS5>D{^|lb1M5s&jgw z=J{H1m*=Ibmb^(@mn1ET{&f!;&&1_lKNi|HSv9T)@{=6L_$Rbb#?IH&rDO@M)g z;ki&9GY11xLow(6dPWuo#sfQB?t}Hm9LmS5|Ed4)vyeof67(>Uo@bm&F>?dy+mpWaO#HJXgIuy5#V_?Hk_LJN#U_ym=>o zQGvX6|4a9JyN<6{uh?GBwR%+2{ORM_am-lbopWoMa*_OF~x=^Yq!KB$s zWL{s(Jv3?koq5+Hm)3^un{)qC#c$RBuiE!snezMJruN{y+4F-c>YG3QI(h3u%zLB2 z%~x+}?(Xmso%8E}e&MEw?Hw;aJ}RESRdRjtl+AV_@#?o5k11YD-gzr*>Gi$RJy&|n z=dQ`k+Amcqd(NiH@btHhd3DV_=h}+G`qZ>^-FNZM_FlDb@$ERd&HsyU-b{X5YroCi zJkE4lzRc?|uF~yh@sn#ie1FZZ7rOE)?2t6)J&8qyS02X36-Xv+6R(jfI&uG7^kzZn z{iR>4l6JqW_?r^E|LnFmM>6hzi~jc3V|$^XmCgNIO4lQo_uN+hej)!|O2tCIbE_UW z&duRJpSPy@Gq1tJQxsX6mjU;mo=|AOeX z`nA=UqxwVD?n|%!Fl**(2DZ{q3M#%N8(Y~Ka;a&;bV^MjKnfKFDgTe~DWM4fHLGGS delta 713 zcmaFO`IS|%Gr-TCmrII^fq{Y7)59f*fq`Kn0|P?`2Qvc$!-e}lohB+;)ibqtx;TbZ zFut98yYH0&55sZ3L;wFDUq1c9l7KxEg2l3*u5wnmez5RXxQmNZ!)Lc4o z=8QUs!PavmMbg;T>esD(o62@3rhPL~cDvm1_1(19`}2+liW_ehm*~1Eyx4tXhuiz~ zm+rmKYK)AlyN!G0KE0UU8)uQNTtEBU!si#wo{RS^n{j6P%&*_yem`+XzW3sVD?j6m zjX!%T8ynA`;HIQBk-?&s+d<=yWUSuBDTgF|oeoZUB+2NatjzLYvLVxllM;+SQhFF_ zjNBOPB$XNF_XsxlALBTno{TDeu6tsKhlW6d!xF&;e<{WvJQDT3%&%trz3_F)maqoK zbH-Vv`*XM087}Kj{a{wLF0S-ie)j1L@^W2)v9SyG3*OrMscz4)^0m?Bx3{`0H+=sw z<>DtRj?^vw%(KNZ!Lgg6?4cQCam z&AIqh%2#vFMHLYr&H8zP^GqA&dmvOoHDIOo=Y)7^rWfcgonpLT#VR(X-jLAROCF(D z(~T!RU3dT1)m5RP{26QO_Q&q_nENB)OnA>Nr@o0gw=N&Qldbt~_4A^&E56>YzkBWF zZLPJNzQ$Nx*_Ky->Qi0%qi>4)?vuVQzB_Z5#8>T{%kpodu0LH@b=>j1 z`|b2%JHx6;?)H*r!*$Oa?eewEDB1Gk|M3<6f1X!9d3!6na*O{S`Ohy7zWBE$_w$>! zlJvD(<>qevc4p_(w+jR7ul@TFo#J^m&p#xzzj9^zzRXaF!`0 -tbb::interface6::filter_t< T, U > Class Template Reference +tbb::filter Class Reference @@ -33,67 +33,111 @@
-
tbb::interface6::filter_t< T, U > Class Template Reference
+
tbb::filter Class Reference
-

Class representing a chain of type-safe pipeline filters. +

A stage in a pipeline. More...

#include <pipeline.h>

+
+Inheritance diagram for tbb::filter:
+
+
+ + +tbb::thread_bound_filter + +
- - - - - - - - - - -

-Public Member Functions

filter_t (const filter_t< T, U > &rhs)
 
-template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
-void operator= (const filter_t< T, U > &rhs)
 
-void clear ()
 
- - - - - - - - - - + + + + + + + + + + + + + + + +

-Friends

-class internal::pipeline_proxy
 
-template<typename T_ , typename U_ , typename Body >
filter_t< T_, U_ > make_filter (tbb::filter::mode, const Body &)
 Create a filter to participate in parallel_pipeline.
 
-template<typename T_ , typename V_ , typename U_ >
filter_t< T_, U_ > operator& (const filter_t< T_, V_ > &, const filter_t< V_, U_ > &)
 

+Static Protected Attributes

+static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
+static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
+static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

Detailed Description

-

template<typename T, typename U>
-class tbb::interface6::filter_t< T, U >

+

A stage in a pipeline.

+

Member Data Documentation

+ +
+
+ + + + + +
+ + + + +
const unsigned char tbb::filter::exact_exception_propagation
+
+staticprotected
+
+Initial value:
=
+
#if TBB_USE_CAPTURED_EXCEPTION
+
0x0
+
+

7th bit defines exception propagation mode expected by the application.

+ +
+
+ +
+
+ + + + + +
+ + + + +
const unsigned char tbb::filter::filter_is_out_of_order = 0x1<<4
+
+staticprotected
+
+ +

4th bit distinguishes ordered vs unordered filters.

+

The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order.

-

Class representing a chain of type-safe pipeline filters.

-

The documentation for this class was generated from the following file:
    +
+
+
The documentation for this class was generated from the following file:
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00071.png b/doc/html/a00071.png new file mode 100644 index 0000000000000000000000000000000000000000..a4923e5f6f12f4fc6c995790a39ddc23f8d14425 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0y~yV3^3jz|g_L%)r2K;r>r21_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=Q;VmIV@L(#+qt*_#>r%JZGF$x<7Y|o#C?n z)DLD=>*7kULCpX&A;D_Mr@Q!ak8;z-@%U)~UI zsocMBfA;tEw~Cv8Z)W=-_EU`UgQqgXd=n-x^;1z@NrYJ!@>+^yiYmC*EZF#3| zC5kV;6&O-p{#QTxrnv7u>FeUVGj~aR)y}yr|2FFS({)wH9nZVpPA|4IteWI*FL^dx z_q@?AU(1Y=EkFJrU*Z4fdF7M0x3Vj@`0tVb{Nmt?e`|6-ziBH;U%ORq?$&Q-c0PT( zFtGmGzYozVo@ev?Lqhv2SEldF428H`9pnME#X(-3N9_0H6z7(P?V8WPz`)??>gTe~ HDWM4fTX17i literal 0 HcmV?d00001 diff --git a/doc/html/a00072.html b/doc/html/a00072.html index eff98550..83a959ad 100644 --- a/doc/html/a00072.html +++ b/doc/html/a00072.html @@ -4,7 +4,7 @@ -tbb::final_scan_tag Struct Reference +tbb::interface6::filter_t< T, U > Class Template Reference @@ -33,38 +33,67 @@
-
tbb::final_scan_tag Struct Reference
+
tbb::interface6::filter_t< T, U > Class Template Reference
-

Used to indicate that the final scan is being performed. +

Class representing a chain of type-safe pipeline filters. More...

-

#include <parallel_scan.h>

+

#include <pipeline.h>

- - - + + + + + + + + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+Public Member Functions

filter_t (const filter_t< T, U > &rhs)
 
+template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
+void operator= (const filter_t< T, U > &rhs)
 
+void clear ()
 
+ + + + + + + + + +

+Friends

+class internal::pipeline_proxy
 
+template<typename T_ , typename U_ , typename Body >
filter_t< T_, U_ > make_filter (tbb::filter::mode, const Body &)
 Create a filter to participate in parallel_pipeline.
 
+template<typename T_ , typename V_ , typename U_ >
filter_t< T_, U_ > operator& (const filter_t< T_, V_ > &, const filter_t< V_, U_ > &)
 

Detailed Description

-

Used to indicate that the final scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • +

    template<typename T, typename U>
    +class tbb::interface6::filter_t< T, U >

    + +

    Class representing a chain of type-safe pipeline filters.

    +

    The documentation for this class was generated from the following file:
      +
    • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00073.html b/doc/html/a00073.html index 4fdc284b..9a70b906 100644 --- a/doc/html/a00073.html +++ b/doc/html/a00073.html @@ -4,7 +4,7 @@ -tbb::interface6::fixed_pool Class Reference +tbb::final_scan_tag Struct Reference @@ -33,44 +33,38 @@
-
tbb::interface6::fixed_pool Class Reference
+
tbb::final_scan_tag Struct Reference
-
-Inheritance diagram for tbb::interface6::fixed_pool:
-
-
- - - -
+ +

Used to indicate that the final scan is being performed. + More...

+ +

#include <parallel_scan.h>

- - - - - - - + + +

-Public Member Functions

fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this class was generated from the following file:
    -
  • memory_pool.h
  • +

    Detailed Description

    +

    Used to indicate that the final scan is being performed.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_scan.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00074.html b/doc/html/a00074.html index 6dd164f0..6fa2a14f 100644 --- a/doc/html/a00074.html +++ b/doc/html/a00074.html @@ -4,7 +4,7 @@ -tbb::interface6::flattened2d< Container > Class Template Reference +tbb::interface6::fixed_pool Class Reference @@ -33,90 +33,44 @@
-
tbb::interface6::flattened2d< Container > Class Template Reference
+
tbb::interface6::fixed_pool Class Reference
+
+Inheritance diagram for tbb::interface6::fixed_pool:
+
+
+ + + +
- - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef conval_type::size_type size_type
 Basic types.
 
-typedef
-conval_type::difference_type 
difference_type
 
-typedef conval_type::allocator_type allocator_type
 
-typedef conval_type::value_type value_type
 
-typedef conval_type::reference reference
 
-typedef
-conval_type::const_reference 
const_reference
 
-typedef conval_type::pointer pointer
 
-typedef conval_type::const_pointer const_pointer
 
-typedef
-internal::segmented_iterator
-< Container, value_type > 
iterator
 
-typedef
-internal::segmented_iterator
-< Container, const value_type > 
const_iterator
 
- - - - - - - - - - - - - - + + + + + +

Public Member Functions

flattened2d (const Container &c, typename Container::const_iterator b, typename Container::const_iterator e)
 
flattened2d (const Container &c)
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-size_type size () const
 
fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00073.png b/doc/html/a00074.png similarity index 100% rename from doc/html/a00073.png rename to doc/html/a00074.png diff --git a/doc/html/a00075.html b/doc/html/a00075.html index 229cd82d..d0811631 100644 --- a/doc/html/a00075.html +++ b/doc/html/a00075.html @@ -4,7 +4,7 @@ -tbb::interface6::flow_control Class Reference +tbb::interface6::flattened2d< Container > Class Template Reference @@ -33,46 +33,90 @@
-
tbb::interface6::flow_control Class Reference
+
tbb::interface6::flattened2d< Container > Class Template Reference
- -

input_filter control to signal end-of-input for parallel_pipeline - More...

- -

#include <pipeline.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef conval_type::size_type size_type
 Basic types.
 
+typedef
+conval_type::difference_type 
difference_type
 
+typedef conval_type::allocator_type allocator_type
 
+typedef conval_type::value_type value_type
 
+typedef conval_type::reference reference
 
+typedef
+conval_type::const_reference 
const_reference
 
+typedef conval_type::pointer pointer
 
+typedef conval_type::const_pointer const_pointer
 
+typedef
+internal::segmented_iterator
+< Container, value_type > 
iterator
 
+typedef
+internal::segmented_iterator
+< Container, const value_type > 
const_iterator
 
- - -

Public Member Functions

-void stop ()
 
- - - - + + + + + + + + + + + + + +

-Friends

-template<typename T , typename U , typename Body >
class internal::concrete_filter
 
flattened2d (const Container &c, typename Container::const_iterator b, typename Container::const_iterator e)
 
flattened2d (const Container &c)
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+size_type size () const
 
-

Detailed Description

-

input_filter control to signal end-of-input for parallel_pipeline

-

The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +
    The documentation for this class was generated from the following file:
      +
    • enumerable_thread_specific.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00076.html b/doc/html/a00076.html index 41a87907..6f474de0 100644 --- a/doc/html/a00076.html +++ b/doc/html/a00076.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::interface6::flow_control Class Reference @@ -33,138 +33,46 @@
-
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::interface6::flow_control Class Reference
-

Implements a function node that supports Input -> Output. +

input_filter control to signal end-of-input for parallel_pipeline More...

-

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
-
-
- - -tbb::flow::interface8::graph_node - -
+

#include <pipeline.h>

- - - - - - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef Output output_type
 
-typedef sender< input_type > predecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::function_input
-< input_type, output_type,
-Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 
-typedef
-internal::function_output
-< output_type > 
fOutput_type
 
- - - - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - + +

-Protected Member Functions

-internal::broadcast_cache
-< output_type > & 
successors ()
 
-void reset_node (reset_flags f)
 
+void stop ()
 
- - - - - - - - - -

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+template<typename T , typename U , typename Body >
class internal::concrete_filter
 

Detailed Description

-

template<typename Input, typename Output = continue_msg, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >

- -

Implements a function node that supports Input -> Output.

+

input_filter control to signal end-of-input for parallel_pipeline


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00077.html b/doc/html/a00077.html index f099a223..ae3c9383 100644 --- a/doc/html/a00077.html +++ b/doc/html/a00077.html @@ -4,7 +4,7 @@ -tbb::interface9::global_control Class Reference +tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,47 +33,146 @@
-
tbb::interface9::global_control Class Reference
+
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
+ +

Implements a function node that supports Input -> Output. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
+
+
+ + +tbb::flow::interface8::graph_node + +
- - + + + + + + + + + + + + + + + + + +

Public Types

enum  parameter { max_allowed_parallelism, -thread_stack_size, -parameter_max - }
 
+typedef Input input_type
 
+typedef Output output_type
 
+typedef sender< input_type > predecessor_type
 
+typedef receiver< output_type > successor_type
 
+typedef
+internal::function_input
+< input_type, output_type,
+Allocator > 
fInput_type
 
+typedef
+internal::function_input_queue
+< input_type, Allocator > 
input_queue_type
 
+typedef
+internal::function_output
+< output_type > 
fOutput_type
 
+typedef
+fInput_type::predecessor_list_type 
predecessor_list_type
 
+typedef
+fOutput_type::successor_list_type 
successor_list_type
 
- - + + + + + + + + + + + + + +

Public Member Functions

global_control (parameter p, size_t value)
 
+template<typename Body >
 function_node (graph &g, size_t concurrency, Body body)
 Constructor.
 
function_node (const function_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - + + + + + +

-Static Public Member Functions

-static size_t active_value (parameter p)
 

+Protected Member Functions

+internal::broadcast_cache
+< output_type > & 
successors ()
 
+void reset_node (reset_flags f)
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
-
The documentation for this class was generated from the following file:
    -
  • global_control.h
  • +

    Detailed Description

    +

    template<typename Input, typename Output = continue_msg, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
    +class tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >

    + +

    Implements a function node that supports Input -> Output.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00076.png b/doc/html/a00077.png similarity index 100% rename from doc/html/a00076.png rename to doc/html/a00077.png diff --git a/doc/html/a00078.html b/doc/html/a00078.html index aea909df..038f29ab 100644 --- a/doc/html/a00078.html +++ b/doc/html/a00078.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph Class Reference +tbb::interface9::global_control Class Reference @@ -33,325 +33,47 @@
-
tbb::flow::interface8::graph Class Reference
+
tbb::interface9::global_control Class Reference
- -

The graph class. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::graph:
-
-
- - -tbb::flow::interface8::opencl_graph - -
- - - - + +

Public Types

-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
enum  parameter { max_allowed_parallelism, +thread_stack_size, +parameter_max + }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Public Member Functions

graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
-void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
-task * root_task ()
 Returns the root task of the graph.
 
-void set_active (bool a=true)
 
-bool is_active ()
 
-void add_task_to_reset_list (task *tp)
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-bool is_cancelled ()
 return status of graph execution
 
-bool exception_thrown ()
 
-void reset (reset_flags f=rf_reset_protocol)
 
global_control (parameter p, size_t value)
 
- - - - - - - - - + + +

-Friends

-class graph_node
 
-template<typename C , typename N >
class graph_iterator
 
-template<typename Input , typename Output , typename Policy , typename Allocator >
class async_node
 

+Static Public Member Functions

+static size_t active_value (parameter p)
 
-

Detailed Description

-

The graph class.

-

This class serves as a handle to the graph

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::flow::interface8::graph::~graph ()
-
-inline
-
- -

Destroys the graph.

-

Calls wait_for_all, then destroys the root task and context.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::decrement_wait_count ()
-
-inline
-
- -

Deregisters an external entity that may have interacted with the graph.

-

The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::increment_wait_count ()
-
-inline
-
- -

Used to register that an external entity may still interact with the graph.

-

The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.

- -
-
- -
-
-
-template<typename Receiver , typename Body >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::flow::interface8::graph::run (Receiver & r,
Body body 
)
-
-inline
-
- -

Spawns a task that runs a body and puts its output to a specific receiver.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
-
-template<typename Body >
- - - - - -
- - - - - - - - -
void tbb::flow::interface8::graph::run (Body body)
-
-inline
-
- -

Spawns a task that runs a function object.

-

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::flow::interface8::graph::wait_for_all ()
-
-inline
-
- -

Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.

-

The waiting thread will go off and steal work while it is block in the wait_for_all.

- -
-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00079.html b/doc/html/a00079.html index f835f746..ab4d98ae 100644 --- a/doc/html/a00079.html +++ b/doc/html/a00079.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference +tbb::flow::interface8::graph Class Reference @@ -33,96 +33,325 @@
-
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
+
tbb::flow::interface8::graph Class Reference
+ +

The graph class. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::graph:
+
+
+ + +tbb::flow::interface8::opencl_graph + +
- - - - - - - - - - - - + + + +

Public Types

-typedef size_t size_type
 
-typedef GraphNodeType value_type
 
-typedef GraphNodeType * pointer
 
-typedef GraphNodeType & reference
 
-typedef const GraphNodeType & const_reference
 
-typedef std::forward_iterator_tag iterator_category
 
+typedef graph_iterator< graph,
+graph_node
iterator
 
+typedef graph_iterator< const
+graph, const graph_node
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

graph_iterator ()
 Default constructor.
 
graph_iterator (const graph_iterator &other)
 Copy constructor.
 
-graph_iteratoroperator= (const graph_iterator &other)
 Assignment.
 
-reference operator* () const
 Dereference.
 
-pointer operator-> () const
 Dereference.
 
-bool operator== (const graph_iterator &other) const
 Equality.
 
-bool operator!= (const graph_iterator &other) const
 Inequality.
 
-graph_iteratoroperator++ ()
 Pre-increment.
 
-graph_iterator operator++ (int)
 Post-increment.
 
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
+void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
+task * root_task ()
 Returns the root task of the graph.
 
+void set_active (bool a=true)
 
+bool is_active ()
 
+void add_task_to_reset_list (task *tp)
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+bool is_cancelled ()
 return status of graph execution
 
+bool exception_thrown ()
 
+void reset (reset_flags f=rf_reset_protocol)
 
- - + + + + + +

Friends

-class graph
 
class graph_node
 
+template<typename C , typename N >
class graph_iterator
 
+template<typename Input , typename Output , typename Policy , typename Allocator >
class async_node
 
+

Detailed Description

+

The graph class.

+

This class serves as a handle to the graph

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
tbb::flow::interface8::graph::~graph ()
+
+inline
+
+ +

Destroys the graph.

+

Calls wait_for_all, then destroys the root task and context.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::decrement_wait_count ()
+
+inline
+
+ +

Deregisters an external entity that may have interacted with the graph.

+

The graph will not return from wait_for_all until all the number of decrement_wait_count calls matches the number of increment_wait_count calls.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::increment_wait_count ()
+
+inline
+
+ +

Used to register that an external entity may still interact with the graph.

+

The graph will not return from wait_for_all until a matching number of decrement_wait_count calls is made.

+ +
+
+ +
+
+
+template<typename Receiver , typename Body >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::flow::interface8::graph::run (Receiver & r,
Body body 
)
+
+inline
+
+ +

Spawns a task that runs a body and puts its output to a specific receiver.

+

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

+ +
+
+ +
+
+
+template<typename Body >
+ + + + + +
+ + + + + + + + +
void tbb::flow::interface8::graph::run (Body body)
+
+inline
+
+ +

Spawns a task that runs a function object.

+

The task is spawned as a child of the graph. This is useful for running tasks that need to block a wait_for_all() on the graph. For example a one-off source.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::flow::interface8::graph::wait_for_all ()
+
+inline
+
+ +

Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls.

+

The waiting thread will go off and steal work while it is block in the wait_for_all.

+ +
+

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00078.png b/doc/html/a00079.png similarity index 100% rename from doc/html/a00078.png rename to doc/html/a00079.png diff --git a/doc/html/a00080.html b/doc/html/a00080.html index 4fd53a40..2960e133 100644 --- a/doc/html/a00080.html +++ b/doc/html/a00080.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph_node Class Reference +tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference @@ -33,98 +33,96 @@
-
tbb::flow::interface8::graph_node Class Referenceabstract
+
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
- -

The base of all graph nodes. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::graph_node:
-
-
- - -tbb::flow::interface8::multifunction_node< indexer_node_output_type, kernel_input_tuple > -tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > -tbb::flow::interface8::multifunction_node< kernel_input_tuple, output_tuple > -tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > -tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > -tbb::flow::interface8::continue_node< Output > -tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::source_node< Output > - -
+ + + + + + + + + + + + + +

+Public Types

+typedef size_t size_type
 
+typedef GraphNodeType value_type
 
+typedef GraphNodeType * pointer
 
+typedef GraphNodeType & reference
 
+typedef const GraphNodeType & const_reference
 
+typedef std::forward_iterator_tag iterator_category
 
- - - - - - -

Public Member Functions

graph_node (graph &g)
 
-virtual void set_name (const char *name)=0
 
-virtual void extract ()=0
 
- - - -

-Protected Member Functions

-virtual void reset_node (reset_flags f=rf_reset_protocol)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
graph_iterator ()
 Default constructor.
 
graph_iterator (const graph_iterator &other)
 Copy constructor.
 
+graph_iteratoroperator= (const graph_iterator &other)
 Assignment.
 
+reference operator* () const
 Dereference.
 
+pointer operator-> () const
 Dereference.
 
+bool operator== (const graph_iterator &other) const
 Equality.
 
+bool operator!= (const graph_iterator &other) const
 Inequality.
 
+graph_iteratoroperator++ ()
 Pre-increment.
 
+graph_iterator operator++ (int)
 Post-increment.
 
- - - + +

Friends

class graph
 
-template<typename C , typename N >
class graph_iterator
 
+class graph_node
 
-

Detailed Description

-

The base of all graph nodes.

-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00081.html b/doc/html/a00081.html index 81d303a3..5f8dac20 100644 --- a/doc/html/a00081.html +++ b/doc/html/a00081.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3::id Class Reference +tbb::flow::interface8::graph_node Class Reference @@ -33,64 +33,98 @@
-
tbb::internal::tbb_thread_v3::id Class Reference
+
tbb::flow::interface8::graph_node Class Referenceabstract
+ +

The base of all graph nodes. + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::graph_node:
+
+
+ + +tbb::flow::interface8::multifunction_node< indexer_node_output_type, kernel_input_tuple > +tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator > +tbb::flow::interface8::multifunction_node< kernel_input_tuple, output_tuple > +tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > +tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > +tbb::flow::interface8::continue_node< Output > +tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::source_node< Output > + +
+ + + + + + + +

+Public Member Functions

graph_node (graph &g)
 
+virtual void set_name (const char *name)=0
 
+virtual void extract ()=0
 
+ + + +

+Protected Member Functions

+virtual void reset_node (reset_flags f=rf_reset_protocol)=0
 
+ + + + + + + +

+Protected Attributes

+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + +

Friends

-class tbb_thread_v3
 
-bool operator== (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator!= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator< (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator<= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator> (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-bool operator>= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
-template<class charT , class traits >
std::basic_ostream< charT,
-traits > & 
operator<< (std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
 
-tbb_thread_v3::id
-__TBB_EXPORTED_FUNC 
thread_get_id_v3 ()
 
-size_t tbb_hasher (const tbb_thread_v3::id &id)
 
-id atomic_compare_and_swap (id &location, const id &value, const id &comparand)
 
+class graph
 
+template<typename C , typename N >
class graph_iterator
 
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +

    Detailed Description

    +

    The base of all graph nodes.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00080.png b/doc/html/a00081.png similarity index 100% rename from doc/html/a00080.png rename to doc/html/a00081.png diff --git a/doc/html/a00082.html b/doc/html/a00082.html index 44162f79..2a489d9b 100644 --- a/doc/html/a00082.html +++ b/doc/html/a00082.html @@ -4,7 +4,7 @@ -tbb::improper_lock Class Reference +tbb::internal::tbb_thread_v3::id Class Reference @@ -33,46 +33,64 @@
-
tbb::improper_lock Class Reference
+
tbb::internal::tbb_thread_v3::id Class Reference
- -

Exception for PPL locks. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::improper_lock:
-
-
- - - -
- - - + + + + + + + + + + + + + + + + + + + + + + + +

-Public Member Functions

-const char * what () const throw ()
 

+Friends

+class tbb_thread_v3
 
+bool operator== (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator!= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator< (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator<= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator> (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+bool operator>= (tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
 
+template<class charT , class traits >
std::basic_ostream< charT,
+traits > & 
operator<< (std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
 
+tbb_thread_v3::id
+__TBB_EXPORTED_FUNC 
thread_get_id_v3 ()
 
+size_t tbb_hasher (const tbb_thread_v3::id &id)
 
+id atomic_compare_and_swap (id &location, const id &value, const id &comparand)
 
-

Detailed Description

-

Exception for PPL locks.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this class was generated from the following file:
      +
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00082.png b/doc/html/a00082.png deleted file mode 100644 index 7f4f5571e678cab77f93f0ecf6ecf96ba1437811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmeAS@N?(olHy`uVBq!ia0y~yU?^r_U+~+qe z-z=}Zvr$%m+OamX+WG5Zd?tOfELqn0>7n%GKM#{8Z8;s8KI`9|?LqlI?vu(a%lhWu znwj)=&OVE~#dUFIp0}PpxpmI8pVSZeI{o?q~9_AXv^2jxSY7upJ#wkXbF$mLLXkVbIjK`v&y zFtvbb%frCu7oOzX@fS2+?X@g;!m{HCXZkJE!~HeJIj;`}J)V z^QF&i-Cj4p`rMth1=mWmH&{)3RdO`qYVJnUSG!`roe;lWxcK?fy*0awe|EFnc(~nO n{eWzX@B&_b%d=;GePS-Ec6m8>n#2+Y1_lOCS3j3^P6 -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference +tbb::improper_lock Class Reference @@ -33,63 +33,46 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference
+
tbb::improper_lock Class Reference
+ +

Exception for PPL locks. + More...

+ +

#include <tbb_exception.h>

-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
+Inheritance diagram for tbb::improper_lock:
- - + +
- - - - - - - -

-Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7, T8, T9 > 
InputTuple
 
-typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7, T8, T9 > 
output_type
 
-typedef
-internal::unfolded_indexer_node
-< InputTuple > 
unfolded_type
 
- - - - - - + +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
-void set_name (const char *name)
 
+const char * what () const throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Detailed Description

    +

    Exception for PPL locks.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00083.png b/doc/html/a00083.png index a2a0edf6e81c46e3918ebb5de3cd145afd263d80..7f4f5571e678cab77f93f0ecf6ecf96ba1437811 100644 GIT binary patch delta 449 zcmaFB^`2R=Gr-TCmrII^fq{Y7)59f*fq|izfq@}_gPDPWL3ZgbpNWcA^^A3%E{-7; zjBn>&oYbtq*%^&b^5bfALi#SdA0Y;kNI!QnU=D5TONb>I=6En+jp?)PCi z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`<-MniV@L(#+qt)ko+$9J z&YnK!|NqBxD{^{v{M&{FHSsi@2++%w7E~hWoJ@db@y~@fn%Xww{>ztLB^M9WS+M3auRV1gH{;i#G zt^cfh@z402rpVU0!4)<0PuAYQ79T42dh6Ql9&^;E{9JwES;=kFuXpGyd`x+^QpPHUWC_t;-vbNBnyh{VuIm2c*pI_$S`iF=$`VWGas!EgGf=j}Buz4LC; zyWHOkD%_Xcz8pF4$z)A;$F9s}FZr`}-7Jt!S#2A9x%SfBjehgk@}?HdSW&KIWhc9R z_LB8es&@LS?~(ovxcuW$xVn;mwFrfP3L9pDV`J4vb~GCzB~$N&hgxy_ua#M zZsDPImp$|E>=E}2f5!K^&^Mf0KQ26LS7gj~o86uLS-Wyi-JO*;>&@A}Q$uVfE1dpl z)&GUvBYtJ3=gC#hx9)8cfA{j-)ZMX>>bt&wnHR@qU*{jMWV4;JrnOhF2PF?QH<>iBvt}~zb6sMP6IsG&qv63^5io)6!vY1~ z2ab+X)KE|}$q$xd8w3t47Dcxu_|p1?rB|$$o?KJApseyNQ^wS;iCTgOLQB>67S;UU ze3EPP+|nnuTuF;^p4n7roiKfWipSuR?4`5E7`Cj6S(ct`@Wb-b?7hC<%*>_DzRJm- zgr!^mMHWhXWj20)b^Ur=Q@7#&z$ei@Kes$xyf5_JuiZ5>uReRZv-pY5>4?7Yng-sT z{!FKyGYAFPZO)aSIs2@Q60eB=#@78lzxHl@Hubg5{<5&&6>oP&zB!XrVt(W0vF%;q zcQ~)D{jho7c8~AY!P_g`m&{I{?r$Gpb9u^Qg`-<6KN;V>ofF%C{od2tjdd5xAMpf9 z?eOK6s3`Y4;(ICFYww*l;d{Nmb)IJ2eJ0@>`QPB>+RWRZ=W-wZ@}KeLo$uczk1rA5 z|LXAj33+DeNC}qnwf}^=|MFK$_6lxWw)=a@-&e=1SG|08IRBk~03x;ikN3TOdj0j% zw@S91Ll(uw-Jm%X>HtG@g2dta{LG~F$Q zk#*wFK85<%r^ma0w%u`j_3fi#tN*aR@!xl2mD7v-;(a-@nr%3P=J&7se&SBZt4;+5 z_F0qIDps(?{|!IO!2WCVlKa~q-97r7`R%r4j5V6rQqo?J -tbb::flow::interface8::indexer_node< T0 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference @@ -33,61 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0 > InputTuple
 
+
+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6, T7, T8, T9 > 
InputTuple
 
typedef internal::tagged_msg
-< size_t, T0 > 
output_type
 
+< size_t, T0, T1, T2, T3, T4,
+T5, T6, T7, T8, T9 > 
output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00084.png b/doc/html/a00084.png index fe6adbe59145b674fba68594acf7bc9395766384..a2a0edf6e81c46e3918ebb5de3cd145afd263d80 100644 GIT binary patch literal 1376 zcmeAS@N?(olHy`uVBq!ia0y~yV0_8Iz!1Q}%)r3FwWxLt0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`<-MniV@L(#+qt)ko+$9J z&YnK!|NqBxD{^{v{M&{FHSsi@2++%w7E~hWoJ@db@y~@fn%Xww{>ztLB^M9WS+M3auRV1gH{;i#G zt^cfh@z402rpVU0!4)<0PuAYQ79T42dh6Ql9&^;E{9JwES;=kFuXpGyd`x+^QpPHUWC_t;-vbNBnyh{VuIm2c*pI_$S`iF=$`VWGas!EgGf=j}Buz4LC; zyWHOkD%_Xcz8pF4$z)A;$F9s}FZr`}-7Jt!S#2A9x%SfBjehgk@}?HdSW&KIWhc9R z_LB8es&@LS?~(ovxcuW$xVn;mwFrfP3L9pDV`J4vb~GCzB~$N&hgxy_ua#M zZsDPImp$|E>=E}2f5!K^&^Mf0KQ26LS7gj~o86uLS-Wyi-JO*;>&@A}Q$uVfE1dpl z)&GUvBYtJ3=gC#hx9)8cfA{j-)ZMX>>bt&wnHR@qU*{jMWV4;JrnOhF2PF?QH<>iBvt}~zb6sMP6IsG&qv63^5io)6!vY1~ z2ab+X)KE|}$q$xd8w3t47Dcxu_|p1?rB|$$o?KJApseyNQ^wS;iCTgOLQB>67S;UU ze3EPP+|nnuTuF;^p4n7roiKfWipSuR?4`5E7`Cj6S(ct`@Wb-b?7hC<%*>_DzRJm- zgr!^mMHWhXWj20)b^Ur=Q@7#&z$ei@Kes$xyf5_JuiZ5>uReRZv-pY5>4?7Yng-sT z{!FKyGYAFPZO)aSIs2@Q60eB=#@78lzxHl@Hubg5{<5&&6>oP&zB!XrVt(W0vF%;q zcQ~)D{jho7c8~AY!P_g`m&{I{?r$Gpb9u^Qg`-<6KN;V>ofF%C{od2tjdd5xAMpf9 z?eOK6s3`Y4;(ICFYww*l;d{Nmb)IJ2eJ0@>`QPB>+RWRZ=W-wZ@}KeLo$uczk1rA5 z|LXAj33+DeNC}qnwf}^=|MFK$_6lxWw)=a@-&e=1SG|08IRBk~03x;ikN3TOdj0j% zw@S91Ll(uw-Jm%X>HtG@g2dta{LG~F$Q zk#*wFK85<%r^ma0w%u`j_3fi#tN*aR@!xl2mD7v-;(a-@nr%3P=J&7se&SBZt4;+5 z_F0qIDps(?{|!IO!2WCVlKa~q-97r7`R%r4j5V6rQqo?JyO8qsao%iVvoCbSNn$wM1gTL2wroOLU zzI{^q%cv=nl()ZB%B#;|eZ4+$j?C6`+ogAyzBn$w%kSlc=T8pDg?^s#sCdzN)v~2r zOa1eVU7n~#o{bBU+hM&bIQ{mis3o%}a~fw=)z-$Gnw8nMb8=~U@U;rlW#@W~Z%VM; zkv*YlVyJc|t#|6?#m@>uQ*EOk#fNS-wTwDwbE|+zJP6RLEkg8R9?zI^ws_~W7bnQo4YIT zXMVW8YT^?9z$}%Q>YApLQjqb^m7N_LN=j@D|77+ta5YQ}Vt(-BmzFt0TM+Yu9Wyn} z8H|^*CA14MCuo{7Obeni^>gzT7Z(vhL1h*P#tEnvScVj@uDbSY!Q#`^t0kQC)-t5M z>u=2ea%tO5x7Uj&voYUzE^7K+Ui_E56JP4PkbVAVqv{IZrDw_c|4#b(b8GIWpd0^Q z9Ea=cwbwzQjzxL(x=O&yyHYLUS zqT9l=vz#sM*QD9H=ce8Mn6Xto>sH{Ms5z@6AGNjKW-e8DE}JFy|J$Zz^8>CIz5Za6 zol~D4X{`I_ZRBMB4b~ioGu+u<8T^jD^wm6S*NtyiYhJ9Aj9>B5$Y-(d^^*UKa@beZ zXSB6v?aKZhzvAV~{Xd*;N;S-MHf8v)U%z(N(`9?-Ff!a d<;Vg3ciD@!_)gMoWME)m@O1TaS?83{1OOST%838~ diff --git a/doc/html/a00085.html b/doc/html/a00085.html index 2129ac54..9853d040 100644 --- a/doc/html/a00085.html +++ b/doc/html/a00085.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference +tbb::flow::interface8::indexer_node< T0 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1 > InputTuple
 
+
+typedef tuple< T0 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1 > 
output_type
 
+< size_t, T0 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00085.png b/doc/html/a00085.png index 1e6fd1b95104f945dd6a62486c5896aba465541d..fe6adbe59145b674fba68594acf7bc9395766384 100644 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0y~yV3cBDUyO8qsao%iVvoCbSNn$wM1gTL2wroOLU zzI{^q%cv=nl()ZB%B#;|eZ4+$j?C6`+ogAyzBn$w%kSlc=T8pDg?^s#sCdzN)v~2r zOa1eVU7n~#o{bBU+hM&bIQ{mis3o%}a~fw=)z-$Gnw8nMb8=~U@U;rlW#@W~Z%VM; zkv*YlVyJc|t#|6?#m@>uQ*EOk#fNS-wTwDwbE|+zJP6RLEkg8R9?zI^ws_~W7bnQo4YIT zXMVW8YT^?9z$}%Q>YApLQjqb^m7N_LN=j@D|77+ta5YQ}Vt(-BmzFt0TM+Yu9Wyn} z8H|^*CA14MCuo{7Obeni^>gzT7Z(vhL1h*P#tEnvScVj@uDbSY!Q#`^t0kQC)-t5M z>u=2ea%tO5x7Uj&voYUzE^7K+Ui_E56JP4PkbVAVqv{IZrDw_c|4#b(b8GIWpd0^Q z9Ea=cwbwzQjzxL(x=O&yyHYLUS zqT9l=vz#sM*QD9H=ce8Mn6Xto>sH{Ms5z@6AGNjKW-e8DE}JFy|J$Zz^8>CIz5Za6 zol~D4X{`I_ZRBMB4b~ioGu+u<8T^jD^wm6S*NtyiYhJ9Aj9>B5$Y-(d^^*UKa@beZ zXSB6v?aKZhzvAV~{Xd*;N;S-MHf8v)U%z(N(`9?-Ff!a d<;Vg3ciD@!_)gMoWME)m@O1TaS?83{1OOST%838~ delta 991 zcmcc1-o>HV8Q|y6%O%Cdz`(%k>ERN@z`$t8z`zi|!OXzG;FhvUaH67h{Y+06$B+uf zw{!27EjHj`b2tBc?|-j(D}#_(!p6*Pw_m9g3+4RGpYS&N%o#4@&5j11S}K_xMrxjt zr)H?6Y9vpZvarW9sO{@d{7ZO(6b&Bx~3-X~5cHtyT#7n?rE?NZ)>!;MvG)`oL8`1F;|m6a$yzQFs# znvL~qPu@HsUO@5p9`q_=T zhw)RAC+S==6!Twr#PXWuq&t=MQwaN>A@6pEh*K?AN}%;@P@8 z(z|zQi-$Ltr&Ovp(&psBiW#5_SK6c*E>gJvQr>>KfyD#mN)v1u}-=2#J?7kz# z_^&$c%~VS>|MH)apY#6Syte1+d*$hqZd|&W$GWkyP_u3k{1d+;H91`{tBE z>%Cpu@7@mkGI_)0^9Lt522GyCeo=PwOd0FaZ%2>aso%Kkjcj^OwUyzvchA=z-MUdT zZ~KQc>ud_YaV39#u5tX2P3&ol>z`#_e=DDweD=`&smUJ;Uc6mq(Rn$xa#w4W<}3fx z1sQVEzqdcX@o(Lo`TG-v&Ypen-mJWP_oKU0Z_2zsUjFpnjTf;uzkRs0Tj)W1QT^5b zYd5|u*nh);q4rwH#~I!Q9%C??V%Wfw%A?>c$$TQ<7=w{b&&-*kX=%xS7)>s1 W2t6H;l*GWmz~JfX=d#Wzp$Pz7I^tje diff --git a/doc/html/a00086.html b/doc/html/a00086.html index 40880fba..2ae9fb40 100644 --- a/doc/html/a00086.html +++ b/doc/html/a00086.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2 > InputTuple
 
+
+typedef tuple< T0, T1 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2 > 
output_type
 
+< size_t, T0, T1 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00086.png b/doc/html/a00086.png index 7bee1864424f35228b49cd77ed691c4dc9b3267e..1e6fd1b95104f945dd6a62486c5896aba465541d 100644 GIT binary patch delta 991 zcmcc4(Z!+I8Q|y6%O%Cdz`(%k>ERN@z`$t8z`zi|!OXzG;FhvUaH67h{Y+06$B+uf zw{!27EjHj`b2tBc?|-j(D}#_(!p6*Pw_m9g3+4RGpYS&N%o#4@&5j11S}K_xMrxjt zr)H?6Y9vpZvarW9sO{@d{7ZO(6b&Bx~3-X~5cHtyT#7n?rE?NZ)>!;MvG)`oL8`1F;|m6a$yzQFs# znvL~qPu@HsUO@5p9`q_=T zhw)RAC+S==6!Twr#PXWuq&t=MQwaN>A@6pEh*K?AN}%;@P@8 z(z|zQi-$Ltr&Ovp(&psBiW#5_SK6c*E>gJvQr>>KfyD#mN)v1u}-=2#J?7kz# z_^&$c%~VS>|MH)apY#6Syte1+d*$hqZd|&W$GWkyP_u3k{1d+;H91`{tBE z>%Cpu@7@mkGI_)0^9Lt522GyCeo=PwOd0FaZ%2>aso%Kkjcj^OwUyzvchA=z-MUdT zZ~KQc>ud_YaV39#u5tX2P3&ol>z`#_e=DDweD=`&smUJ;Uc6mq(Rn$xa#w4W<}3fx z1sQVEzqdcX@o(Lo`TG-v&Ypen-mJWP_oKU0Z_2zsUjFpnjTf;uzkRs0Tj)W1QT^5b zYd5|u*nh);q4rwH#~I!Q9%C??V%Wfw%A?>c$$TQ<7=w{b&&-*kX=%xS7)>s1 W2t6H;l*GWmz~JfX=d#Wzp$Py;-r`#T literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yVDw;MUDhDs|9|}YMwNhy#!aETEVbsY-ATa@RnvFu5 zo}5!WJiQWxcmB39v98Xz-JG~*@kRZ;M|WJlAl0TD{^qmyl{eMCi&R&tpE#kdH2azG z#7VQx_jkwKW>5G2tdJw5>)B_f{B~yeTj`1|I%~5hd)wS!-dRy|Q~Fx`T^qZs*nH!U z*A~v*FMUh3KR#HdOsVM0)%hl#T?I<<(ox&Ca%4uO7RldV-u)qV&xyz>^LJ=U9ZuNY zu4@z(EKnBuL~o02?b#K2%I$xDXkI^4C@I;^GmrH%&%0fm%Y|JJHP29Zv&bVpp!vP< zMBk^mekYeJeb;mU9s4{=z0&)M@w)HET{4H)b;`Ut@u7C!#J44N6X&Nq+3?I@=b_H? zMnyIo6WzW^?^oK?{YODrb*8$&OYJ-CrbZg&XGM#rO>8&46#jLMRAtqMed7GBq{65Qt`OFTbq8Z`|OSmmV>?>!e7v;*USDW%5QoG2Y=&rQiz5dT$x7+De zd$qnVo%#Oemc3_E8}I9`FPwJ&t^M{}YkyDsep}~!`t6FdY=0(Ht1tK~)5&x0e7pW< z6Xp2b5&v@|cm2H``sV!a6I+jd&zbj*ci-;rx5u)%+W4~{)jUz1==+bsr}BBm?y0U; z--Hb8I)cq4(v6lDo2z_Ku@a~YT%x~%LHJ+#L|@f-{siTs|D_5=+FaHB#S_o($a@^_ z@~!mW0zS2ln!jg_HpSLmzMTKiLizB=b4Eosey~oAeX_RaORKuoq`KU8_un66+&J%s zC52CTu4J73+RFqvG)%58tva&J@Ng$TaP*XQr6dM zsxqj{bg}$c>Qh!5dn{i2(@dTB%eWhq?>@GlJ&|E0mS}vScqXz~y<67r SAH%@Fz~JfX=d#Wzp$Pyby6vn0 diff --git a/doc/html/a00087.html b/doc/html/a00087.html index cda0f8af..eb032f46 100644 --- a/doc/html/a00087.html +++ b/doc/html/a00087.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3 > InputTuple
 
+
+typedef tuple< T0, T1, T2 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3 > 
output_type
 
+< size_t, T0, T1, T2 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00087.png b/doc/html/a00087.png index bf8a0899389f6be8da78b9f66393bda75f1edd44..7bee1864424f35228b49cd77ed691c4dc9b3267e 100644 GIT binary patch literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yVDw;MUDhDs|9|}YMwNhy#!aETEVbsY-ATa@RnvFu5 zo}5!WJiQWxcmB39v98Xz-JG~*@kRZ;M|WJlAl0TD{^qmyl{eMCi&R&tpE#kdH2azG z#7VQx_jkwKW>5G2tdJw5>)B_f{B~yeTj`1|I%~5hd)wS!-dRy|Q~Fx`T^qZs*nH!U z*A~v*FMUh3KR#HdOsVM0)%hl#T?I<<(ox&Ca%4uO7RldV-u)qV&xyz>^LJ=U9ZuNY zu4@z(EKnBuL~o02?b#K2%I$xDXkI^4C@I;^GmrH%&%0fm%Y|JJHP29Zv&bVpp!vP< zMBk^mekYeJeb;mU9s4{=z0&)M@w)HET{4H)b;`Ut@u7C!#J44N6X&Nq+3?I@=b_H? zMnyIo6WzW^?^oK?{YODrb*8$&OYJ-CrbZg&XGM#rO>8&46#jLMRAtqMed7GBq{65Qt`OFTbq8Z`|OSmmV>?>!e7v;*USDW%5QoG2Y=&rQiz5dT$x7+De zd$qnVo%#Oemc3_E8}I9`FPwJ&t^M{}YkyDsep}~!`t6FdY=0(Ht1tK~)5&x0e7pW< z6Xp2b5&v@|cm2H``sV!a6I+jd&zbj*ci-;rx5u)%+W4~{)jUz1==+bsr}BBm?y0U; z--Hb8I)cq4(v6lDo2z_Ku@a~YT%x~%LHJ+#L|@f-{siTs|D_5=+FaHB#S_o($a@^_ z@~!mW0zS2ln!jg_HpSLmzMTKiLizB=b4Eosey~oAeX_RaORKuoq`KU8_un66+&J%s zC52CTu4J73+RFqvG)%58tva&J@Ng$TaP*XQr6dM zsxqj{bg}$c>Qh!5dn{i2(@dTB%eWhq?>@GlJ&|E0mS}vScqXz~y<67r SAH%@Fz~JfX=d#Wzp$Pyby6vn0 literal 1162 zcmeAS@N?(olHy`uVBq!ia0y~yV2o#AUEz~ zKHfF-Z+Cy`$sl*Z017?(3{@zp0^W-+$Qkw!eS$Q?ByofzYQf*=~Q#nYY-I z_s+Xdx!X5ucYhUJ*R=D`+i5S;gFc;k`hLdy1-Sytoo}(&@R;0cZ#;kCt=fI=Ok0(j z1KYK}T@9?B`u<*O+rlGSj(Q(s|3u~3-oN)&?*8LP@80iy_t&ESb>xqo`zP(c8`QSa zf~RKM{=XaLpXKlVU|pjx`Z4@d_@qkSAHQDxbowhh<(lo$|9&+;w)@q4)_wX{ z?*Ec1|N4+~LB+Iw-s;fcJF5HZwieC_=L~1fJ3m1>=WiBY`pjU{iOeRo3dgtK?Om6% z(^2K6gLJ&-FV(74SN47DXR5w*xPPqNv+?rVe_rj@B8xu$`}t?;5|6)b`zC$aukq6> zXwIbdDn~V8jF$(mpV3K86H{!Mzl6U*#Gzx7zQYVVJ0SyyDIk_yg|LCcgh~1iOD5?# z%$cN5TU;j-Z@hWR%*YOd1`&q_blaBI$opomE}wO`tJ?YXrx&ajUVok@TfS@S_rrcq z&B_mIK@t&z`>w;=XY)C%KbE>nnZ5V@E5&@_i-rq2j_Ql8-C3cl%BI~vhY{7edk$s z?$=$uegE7G_wH4Rb-$0?`i|}X-JfQULqm`64z0WQS?vBt%{7~O9|VNIYM%X}<5Haa zueQP_{$rLLFDI0}tb1U4qkVRb{*td#3JmVQ`lPXZ$D`f#zCZG&roJycSN<_utgbzu zJv~BRt>yl~??0_i-LDD__20j#@*m%E>(lr19-9A%(|QztIzIl2+w)zWW~=!xAGY!O zzw6ZQr1~@8=YIXpbYK7KeO2S@qI@f+p026k*5&@Hce*@v-G8^~H^i3q1od8*>op4d z%lgKj@m|k^AKP|cysB)@aiDWq4P)I(zOcWuBp^*a)>kIk4DW?-yW=y)rz`(%Z>FVdQ&MBb@08c|sZvX%Q diff --git a/doc/html/a00088.html b/doc/html/a00088.html index 8ad0a3b9..090890fb 100644 --- a/doc/html/a00088.html +++ b/doc/html/a00088.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference @@ -33,61 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
+
+typedef tuple< T0, T1, T2, T3 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4 > 
output_type
 
+< size_t, T0, T1, T2, T3 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00088.png b/doc/html/a00088.png index e8c28bfb8705c626663c703b62a74d2877961c3d..bf8a0899389f6be8da78b9f66393bda75f1edd44 100644 GIT binary patch literal 1162 zcmeAS@N?(olHy`uVBq!ia0y~yV2o#AUEz~ zKHfF-Z+Cy`$sl*Z017?(3{@zp0^W-+$Qkw!eS$Q?ByofzYQf*=~Q#nYY-I z_s+Xdx!X5ucYhUJ*R=D`+i5S;gFc;k`hLdy1-Sytoo}(&@R;0cZ#;kCt=fI=Ok0(j z1KYK}T@9?B`u<*O+rlGSj(Q(s|3u~3-oN)&?*8LP@80iy_t&ESb>xqo`zP(c8`QSa zf~RKM{=XaLpXKlVU|pjx`Z4@d_@qkSAHQDxbowhh<(lo$|9&+;w)@q4)_wX{ z?*Ec1|N4+~LB+Iw-s;fcJF5HZwieC_=L~1fJ3m1>=WiBY`pjU{iOeRo3dgtK?Om6% z(^2K6gLJ&-FV(74SN47DXR5w*xPPqNv+?rVe_rj@B8xu$`}t?;5|6)b`zC$aukq6> zXwIbdDn~V8jF$(mpV3K86H{!Mzl6U*#Gzx7zQYVVJ0SyyDIk_yg|LCcgh~1iOD5?# z%$cN5TU;j-Z@hWR%*YOd1`&q_blaBI$opomE}wO`tJ?YXrx&ajUVok@TfS@S_rrcq z&B_mIK@t&z`>w;=XY)C%KbE>nnZ5V@E5&@_i-rq2j_Ql8-C3cl%BI~vhY{7edk$s z?$=$uegE7G_wH4Rb-$0?`i|}X-JfQULqm`64z0WQS?vBt%{7~O9|VNIYM%X}<5Haa zueQP_{$rLLFDI0}tb1U4qkVRb{*td#3JmVQ`lPXZ$D`f#zCZG&roJycSN<_utgbzu zJv~BRt>yl~??0_i-LDD__20j#@*m%E>(lr19-9A%(|QztIzIl2+w)zWW~=!xAGY!O zzw6ZQr1~@8=YIXpbYK7KeO2S@qI@f+p026k*5&@Hce*@v-G8^~H^i3q1od8*>op4d z%lgKj@m|k^AKP|cysB)@aiDWq4P)I(zOcWuBp^*a)>kIk4DW?-yW=y)rz`(%Z>FVdQ&MBb@08c|sZvX%Q literal 1209 zcmeAS@N?(olHy`uVBq!ia0y~yU@T)`U-%XY09J}7OG{QT;WO6mlVJm zZ*TDbTK?N0OQ+gd_`S}r#kTLuv)06J-}L9KeO221*QcsQo)pE-&8cs?J41hiw~@ca zx3l*I;?DLxUiv*_uCIvayNx&F(#m)DPEOsLr#Ah{zW$Fh>SWs9u9iApoqO7V`MvC$ zAE6o3v+De6w`V6!dJ{bVQTUm%y_2q-N{pYj-znmw`zx& ztXI69x7V`t&b*}crBszRlokm^ZUo6jOG%(XV1P{ z++MBmtW^E>?93A3?baVcw{73Lc=lUg-HL|4*H{hTZ`Gf)K5h4sM^_KN)BfCh>z?N2 zXG(ideYhbUM{Ap+QU7z}0if@b!y>)?IaIwu&$H2gn(<81BLsZ7m(e^?#dH+}iy -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference @@ -33,63 +33,61 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5 > 
InputTuple
 
+
+typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5 > 
output_type
 
+< size_t, T0, T1, T2, T3, T4 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00089.png b/doc/html/a00089.png index e3d1565f5b3d6592f5b6b2e58d9455d919b5e21b..e8c28bfb8705c626663c703b62a74d2877961c3d 100644 GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0y~yU@T)`U-%XY09J}7OG{QT;WO6mlVJm zZ*TDbTK?N0OQ+gd_`S}r#kTLuv)06J-}L9KeO221*QcsQo)pE-&8cs?J41hiw~@ca zx3l*I;?DLxUiv*_uCIvayNx&F(#m)DPEOsLr#Ah{zW$Fh>SWs9u9iApoqO7V`MvC$ zAE6o3v+De6w`V6!dJ{bVQTUm%y_2q-N{pYj-znmw`zx& ztXI69x7V`t&b*}crBszRlokm^ZUo6jOG%(XV1P{ z++MBmtW^E>?93A3?baVcw{73Lc=lUg-HL|4*H{hTZ`Gf)K5h4sM^_KN)BfCh>z?N2 zXG(ideYhbUM{Ap+QU7z}0if@b!y>)?IaIwu&$H2gn(<81BLsZ7m(e^?#dH+}iy8bJ>sQ{oi}g#7yVCy_jhRc zHDmR2r|n|YRWsK(=GiPvY}3#1FgjmvzkFkVdE@=I-4%1A&hOj&^^)MEC5<_Gdmi8B z3lY@+f7UUU>xb#FM}O61?r-~>_3dNW@5-~sN*nL)FMOM~!2a@$H&zoSy}A7Ck9*tO z?{>>Kx}|oX6$>?9rS$!WX>V)%qs%jF{v2DzR(7s0A?)mbkJ|R$dn4If8T@MQmvzUlG0T0vlQC!Z^|^Om_?ho{cDQ$a z(PDjv!*^bAonn^SKI?oDtDgRWxpyXn>|ryhxw`+NIa|H%fiLe?-?4Zrz3*~u*!>-@ z$=6cXeC^%0aaqOe3h#5b*WalR@mRJixA5+s8|$8}uH3qc_4|z-XZ@eA*;_mH@T1c* zDMBael-(DnUKhPktgh>vuInirDmCegbIJ2=wQcd1I-bIRjis_p_inuTmeqfe0Qa%= z=XpK57SH!^p7hUOmABrrYta%#&%h}rDwa8aNX6ZU(a-Y-o$_1v!U2_;YC@w1>wm>r}B;Je^#1&`&hTR zbVv8~m0#c7+7f5w#Gr1qcw<9s`Hi^ap>b@l<`uAt$(?flws z%UP;C=vZ4~R_&?B-I+7QGT(XbO;~r$H{*&_`I;TeHg5HQP%-bqi>6|yrleJN1NYoZ3_ljms`(nu#~kxw|I&?NFPFFXb3VTQ sjLpFYYjP0p4f67w8YFS*`)mI1kDvMGM~nG0FfcH9y85}Sb4q9e0O&zIZ2$lO diff --git a/doc/html/a00090.html b/doc/html/a00090.html index 90146895..7e596b4f 100644 --- a/doc/html/a00090.html +++ b/doc/html/a00090.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6 > 
InputTuple
 
+T4, T5 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6 > 
output_type
 
+T5 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00090.png b/doc/html/a00090.png index a26e6ba87462dfe980238cad51f0b932d581d7e3..e3d1565f5b3d6592f5b6b2e58d9455d919b5e21b 100644 GIT binary patch delta 1218 zcmbQj^_o+$Gr-TCmrII^fq{Y7)59f*fq}7?fq@}_gPDPW;nKRB%O)yX*H?MEIEGX( zzMXr!?5+U^tGoWq|NoEMespDveRIQCYSx7+{pTJWCwm&gy);!ry)+qJCN7zxQoDOn zn~H1Tr3p(kyrd?HxOzHITD0Pl#ezAHX8KOEy7<%j^S>8bJ>sQ{oi}g#7yVCy_jhRc zHDmR2r|n|YRWsK(=GiPvY}3#1FgjmvzkFkVdE@=I-4%1A&hOj&^^)MEC5<_Gdmi8B z3lY@+f7UUU>xb#FM}O61?r-~>_3dNW@5-~sN*nL)FMOM~!2a@$H&zoSy}A7Ck9*tO z?{>>Kx}|oX6$>?9rS$!WX>V)%qs%jF{v2DzR(7s0A?)mbkJ|R$dn4If8T@MQmvzUlG0T0vlQC!Z^|^Om_?ho{cDQ$a z(PDjv!*^bAonn^SKI?oDtDgRWxpyXn>|ryhxw`+NIa|H%fiLe?-?4Zrz3*~u*!>-@ z$=6cXeC^%0aaqOe3h#5b*WalR@mRJixA5+s8|$8}uH3qc_4|z-XZ@eA*;_mH@T1c* zDMBael-(DnUKhPktgh>vuInirDmCegbIJ2=wQcd1I-bIRjis_p_inuTmeqfe0Qa%= z=XpK57SH!^p7hUOmABrrYta%#&%h}rDwa8aNX6ZU(a-Y-o$_1v!U2_;YC@w1>wm>r}B;Je^#1&`&hTR zbVv8~m0#c7+7f5w#Gr1qcw<9s`Hi^ap>b@l<`uAt$(?flws z%UP;C=vZ4~R_&?B-I+7QGT(XbO;~r$H{*&_`I;TeHg5HQP%-bqi>6|yrleJN1NYoZ3_ljms`(nu#~kxw|I&?NFPFFXb3VTQ sjLpFYYjP0p4f67w8YFS*`)mI1kDvMGM~nG0FfcH9y85}Sb4q9e06h3TNdN!< literal 1300 zcmeAS@N?(olHy`uVBq!ia0y~yU|hn$z!1Q}%)r2q`0V2z1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=%VJL#$B+ufw{vgKx?{z` z);;^--}^tlR7`Z7J^kfm16iT}^Ovi(q<9_BRZ`LvoVdd&Bs6%{s=%oeLPDFh6<4le z3wH_%!pKPUb!Zksf#|EfByHP?TfhS;#lLz|GM>G+WxLGemzn6d8)kL z<0XjK7{e_jvWHZ!5KrOilc~ce=vL zRenzt)*ig&w2k$4&#D#Ge`cLJr2lb(TUcFku!nTIdrx=jdmq`&%O_MN$}c&?5mdeL zjp~}aH-&fmWFgB`rSz`09qz3%ur`z3+&{_u>rd(0hJ8k2g@3+i%vSel-{ns7svG%61$K$r^RxeFv3NOjq(VRKQ^Xj~3rRtMs z1(!@-wEJVE+SbrDvps!7s~BE}B}eBS`&u2?`rJ)z<*JHOg`a&zi`7eSosOHQKV^5O z|EJh5v9>S8mISizW_ao5ANAU0?q2VQ8|3%@*LdU8dFRmH%8k8O%Da+6yMAsgoO||M zUl0j zt<29Ut3Ehc;}4hH{~EQGtJ$av&hcVG}x$C?%vfw)c%g&jgd4h5>;xbVS|`vT;t+yv*>#ai*;%u{x*0{5`dm?4AIh-y$e9pn z#yg?q7qk1{*Vh>vzX_ik*+0iZ|98R6IaZ7kFFBVyo6QgvsusMa`Q&%UTgPvoz4lNo zA^7#h+*RNt$*^mdW7N8XyFPxi()(u=@z3D5uJhAHQ@FR?zy5Z6?as^7o~p*5);k^Z zG2QOKZW}SiZCSA)!nCFb9^?8kAA0Iw{)g0+n=KJ z=%2=}S7u9E=l|pg+AmiUoW`@NQU%JOK?b*?x>lSOzVD?xVAg6s!F;`aFVxIbhSr2>;-ODsm z_qh9k<+8QH+W+n|L+YE)FUj*?6(3ulKJ!Y=4`z?;Qn!nY*WKr~|FhZWQ|rF)WvlL{ zJ|c3$_vIwMYN`ABc5!~TU-G6uW{1Cp>c^Mg zPxC%&|L3abuHT#XH$1+%GE@$n1mj>ykTJ?vk+Eh4Tl`<~Hb%cM*@|mrAG~~6FS@wi lY%)V#FSY~&Pjdg5PxpV`Q>-~ZiGhKE!PC{xWt~$(695A*Tblp? diff --git a/doc/html/a00091.html b/doc/html/a00091.html index fdce244f..552054bb 100644 --- a/doc/html/a00091.html +++ b/doc/html/a00091.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7 > 
InputTuple
 
+T4, T5, T6 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7 > 
output_type
 
+T5, T6 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00091.png b/doc/html/a00091.png index ad53103e7be97f926d7a4df7b3c00cba54ef366d..a26e6ba87462dfe980238cad51f0b932d581d7e3 100644 GIT binary patch literal 1300 zcmeAS@N?(olHy`uVBq!ia0y~yU|hn$z!1Q}%)r2q`0V2z1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=%VJL#$B+ufw{vgKx?{z` z);;^--}^tlR7`Z7J^kfm16iT}^Ovi(q<9_BRZ`LvoVdd&Bs6%{s=%oeLPDFh6<4le z3wH_%!pKPUb!Zksf#|EfByHP?TfhS;#lLz|GM>G+WxLGemzn6d8)kL z<0XjK7{e_jvWHZ!5KrOilc~ce=vL zRenzt)*ig&w2k$4&#D#Ge`cLJr2lb(TUcFku!nTIdrx=jdmq`&%O_MN$}c&?5mdeL zjp~}aH-&fmWFgB`rSz`09qz3%ur`z3+&{_u>rd(0hJ8k2g@3+i%vSel-{ns7svG%61$K$r^RxeFv3NOjq(VRKQ^Xj~3rRtMs z1(!@-wEJVE+SbrDvps!7s~BE}B}eBS`&u2?`rJ)z<*JHOg`a&zi`7eSosOHQKV^5O z|EJh5v9>S8mISizW_ao5ANAU0?q2VQ8|3%@*LdU8dFRmH%8k8O%Da+6yMAsgoO||M zUl0j zt<29Ut3Ehc;}4hH{~EQGtJ$av&hcVG}x$C?%vfw)c%g&jgd4h5>;xbVS|`vT;t+yv*>#ai*;%u{x*0{5`dm?4AIh-y$e9pn z#yg?q7qk1{*Vh>vzX_ik*+0iZ|98R6IaZ7kFFBVyo6QgvsusMa`Q&%UTgPvoz4lNo zA^7#h+*RNt$*^mdW7N8XyFPxi()(u=@z3D5uJhAHQ@FR?zy5Z6?as^7o~p*5);k^Z zG2QOKZW}SiZCSA)!nCFb9^?8kAA0Iw{)g0+n=KJ z=%2=}S7u9E=l|pg+AmiUoW`@NQU%JOK?b*?x>lSOzVD?xVAg6s!F;`aFVxIbhSr2>;-ODsm z_qh9k<+8QH+W+n|L+YE)FUj*?6(3ulKJ!Y=4`z?;Qn!nY*WKr~|FhZWQ|rF)WvlL{ zJ|c3$_vIwMYN`ABc5!~TU-G6uW{1Cp>c^Mg zPxC%&|L3abuHT#XH$1+%GE@$n1mj>ykTJ?vk+Eh4Tl`<~Hb%cM*@|mrAG~~6FS@wi lY%)V#FSY~&Pjdg5PxpV`Q>-~ZiGhKE!PC{xWt~$(695A*Tblp? literal 1322 zcmeAS@N?(olHy`uVBq!ia0y~yVBF2Xz!1Q}%)r2~-C6r40|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Wv8c$V@L(#+qscNZwxqG z`Rx<`Ti40*8)bZ&uqWijgdfvx3pok7cf`B61Su&!Y+12tSx9KJ=FOF>j)iOr4((l; zvV4_P@JYW=(`8({nIDQgTM_K#{y6{H--`!d@@GZuPTTZP*S_j(-IbYNPjr6XWIp|z zx1Uya=+&sXd#VqeTlbQ0v3&aW?dCJKJyVMdetpp{Tc7v5wx8ePFzJOQ}cagH!puvWx~d3mUMld zd9|5(@UPWn6Uu!#{_1`IQ&4$5{rbz-XD&Zjr6%KdCHcpAgycedjk%y^XhD?Yv)jdYx(YvAh_cX!W(PjW30VU0P^nZF0 zzS>`q?)Q4``V03%-{)Mv%SCfZe3^>+Be zq)@J-hJ|x~pNkCsUY^yhzj=b=joY0vyJwXYPdz{P%8}*Q7N>lveSg9)^sBzcO)QZd_XeC0F0y>s_lv=U zu_bsDGsnvQ{uXwDz>|CmOX6M#$vHTvS~sllDq=94`i3D%>n7uokWI`TD^u77f=}`( zESn_j;G=5YFvF{i8VbHXgE;763&RqICQWq9mc5CKjb3j)>Ew#Vi_I!~nKD$DEuY2l zVBN0fxZ;|BKTrB>mM=}SEqb))&Do`&Crv&jm9Rwp&8)RdTUPlj+rmEg{_(v0eD&zr zvnzbpy0@?ScIm^OM^8R&OMf#hdBeK&YT3+9Ce!58_AOm0v${y;`{lj0x2NBBk&N54 z`^=^HlVxsRQ{^!}gMLoM11tSL=keb8r?oR8&izaOzgtE5 zAC-OIUwqJRef!k>ot=AUZu~s0|Hjw+{=BB%8>Z|l=cFI7IXgvt`tzyQmsuCPKiCm{ zyRR;(><`bfk{z>5WFyKY?7^v10+KqHfB9#;`|qkR=^JF?%3t%{n0ou0MB%wS?cWDJ z+9Y0QNq1Ttyxrd;KJsMCz48sw|J^IY^Upqy-G1-t`gQv^@5wg%*Kl|3qMb4`UQf_l z`y{*adAG;=b)UOu+?#osd)@SH+g9y*WR>=P?$>u>y8}!2oILmLt@hWvlPh$qWR+Iu z^B;|i={@-=ch=k0a{JEh`#PN8I;CT;e-pvl0%z~JfX=d#Wz Gp$P!N){W=@ diff --git a/doc/html/a00092.html b/doc/html/a00092.html index baac5092..8e06272f 100644 --- a/doc/html/a00092.html +++ b/doc/html/a00092.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference @@ -33,63 +33,63 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7, T8 > 
InputTuple
 
+T4, T5, T6, T7 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7, T8 > 
output_type
 
+T5, T6, T7 > output_type
 
typedef
internal::unfolded_indexer_node
< InputTuple > 
unfolded_type
 
 
- - - - - + + + + - +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00092.png b/doc/html/a00092.png index 6c3aba1e4440d9f50ec116d4a078d52969493223..ad53103e7be97f926d7a4df7b3c00cba54ef366d 100644 GIT binary patch literal 1322 zcmeAS@N?(olHy`uVBq!ia0y~yVBF2Xz!1Q}%)r2~-C6r40|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Wv8c$V@L(#+qscNZwxqG z`Rx<`Ti40*8)bZ&uqWijgdfvx3pok7cf`B61Su&!Y+12tSx9KJ=FOF>j)iOr4((l; zvV4_P@JYW=(`8({nIDQgTM_K#{y6{H--`!d@@GZuPTTZP*S_j(-IbYNPjr6XWIp|z zx1Uya=+&sXd#VqeTlbQ0v3&aW?dCJKJyVMdetpp{Tc7v5wx8ePFzJOQ}cagH!puvWx~d3mUMld zd9|5(@UPWn6Uu!#{_1`IQ&4$5{rbz-XD&Zjr6%KdCHcpAgycedjk%y^XhD?Yv)jdYx(YvAh_cX!W(PjW30VU0P^nZF0 zzS>`q?)Q4``V03%-{)Mv%SCfZe3^>+Be zq)@J-hJ|x~pNkCsUY^yhzj=b=joY0vyJwXYPdz{P%8}*Q7N>lveSg9)^sBzcO)QZd_XeC0F0y>s_lv=U zu_bsDGsnvQ{uXwDz>|CmOX6M#$vHTvS~sllDq=94`i3D%>n7uokWI`TD^u77f=}`( zESn_j;G=5YFvF{i8VbHXgE;763&RqICQWq9mc5CKjb3j)>Ew#Vi_I!~nKD$DEuY2l zVBN0fxZ;|BKTrB>mM=}SEqb))&Do`&Crv&jm9Rwp&8)RdTUPlj+rmEg{_(v0eD&zr zvnzbpy0@?ScIm^OM^8R&OMf#hdBeK&YT3+9Ce!58_AOm0v${y;`{lj0x2NBBk&N54 z`^=^HlVxsRQ{^!}gMLoM11tSL=keb8r?oR8&izaOzgtE5 zAC-OIUwqJRef!k>ot=AUZu~s0|Hjw+{=BB%8>Z|l=cFI7IXgvt`tzyQmsuCPKiCm{ zyRR;(><`bfk{z>5WFyKY?7^v10+KqHfB9#;`|qkR=^JF?%3t%{n0ou0MB%wS?cWDJ z+9Y0QNq1Ttyxrd;KJsMCz48sw|J^IY^Upqy-G1-t`gQv^@5wg%*Kl|3qMb4`UQf_l z`y{*adAG;=b)UOu+?#osd)@SH+g9y*WR>=P?$>u>y8}!2oILmLt@hWvlPh$qWR+Iu z^B;|i={@-=ch=k0a{JEh`#PN8I;CT;e-pvl0%z~JfX=d#Wz Gp$P!N){W=@ literal 1351 zcmeAS@N?(olHy`uVBq!ia0y~yV7$b@z!1Q}%)r1fYa>fC0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`<(j99V@L(#+qt)=-O=J< z?Vf(~|NrC5kBj&0F#YDUspyK=p6SaSJ=!K6(bill;-#soujCozF{wslg4ZN%)*#QK zr4Cx2>qI3VLp3jM{BDfx$Q*Z#gQGWjoL51(!HUF-gP&0dok;d6A_rl>65V1V^Bb!LkHbZeN6oz-&2oD{KScqvP*tnlw+@1py@U>MQ-=9O&h#*E=`=u8?)uhv71{r=iL0gtnX&D=s}tdHd{qmQm;}_ggbxAIa1RV{C7%dSPuQySd%ty-0qg z5BIg+pE@a}Gi+BdFL8I1jO8s7eYrKI>{I$0;}b%c&aP9ts+4-o^7oWm zuTy^OBpaUjwe{$0zp2|gO+VaVs|#P6YyUPZ^Rm3W+>#}aW?J0*lri_N|Ac!hgFH{J zYQA!>#r)l+b6YFow7GlBtES(&{eSzrOVJ+g*B|&U`FkuN>i!Pz?|q@)C$4Rs>R$Tq z#FFl`+5?t*WR9$|IHncv6#igWuta*PY|4z;>mNC@ncQ+<%bd$_w$`9LNd3^2Dw7!X z_Knk)G#UkY7A>;2mb&rp^WjM*7vi0F-8V3Ax*PZ5iHMBQ-yd32Rnk9ogiNxFXbhPY zqlpsdUz}zIc`ck0RHW2!{(`sz$ANAp%?9<_TGn6&cdjK2^S&ra`7r*`n80Ka%)nZ( z)Pd`PSEI;*sZ5#;+N?ng;ap1?)`@s9#%NAp+7YBc6$R%VAujr)B;>$xpdH<&%&sq{ zrDviRn?#oSUQt^g%CI)bFqoBT$Le>B!h7D=n?)Grgzw!fXK5IB?xD@jCn;y85|*fY z%ob+I2%YIOIlieo2qTTUr*zDO>Sl1jj2c9m?lh@zI`hG;<>eviRrrXif_Nq%Cqd7VD@wB zWf_fmnI{gNoGrHJQpH)xuLojycg=k=fvy^TZS+-K^CLfMq-g8kzvmuzb?C*Jg<~ -tbb::tick_count::interval_t Class Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference @@ -33,74 +33,63 @@
-
tbb::tick_count::interval_t Class Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference
- -

Relative time interval. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >:
+
+
+ + + +
+ + + + + + + +

+Public Types

+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6, T7, T8 > 
InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4,
+T5, T6, T7, T8 > 
output_type
 
+typedef
+internal::unfolded_indexer_node
+< InputTuple > 
unfolded_type
 
- - - - - - - - - - - - - - - -

Public Member Functions

interval_t ()
 Construct a time interval representing zero time duration.
 
interval_t (double sec)
 Construct a time interval representing sec seconds time duration.
 
-double seconds () const
 Return the length of a time interval in seconds.
 
-interval_toperator+= (const interval_t &i)
 Accumulation operator.
 
-interval_toperator-= (const interval_t &i)
 Subtraction operator.
 
- - - - - - - - - - - - + + + + + +

-Friends

-class tbb::tick_count
 
-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
-interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
-interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+void set_name (const char *name)
 
-

Detailed Description

-

Relative time interval.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00093.png b/doc/html/a00093.png new file mode 100644 index 0000000000000000000000000000000000000000..6c3aba1e4440d9f50ec116d4a078d52969493223 GIT binary patch literal 1351 zcmeAS@N?(olHy`uVBq!ia0y~yV7$b@z!1Q}%)r1fYa>fC0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`<(j99V@L(#+qt)=-O=J< z?Vf(~|NrC5kBj&0F#YDUspyK=p6SaSJ=!K6(bill;-#soujCozF{wslg4ZN%)*#QK zr4Cx2>qI3VLp3jM{BDfx$Q*Z#gQGWjoL51(!HUF-gP&0dok;d6A_rl>65V1V^Bb!LkHbZeN6oz-&2oD{KScqvP*tnlw+@1py@U>MQ-=9O&h#*E=`=u8?)uhv71{r=iL0gtnX&D=s}tdHd{qmQm;}_ggbxAIa1RV{C7%dSPuQySd%ty-0qg z5BIg+pE@a}Gi+BdFL8I1jO8s7eYrKI>{I$0;}b%c&aP9ts+4-o^7oWm zuTy^OBpaUjwe{$0zp2|gO+VaVs|#P6YyUPZ^Rm3W+>#}aW?J0*lri_N|Ac!hgFH{J zYQA!>#r)l+b6YFow7GlBtES(&{eSzrOVJ+g*B|&U`FkuN>i!Pz?|q@)C$4Rs>R$Tq z#FFl`+5?t*WR9$|IHncv6#igWuta*PY|4z;>mNC@ncQ+<%bd$_w$`9LNd3^2Dw7!X z_Knk)G#UkY7A>;2mb&rp^WjM*7vi0F-8V3Ax*PZ5iHMBQ-yd32Rnk9ogiNxFXbhPY zqlpsdUz}zIc`ck0RHW2!{(`sz$ANAp%?9<_TGn6&cdjK2^S&ra`7r*`n80Ka%)nZ( z)Pd`PSEI;*sZ5#;+N?ng;ap1?)`@s9#%NAp+7YBc6$R%VAujr)B;>$xpdH<&%&sq{ zrDviRn?#oSUQt^g%CI)bFqoBT$Le>B!h7D=n?)Grgzw!fXK5IB?xD@jCn;y85|*fY z%ob+I2%YIOIlieo2qTTUr*zDO>Sl1jj2c9m?lh@zI`hG;<>eviRrrXif_Nq%Cqd7VD@wB zWf_fmnI{gNoGrHJQpH)xuLojycg=k=fvy^TZS+-K^CLfMq-g8kzvmuzb?C*Jg<~ -tbb::invalid_multiple_scheduling Class Reference +tbb::tick_count::interval_t Class Reference @@ -33,46 +33,74 @@
-
tbb::invalid_multiple_scheduling Class Reference
+
tbb::tick_count::interval_t Class Reference
-

Exception for repeated scheduling of the same task_handle. +

Relative time interval. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::invalid_multiple_scheduling:
-
-
- - - -
+

#include <tick_count.h>

- - + + + + + + + + + + + + + + + +

Public Member Functions

-const char * what () const throw ()
 
interval_t ()
 Construct a time interval representing zero time duration.
 
interval_t (double sec)
 Construct a time interval representing sec seconds time duration.
 
+double seconds () const
 Return the length of a time interval in seconds.
 
+interval_toperator+= (const interval_t &i)
 Accumulation operator.
 
+interval_toperator-= (const interval_t &i)
 Subtraction operator.
 
+ + + + + + + + + + + +

+Friends

+class tbb::tick_count
 
+interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
+interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
+interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 

Detailed Description

-

Exception for repeated scheduling of the same task_handle.

+

Relative time interval.


The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
  • tick_count.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00095.html b/doc/html/a00095.html index ee95c613..067236e9 100644 --- a/doc/html/a00095.html +++ b/doc/html/a00095.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference +tbb::invalid_multiple_scheduling Class Reference @@ -33,21 +33,46 @@
+
-
tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference
+
tbb::invalid_multiple_scheduling Class Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + +

    Exception for repeated scheduling of the same task_handle. + More...

    + +

    #include <tbb_exception.h>

    +
    +Inheritance diagram for tbb::invalid_multiple_scheduling:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    +const char * what () const throw ()
     
    +

    Detailed Description

    +

    Exception for repeated scheduling of the same task_handle.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00094.png b/doc/html/a00095.png similarity index 100% rename from doc/html/a00094.png rename to doc/html/a00095.png diff --git a/doc/html/a00096.html b/doc/html/a00096.html index f1729a45..b252b4c0 100644 --- a/doc/html/a00096.html +++ b/doc/html/a00096.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference @@ -33,92 +33,21 @@
-
-
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
-
-
- - - -
- - - - - - -

-Public Types

-typedef OutputTuple output_type
 
-typedef
-unfolded_type::input_ports_type 
input_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

join_node (graph &g)
 
-template<typename __TBB_B0 , typename __TBB_B1 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8)
 
-template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 , typename __TBB_B9 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9)
 
join_node (const join_node &other)
 
-void set_name (const char *name)
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00096.png b/doc/html/a00096.png deleted file mode 100644 index 04fbb34308e28c32765b6672e2d13357708f2350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1992 zcmeAS@N?(olHy`uVBq!ia0y~yU>0FuURXipoikNgFi~-6;Hu8N-C zzh2LmuGLbwr_ANKYvMz%_|ga4f7k+4gEd+%I@!Su`3mxm?j=G zO_vW#V)GZ~zpeXr%UmmE&1%`;$G`5r|Dx#e#USi@&$89QA5A8|UUO}-vb#ISl+9<= z{BP)`?oybyj=SY;&f8aqxVQbi{q$Mu%VWDweYnKD|L}i3_cB>u5#2?iI@{ zH+jnJe{*2{H+#+9;;vKAe!G11-6zGSGtU<7kUD*FqR>g*MH$}n1dgVu%>A9ZC?i~~ zD_i@??dSRi1_3uKu>hIfLiYrsp7ICB|R9v&!*7YLaW#Vg}&pZ3(Tv=Dy%I7`ZbkF)thRfS? zC$V3g{`h>==5_bV9Zh9wJeHfYU0tMXckIv3=ksg}L4kERanaKs6Mp82^9!y|RqERN z?dz=FCAsb^r{HEuYpXO=UaJ3i_*O;pa}@i&-Ep2(eXX79I?qj1JZ00jy|?>d{dc;^ ztLd}6Q*?fPL{;R&^{j&v}TPb8AVK#z3VZYo1$iv;FhM!j&saH{6o>^5f&CALXuvwfA<_ z{IA7Ho+!V^Vst2=QBE!B5H$|zF4$p^@^8Y9*6D-V)(-q{jBGI+C|H@ zcM?~H1J|&YZ`LT9nR#&HAzR;Gb<2M_vb7E8PaW)C6j2g$cXeFbstMLrvORTwc_;ly z2+T26xbjcW<(v4)i*j+r%Dy-EwZHqJzlQg|d*GJPkJ1-zg~#(AygPCA|Fy~AQef`E{%K8%2I^T$~%CpB)y#U^mNOl=T4r=Vjf$j=gaSXHfRvu|4Y7 z`nEP##scBV-MgOrjkIOhF}2#Ya9Jn&AIp=U|L3Gch%jvbu&#R7?jQypn|F6NFJk*~ zdV>Z7Ps2tK!RWLZL?N>?7ilaN35F!qpYnR*hfWCSDwZ%XFfe$!`njxgN@xNA^y;C! diff --git a/doc/html/a00097.html b/doc/html/a00097.html index 639ceddb..f7db7b55 100644 --- a/doc/html/a00097.html +++ b/doc/html/a00097.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference @@ -33,56 +33,92 @@
-
tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, queueing >:
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
- - + +
- - - + - +

Public Types

+
typedef OutputTuple output_type
 
+
 
typedef
unfolded_type::input_ports_type 
input_ports_type
 
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+
join_node (graph &g)
 
+template<typename __TBB_B0 , typename __TBB_B1 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8)
 
+template<typename __TBB_B0 , typename __TBB_B1 , typename __TBB_B2 , typename __TBB_B3 , typename __TBB_B4 , typename __TBB_B5 , typename __TBB_B6 , typename __TBB_B7 , typename __TBB_B8 , typename __TBB_B9 >
 join_node (graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9)
 
join_node (const join_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00097.png b/doc/html/a00097.png index 890b2d6bb8371d00ae69db7ae975c2814c5befd2..04fbb34308e28c32765b6672e2d13357708f2350 100644 GIT binary patch literal 1992 zcmeAS@N?(olHy`uVBq!ia0y~yU>0FuURXipoikNgFi~-6;Hu8N-C zzh2LmuGLbwr_ANKYvMz%_|ga4f7k+4gEd+%I@!Su`3mxm?j=G zO_vW#V)GZ~zpeXr%UmmE&1%`;$G`5r|Dx#e#USi@&$89QA5A8|UUO}-vb#ISl+9<= z{BP)`?oybyj=SY;&f8aqxVQbi{q$Mu%VWDweYnKD|L}i3_cB>u5#2?iI@{ zH+jnJe{*2{H+#+9;;vKAe!G11-6zGSGtU<7kUD*FqR>g*MH$}n1dgVu%>A9ZC?i~~ zD_i@??dSRi1_3uKu>hIfLiYrsp7ICB|R9v&!*7YLaW#Vg}&pZ3(Tv=Dy%I7`ZbkF)thRfS? zC$V3g{`h>==5_bV9Zh9wJeHfYU0tMXckIv3=ksg}L4kERanaKs6Mp82^9!y|RqERN z?dz=FCAsb^r{HEuYpXO=UaJ3i_*O;pa}@i&-Ep2(eXX79I?qj1JZ00jy|?>d{dc;^ ztLd}6Q*?fPL{;R&^{j&v}TPb8AVK#z3VZYo1$iv;FhM!j&saH{6o>^5f&CALXuvwfA<_ z{IA7Ho+!V^Vst2=QBE!B5H$|zF4$p^@^8Y9*6D-V)(-q{jBGI+C|H@ zcM?~H1J|&YZ`LT9nR#&HAzR;Gb<2M_vb7E8PaW)C6j2g$cXeFbstMLrvORTwc_;ly z2+T26xbjcW<(v4)i*j+r%Dy-EwZHqJzlQg|d*GJPkJ1-zg~#(AygPCA|Fy~AQef`E{%K8%2I^T$~%CpB)y#U^mNOl=T4r=Vjf$j=gaSXHfRvu|4Y7 z`nEP##scBV-MgOrjkIOhF}2#Ya9Jn&AIp=U|L3Gch%jvbu&#R7?jQypn|F6NFJk*~ zdV>Z7Ps2tK!RWLZL?N>?7ilaN35F!qpYnR*hfWCSDwZ%XFfe$!`njxgN@xNA^y;C! literal 1706 zcmeAS@N?(olHy`uVBq!ia0y~yV4B3hz!1Q}%)r1f_hsrK1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=o293VV@L(#+qpLvz0wkJ z5!c`S?|=V#H{pynizAHZ*A~a@I()&zcWH&{(kVV(nlq;a{jyW>G@6v6^73}Xq)90% znL;|Ao<@^QIHxU9k@TF!;vF=pN5%J$+Q~I%Vtf0nE?>KNMA~)#0mR|-$2t3;aIpRh#b?pfzaHuf^p zmZykMo%iyU+O(CzU}GMoprjp*RO5WoRK&uxM#<&t5Qo# z)*BS`&W%5|CrDIf&*j$_ivFp-|KR?yY0bfHmbouFJ`Wx?}h}-Y1tQAi?eRFz~60+3V>UV)r>OrS5oAx}MG%09_^2txUE4rnAyH)K{Jo#dy<@2@a z$G7j!KV)PVkzu@O&%xEDk5{(voQk=&{$tX?@L7lR%;MhdioP{(%Be};`M2)>*O)7N za+A+?<&)hf!}NBV#EM1FpZ#4UzV^EKQ>mo|s~6R(oXm>aBeAV7yF)3+)^=X;y3j)B z?cp!KHoaW8yHqqa{{6QazQ_~R-J+`Z)z)l_3)Ror9e-=tg3y!K5AHNL_#ke>+Q*UG zCQVu5|KZ_N70pk#Sn^z|4<^mE4x5xG6kqDO>IV0>58L|Ee^z?VyMLrx&?6|}?W85& zFIT;rc=f*C$!}d#mq@QMKe6G-_9WX~Yndaxf*xGf`&l~qkLC0lt(c1A^E@71*f#I< zr)u%-Dw3W?lddFrdQFPe4FDyWHH-E-NLNuHXjlY_kC*$*(tJmo*YAkpwX z*^^14!ScuN&1#H12Sg$!F|Z}@`E_jp@p!;IDIE_6W&_S?Dh-S?SiFS}F!(g7awagS z9h}5sz%V%hq}_9a3M0<}6|iz49Zz~FKcMXa_KMolDf{?2K|aX``vi+q>{U(%FS;I+ zd@3`Yf9GPkqFJmLCUwpGSkllnw;?s$_|24mPvryZ=2^|CKafxtKk0ebw7msPCPZZ})QTez~37 zj?CPae-{rn`s(7?{13lZ?s;95huWgurU=oYO zhjo{1-c0gWE&Xzo@dq2;glOSu1g`|F{xj} -tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference @@ -33,56 +33,56 @@
-
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, queueing >:
- - + +
- - - + - +

Public Types

+
typedef OutputTuple output_type
 
+
 
typedef
unfolded_type::input_ports_type 
input_ports_type
 
 
- - - - - + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+
join_node (graph &g)
 
join_node (const join_node &other)
 
void set_name (const char *name)
 
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00098.png b/doc/html/a00098.png index 0157a3afb3e5de05fcf0632efc7041bf2e7cf1b4..890b2d6bb8371d00ae69db7ae975c2814c5befd2 100644 GIT binary patch literal 1706 zcmeAS@N?(olHy`uVBq!ia0y~yV4B3hz!1Q}%)r1f_hsrK1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=o293VV@L(#+qpLvz0wkJ z5!c`S?|=V#H{pynizAHZ*A~a@I()&zcWH&{(kVV(nlq;a{jyW>G@6v6^73}Xq)90% znL;|Ao<@^QIHxU9k@TF!;vF=pN5%J$+Q~I%Vtf0nE?>KNMA~)#0mR|-$2t3;aIpRh#b?pfzaHuf^p zmZykMo%iyU+O(CzU}GMoprjp*RO5WoRK&uxM#<&t5Qo# z)*BS`&W%5|CrDIf&*j$_ivFp-|KR?yY0bfHmbouFJ`Wx?}h}-Y1tQAi?eRFz~60+3V>UV)r>OrS5oAx}MG%09_^2txUE4rnAyH)K{Jo#dy<@2@a z$G7j!KV)PVkzu@O&%xEDk5{(voQk=&{$tX?@L7lR%;MhdioP{(%Be};`M2)>*O)7N za+A+?<&)hf!}NBV#EM1FpZ#4UzV^EKQ>mo|s~6R(oXm>aBeAV7yF)3+)^=X;y3j)B z?cp!KHoaW8yHqqa{{6QazQ_~R-J+`Z)z)l_3)Ror9e-=tg3y!K5AHNL_#ke>+Q*UG zCQVu5|KZ_N70pk#Sn^z|4<^mE4x5xG6kqDO>IV0>58L|Ee^z?VyMLrx&?6|}?W85& zFIT;rc=f*C$!}d#mq@QMKe6G-_9WX~Yndaxf*xGf`&l~qkLC0lt(c1A^E@71*f#I< zr)u%-Dw3W?lddFrdQFPe4FDyWHH-E-NLNuHXjlY_kC*$*(tJmo*YAkpwX z*^^14!ScuN&1#H12Sg$!F|Z}@`E_jp@p!;IDIE_6W&_S?Dh-S?SiFS}F!(g7awagS z9h}5sz%V%hq}_9a3M0<}6|iz49Zz~FKcMXa_KMolDf{?2K|aX``vi+q>{U(%FS;I+ zd@3`Yf9GPkqFJmLCUwpGSkllnw;?s$_|24mPvryZ=2^|CKafxtKk0ebw7msPCPZZ})QTez~37 zj?CPae-{rn`s(7?{13lZ?s;95huWgurU=oYO zhjo{1-c0gWE&Xzo@dq2;glOSu1g`|F{xj} z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`&D+z(F{Fa=?cCc*udH}n zrpJBz^Iu-x!$aq%5Eo-s)t2(G+dq^}eoOh&H8V0PZQ6{PXPMMIJ5^LCnXqg6czUU1 zY6Z=hG{xgm$Pxop&527^dL()UDR~BORV;pC|3m4Qv) zS!=25<0-Z2Oy+bexetYjUYGbYzr8!FJ$VWHhrY_cTGR5Me@o8Xxi!!Cpu}St^GDBO zqeb4QBt8(^T{BfRSX8Cv&g}sE`nA@79@Q zcW2obbscSu>c?hTZ+D&5-7QhJcb?#){bi}?TyMFHXFvFMZ2KvZc^1p11edcU9xJG7PrU#2 zU(ZB?`EfT-I@KOMXgJ$r>iaJ;oAu8;8VW4x-dk6?YfH%8 z*NEKwYGRP}wO83|EpB|hw{u@&YC88_(_7-t%H|$j{VXtXnx=ZoPL|H{cdJ_>@1{RI z@vG8bCf?_n(*3+mwVNNk3w^#<)~7-dwdCWc=qmo>TTv@_3HzGxb9; z|L+(2cs~6o_`CA_PcQ#z@0RS^eO)TBxccul1J%~&Aq&f8f+x9J9V#iik(2vIdgZG= zgT?o!&H6r%ng4y>c_X_UnZ}Fu)h*h-(_|r2{ONDWb9AJ9YVVyrv|BH5?Uki(-&OsO z`K>x90_V)6^7u6Ak&s9wbD()1J@ZdRYCr`sguCK>A+;bj>~BueGlyksnRyP zmc!nyA^Ua0X`KeKV%x_r8ARC`Yr~D-1pWKP|Ka>*_0Q^Sp7C>h{`F}`4&Ty0cjob= z>7HG;Uir+wC;z|3esevvC+gJIm^?XQp1jOE{|nl8ndr*??mxSz%d#!raYpI|xf8!* zX1rl5f3o$u*tCtN7Nyf%_EvaLn{?^ve%Yt9mWzB}`{|$A@jY*MH`d?TIQ{dz->)Y| zd(U}U^_TJYWxZ*!OZCvl3 zJ$0}8_AM=YB;zB$WNm7Z%9*sFr!$fhj|C=}@O*o@d&$rLLeI*Y-#gt{|Nr*s%tSrI zCZ=wC8!(%Jk+I$+*kt9zSrzfNaUe}46= zb$8LJ+v(SpwG#6}8EYitqb&~nuDty04(IKQW(SIw7%={mntOKVulV!gjCH3LAF45n z{!-DfUa^(a;8AS#=MBkBHivKOb37;~knqG4XF(H)${%*Ab=949wkA>x3=9mOu6{1- HoD!M<@=qyH diff --git a/doc/html/a00099.html b/doc/html/a00099.html index ae9a11af..78242358 100644 --- a/doc/html/a00099.html +++ b/doc/html/a00099.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< JP > Struct Template Reference +tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference @@ -33,34 +33,56 @@
-
tbb::flow::interface8::key_from_policy< JP > Struct Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
+
+
+ + + +
- - - - + + + + +

Public Types

-typedef size_t type
 
-typedef std::false_type is_key_matching
 
+typedef OutputTuple output_type
 
+typedef
+unfolded_type::input_ports_type 
input_ports_type
 
+ + + + + + +

+Public Member Functions

join_node (graph &g)
 
join_node (const join_node &other)
 
+void set_name (const char *name)
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00099.png b/doc/html/a00099.png new file mode 100644 index 0000000000000000000000000000000000000000..0157a3afb3e5de05fcf0632efc7041bf2e7cf1b4 GIT binary patch literal 1724 zcmeAS@N?(olHy`uVBq!ia0y~yV4A_ez!1Q}%)r3Vb^0qe0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`&D+z(F{Fa=?cCc*udH}n zrpJBz^Iu-x!$aq%5Eo-s)t2(G+dq^}eoOh&H8V0PZQ6{PXPMMIJ5^LCnXqg6czUU1 zY6Z=hG{xgm$Pxop&527^dL()UDR~BORV;pC|3m4Qv) zS!=25<0-Z2Oy+bexetYjUYGbYzr8!FJ$VWHhrY_cTGR5Me@o8Xxi!!Cpu}St^GDBO zqeb4QBt8(^T{BfRSX8Cv&g}sE`nA@79@Q zcW2obbscSu>c?hTZ+D&5-7QhJcb?#){bi}?TyMFHXFvFMZ2KvZc^1p11edcU9xJG7PrU#2 zU(ZB?`EfT-I@KOMXgJ$r>iaJ;oAu8;8VW4x-dk6?YfH%8 z*NEKwYGRP}wO83|EpB|hw{u@&YC88_(_7-t%H|$j{VXtXnx=ZoPL|H{cdJ_>@1{RI z@vG8bCf?_n(*3+mwVNNk3w^#<)~7-dwdCWc=qmo>TTv@_3HzGxb9; z|L+(2cs~6o_`CA_PcQ#z@0RS^eO)TBxccul1J%~&Aq&f8f+x9J9V#iik(2vIdgZG= zgT?o!&H6r%ng4y>c_X_UnZ}Fu)h*h-(_|r2{ONDWb9AJ9YVVyrv|BH5?Uki(-&OsO z`K>x90_V)6^7u6Ak&s9wbD()1J@ZdRYCr`sguCK>A+;bj>~BueGlyksnRyP zmc!nyA^Ua0X`KeKV%x_r8ARC`Yr~D-1pWKP|Ka>*_0Q^Sp7C>h{`F}`4&Ty0cjob= z>7HG;Uir+wC;z|3esevvC+gJIm^?XQp1jOE{|nl8ndr*??mxSz%d#!raYpI|xf8!* zX1rl5f3o$u*tCtN7Nyf%_EvaLn{?^ve%Yt9mWzB}`{|$A@jY*MH`d?TIQ{dz->)Y| zd(U}U^_TJYWxZ*!OZCvl3 zJ$0}8_AM=YB;zB$WNm7Z%9*sFr!$fhj|C=}@O*o@d&$rLLeI*Y-#gt{|Nr*s%tSrI zCZ=wC8!(%Jk+I$+*kt9zSrzfNaUe}46= zb$8LJ+v(SpwG#6}8EYitqb&~nuDty04(IKQW(SIw7%={mntOKVulV!gjCH3LAF45n z{!-DfUa^(a;8AS#=MBkBHivKOb37;~knqG4XF(H)${%*Ab=949wkA>x3=9mOu6{1- HoD!M<@=qyH literal 0 HcmV?d00001 diff --git a/doc/html/a00100.html b/doc/html/a00100.html index 4b6e6757..899d405d 100644 --- a/doc/html/a00100.html +++ b/doc/html/a00100.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference +tbb::flow::interface8::key_from_policy< JP > Struct Template Reference @@ -33,26 +33,26 @@
-
tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference
+
tbb::flow::interface8::key_from_policy< JP > Struct Template Reference
- - - - + + + +

Public Types

-typedef const Key & type
 
-typedef std::true_type is_key_matching
 
+typedef size_t type
 
+typedef std::false_type is_key_matching
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -60,7 +60,7 @@ typedef std::true_type is_

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00101.html b/doc/html/a00101.html index e86af53c..c1133d66 100644 --- a/doc/html/a00101.html +++ b/doc/html/a00101.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference +tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference @@ -33,26 +33,26 @@
-
tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference
- - - + + - +

Public Types

-typedef Key type
 
+
+typedef const Key & type
 
typedef std::true_type is_key_matching
 
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -60,7 +60,7 @@ typedef std::true_type is_

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00102.html b/doc/html/a00102.html index b25f5a20..931c0d28 100644 --- a/doc/html/a00102.html +++ b/doc/html/a00102.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::limiter_node< T > Class Template Reference +tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference @@ -33,305 +33,34 @@
-
tbb::flow::interface8::limiter_node< T > Class Template Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference
- -

Forwards messages only if the threshold has not been reached. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::limiter_node< T >:
-
-
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 
limiter_node (const limiter_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
-bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node. More...
 
-built_successors_typebuilt_successors ()
 
-built_predecessors_typebuilt_predecessors ()
 
-void internal_add_built_successor (receiver< output_type > &src)
 
-void internal_delete_built_successor (receiver< output_type > &src)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (sender< output_type > &src)
 
-void internal_delete_built_predecessor (sender< output_type > &src)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool register_predecessor (predecessor_type &src)
 Adds src to the list of cached predecessors.
 
-bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - -

-Public Attributes

-internal::decrementer
-< limiter_node< T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.
 
- - - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const T &t)
 Puts an item to this receiver.
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - -

-Friends

-class internal::forward_task_bypass< limiter_node< T > >
 
-class internal::decrementer< limiter_node< T > >
 
-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+typedef Key type
 
+typedef std::true_type is_key_matching
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::limiter_node< T >

- -

Forwards messages only if the threshold has not been reached.

-

This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.

-

Member Function Documentation

- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
bool tbb::flow::interface8::limiter_node< T >::remove_successor (receiver< output_type > & r)
-
-inlinevirtual
-
- -

Removes a successor from this node.

-

r.remove_predecessor(*this) is also called.

- -

Implements tbb::flow::interface8::sender< T >.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00102.png b/doc/html/a00102.png deleted file mode 100644 index 0a2205abf8bb10721e5ce5bd1a63865d969d817a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1884 zcmeAS@N?(olHy`uVBq!ia0y~yVA{pNz|g_L%)r24&$nX<0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`?X{2n z*7U64W(;$?(#oLyc%<=9{(7FaIP{&&~mhb6CUOXt~t&ry$GCvm*+ zPvj!KFDHy%y-T&3ar1{w-{G^5k683Q?gtqvwrZF86hV>hI^dDRF%}>8r-LdO}^6AyPb+_%lZqfIccbfM0Kyj;QZ$rQDyZYFo@4osg zr~W;$cMD~Xt9I_Xpp5D(a z%Y4&AL(l(N8!`FZs#Sg+yFx?n3Y4y1^-K9xSZJy9m9?v0wXKK_y(<6xitM-JAER&E zpRrnYJ*L(=J~XuSY(e>xZ-+uduiMDgPdOLbx-&ZM`>IvD4jY&LUs&<}e1+Vz@GEys z?IyO~oYMaP)a%osp}s!~OYaM(gCei)#r|&me0<^a4d*uAowv+TPX6!T=b3+AiRrEV>^0qb)v8^O9IfsPKU3Ye zI`jF>=b@`t+3s8ZZug~IJ$Jlroldk{yQ|&6Z~3?Nw$j&jl-d5QD4%TqIIT-<`u1?2 z{DnWY)wH+T2ZowHj=cK!se$^(v;N`N&ze8mDHwWHZvM($`5v!Bozl7YNIeTKUB3Nt z9_wf6-G#otzxd9(Fa6qQ`^=kfwDsRF{k!_rzoHqRd;Ft{S=UW6|5+#dA^l3NbJTp5 zw@(ek!@h4>7?ZbFbKdcbzhC(svtRt~;O z?#lOmuZ#RwG{gU@t!;XF@}6@i|IU5-)2zPg+pU|Ix4xU&v05{<)NmmxPKEL%VFipLmx9j%hmxq=;kx7fM z`yKYm-+Rm2RjVZVuhzQH2xp%DF?i0|RiRg9_{*mIulzl4i=R_Y@ZX~b@~fglzp|xm z|1*Ap`qq3 zcUP_Y2Tyam6kmmfeszbZIo`nSt5(@>dzEK4+xNQ3%R4z{v)BEcz41`~2gdrABV2bU zlsMIYk$-*s`2CaVNv(MvRtxQa^_NONoDb*zb6HcL&hNYCf}p4R7xyczc^+#n@Djs3 z9v|@i@#DwJH8nLgUszdQG%gWFF1f&YT(DH}z^RU10tu<0ENz6PfWuVw!L}_?;ujlJ ziQD&?z1WM6!ZUBamHfQM$N#;!UUG*2%{bQUJZDclRnIqlC};jWcly1(2~Jm9_ zTlcZ^&iQ3FQ~uigC_VkoPQn0GF3A|})(*e@-Epn=%Uj_aYoGu0RzAEh+rHqR#TS`t zmfLP$j=6i7Yx%#MM$;=dPt_}L`PQ-PLwd%lcNdp7e#^LGb-G+~{&}0PKI?Pb^ktum z@)^bH7uVILX>YYRoNKvL?UmDUlUIJa+2ucW=9{m}?0&UG=YB+bR4K38@sewE+aI(& z3idwF3@U_=U%9(C>OJ4v%b%uS6E2;dDz|F)d~?C_yqARrpwe^MyN9*wUzvq(3HPge zDjZs_cIWOYYt3~lcYRo%amDuP-rcXxZTqBM%6?|Y-m~^$-y^Tiz4qSi-m}|l{WvbL zKbNfy_vd$-Q}*WCl4kB;_1kZMXPw%2w`BYB#@okBW>(7D>t5VeV3`*sRl3l9*ZG_) zt#Uuhjd!nIy<5DdeFeAeq*bsg2s4H@7=dHxAJ>286_dp4cKrV6&cMLH;OXk;vd$@? F2>_{euHpay diff --git a/doc/html/a00103.html b/doc/html/a00103.html index 18b0acd7..5f6e3de3 100644 --- a/doc/html/a00103.html +++ b/doc/html/a00103.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool< Alloc > Class Template Reference +tbb::flow::interface8::limiter_node< T > Class Template Reference @@ -33,54 +33,305 @@
-
tbb::interface6::memory_pool< Alloc > Class Template Reference
+
tbb::flow::interface8::limiter_node< T > Class Template Reference
-

Thread-safe growable pool allocator for variable-size requests. +

Forwards messages only if the threshold has not been reached. More...

-

#include <memory_pool.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
+Inheritance diagram for tbb::flow::interface8::limiter_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 
limiter_node (graph &g, size_t threshold, int num_decrement_predecessors=0)
 Constructor.
 
limiter_node (const limiter_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
+bool register_successor (receiver< output_type > &r)
 Replace the current successor with this new successor.
 
bool remove_successor (receiver< output_type > &r)
 Removes a successor from this node. More...
 
+built_successors_typebuilt_successors ()
 
+built_predecessors_typebuilt_predecessors ()
 
+void internal_add_built_successor (receiver< output_type > &src)
 
+void internal_delete_built_successor (receiver< output_type > &src)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (sender< output_type > &src)
 
+void internal_delete_built_predecessor (sender< output_type > &src)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool register_predecessor (predecessor_type &src)
 Adds src to the list of cached predecessors.
 
+bool remove_predecessor (predecessor_type &src)
 Removes src from the list of cached predecessors.
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + +

+Public Attributes

+internal::decrementer
+< limiter_node< T > > 
decrement
 The internal receiver< continue_msg > that decrements the count.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &t)
 Puts an item to this receiver.
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + +

+Friends

+class internal::forward_task_bypass< limiter_node< T > >
 
+class internal::decrementer< limiter_node< T > >
 
+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

template<typename Alloc>
-class tbb::interface6::memory_pool< Alloc >

+

template<typename T>
+class tbb::flow::interface8::limiter_node< T >

-

Thread-safe growable pool allocator for variable-size requests.

-

The documentation for this class was generated from the following file:
    -
  • memory_pool.h
  • +

    Forwards messages only if the threshold has not been reached.

    +

    This node forwards items until its threshold is reached. It contains no buffering. If the downstream node rejects, the message is dropped.

    +

Member Function Documentation

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
bool tbb::flow::interface8::limiter_node< T >::remove_successor (receiver< output_type > & r)
+
+inlinevirtual
+
+ +

Removes a successor from this node.

+

r.remove_predecessor(*this) is also called.

+ +

Implements tbb::flow::interface8::sender< T >.

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00103.png b/doc/html/a00103.png index 040c525da839e5eac853d6e1a5792784458e9f56..0a2205abf8bb10721e5ce5bd1a63865d969d817a 100644 GIT binary patch literal 1884 zcmeAS@N?(olHy`uVBq!ia0y~yVA{pNz|g_L%)r24&$nX<0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`?X{2n z*7U64W(;$?(#oLyc%<=9{(7FaIP{&&~mhb6CUOXt~t&ry$GCvm*+ zPvj!KFDHy%y-T&3ar1{w-{G^5k683Q?gtqvwrZF86hV>hI^dDRF%}>8r-LdO}^6AyPb+_%lZqfIccbfM0Kyj;QZ$rQDyZYFo@4osg zr~W;$cMD~Xt9I_Xpp5D(a z%Y4&AL(l(N8!`FZs#Sg+yFx?n3Y4y1^-K9xSZJy9m9?v0wXKK_y(<6xitM-JAER&E zpRrnYJ*L(=J~XuSY(e>xZ-+uduiMDgPdOLbx-&ZM`>IvD4jY&LUs&<}e1+Vz@GEys z?IyO~oYMaP)a%osp}s!~OYaM(gCei)#r|&me0<^a4d*uAowv+TPX6!T=b3+AiRrEV>^0qb)v8^O9IfsPKU3Ye zI`jF>=b@`t+3s8ZZug~IJ$Jlroldk{yQ|&6Z~3?Nw$j&jl-d5QD4%TqIIT-<`u1?2 z{DnWY)wH+T2ZowHj=cK!se$^(v;N`N&ze8mDHwWHZvM($`5v!Bozl7YNIeTKUB3Nt z9_wf6-G#otzxd9(Fa6qQ`^=kfwDsRF{k!_rzoHqRd;Ft{S=UW6|5+#dA^l3NbJTp5 zw@(ek!@h4>7?ZbFbKdcbzhC(svtRt~;O z?#lOmuZ#RwG{gU@t!;XF@}6@i|IU5-)2zPg+pU|Ix4xU&v05{<)NmmxPKEL%VFipLmx9j%hmxq=;kx7fM z`yKYm-+Rm2RjVZVuhzQH2xp%DF?i0|RiRg9_{*mIulzl4i=R_Y@ZX~b@~fglzp|xm z|1*Ap`qq3 zcUP_Y2Tyam6kmmfeszbZIo`nSt5(@>dzEK4+xNQ3%R4z{v)BEcz41`~2gdrABV2bU zlsMIYk$-*s`2CaVNv(MvRtxQa^_NONoDb*zb6HcL&hNYCf}p4R7xyczc^+#n@Djs3 z9v|@i@#DwJH8nLgUszdQG%gWFF1f&YT(DH}z^RU10tu<0ENz6PfWuVw!L}_?;ujlJ ziQD&?z1WM6!ZUBamHfQM$N#;!UUG*2%{bQUJZDclRnIqlC};jWcly1(2~Jm9_ zTlcZ^&iQ3FQ~uigC_VkoPQn0GF3A|})(*e@-Epn=%Uj_aYoGu0RzAEh+rHqR#TS`t zmfLP$j=6i7Yx%#MM$;=dPt_}L`PQ-PLwd%lcNdp7e#^LGb-G+~{&}0PKI?Pb^ktum z@)^bH7uVILX>YYRoNKvL?UmDUlUIJa+2ucW=9{m}?0&UG=YB+bR4K38@sewE+aI(& z3idwF3@U_=U%9(C>OJ4v%b%uS6E2;dDz|F)d~?C_yqARrpwe^MyN9*wUzvq(3HPge zDjZs_cIWOYYt3~lcYRo%amDuP-rcXxZTqBM%6?|Y-m~^$-y^Tiz4qSi-m}|l{WvbL zKbNfy_vd$-Q}*WCl4kB;_1kZMXPw%2w`BYB#@okBW>(7D>t5VeV3`*sRl3l9*ZG_) zt#Uuhjd!nIy<5DdeFeAeq*bsg2s4H@7=dHxAJ>286_dp4cKrV6&cMLH;OXk;vd$@? F2>_{euHpay delta 626 zcmcb^H=k9pGr-TCmrII^fq{Y7)59f*fq~%>0|P?<2Qvc$gYlWj*%KA5>Y4OBT^vIy z7~jr~p0wJ4hc(*X^7s9ZAB^e})DpX%xb0izHGQLOi}dM7;>Mdd9#qLpaSEKYN4RU! zlezv{&(v$bY;9Yl@|Sh8ZsGFvL3v(B({{b^xU_bUcVXAAf3u#YSe2{1jJvn3d%t$t z+}fIeqnhT|({{`G8|KHDYI~Xsr3cne`gf?c%j)*dH7h24QLPCp)YQzsrQ`WZXt##v zJx*88PktI+lgiaxjW;i3{Gr3&uu(Gp<41{mg*8V{7L*+S?_j8<)llywc))rg$Ah^6 zEFb(dm@3po821QwG2G*HWq9AB)KHEpeWz#U%^L{}$`BRx4Da7`1y5do>gVIoRYw?P zpGmP5s2}fm?Gb0{Fh9L(xxZzvjsKl@6&yR({_cA8>u1Eh|JOvG71!UKo!k6u;@9=j z`*UWgcyxPAF0Geb@!qT7p1&$&&2`2p`?JKaO9yTKf9jmr#vOKMnSrnOzFuz5Yx-9! z#ExO^g0DAM%#ZuO-PWx>chNTgHErDoEW@Tg_}M#UbM6Gc6~E4ui=NiC3Vm~>E4xe6 z{<8hGx~>V;vPWw-t*(fvH8(vqDeRfo|B$@xG53x>la)Jtr8B8M{Bmd2x*JdKd3M>{ zJ^Jd+-U%z7uiiOjMeif-^p7zguW!B)cE!12(;~6djS_iT39<`)*T}4@`@h~J -tbb::interface6::memory_pool_allocator< T, P > Class Template Reference +tbb::interface6::memory_pool< Alloc > Class Template Reference @@ -33,144 +33,54 @@
-
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
+
tbb::interface6::memory_pool< Alloc > Class Template Reference
-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. +

Thread-safe growable pool allocator for variable-size requests. More...

#include <memory_pool.h>

+
+Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-tbb::internal::allocator_type
-< T >::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
-template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
- - - -

-Protected Types

-typedef P pool_type
 
- - - -

-Protected Attributes

-pool_type * my_pool
 
- - - - - - - - - - + + + + + +

-Friends

-template<typename U , typename R >
class memory_pool_allocator
 
-template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 

Detailed Description

-

template<typename T, typename P = internal::pool_base>
-class tbb::interface6::memory_pool_allocator< T, P >

+

template<typename Alloc>
+class tbb::interface6::memory_pool< Alloc >

-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

+

Thread-safe growable pool allocator for variable-size requests.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00104.png b/doc/html/a00104.png new file mode 100644 index 0000000000000000000000000000000000000000..040c525da839e5eac853d6e1a5792784458e9f56 GIT binary patch literal 671 zcmeAS@N?(olHy`uVBq!ia0y~yV0gs9z!1Q}%)r24d?s=>0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Nzc>8F{Fa=?cC@|s||Qq zqwOt!-~af*s4hV*vFnN3zExh+H_En1pME56ym{k6mCO{Uz)5?AyCyxE>#y}pz4pu2 zwnZv`StsijE?*y%=XEq~*9(tJYxj5;cJ2B%>sg9bxysA9d)vDAYp2bvtqC})X?{Iz zx17IWevGNMr@2si;G}OhABV0w!XW!himgEXc*kpxI8%rD z>0QhHEqiVJ@4Tzv*s=C^*P~xQBkujbCi1Mf{^so5=4TVXu8-cIGfTyz+hcNRz2u7b zUj6p`RUvDxGfvr`C4OBxX!HM5=fpPdurtdHe7*Pea&unOzgi)7409KJy}4q3-2d&i zZn=xL`LAi~K42L(^})~HDVuXA_^tSLrd;&2u2txpD_z-Ln)a9Nuhn%;sFpoiyJ>Yr zOs%=;sYzkay#9yeZI8Kk^qH*O=_{Q{_2HL0tJd9ka?i8N=I+r~Z}v`D@qG2pDJyy( zai@Qb`FMTvjj$`u4VxB;rEZkS%Sw=4=(|Q{Ro(yfAy?c!9_`}#aDIg-W8M>Ok?)tb zrm`NWt!YjQR%3Yg#9B!7K`tx=Ket~ylao@%;9lP48lHdKn1O+T!PC{xWt~$(69B>c BI+Xwb literal 0 HcmV?d00001 diff --git a/doc/html/a00105.html b/doc/html/a00105.html index de12a4bc..ae314882 100644 --- a/doc/html/a00105.html +++ b/doc/html/a00105.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P > Class Template Reference +tbb::interface6::memory_pool_allocator< T, P > Class Template Reference @@ -33,7 +33,7 @@
+List of all members
-
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

#include <memory_pool.h>

- +

Classes

struct  rebind
struct  rebind
 
- - - - - - - - + + + + + + + + + + + + + +

Public Types

-typedef P pool_type
 
-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef
+tbb::internal::allocator_type
+< T >::value_type 
value_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef size_t size_type
 
+typedef ptrdiff_t difference_type
 
- - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

+
 memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
+
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 
+ + +

+Protected Types

+typedef P pool_type
 
- - +

Protected Attributes

+
pool_type * my_pool
 
 
@@ -101,25 +152,25 @@ template<typename U , typename R > - + - +

Friends

 
template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 

Detailed Description

-

template<typename P>
-class tbb::interface6::memory_pool_allocator< void, P >

+

template<typename T, typename P = internal::pool_base>
+class tbb::interface6::memory_pool_allocator< T, P >

-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

+

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00106.html b/doc/html/a00106.html index ac5281e7..6a977d48 100644 --- a/doc/html/a00106.html +++ b/doc/html/a00106.html @@ -4,7 +4,7 @@ -rml::MemPoolPolicy Struct Reference +tbb::interface6::memory_pool_allocator< void, P > Class Template Reference @@ -33,63 +33,93 @@
-
rml::MemPoolPolicy Struct Reference
+
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+ +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. + More...

+ +

#include <memory_pool.h>

+ + + +

+Classes

struct  rebind
 
- - + + + + + + + +

Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 - }
 
+typedef P pool_type
 
+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 
- - + + + + + + + +

Public Member Functions

MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
memory_pool_allocator (pool_type &pool) throw ()
 
memory_pool_allocator (const memory_pool_allocator &src) throw ()
 
+template<typename U >
 memory_pool_allocator (const memory_pool_allocator< U, P > &src) throw ()
 
+ + +

+Protected Attributes

+pool_type * my_pool
 
- - - - - - - - - - - - - - - + + + + + + + + + +

-Public Attributes

-rawAllocType pAlloc
 
-rawFreeType pFree
 
-size_t granularity
 
-int version
 
-unsigned fixedPool: 1
 
-unsigned keepAllMemory: 1
 
-unsigned reserved: 30
 

+Friends

+template<typename U , typename R >
class memory_pool_allocator
 
+template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
+template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-
The documentation for this struct was generated from the following file:
    -
  • scalable_allocator.h
  • +

    Detailed Description

    +

    template<typename P>
    +class tbb::interface6::memory_pool_allocator< void, P >

    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00107.html b/doc/html/a00107.html index 0dcd68ae..23bd7c5c 100644 --- a/doc/html/a00107.html +++ b/doc/html/a00107.html @@ -4,7 +4,7 @@ -tbb::missing_wait Class Reference +rml::MemPoolPolicy Struct Reference @@ -33,46 +33,63 @@
-
tbb::missing_wait Class Reference
+
rml::MemPoolPolicy Struct Reference
- -

Exception for missing wait on structured_task_group. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::missing_wait:
-
-
- - - -
+ + + +

+Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 + }
 
- - + + +

Public Member Functions

-const char * what () const throw ()
 
MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
+ + + + + + + + + + + + + + +

+Public Attributes

+rawAllocType pAlloc
 
+rawFreeType pFree
 
+size_t granularity
 
+int version
 
+unsigned fixedPool: 1
 
+unsigned keepAllMemory: 1
 
+unsigned reserved: 30
 
-

Detailed Description

-

Exception for missing wait on structured_task_group.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00107.png b/doc/html/a00107.png deleted file mode 100644 index 7f9c4b31407dc4891a59c510c5a999ce0f36acf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489 zcmeAS@N?(olHy`uVBq!ia0y~yV8~=(UkgB(?zx|~ z`Oi*jYPF4J51SOVr|;f8LD}<~`BgKkUu!;#yQkurE7ZKqbJ8ZC$ttOmSw_avj0e{5 zWaLSl@v=;MsZ?5&OLNF$pZJ;8msuvH&0^T(BkV9Olj($!FGJ)qPKDDZj43mhJvK0w zW@0mF$YeV4iGA79UGa<|A#3-(?!H_$i=ik)?fmzrTTJh!-hO{?SJ|g^#}A#VeHmZ% ztLI*(`4QWnOWaHE{P1BbwT!*GY}1_di`>>6XA3S>2ca;%<{%`2}lU?pdg= z_P<(iZ}6Yl7mYifKD2BsT$H-1`1}H`w=d=v>E{%lf3~Ube2sF|vx@s6_oVz88`R`) pT;7`S?>a-pY<<(2GkYJf7bMuN4i8+x%fP_E;OXk;vd$@?2>|9+*ysQN diff --git a/doc/html/a00108.html b/doc/html/a00108.html index 038fdbfb..5f02bbb4 100644 --- a/doc/html/a00108.html +++ b/doc/html/a00108.html @@ -4,7 +4,7 @@ -tbb::movable_exception< ExceptionData > Class Template Reference +tbb::missing_wait Class Reference @@ -33,195 +33,46 @@
-
tbb::movable_exception< ExceptionData > Class Template Reference
+
tbb::missing_wait Class Reference
-

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. +

Exception for missing wait on structured_task_group. More...

#include <tbb_exception.h>

-Inheritance diagram for tbb::movable_exception< ExceptionData >:
+Inheritance diagram for tbb::missing_wait:
- - -tbb::tbb_exception + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

movable_exception (const ExceptionData &data_)
 
movable_exception (const movable_exception &src) throw ()
 
-const movable_exceptionoperator= (const movable_exception &src)
 
-ExceptionData & data () throw ()
 
-const ExceptionData & data () const throw ()
 
-const char * name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char * what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - + +

-Protected Attributes

-ExceptionData my_exception_data
 User data.
 
+const char * what () const throw ()
 

Detailed Description

-

template<typename ExceptionData>
-class tbb::movable_exception< ExceptionData >

- -

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread.

-

Code using TBB can instantiate this template with an arbitrary ExceptionData type and throw this exception object. Such exceptions are intercepted by the TBB scheduler and delivered to the root thread ().

-
See Also
tbb::tbb_exception
-

Member Function Documentation

- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
void tbb::movable_exception< ExceptionData >::destroy ()
throw (
)
-
-inlinevirtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - - - - - - - -
movable_exception* tbb::movable_exception< ExceptionData >::move ()
throw (
)
-
-inlinevirtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implements tbb::tbb_exception.

- -
-
- -
-
-
-template<typename ExceptionData >
- - - - - -
- - - - - - - -
void tbb::movable_exception< ExceptionData >::throw_self ()
-
-inlinevirtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implements tbb::tbb_exception.

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

    Exception for missing wait on structured_task_group.

    +

    The documentation for this class was generated from the following file:
    • tbb_exception.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00108.png b/doc/html/a00108.png index 2c2e3fe83eab54ed65eb8ecc80475c8fdaf8016c..7f9c4b31407dc4891a59c510c5a999ce0f36acf8 100644 GIT binary patch delta 443 zcmX@W{*qa-Gr-TCmrII^fq{Y7)59f*fq@~Dfq@}_gPDPWL05Bi?nFhadd3P*7srqa z#HWGu~iVEs-;p2Qh1%cPe|rA4_khdlO)pILpGWkT94hD|=g4%0H3P8j(zL@wi0 zIBmk1GIQBu17m3>HiL#trW2pomo42D&lnQ2cJJ%%%Vo0|ibB-Re}B5g^ls|y_xESHqA-D$ZgGWw$Q_J`>yMg)qVLd z?l#GlU$Exoo`vda|EmS}2LG9T(YWL3L(9g(MX9Tb&o9t=`(kd9eoo=}XPf%Y*CPs*RMK~4U~<*f<-t}|53);FCwv-bgeL4uv&>hQo7ybKHs44$rjF6*2UngBFT B#8&_S literal 960 zcmeAS@N?(olHy`uVBq!ia0y~yVEDnnz|g_L%)r3#SN9r-BN5;e;`;ype+CAI7jM3n z_8*$Sz`y{;2M!!y?Ytw;z`(#!666=m@E-!Mo(eHyU|{z5ba4!+V0=6G_NC2QJPzW8 z%PRky-_z3Qc>e$Mg}X}*Yw3EWG`2)LaU4`)2@S2@v18RL)tH#jt3vk`@AW-=nOM`i zW7Vt4HcI#A&GKBgdbho^=q;;%@BWMCu3A<8sik7e$)#(WvLd_8La$0!2H5DORK+~q zZ=k+vmHDTRitj6rCg1Mwp1yK-#K*U>3szMrpWpjRbEoW$$M(wmW?$XC-e~pzo*k=R z8NIi?b2Kz`{_!dxu4XYK+VQAynyk%Q9yjQ!-If`c_aVDCoUoM@NV1 zIuZU_&;4byU0upf*t)u`dwTn*t4rQPr;h?o)>po*mM)CXHC?V9xNi01r4dJ^lh0?) z?l_?uv-eS8>WX7VE4#kx$%SgpT@AEk&rTRy{ zAKwLcAKxY~uCMQZ`TqZanndIL_aCR+;d}E@Uu^y5?<;=iN7{ZnlN+zCr&PpSF8APl z=XcJW-#-6*3k4_2p6TlDxYN_!-4Sus*ZP&cndxM^_MkH&x+|9N<)cuHIwG7A367TzAF*n5f*`w{FS8A<0Uhpz$(H>KC z5##yp6ZNLXwiTBMrR940w|E#m<~XL`z&Tm8zgc$GL;o5FuISLGYma_;wtL%dpWDA4 zhIyA79nr9pbnFXT`{K>BHye!poc-{$+Awy{E^pB-GS@dmpKm>(y>C->_e@)LyONH> zT5Sd=wYnG2D_uEn$DFBttuyw$axUJ>{a -tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::movable_exception< ExceptionData > Class Template Reference @@ -33,119 +33,195 @@
-
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::movable_exception< ExceptionData > Class Template Reference
-

implements a function node that supports Input -> (set of outputs) +

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...

-

#include <flow_graph.h>

+

#include <tbb_exception.h>

-Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
+Inheritance diagram for tbb::movable_exception< ExceptionData >:
- - -tbb::flow::interface8::graph_node + + +tbb::tbb_exception
- - - - - - - - - - - -

-Public Types

-typedef Input input_type
 
-typedef null_type output_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-Output >::type 
output_ports_type
 
-typedef
-internal::multifunction_input
-< input_type,
-output_ports_type, Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 
- - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Protected Attributes

-static const int N = tbb::flow::tuple_size<Output>::value
 
movable_exception (const ExceptionData &data_)
 
movable_exception (const movable_exception &src) throw ()
 
+const movable_exceptionoperator= (const movable_exception &src)
 
+ExceptionData & data () throw ()
 
+const ExceptionData & data () const throw ()
 
+const char * name () const throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char * what () const throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () throw ()
 Destroys objects created by the move() method. More...
 
void throw_self ()
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 

+Protected Attributes

+ExceptionData my_exception_data
 User data.
 

Detailed Description

-

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >

+

template<typename ExceptionData>
+class tbb::movable_exception< ExceptionData >

+ +

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread.

+

Code using TBB can instantiate this template with an arbitrary ExceptionData type and throw this exception object. Such exceptions are intercepted by the TBB scheduler and delivered to the root thread ().

+
See Also
tbb::tbb_exception
+

Member Function Documentation

+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + + + + + + + +
void tbb::movable_exception< ExceptionData >::destroy ()
throw (
)
+
+inlinevirtual
+
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implements tbb::tbb_exception.

+ +
+
+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + + + + + + + +
movable_exception* tbb::movable_exception< ExceptionData >::move ()
throw (
)
+
+inlinevirtual
+
-

implements a function node that supports Input -> (set of outputs)

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Creates and returns pointer to the deep copy of this exception object.

    +

    Move semantics is allowed.

    + +

    Implements tbb::tbb_exception.

    + +
+
+ +
+
+
+template<typename ExceptionData >
+ + + + + +
+ + + + + + + +
void tbb::movable_exception< ExceptionData >::throw_self ()
+
+inlinevirtual
+
+ +

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implements tbb::tbb_exception.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00109.png b/doc/html/a00109.png index e1645b517a3bbc18b8e22a253ae60bf1a4a29802..2c2e3fe83eab54ed65eb8ecc80475c8fdaf8016c 100644 GIT binary patch literal 960 zcmeAS@N?(olHy`uVBq!ia0y~yVEDnnz|g_L%)r3#SN9r-BN5;e;`;ype+CAI7jM3n z_8*$Sz`y{;2M!!y?Ytw;z`(#!666=m@E-!Mo(eHyU|{z5ba4!+V0=6G_NC2QJPzW8 z%PRky-_z3Qc>e$Mg}X}*Yw3EWG`2)LaU4`)2@S2@v18RL)tH#jt3vk`@AW-=nOM`i zW7Vt4HcI#A&GKBgdbho^=q;;%@BWMCu3A<8sik7e$)#(WvLd_8La$0!2H5DORK+~q zZ=k+vmHDTRitj6rCg1Mwp1yK-#K*U>3szMrpWpjRbEoW$$M(wmW?$XC-e~pzo*k=R z8NIi?b2Kz`{_!dxu4XYK+VQAynyk%Q9yjQ!-If`c_aVDCoUoM@NV1 zIuZU_&;4byU0upf*t)u`dwTn*t4rQPr;h?o)>po*mM)CXHC?V9xNi01r4dJ^lh0?) z?l_?uv-eS8>WX7VE4#kx$%SgpT@AEk&rTRy{ zAKwLcAKxY~uCMQZ`TqZanndIL_aCR+;d}E@Uu^y5?<;=iN7{ZnlN+zCr&PpSF8APl z=XcJW-#-6*3k4_2p6TlDxYN_!-4Sus*ZP&cndxM^_MkH&x+|9N<)cuHIwG7A367TzAF*n5f*`w{FS8A<0Uhpz$(H>KC z5##yp6ZNLXwiTBMrR940w|E#m<~XL`z&Tm8zgc$GL;o5FuISLGYma_;wtL%dpWDA4 zhIyA79nr9pbnFXT`{K>BHye!poc-{$+Awy{E^pB-GS@dmpKm>(y>C->_e@)LyONH> zT5Sd=wYnG2D_uEn$DFBttuyw$axUJ>{aOEqt z7baf)yW`#ezW#5*8dvkSuYXXev{;lw(bMx;d~%N<3~f~9;NZB?dGW67-Me7owr7l! z!-07!db@Wo-fg{WxB0XkEe#E}o-t+R?&akr<@q{=oQ#aslXkp$*Z1z-i+A@T9tklq zeN!pC2{B^t#v`gMEN?s?ZQA|&zfawjckkwFLUc^s3Nml;?&{=DZw`(dlaHj9f9E%> zlBr)`_-ogky>s@|$?X-}2XRI9bg-=_lWyJp>%7PHey07dl#K5YclCGeUcCD^y9d~f zDY|dp{Zq_4x#PrvY>ha3d9k-3C)Ii(NnSH9*pqjB{bfgxbB-g+gc*M*EBWgaQ&#@p z2jZSJOYh#bKT=(2xodhgNO?OXBp|lvJv6^J=|kDKuP^5GJwG2j^LGl^vcE`1{-1Jx z+wR{mU7l~>{p&oI`TAYl$1=P9x#i#aCquk6>DJx9^)Cu1fx`2d? zF1g39``}`s+qFk}Lw$T~ z=vALbn^wKrefRj&$(w&RtG;U%x_h_&v2fwf^?zTyi@Tww*PnUu?%rp{C$HVLE#8w} z^mzKwr+xR9w%7iOc|KoiqW4u$0PK}c-qUvB_3>yi+5PL5`%9MpO`jBYJoq^G_5RB< zgKeKbetF$Sum8Nwy~5pf*IRC1+`25f8|+!>JI9|ER`qW`|N405tNG{R{9>2?Dh%B* z$MSxSR*kj&?yn_3!_L3F^yuOC_1?YZr(dui{kKW}v)r0(?{0ngnVg=xJG5%;gH1~Q zS~lh@cdP$Sy&=}WxA$?1!}^`SLMESMJ*OLCS3c?D_Qaanc`Z;|md)X=P=Dh`Z<$bZwnw!^C_t)NKdS6x>`Kc(a?)j5fZ;$-^ z_EPq<+MS@%xXWJzL2>(aesuro%OdmFHeB9pTeV64diPfD$*K8&ubo_a@>kW`vbxi$ z5C8ADvHVxz{aatJ*{-S-Q{3G2`J&|A%YPTgo&9Z=`>eS!Ci~Lcz{}m2pX*h9&xpwv z+?;d$Z>Q}ZZ~reZKhKTNJ^$u!wS`&vb9MV;OPE29%P*dvGyQV+idpe{f8AAi)0clNr5jT_zc0!U`nGQU`@f5#_d}gf%RIm1^wsaV zRS$ptQw1g9v-^)fy=}&O;POXRy?poAg_gVj`NYhV4+o|9|2z91eahV(opIlHeb%ssHc4zuH`AnSJS{h= zHr+gNm&iWby4U3|yB`-xrIw$a#s6!~?(e0#$8#obS-$v4YUtJPl}390^{Wea3N=mM zF(*Do`{xQyen@8BciO$sGQR4X*u?y<(~(>L)W+Cd?!SCLYT@@yD|hGruHgx1%KLVu zziR8gH}SK6rc4$yy(jj@|L9Ylc5&s>|H?Uk^=b=a^p54+{Qqv>+w1WaxjFCTOr^KH zc7S+1nrUuvzLZ<{pIxUnR>t(LimFg&KYxDK)OpvxD(LC!`lN(~*3MRcRAlQIHhstT znRVNpY$7h&b1g|-y1Dhq-K6=ikJ|)__0BIXy?ODf>aT-M_2w+yacjS%8U|!De{-Ci z=D%C_>1K5u_L9<=<%v7@2g=8@uX9xW zwQjwjdSsbmh0XR82R++l&vwc5t1n+3KV7~o!=`x-TgF+ z^ufhDZ1iQGbG^Ivvi+!>%d7UkGmby~`s&Nc z=OMdnzg_E%p6D8{zIb!b!^-*RLg#zy=I^u3m}lm1`tsA6&oA`nSMN2EJeJ<}UuyUB z!a4spXghx2`~K3`%KqOaKbQXB_xbvBUoQV+PxSQiduQ&8{p|Si-OYJB)~x!qe|yIs zm4wi%es_UyhJ z{ae2`^>KBfrC&6-B+gMUtgO@Br=a)0`^t|UrQcO|?cRU&y4lP7yEolTuzB<2^7~Wq zd#gVmiof|9lzjeg|E=R=78d&Uir=G6yQ|-AF1&g7Z|T26$G7kP>BZk(B3rg$_wV^O zcb7lsn&F_32|MeX+P&vaobd!T|IYYwaNLMlrozJV#vP>pje{DTjck_LbWKi1#@`qwolW&}ayU?z zlIP@b;F*!CqC$ebk-4HmLh;N=0sA6yM|(cF=i0>9EDw3aINA0wBe)G7(|1f* zd6UMcyaW5nKh9Duc)z}Gc74a`#|Leg3~#>Q^rh@kvsqvE&m*ceI$#~2tka)MRl=4}E=H@+{>1&x&8B-KUd_e9pR_yi_Yzn`}X1nKj4nPSNAC zFLMhkYhLMO{%hW`C;Q;0gRgH^#osRN348SEJ6jqkb$wGQ{23QB?_b#CqPpX?7ku^W z!ej2KpZ$L9X~~wn)Nrf1@PkHr_1O_%v*YUuW9D6dl_{gM=%wDGYtw&x-4osU=(gRA zcbD7Nu)Gp3wA@)e%dGsWesxVPyVy~=X>}6Q)%}k>J-qSH)5MvegjxG@ZQ;*t8|1^E zzP_IG&`$TpXPFq6^LtKwtSGAbWjf>C^7i?!ceY%7d;j)l|L1vA?;L;n*7EY=pXaM{ z4{mv3!xH~~_pvuiBm2GljdEvIPv?54RC@2@(+6|r8B2QqxN5`!ijSFdKXBjqf8qV# zFZJP7ky`qqHGaqVK%KVD!gW1`w;t% -tbb::mutex Class Reference +tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,140 +33,119 @@
-
tbb::mutex Class Reference
+
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
-

Wrapper around the platform's native reader-writer lock. +

implements a function node that supports Input -> (set of outputs) More...

-

#include <mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::mutex:
+Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
- - + + +tbb::flow::interface8::graph_node
- - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - + + + + + + + + + +

Public Types

enum  state_t { INITIALIZED =0x1234, -DESTROYED =0x789A, -HELD =0x56CD - }
 
-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
+typedef Input input_type
 
+typedef null_type output_type
 
+typedef
+internal::wrap_tuple_elements
+< N,
+internal::multifunction_output,
+Output >::type 
output_ports_type
 
+typedef
+internal::multifunction_input
+< input_type,
+output_ports_type, Allocator > 
fInput_type
 
+typedef
+internal::function_input_queue
+< input_type, Allocator > 
input_queue_type
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

Public Member Functions

mutex ()
 Construct unacquired mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
-void set_state (state_t to)
 Set the internal state.
 
+template<typename Body >
 multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
+void set_name (const char *name)
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
+ + +

+Protected Member Functions

+void reset_node (reset_flags f)
 
- - - - - - - + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Static Protected Attributes

+static const int N = tbb::flow::tuple_size<Output>::value
 
- - - + + + + + + + +

-Friends

-class scoped_lock
 

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Wrapper around the platform's native reader-writer lock.

-

For testing purposes only.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

+

template<typename Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
+class tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >

-

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • mutex.h
  • +

    implements a function node that supports Input -> (set of outputs)

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00110.png b/doc/html/a00110.png index 5fdf55b651bc5c164a1cb34b69cc3c780cc1b9ec..e1645b517a3bbc18b8e22a253ae60bf1a4a29802 100644 GIT binary patch literal 3871 zcmeAS@N?(olHy`uVBq!ia0y~yVAo?{VCdjrW?*1wle8&iU|^64@CkAK|NlP&1H+3q zUrYNBO<-VP0OJD(4zPCKk!N6F;3x_53ugEa0as6j7%?#Lt@Cto45?szd-rYB>OEqt z7baf)yW`#ezW#5*8dvkSuYXXev{;lw(bMx;d~%N<3~f~9;NZB?dGW67-Me7owr7l! z!-07!db@Wo-fg{WxB0XkEe#E}o-t+R?&akr<@q{=oQ#aslXkp$*Z1z-i+A@T9tklq zeN!pC2{B^t#v`gMEN?s?ZQA|&zfawjckkwFLUc^s3Nml;?&{=DZw`(dlaHj9f9E%> zlBr)`_-ogky>s@|$?X-}2XRI9bg-=_lWyJp>%7PHey07dl#K5YclCGeUcCD^y9d~f zDY|dp{Zq_4x#PrvY>ha3d9k-3C)Ii(NnSH9*pqjB{bfgxbB-g+gc*M*EBWgaQ&#@p z2jZSJOYh#bKT=(2xodhgNO?OXBp|lvJv6^J=|kDKuP^5GJwG2j^LGl^vcE`1{-1Jx z+wR{mU7l~>{p&oI`TAYl$1=P9x#i#aCquk6>DJx9^)Cu1fx`2d? zF1g39``}`s+qFk}Lw$T~ z=vALbn^wKrefRj&$(w&RtG;U%x_h_&v2fwf^?zTyi@Tww*PnUu?%rp{C$HVLE#8w} z^mzKwr+xR9w%7iOc|KoiqW4u$0PK}c-qUvB_3>yi+5PL5`%9MpO`jBYJoq^G_5RB< zgKeKbetF$Sum8Nwy~5pf*IRC1+`25f8|+!>JI9|ER`qW`|N405tNG{R{9>2?Dh%B* z$MSxSR*kj&?yn_3!_L3F^yuOC_1?YZr(dui{kKW}v)r0(?{0ngnVg=xJG5%;gH1~Q zS~lh@cdP$Sy&=}WxA$?1!}^`SLMESMJ*OLCS3c?D_Qaanc`Z;|md)X=P=Dh`Z<$bZwnw!^C_t)NKdS6x>`Kc(a?)j5fZ;$-^ z_EPq<+MS@%xXWJzL2>(aesuro%OdmFHeB9pTeV64diPfD$*K8&ubo_a@>kW`vbxi$ z5C8ADvHVxz{aatJ*{-S-Q{3G2`J&|A%YPTgo&9Z=`>eS!Ci~Lcz{}m2pX*h9&xpwv z+?;d$Z>Q}ZZ~reZKhKTNJ^$u!wS`&vb9MV;OPE29%P*dvGyQV+idpe{f8AAi)0clNr5jT_zc0!U`nGQU`@f5#_d}gf%RIm1^wsaV zRS$ptQw1g9v-^)fy=}&O;POXRy?poAg_gVj`NYhV4+o|9|2z91eahV(opIlHeb%ssHc4zuH`AnSJS{h= zHr+gNm&iWby4U3|yB`-xrIw$a#s6!~?(e0#$8#obS-$v4YUtJPl}390^{Wea3N=mM zF(*Do`{xQyen@8BciO$sGQR4X*u?y<(~(>L)W+Cd?!SCLYT@@yD|hGruHgx1%KLVu zziR8gH}SK6rc4$yy(jj@|L9Ylc5&s>|H?Uk^=b=a^p54+{Qqv>+w1WaxjFCTOr^KH zc7S+1nrUuvzLZ<{pIxUnR>t(LimFg&KYxDK)OpvxD(LC!`lN(~*3MRcRAlQIHhstT znRVNpY$7h&b1g|-y1Dhq-K6=ikJ|)__0BIXy?ODf>aT-M_2w+yacjS%8U|!De{-Ci z=D%C_>1K5u_L9<=<%v7@2g=8@uX9xW zwQjwjdSsbmh0XR82R++l&vwc5t1n+3KV7~o!=`x-TgF+ z^ufhDZ1iQGbG^Ivvi+!>%d7UkGmby~`s&Nc z=OMdnzg_E%p6D8{zIb!b!^-*RLg#zy=I^u3m}lm1`tsA6&oA`nSMN2EJeJ<}UuyUB z!a4spXghx2`~K3`%KqOaKbQXB_xbvBUoQV+PxSQiduQ&8{p|Si-OYJB)~x!qe|yIs zm4wi%es_UyhJ z{ae2`^>KBfrC&6-B+gMUtgO@Br=a)0`^t|UrQcO|?cRU&y4lP7yEolTuzB<2^7~Wq zd#gVmiof|9lzjeg|E=R=78d&Uir=G6yQ|-AF1&g7Z|T26$G7kP>BZk(B3rg$_wV^O zcb7lsn&F_32|MeX+P&vaobd!T|IYYwaNLMlrozJV#vP>pje{DTjck_LbWKi1#@`qwolW&}ayU?z zlIP@b;F*!CqC$ebk-4HmLh;N=0sA6yM|(cF=i0>9EDw3aINA0wBe)G7(|1f* zd6UMcyaW5nKh9Duc)z}Gc74a`#|Leg3~#>Q^rh@kvsqvE&m*ceI$#~2tka)MRl=4}E=H@+{>1&x&8B-KUd_e9pR_yi_Yzn`}X1nKj4nPSNAC zFLMhkYhLMO{%hW`C;Q;0gRgH^#osRN348SEJ6jqkb$wGQ{23QB?_b#CqPpX?7ku^W z!ej2KpZ$L9X~~wn)Nrf1@PkHr_1O_%v*YUuW9D6dl_{gM=%wDGYtw&x-4osU=(gRA zcbD7Nu)Gp3wA@)e%dGsWesxVPyVy~=X>}6Q)%}k>J-qSH)5MvegjxG@ZQ;*t8|1^E zzP_IG&`$TpXPFq6^LtKwtSGAbWjf>C^7i?!ceY%7d;j)l|L1vA?;L;n*7EY=pXaM{ z4{mv3!xH~~_pvuiBm2GljdEvIPv?54RC@2@(+6|r8B2QqxN5`!ijSFdKXBjqf8qV# zFZJP7ky`qqHGaqVK%KVD!gW1`w;t%Y2*!uF} zC2vmOs@~RnTxU^inuXJ$T9^ej7Qiz5o5V*7|I_*m`1Z zrfvRF7hkq5%NJ~({_@4QX?0;4%lDMF>T%wPY*ktP;^zvVcq^0NCj)$M2}do7i|pBD zd5hz1{nHosZq0xC!tefX%UM~MxI?#lt)06nntxut_xHT3v9@zp?K*jL@+xgl{a}`; zNm2KH%Xwc)x6m#*_im4tsFoaS;(eD%eizF>@A03+_rt@bKPE -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference +tbb::mutex Class Reference @@ -33,71 +33,140 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
+
tbb::mutex Class Reference
+ +

Wrapper around the platform's native reader-writer lock. + More...

+ +

#include <mutex.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
+Inheritance diagram for tbb::mutex:
- - + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + + + +

+Public Types

enum  state_t { INITIALIZED =0x1234, +DESTROYED =0x789A, +HELD =0x56CD + }
 
+typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
+typedef pthread_mutex_t * native_handle_type
 
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

node (const Key &key)
 
node (const Key &key, const T &t)
 
node (const Key &key, T &&t)
 
node (value_type &&i)
 
-template<typename... Args>
 node (Args &&...args)
 
node (value_type &i)
 
node (const value_type &i)
 
-void * operator new (size_t, node_allocator_type &a)
 
-void operator delete (void *ptr, node_allocator_type &a)
 
mutex ()
 Construct unacquired mutex.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+native_handle_type native_handle ()
 
+void set_state (state_t to)
 Set the internal state.
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
- - - + + +

-Public Attributes

-value_type item
 

+Friends

+class scoped_lock
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Detailed Description

    +

    Wrapper around the platform's native reader-writer lock.

    +

    For testing purposes only.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    bool tbb::mutex::try_lock ()
    +
    +inline
    +
    + +

    Try acquiring lock (non-blocking)

    +

    Return true if lock acquired; false otherwise.

    + +

    References tbb::aligned_space< T, N >::begin().

    + +

    Referenced by tbb::mutex::scoped_lock::try_acquire().

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00111.png b/doc/html/a00111.png index b91437953953383d1bdd13d2f918fcb240b393eb..5fdf55b651bc5c164a1cb34b69cc3c780cc1b9ec 100644 GIT binary patch delta 635 zcmbQkv4T~xGr-TCmrII^fq{Y7)59f*fq~%#0|P?<2Qvc$gUY*;K@%0N>Y2*!uF} zC2vmOs@~RnTxU^inuXJ$T9^ej7Qiz5o5V*7|I_*m`1Z zrfvRF7hkq5%NJ~({_@4QX?0;4%lDMF>T%wPY*ktP;^zvVcq^0NCj)$M2}do7i|pBD zd5hz1{nHosZq0xC!tefX%UM~MxI?#lt)06nntxut_xHT3v9@zp?K*jL@+xgl{a}`; zNm2KH%Xwc)x6m#*_im4tsFoaS;(eD%eizF>@A03+_rt@bKPEz!1Q}%)r1f;q59z1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;*bi2p>3bfVK0EJOcv*M@f)hFvEWcxOytYh=GB5wWo_?NCo5Dxv^E7t$5hn z&1=8!e>_=$`IG#@pSM0MtTG91GBmpu@kq>g^N}-eJ|#?=;&JJyXZR$M<`Pv;Lk}2Z z$HdinisiRkUwTbS61XY z{Jcu=;_QO-r%}5mE%`rpmZX7QBXSljO>AHUzKv^`y{_59~l<*9eSi+AeUMbcry=Rtc`!hOxapYaS zsM)8#e75Kn-eVJIUbXjxZ(uC*?TfdUuYHl79_{wp``v{;lQ4U!9bA=P1@3ySV%pgL zbc*(WrtI{$FRrDTncwNV;A3Kz8 zs=nJTb>rNxYg79#%T3ku>0O&S^Ownbw(4bKSML4WyGM#;N&PxK{aXpWpH{7Ae;(7D zR{K0_R`69di}~UC_ruk*9_(IX`z~;qRV?%E12Q|M_O8EWQFl62zTx80Z?&c$LU(5c z|9|rP)z8&O@^};X|GR!;AKNsW()BI6|Gha^+%R@vlGKogI5omj90E3(tx>W!d7a0&|VCrP$ueFD@+j&foI$)VgWc zv!*MgSIvpIoWH_q$6xhDf5Jb%Di8a+d*hzv+6})au471=fP_C3q^3=qF*A1Ve}?Co X>__abq`qTdU|{fc^>bP0l+XkKNr~j3 diff --git a/doc/html/a00112.html b/doc/html/a00112.html index 2f1df279..42191270 100644 --- a/doc/html/a00112.html +++ b/doc/html/a00112.html @@ -4,7 +4,7 @@ -tbb::null_mutex Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference @@ -33,60 +33,71 @@
-
tbb::null_mutex Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
- -

A mutex which does nothing. - More...

- -

#include <null_mutex.h>

-Inheritance diagram for tbb::null_mutex:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
- - + +
- - - - + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 

+Public Member Functions

node (const Key &key)
 
node (const Key &key, const T &t)
 
node (const Key &key, T &&t)
 
node (value_type &&i)
 
+template<typename... Args>
 node (Args &&...args)
 
node (value_type &i)
 
node (const value_type &i)
 
+void * operator new (size_t, node_allocator_type &a)
 
+void operator delete (void *ptr, node_allocator_type &a)
 
- - - - - - - + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = true
 

+Public Attributes

+value_type item
 
-

Detailed Description

-

A mutex which does nothing.

-

A null_mutex does no operation and simulates success.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00112.png b/doc/html/a00112.png index b72b3103da6961e7e331dd83e54bf97960852cd0..b91437953953383d1bdd13d2f918fcb240b393eb 100644 GIT binary patch literal 1052 zcmeAS@N?(olHy`uVBq!ia0y~yU|h|>z!1Q}%)r1f;q59z1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;*bi2p>3bfVK0EJOcv*M@f)hFvEWcxOytYh=GB5wWo_?NCo5Dxv^E7t$5hn z&1=8!e>_=$`IG#@pSM0MtTG91GBmpu@kq>g^N}-eJ|#?=;&JJyXZR$M<`Pv;Lk}2Z z$HdinisiRkUwTbS61XY z{Jcu=;_QO-r%}5mE%`rpmZX7QBXSljO>AHUzKv^`y{_59~l<*9eSi+AeUMbcry=Rtc`!hOxapYaS zsM)8#e75Kn-eVJIUbXjxZ(uC*?TfdUuYHl79_{wp``v{;lQ4U!9bA=P1@3ySV%pgL zbc*(WrtI{$FRrDTncwNV;A3Kz8 zs=nJTb>rNxYg79#%T3ku>0O&S^Ownbw(4bKSML4WyGM#;N&PxK{aXpWpH{7Ae;(7D zR{K0_R`69di}~UC_ruk*9_(IX`z~;qRV?%E12Q|M_O8EWQFl62zTx80Z?&c$LU(5c z|9|rP)z8&O@^};X|GR!;AKNsW()BI6|Gha^+%R@vlGKogI5omj90E3(tx>W!d7a0&|VCrP$ueFD@+j&foI$)VgWc zv!*MgSIvpIoWH_q$6xhDf5Jb%Di8a+d*hzv+6})au471=fP_C3q^3=qF*A1Ve}?Co X>__abq`qTdU|{fc^>bP0l+XkKNr~j3 delta 659 zcmbQkae!5^Gr-TCmrII^fq{Y7)59f*fq~%#0|P?<2Qvc$gUY*;K@%0N>Y4mKT^vIy z7~jr)eQA{ek860^oSX0eA7j^^9w+E-Gr!Fu?}8d{tgrCDq_i^D#7R%$8MQp;i7c4( z#MAl0_aE^yVt2js&9TXT{{DgeEwFw!{qC1xBuMwrfw|ScXMV|OxMC+)Ba}7-?D4U zwwyiBZ@Zi^x^?un*;-54vy*;TE1vY4`p_+LlhvI{7tZ~{h2mfSS#m_}%-PI+A~(Y> z|7i0pt_*+2bp7dzZ%6+Myx>>;y2*}f!)7keu$AJAi)vq9=;>ZqmBGJ7WA7%(((Ema zZ?D$B$as4`t0bX%zuWYAU!1P5^~%0b`ugO{ZwCCk-^siTxE|YN`*PQ$FPpktyn|MM zzju66Nnc;nvRCJJ2RUvuYuVVXA{%6Xrg*l>+ZR)M-nIVN+T(S}U)w?TX5&^dqNy*$)i1NFH;>D^%k8_Z>U#ybz`*AG~#;TIWdsIzpIC- zA}B@Vz+|Px4D&=JSwAc}q0xY< -tbb::null_rw_mutex Class Reference +tbb::null_mutex Class Reference @@ -33,7 +33,7 @@
-
tbb::null_rw_mutex Class Reference
+
tbb::null_mutex Class Reference
-

A rw mutex which does nothing. +

A mutex which does nothing. More...

-

#include <null_rw_mutex.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::null_rw_mutex:
+Inheritance diagram for tbb::null_mutex:
- - + +
- - + +

Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - + + - - + - +

Static Public Attributes

-static const bool is_rw_mutex = true
 
+
+static const bool is_rw_mutex = false
 
static const bool is_recursive_mutex = true
 
+
 
static const bool is_fair_mutex = true
 
 

Detailed Description

-

A rw mutex which does nothing.

-

A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

+

A mutex which does nothing.

+

A null_mutex does no operation and simulates success.


The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • +
  • null_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00113.png b/doc/html/a00113.png index 1ddf07110ee986746c8aac255d38381a067a83e9..b72b3103da6961e7e331dd83e54bf97960852cd0 100644 GIT binary patch delta 623 zcmcb@dVqC8OufISi(^Oy00<}+TX1CTXs#^mb2&iZI?4fw~pR6TWcwMcGB-^#gkrBAG#%Ovbt00!nt3# zQ2fh3OOB|WIh(mp3hdGWfS>?A;_;n!Sbb?bR3c8E?;Ll_XT}cbh)%i_`VBUfCB)U!Q#W&47RRJDHaO z*JGP(U+$XpWmA`nchKtZ_l{30>FaA+_Uhd3AjgenEgQR4WP|L_6wg+9`(jGZyVf6D zd%Q0BYdff(oXiw5$tIJ@)OdFT!@u2m4B;0-9rCw#Pl#hJd9;V^WvTxU&LG#b=Vl>D09Gizq7qeMeJt44!5 z2+!rVIy&p{TbH|Y7_@40ZZnHK2(`Tzc3Ji4U8eQP+^LCCyeHrPGmrHe(;&<=;-07mf2+Kg_a=S!|jSwpKSI z@KpT0o>%K`hujq?G5qIto%Ki1U(t+L7SFdyH*5sEbOFOWkp&F%O6oVxp84~-ef+=X W;MN7AfFnGH9xvX8_DHvj*BT=h;(>x7nVodKtqwx-@ZzUhc| zT3Wb(n&&^!1(Tk5GHQ9w+rs%v?!WM2@5_4|dsB05{@?%lnck^T?&GgaTdGd|D{G9U}O{U~^eGI+7>rU^}D~p9*)Mrdhn7w_AePnpz zjJYe1Ey-9Ve>2+pa#ql{)VH>`k0py;)Qh{dYu*j zu@`>7SI9`6%X~M?z;HBu20YOW#_8srPti9u4V7A#v|i^|rj_tiR{&tGV~m~poMp(}r9n&-N?jpLh6ADl74F`5sdf z?V|c}H9U+=8fMLmbzrDpCw)M)MD)V#w@ORG8D%ZjJ61^sG<0h`;(Xv)FBr(+-_^lX z5#%CrV6xI8hIt}_tRI$iXf&w1x-i;kDsesVL{aijbrC2k*dD|)ay{?_Vf6++zBGC3 zb&~`S2+oyhU|_Xa@>1CJj$8W4+qbp_qzO;0z3CP7`tI8rYu4XOI?idZz4WTkePNQz zX?4k5xn|Zz2K^U%7SBGKY+E&Z!Q5jtlTU5`GlyZ%lJjhP|I0M^)$=R;3Q}ZV@kQG5 zmdjf1s66h7x~C`R2lu>Mbz9{|@q*JG{i}B|%wKQMD%fBo1s?+g1B0ilpUXO@geCx^zcPma diff --git a/doc/html/a00114.html b/doc/html/a00114.html index 50cc9d15..ddc149d1 100644 --- a/doc/html/a00114.html +++ b/doc/html/a00114.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::null_type Struct Reference +tbb::null_rw_mutex Class Reference @@ -33,21 +33,60 @@
+
-
tbb::flow::interface8::null_type Struct Reference
+
tbb::null_rw_mutex Class Reference
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph.h
  • + +

    A rw mutex which does nothing. + More...

    + +

    #include <null_rw_mutex.h>

    +
    +Inheritance diagram for tbb::null_rw_mutex:
    +
    +
    + + + +
    + + + + + +

    +Classes

    class  scoped_lock
     Represents acquisition of a mutex. More...
     
    + + + + + + + +

    +Static Public Attributes

    +static const bool is_rw_mutex = true
     
    +static const bool is_recursive_mutex = true
     
    +static const bool is_fair_mutex = true
     
    +

    Detailed Description

    +

    A rw mutex which does nothing.

    +

    A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

    +

    The documentation for this class was generated from the following file:
      +
    • null_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00114.png b/doc/html/a00114.png new file mode 100644 index 0000000000000000000000000000000000000000..1ddf07110ee986746c8aac255d38381a067a83e9 GIT binary patch literal 724 zcmeAS@N?(olHy`uVBq!ia0y~yV0gj6z!1Q}%)r2)^6n%^Kq9~=#P$FG{~)doVuj%cT)g$t;8{u5m=>4_(!mgl@JoWJD$3orJ*ytlD8 zHP`0<{jWc+E|}EyT4054v`OZV4?O)J!}?@zPdk1$Pj=EwAKjfN-`LB~Ils|lN?zB; z(EGdY^gg|^Sm;H@)P&jFx7bI9C(f9=^4OA$Rq{8ZtuJQRY=y6bk)b*Q%7we_33<*tk0>-zLe zUv{pFUV6>#>RR^x{*~36U!9xB7kc;T&E{3wp8l&jwy12adS9*M`TT{(iy3z-L$x%n zHEqaM@@&6S{&|Q0q_Pq(m+vt((JrblSHnZdq+!;~SO z@xb;Vo{{T;CkU%I@bRU|Td$iWctCKjOalX}#gdo8rgz-ZPu{+@Eg(&JYVA$0px1Zb z)>yOtUea++gYBhPh3*TJTu!S?=E}1+GU&h9vv~H=WZSCQ3+5iHnS5&dpE(SBmYiqX z`(LKPubyA&SCAs}iZ9ZZw_Mh8N9A!x)IB{hKe*@Bs@p0ziWi*j=wH2yVg7o1R@rXv v*vMVI49~SdZU#9FgumzSnK`rmFT -tbb::flow::interface8::num_arguments< T > Struct Template Reference +tbb::flow::interface8::null_type Struct Reference @@ -33,31 +33,21 @@
-
-
tbb::flow::interface8::num_arguments< T > Struct Template Reference
+
tbb::flow::interface8::null_type Struct Reference
- - - - -

-Static Public Attributes

-static const int value = 1
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00116.html b/doc/html/a00116.html index ca255cc7..4e4bdcc5 100644 --- a/doc/html/a00116.html +++ b/doc/html/a00116.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference +tbb::flow::interface8::num_arguments< T > Struct Template Reference @@ -33,23 +33,23 @@
-
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference
+
tbb::flow::interface8::num_arguments< T > Struct Template Reference
- - + +

Static Public Attributes

-static const int value = port_ref_impl<N1,N2>::size
 
+static const int value = 1
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -57,7 +57,7 @@ static const int value

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00117.html b/doc/html/a00117.html index 98c4bf18..68b3a088 100644 --- a/doc/html/a00117.html +++ b/doc/html/a00117.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference @@ -33,23 +33,23 @@
-
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference
- - + +

Static Public Attributes

-static const int value = port_ref_impl<N1,N2>::size
 
+static const int value = port_ref_impl<N1,N2>::size
 

The documentation for this struct was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -57,7 +57,7 @@ static const int value

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00118.html b/doc/html/a00118.html index 01f37eea..be64edb8 100644 --- a/doc/html/a00118.html +++ b/doc/html/a00118.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference @@ -33,95 +33,31 @@
-
tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference
- - - - - - - - - - -

-Public Types

-typedef cl_mem native_object_type
 
-typedef opencl_buffer memory_object_type
 
-typedef Factory opencl_factory_type
 
-template<access_type a>
using iterator = T *
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<access_type a>
iterator< a > access () const
 
-T * data () const
 
-template<access_type a = read_write>
iterator< a > begin () const
 
-template<access_type a = read_write>
iterator< a > end () const
 
-size_t size () const
 
-T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
-cl_mem native_object () const
 
-const opencl_buffermemory_object () const
 
-void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
-void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
- - - - - - + + +

-Friends

-template<typename >
class opencl_factory
 
-bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

+Static Public Attributes

+static const int value = port_ref_impl<N1,N2>::size
 
-
The documentation for this class was generated from the following file:
    +
    The documentation for this struct was generated from the following file:
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00119.html b/doc/html/a00119.html index 293b877b..431d81ff 100644 --- a/doc/html/a00119.html +++ b/doc/html/a00119.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference +tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference @@ -33,88 +33,103 @@
-
tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference
+
tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_buffer_impl< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_buffer< T, Factory >:
- - -tbb::flow::interface8::opencl_memory< Factory > + + +tbb::flow::interface8::opencl_subbuffer< T, Factory >
+ + + + + + + + + + +

+Public Types

+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
- - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_buffer_impl (size_t size, Factory &f)
 
+
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
size_t size () const
 
-void map_memory (opencl_device device, dependency_msg< void *, Factory > &dmsg)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_memory< Factory >
opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
-dependency_msg< void *, Factory > receive (const cl_event *e)
 
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
+cl_mem native_object () const
 
+const opencl_buffermemory_object () const
 
+void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
- + + + - - -

Friends

+
+template<typename >
class opencl_factory
 
template<typename , typename >
class opencl_buffer
 
- - - - - - - - - - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::opencl_memory< Factory >
-cl_mem my_cl_mem
 
-tbb::atomic
-< opencl_device::device_id_type > 
my_curr_device_id
 
-void * my_host_ptr
 
-Factory * my_factory
 
-tbb::spin_mutex my_sending_lock
 
-bool my_sending_event_present
 
-cl_event my_sending_event
 
class opencl_subbuffer
 
+bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -122,7 +137,7 @@ cl_event my_sending_event<

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00119.png b/doc/html/a00119.png index 1aeec1a09162791a3622ed848edeab770034d768..404ed8a75045dc23cdcb00f2fdd9763930d10d63 100644 GIT binary patch literal 1161 zcmeAS@N?(olHy`uVBq!ia0y~yU^HW3U z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`MZ(j?F{Fa=?cCRswrKIV zir-#U`QP2{?k$a$1!;Pww$Hu$t3wV5h$;T`)?B*8OH);e%Yo~`J|Ss`h)!OGHAmP4 z!jhOdP9OZ1QL*)FZ2Hs3FE%*K#WVI)O;c`|J?q>D6JzsG?)jMvyR@aOzi+gS&x_dJ z&Gez<@*UM}+18IM8sg%Qf4kFt{Qk3Z8}(m{t?m8oY<&0DmbcY^w{OiUi+lfeZG2wt zYxf%;cb{%=ym~utQlaC4!mr#}vUxl)?~bb6GBf(R&HX`L_Mdyd-=4U2ss82{Io_`? z->kKtx_D>WB|GyUH`tcjtY03PR_Af{`a7H4<&PV9-H)F;^6kXx;{{E*5v$H#aL;B&}V=P=YeBL%(oM#h$}2g1BGR|a`;ay*Fr z$~b|kLt`VO%h!(+?=UoZbIlPo&qP%-Pp<6aVb@-Nz4FJ)kT-Y! z=PmWBo{LXyai7HI%eH&oy2WUc4icFlS7 zq?>Ui7q?AZx!soOd-UVS_wwDZP5XCx+4qbU{^|K|m5w|1_3u@#-S=T5Z(o(R;j}l3 zrpmFibC(;>gr=F(dOu%HKG>;Od2>zel5Kg%lun*%`0bYSHAhbF`dh0So6UE7B{qlG zdz{}O+c%@f-hN5?jbAbQ_quMp`uUxE^z4~;zs9@VezUo=`*X(a{kGlPF7h4^n6CIY zBSu>6U|Pp8J)r>wErEWPSd7_Kj;S`9Zr?YNPHu zzK!oO^W3$zvpB!OchbLE7%}s@F*kCW>QmdKI;Vst E0L(Q&xc~qF literal 1144 zcmeAS@N?(olHy`uVBq!ia0y~yVAN+|UG}k>*^(>67oceY9{;hwPzTS|mmw#NtbJr@K{T`QGxA&;NTy(tU+??{iZI!mt zjL+wuobq9AM1A9QmDn%Iap!F-{^Y*4{GNPw*4EDznQ76xukjz>zc&5z=IyuJpN9Tk z4tgwz|rP zBA$EOj@&!ATJEq_P4;z$^Vd#n-#Fug)ti{O>aJbS3y+-+dpqyO_R6c5-#rhHzI3;B z|B3Y%4br#A#F_3e+rMsdY~|MOT@&M%sqB2dV*SC%pDnC&uWb+3ocl}Evj6$6{44AG z!nf3Y{hk~zTE73>%{AHE)P7I3-lcZ?(fhj#uK(UBpL%=iId3ETVtcuVB_H?gkhP7Q z^yU8x*Ac^rj`#QX`d^ zez?>!E@5!;iepHutyMK>STRZ5A%Z`KlSg626V?KEPi}>EPgn)QKQVP^S27-%x`*MB zR~$p3s(!9$A6}+J8yXLvvd9@3D$zE zpW7HYvMdf??tOpi<({5ceX9k3k3On8`uZkE#Vci|4f- zK3uPjuh`Vb#*=$dk-?hl(%XYoq`JAz( zFV82Zzx=f&x^m_ke~07e4}2G$V%skqr&fLEu36^YO}iNi_LzO!e+-gj!oR0yKe-*@ zQfWH*T*b^!_vRg!)Q>*#U1jgd)pEJ^`)>uk(fi|C*W2d%dA0U6)?4$Z$A?evyPh_8 z@gF1AleX@)yz}N9znQst-`-OuE93v3H9oyQ|JwS0TpwSB*V}(nEhv99=d9EW)0^w> zTr|BYR{x$&_D=uS3EL;1`Skkf-wKx-x(D~l?q0+E<8xIqgMHE8@=sCPyELye^w}Jq zzvis`?4PU;G7P>jS1|rDMUQ3n^+8^qQ-i!*{xgb7+RH!tXKup4z`)??>gTe~DWM4f Di -tbb::flow::interface8::opencl_device Class Reference +tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference @@ -33,119 +33,94 @@
-
tbb::flow::interface8::opencl_device Class Reference
+
tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::opencl_buffer_impl< Factory >:
+
+
+ + +tbb::flow::interface8::opencl_memory< Factory > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-std::string platform_profile () const
 
-std::string platform_version () const
 
-std::string platform_name () const
 
-std::string platform_vendor () const
 
-std::string platform_extensions () const
 
-template<typename T >
void info (cl_device_info i, T &t) const
 
-std::string version () const
 
-int major_version () const
 
-int minor_version () const
 
-bool out_of_order_exec_mode_on_host_present () const
 
-bool out_of_order_exec_mode_on_device_present () const
 
-std::array< size_t, 3 > max_work_item_sizes () const
 
-size_t max_work_group_size () const
 
-bool built_in_kernel_available (const std::string &k) const
 
-std::string built_in_kernels () const
 
-std::string name () const
 
-cl_bool available () const
 
-cl_bool compiler_available () const
 
-cl_bool linker_available () const
 
-bool extension_available (const std::string &ext) const
 
-std::string extensions () const
 
-cl_device_type type () const
 
-std::string vendor () const
 
-cl_uint address_bits () const
 
opencl_buffer_impl (size_t size, Factory &f)
 
opencl_buffer_impl (cl_mem m, size_t index, size_t size, Factory &f)
 
+size_t size () const
 
+void map_memory (opencl_device device, dependency_msg< void *, Factory > &dmsg)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_memory< Factory >
opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
+dependency_msg< void *, Factory > receive (const cl_event *e)
 
- - - - - - - - - - - +template<typename , typename > - - +

Friends

-template<typename DeviceFilter >
class opencl_factory
 
-template<typename Factory >
class opencl_memory
 
-template<typename Factory >
class opencl_program
 
-class opencl_foundation
 
-template<typename T , typename Factory >
class opencl_buffer
 
-bool operator== (opencl_device d1, opencl_device d2)
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::opencl_memory< Factory >
+cl_mem my_cl_mem
 
+tbb::atomic
+< opencl_device::device_id_type > 
my_curr_device_id
 
+void * my_host_ptr
 
+Factory * my_factory
 
+tbb::spin_mutex my_sending_lock
 
+bool my_sending_event_present
 
+cl_event my_sending_event
 

The documentation for this class was generated from the following file:
-
tbb::flow::interface8::opencl_device_list Class Reference
+
tbb::flow::interface8::opencl_device Class Reference
- - - - - - + + + +

Public Types

-typedef container_type::iterator iterator
 
-typedef
-container_type::const_iterator 
const_iterator
 
-typedef container_type::size_type size_type
 
enum  : device_id_type { unknown = device_id_type( -2 ), +host = device_id_type( -1 ) + }
 
+typedef size_t device_id_type
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_device_list (std::initializer_list< opencl_device > il)
 
-void add (opencl_device d)
 
-size_type size () const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-const_iterator cbegin () const
 
-const_iterator cend () const
 
opencl_device (cl_device_id cl_d_id, device_id_type device_id)
 
+std::string platform_profile () const
 
+std::string platform_version () const
 
+std::string platform_name () const
 
+std::string platform_vendor () const
 
+std::string platform_extensions () const
 
+template<typename T >
void info (cl_device_info i, T &t) const
 
+std::string version () const
 
+int major_version () const
 
+int minor_version () const
 
+bool out_of_order_exec_mode_on_host_present () const
 
+bool out_of_order_exec_mode_on_device_present () const
 
+std::array< size_t, 3 > max_work_item_sizes () const
 
+size_t max_work_group_size () const
 
+bool built_in_kernel_available (const std::string &k) const
 
+std::string built_in_kernels () const
 
+std::string name () const
 
+cl_bool available () const
 
+cl_bool compiler_available () const
 
+cl_bool linker_available () const
 
+bool extension_available (const std::string &ext) const
 
+std::string extensions () const
 
+cl_device_type type () const
 
+std::string vendor () const
 
+cl_uint address_bits () const
 
+cl_device_id device_id () const
 
+cl_command_queue command_queue () const
 
+void set_command_queue (cl_command_queue cmd_queue)
 
+ + + + + + + + + + + + + + + + +

+Friends

+template<typename DeviceFilter >
class opencl_factory
 
+template<typename Factory >
class opencl_memory
 
+template<typename Factory >
class opencl_program
 
+class opencl_foundation
 
+template<typename T , typename Factory >
class opencl_buffer
 
+bool operator== (opencl_device d1, opencl_device d2)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -95,7 +176,7 @@ const_iterator cend ()

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00122.html b/doc/html/a00122.html index 0fd4e590..e8f85431 100644 --- a/doc/html/a00122.html +++ b/doc/html/a00122.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference +tbb::flow::interface8::opencl_device_list Class Reference @@ -33,29 +33,61 @@
-
tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference
+
tbb::flow::interface8::opencl_device_list Class Reference
+ + + + + + + +

+Public Types

+typedef container_type::iterator iterator
 
+typedef
+container_type::const_iterator 
const_iterator
 
+typedef container_type::size_type size_type
 
- - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_device_with_key (opencl_device d, Key k)
 
-Key key () const
 
-opencl_device device () const
 
opencl_device_list (std::initializer_list< opencl_device > il)
 
+void add (opencl_device d)
 
+size_type size () const
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+const_iterator cbegin () const
 
+const_iterator cend () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -63,7 +95,7 @@ Key key () const

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00123.html b/doc/html/a00123.html index 63999267..f32364c9 100644 --- a/doc/html/a00123.html +++ b/doc/html/a00123.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference +tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference @@ -33,46 +33,29 @@
-
tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference
+
tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference
- - - - -

Public Member Functions

opencl_factory (opencl_graph &g)
 
-bool init (const opencl_device_list &device_list)
 
- - - - - - - - - - - - - + + + + + +

-Friends

-template<typename Factory >
class opencl_program
 
-template<typename Factory >
class opencl_buffer_impl
 
-template<typename Factory >
class opencl_memory
 
-template<typename... Args>
class opencl_node
 
opencl_device_with_key (opencl_device d, Key k)
 
+Key key () const
 
+opencl_device device () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -80,7 +63,7 @@ template<typename... Args>

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00124.html b/doc/html/a00124.html index 7e58567c..85618158 100644 --- a/doc/html/a00124.html +++ b/doc/html/a00124.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_foundation Class Reference +tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference @@ -33,41 +33,46 @@
-
tbb::flow::interface8::opencl_foundation Class Reference
+
tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::opencl_foundation:
-
-
- - - -
- - - - - - - - + + + + +

Public Member Functions

opencl_foundation (opencl_graph &g)
 
-default_opencl_factoryget_default_opencl_factory ()
 
-const opencl_device_listget_all_devices ()
 
-default_device_selector_type get_default_device_selector ()
 
opencl_factory (opencl_graph &g)
 
+bool init (const opencl_device_list &device_list)
 
+ + + + + + + + + + + + +

+Friends

+template<typename Factory >
class opencl_program
 
+template<typename Factory >
class opencl_buffer_impl
 
+template<typename Factory >
class opencl_memory
 
+template<typename... Args>
class opencl_node
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -75,7 +80,7 @@ default_device_selector_type 

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00124.png b/doc/html/a00124.png deleted file mode 100644 index 947fbde9e6a5786ccb69c7f170ba36ac2f8e6b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmeAS@N?(olHy`uVBq!ia0y~yV0g~Jz!1Q}%)r2K_35Ph3=9ks0X`wF|NsAIU|@Lh z=4)yHp$QBO3}AfVzya3IJMs(+3>+mve!&d?A>it%5F-W#CKpc^$B+ufw{zc4YBJz) z^-r6#^Zoy0-3~9=SxdsN@Jd=Hc}rFARQz-F%p0bJNl)fo(Dbb1m^{Y7G%4f+we;89`YW2A{so`R?k)LzuP!UO z`kMD8&zko6x3@b?iaU7y%377V9xtY-*tht3emcD1@|iRC4DX+@6)@^8`dqfV?Lzkp znUpxE7ojCgG0g?S2lyYVH^?9IXRvRX&rru<&-h26j_HTuAC?c!KR6$>e?U|4qho$r znm7Y@Mr)WNir?2T@CUKH*Ii?Fsn_~arM%6C z&1xy%&)F!K{Ptt|X~E}hwcPwn#rbE!`~E(D@@cV$nP0E?wDp;3r;Phg2d_0gdsQ&E zMlwq6lH3!&58N&%3?bdLVZ0>M6D5achmIW=Gle2LH0Tbt=}?W_@wwKcTso(@&pI zbAHV$|6}LYH;i-d?z(#+GQ4{Iy;*jf!neD-Zu{&aXFva}@Xwxe+wO0>o0_-G+P_A2 zQq_I8+p*Bqx=X{N@-=lM5S^%`~rZWCZ&U|{fc^>bP0l+XkK%Q#I6 diff --git a/doc/html/a00125.html b/doc/html/a00125.html index 7cd7380c..bc7626cf 100644 --- a/doc/html/a00125.html +++ b/doc/html/a00125.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_graph Class Reference +tbb::flow::interface8::opencl_foundation Class Reference @@ -33,173 +33,41 @@
-
tbb::flow::interface8::opencl_graph Class Reference
+
tbb::flow::interface8::opencl_foundation Class Reference
-Inheritance diagram for tbb::flow::interface8::opencl_graph:
+Inheritance diagram for tbb::flow::interface8::opencl_foundation:
- - -tbb::flow::interface8::graph + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

opencl_graph ()
 Constructs a graph with isolated task_group_context.
 
opencl_graph (task_group_context &context)
 Constructs a graph with an user context.
 
~opencl_graph ()
 Destroys a graph.
 
-const opencl_device_listavailable_devices ()
 Available devices.
 
-default_opencl_factoryopencl_factory ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
-void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
-task * root_task ()
 Returns the root task of the graph.
 
-void set_active (bool a=true)
 
-bool is_active ()
 
-void add_task_to_reset_list (task *tp)
 
-iterator begin ()
 start iterator
 
-iterator end ()
 end iterator
 
-const_iterator begin () const
 start const iterator
 
-const_iterator end () const
 end const iterator
 
-const_iterator cbegin () const
 start const iterator
 
-const_iterator cend () const
 end const iterator
 
-bool is_cancelled ()
 return status of graph execution
 
-bool exception_thrown ()
 
-void reset (reset_flags f=rf_reset_protocol)
 
- - - -

-Protected Member Functions

-opencl_foundationget_opencl_foundation ()
 
- - - -

-Protected Attributes

-opencl_foundationmy_opencl_foundation
 
- - - - - - - - - - - - - -

-Friends

-template<typename T , typename Factory >
class opencl_buffer
 
-template<cl_channel_order channel_order, cl_channel_type channel_type, typename Factory >
class opencl_image2d
 
-template<typename... Args>
class opencl_node
 
-template<typename DeviceFilter >
class opencl_factory
 
- - - - - - + + + + + + + +

-Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::graph
-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
opencl_foundation (opencl_graph &g)
 
+default_opencl_factoryget_default_opencl_factory ()
 
+const opencl_device_listget_all_devices ()
 
+default_device_selector_type get_default_device_selector ()
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -207,7 +75,7 @@ typedef graph_iterator< const

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00125.png b/doc/html/a00125.png index c20726344086f10d15ad0479d581b98205a4f047..947fbde9e6a5786ccb69c7f170ba36ac2f8e6b84 100644 GIT binary patch delta 648 zcmeyxzLiz6Gr-TCmrII^fq{Y7)59f*fq~&U0|P?<2Qvc$!_}vg?oU*-s%LWXba4!+ zV0=6G?W86H9#{XgIXmC~Ki2K=lAX0A{0gt6Ws6nlmeApL^SbJx-J2&URWIpX+b5O38F(v5Lw|mUCY= zFD~9^;Hz_g_QFYDr0%UPUU7S8K=-b%^~;U>y^Qa^GFfT+Z}&OB{c}@Gf4!~0qUq^h z@X74nlF#?*vXZN>d0+CZX`g?4yThcogV(RDRhjGYVv34=i=XGG!wW8-Ib+Z8{ux^V zqu!#=WxLxhbia^EiF0}pTEZ05Tp)aa|Dk$={2_k^`$cA>a`yAj3jgeh zJGbrrw!5i$%dGutWG7YKce@>1estHH*>$sn^<=kY)MOr3>X|z|T^vIy z7~jr)IjvcN$4$TR+>^ieE7o*v%FI2!O;dgCe2$iXZItemLUB2XoGK>7>wh2C9@e*S#Pxm7+s%1_HekaW^yXZc{jVZs;mDKM&ZGPB*=Wd6i%MxMB-i{7mFmZPw z=jE+7OW!WcIB`70|FwqT#HhsW%WXGyczB<`ct=b9n!XR;Px<+NE=w*Lo_#yF_kZQq zw|{-t7iGoBPdd76*~;X-XLUc@c-!h0%{u!2vhBC~A2za)otW?FlH&ecNjK7hx3`A-tl`Vm=jU9Xq0Ybi&@K~U!IfW%W=SLz z{)p)}iC*hF`Ro4fw14k^F1wRFHL5K0R-vZSrE80yFOyU}s%h7?<=H>4S!ZV7H2kCP zJM;3X&3jeWxLr9K`$Wxq)*bKM(;xNMY~T9dU0LZ9buRip$E3M@v$8vqC^O+1`PfZxiNWlGC zEdsj)85am!@;3N_@LH4PjrF#vn)&m~Uu*at3uM@uSIPch$vFviv+o&sQ-y=Y)Y|{_ zKd|vMe*Ws^QQf28w3Z+Hswio1>MQ#?H*e%DG;`fE!BxPyv UEwA>c3=9kmp00i_>zopr0Nd=^5dZ)H diff --git a/doc/html/a00126.html b/doc/html/a00126.html index 041efa71..b45cff87 100644 --- a/doc/html/a00126.html +++ b/doc/html/a00126.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_memory< Factory > Class Template Reference +tbb::flow::interface8::opencl_graph Class Reference @@ -33,73 +33,173 @@
-
tbb::flow::interface8::opencl_memory< Factory > Class Template Referenceabstract
+
tbb::flow::interface8::opencl_graph Class Reference
-Inheritance diagram for tbb::flow::interface8::opencl_memory< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_graph:
- - -tbb::flow::interface8::opencl_buffer_impl< Factory > + + +tbb::flow::interface8::graph
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
-dependency_msg< void *, Factory > receive (const cl_event *e)
 
-virtual void map_memory (opencl_device, dependency_msg< void *, Factory > &)=0
 
opencl_graph ()
 Constructs a graph with isolated task_group_context.
 
opencl_graph (task_group_context &context)
 Constructs a graph with an user context.
 
~opencl_graph ()
 Destroys a graph.
 
+const opencl_device_listavailable_devices ()
 Available devices.
 
+default_opencl_factoryopencl_factory ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph
graph ()
 Constructs a graph with isolated task_group_context.
 
graph (task_group_context &use_this_context)
 Constructs a graph with use_this_context as context.
 
 ~graph ()
 Destroys the graph. More...
 
+void set_name (const char *name)
 
void increment_wait_count ()
 Used to register that an external entity may still interact with the graph. More...
 
void decrement_wait_count ()
 Deregisters an external entity that may have interacted with the graph. More...
 
template<typename Receiver , typename Body >
void run (Receiver &r, Body body)
 Spawns a task that runs a body and puts its output to a specific receiver. More...
 
template<typename Body >
void run (Body body)
 Spawns a task that runs a function object. More...
 
void wait_for_all ()
 Wait until graph is idle and decrement_wait_count calls equals increment_wait_count calls. More...
 
+task * root_task ()
 Returns the root task of the graph.
 
+void set_active (bool a=true)
 
+bool is_active ()
 
+void add_task_to_reset_list (task *tp)
 
+iterator begin ()
 start iterator
 
+iterator end ()
 end iterator
 
+const_iterator begin () const
 start const iterator
 
+const_iterator end () const
 end const iterator
 
+const_iterator cbegin () const
 start const iterator
 
+const_iterator cend () const
 end const iterator
 
+bool is_cancelled ()
 return status of graph execution
 
+bool exception_thrown ()
 
+void reset (reset_flags f=rf_reset_protocol)
 
+ + +

+Protected Member Functions

+opencl_foundationget_opencl_foundation ()
 
- - - - - - - - - - - - - - + + +

Protected Attributes

-cl_mem my_cl_mem
 
-tbb::atomic
-< opencl_device::device_id_type > 
my_curr_device_id
 
-void * my_host_ptr
 
-Factory * my_factory
 
-tbb::spin_mutex my_sending_lock
 
-bool my_sending_event_present
 
-cl_event my_sending_event
 
+opencl_foundationmy_opencl_foundation
 
+ + + + + + + + + + + + + +

+Friends

+template<typename T , typename Factory >
class opencl_buffer
 
+template<cl_channel_order channel_order, cl_channel_type channel_type, typename Factory >
class opencl_image2d
 
+template<typename... Args>
class opencl_node
 
+template<typename DeviceFilter >
class opencl_factory
 
+ + + + + +

+Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::graph
+typedef graph_iterator< graph,
+graph_node
iterator
 
+typedef graph_iterator< const
+graph, const graph_node
const_iterator
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -107,7 +207,7 @@ cl_event my_sending_event<

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00126.png b/doc/html/a00126.png index d90f28a575f42779aa61fe29c305fe1fc55dba1c..c20726344086f10d15ad0479d581b98205a4f047 100644 GIT binary patch delta 976 zcmey&@rzxtGr-TCmrII^fq{Y7)59f*fq~&H0|P?`2Qvc$L-F_dEfW>3>X|z|T^vIy z7~jr)IjvcN$4$TR+>^ieE7o*v%FI2!O;dgCe2$iXZItemLUB2XoGK>7>wh2C9@e*S#Pxm7+s%1_HekaW^yXZc{jVZs;mDKM&ZGPB*=Wd6i%MxMB-i{7mFmZPw z=jE+7OW!WcIB`70|FwqT#HhsW%WXGyczB<`ct=b9n!XR;Px<+NE=w*Lo_#yF_kZQq zw|{-t7iGoBPdd76*~;X-XLUc@c-!h0%{u!2vhBC~A2za)otW?FlH&ecNjK7hx3`A-tl`Vm=jU9Xq0Ybi&@K~U!IfW%W=SLz z{)p)}iC*hF`Ro4fw14k^F1wRFHL5K0R-vZSrE80yFOyU}s%h7?<=H>4S!ZV7H2kCP zJM;3X&3jeWxLr9K`$Wxq)*bKM(;xNMY~T9dU0LZ9buRip$E3M@v$8vqC^O+1`PfZxiNWlGC zEdsj)85am!@;3N_@LH4PjrF#vn)&m~Uu*at3uM@uSIPch$vFviv+o&sQ-y=Y)Y|{_ zKd|vMe*Ws^QQf28w3Z+Hswio1>MQ#?H*e%DG;`fE!BxPyv UEwA>c3=9kmp00i_>zopr0Mp3YQUCw| delta 1098 zcmeyx{+UCuGr-TCmrII^fq{Y7)59f*fq_wo4mD}`TKm4&_`34!bb)Sxdd;O%LNu4QxG;J!vP{{- z@W?BUp-@%7VaFtKhnVoV@1NpQqtn6<-z?Z@CiQto7DH22efam+yczSu-?mlSaxp%R zov!&Xyyh=k9E14Yv#&R@f8U>L`@FtxP4wn4Ir+0W*;j8B{JEWFW?j9rHZpGOxosh(e|DKYKot*pWd)|fDe{b|}dOGVl~7`4j~DLfRo%0L{)Vmkp$Hj{)wqWyOQz9R8Sn&BSj)M zdE%t)rd{8pbDI6tHl5R-8j~h2nWDlvWsi#Hx+kihg{u0VUD}nNK{4#>H`)CT|E#@q zb;j*E>yxLb#D=!%)=w(ASkTrkd4Ec9rR47)o<{y>)~D~0Yi(G1PucU6h{^XU*R#u< z?(IGHn(@!S?LP|-#eYv+Yhx#MIs59i%U|z@ZN7Q)^xM8JUQX(HJ_qy zcjj1C`&DdRSL!YCwxe@>?zCT4N$=+TDfyA{zWSP!^`=Z)?N`^=r0_quS|4Mac{uxN zO0Q|{t?h;{br+u2`&;>@YM0sDusF5X%ojEqZ>VKWJ^#36dZ%3ZcHfBYZ_cgkS`sI_ zG5-lP;h2LHPRFM#wYeXSUhcK+H;yx#n7=f<^6KKZ$HQlL-EFn+Tz_#xW=-kIT^?^A zAH9BcN%Gdn=NkKbyo$~T*3WNNe_mL2YfY}cvG1qw`p;(`z3%?GdcV`2KUeSf*K*zI zwMgG=mA3m$_`4UgawhLDZ{~YpU<0t~&kY z{*$d~C6m{wo}767qio#28$J4-MJ5uz826~WJg)(Yhm+ou9(l!05()n_X~_ -tbb::flow::interface8::opencl_node< Args > Class Template Reference +tbb::flow::interface8::opencl_memory< Factory > Class Template Reference @@ -33,21 +33,84 @@
+
-
tbb::flow::interface8::opencl_node< Args > Class Template Reference
+
tbb::flow::interface8::opencl_memory< Factory > Class Template Referenceabstract
+
+Inheritance diagram for tbb::flow::interface8::opencl_memory< Factory >:
+
+
+ + +tbb::flow::interface8::opencl_buffer_impl< Factory > + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
+dependency_msg< void *, Factory > receive (const cl_event *e)
 
+virtual void map_memory (opencl_device, dependency_msg< void *, Factory > &)=0
 
+ + + + + + + + + + + + + + + +

+Protected Attributes

+cl_mem my_cl_mem
 
+tbb::atomic
+< opencl_device::device_id_type > 
my_curr_device_id
 
+void * my_host_ptr
 
+Factory * my_factory
 
+tbb::spin_mutex my_sending_lock
 
+bool my_sending_event_present
 
+cl_event my_sending_event
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00127.png b/doc/html/a00127.png new file mode 100644 index 0000000000000000000000000000000000000000..d90f28a575f42779aa61fe29c305fe1fc55dba1c GIT binary patch literal 1139 zcmeAS@N?(olHy`uVBq!ia0y~yVAN+|U()eX4wI8Vo0EO@R>7a!S!UMNJ8L83wx0X;;etRa-vmm}Kkk`+_Exx6{F6}s-SY9dUghHdRQ9Gk%`&`(wfK&)-kJeesd$hivU?^?1{7_di5k-d*j+ zQ1w?}-G9@4bzIloKQjF&fra!*ZiRJESOu=n4cA<{#7k3EslopWuL7$;&?hF2*Ja)b z41ucp4IAF=5Rz~RILZA$R8xZP?K$g{r>Mk+w&_kPxmeKF zE_r`SaHZt$AD%}3XV$0hk!x*OdQaK&lZeUpDc7^hobK&C_L}j}zwJK@55<2^Tx(+| zbvgU$w##4dhi$%j^Yq)(>o#AzDOda7Dm*#i>ouREZ+GTcRr^(JU03QY@wTILeeSeh zR!Q&X{3-d7@xJ<+l=Y@eTkTiZ*QD@2xEf=ec{uxNO0Q|{t?h;{br+u2`&;>@YM0sD zusF5X%ojEqZ>VKWJ^#36dZ%3ZcHfBYZ_cgkS`sI_G5-lP(U^l1O~K3;v#U$Q&vJTLvOI{oGTldWkblh>)9oOu1CY}~&aJ^G$S zCKA6G_o%!)uK|jLlirgadBsf<3I8-{$&Pn>rlm#(o!+D)_?LNCj@`bd%}y&A7#J8l MUHx3vIVCg!0EYEC761SM literal 0 HcmV?d00001 diff --git a/doc/html/a00128.html b/doc/html/a00128.html index e8dbb45b..4c223684 100644 --- a/doc/html/a00128.html +++ b/doc/html/a00128.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference +tbb::flow::interface8::opencl_node< Args > Class Template Reference @@ -33,47 +33,21 @@
-
-
tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference
+
tbb::flow::interface8::opencl_node< Args > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...> >:
-
-
- - -tbb::flow::interface8::opencl_node< tuple< Ports...>, queueing, default_opencl_factory > - -
- - - - - - - - - -

-Public Member Functions

opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
-template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00128.png b/doc/html/a00128.png deleted file mode 100644 index 8a1801fad08c31bb970565697485fc2d866b4299..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1395 zcmeAS@N?(olHy`uVBq!ia0y~yVEo6xz!1Q}%)r2K{=#!x1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=E0d>-V@L(#+qn;?ZPwy( zH9x*}-}m|_x3fZ-9JBM6&yDn4p1wwaDP{79>6x>ZT`}PTuwSRh; zn&-a0yCHk;F~#+s>z-|SxW2yfP;hclMZ&r_AD(}RkKC%V*Zc95pY}gu<0q9Y68� zo>$L3@2|#LO(XL>d#&rmm+x%+8yzKP-~atr;>Y#5*A{J!f1Y*c?dh!5r;{ISlU@HT z=f~{O`Qpn}1JX*qZ`0rAxh(5y>4a5@`mW3QE1XlNl&k#~KlD1;y7zW+{L6dyqt@w` zEfHV1_VtUiA?BCk&Ic!cw)vTMZ`JQVug_iQE8O62U21!0-7VfpzAv6HHvV)~D0ABt zvH!;|eT^))n!NSt!H>ot?!I5sf9yfPR@M@U_Gj<%pFG`X%b+IM_G9kdUDXAPe5#t+Qqo$p17G^M5q|c!}gQ{k5jqmzUWp{$t$mDu{mYOoWH#D1C73=>D4V~n3J-9`?Jq)?6q#J zcTb=5*K}Lpx7*%VwQu?IT5A1kzxwMzS@F-l_u>EF&A0Y{U*~!B)uFrhQ{FE4VPE?_ zJg~ynDp^S_d++Z0bFYuz{I>3FyYO?R8;5dzo_$}nvu+LZ>!08BE?>_rFkN?FDyF}4 zdu>J9?!Wt9@rKu5^8K()^Ul>7D@@tuJH_zKGrR$lVW%g&?iyvk)|4u3i z^slaad&le6{`^}<51iFMpzo>a`D>5RewEhHN7I*V@cJ`JB&;)j(xF#v^|O{~n)+TA z31FD`m0y8XAh1(jVb#CC-v1aJr~Y7E^vcctC-aezN9-JHTKEORI^`AC2-!PCsMa-X z@cP4$IQ0kPA+3+hEuoLtIaVK`ih_$Drw4hhni8bc#WaDbV>!B^zf}I+_US+QX3oqtzz7_ zfdA3{=ZD_rAKd)>=p3cu$KMurUA|*dp7Vd&w4>)A@2!jYlRbND#@p=?5#_%({i+S| z{(QFV&)HS$Mb#VTUtYesUU84zwyq7fWewH!**mx0m>By0-iCixRmRslGuJ;~xuJ4i zjdA|fv{Ub-et)?6!|9{>!A}a;7_+SZe0uOh^2fWK*KgXJt=m~)Ht%NCqBVOe>fbW_ z(f#A=a6K#QQ0+Ax{D|FrYi+sHzB-0F#eYxpr~LJE&^ -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference @@ -33,39 +33,39 @@
-
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...> >:
- - -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, default_opencl_factory > + + +tbb::flow::interface8::opencl_node< tuple< Ports...>, queueing, default_opencl_factory >
- - - - - + + + + - - + +

Public Member Functions

opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
+
opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -73,7 +73,7 @@ template<typename DeviceSelector >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00129.png b/doc/html/a00129.png index 14dcd5dbe1e4fdcaab0b1829c36911047e7ee7ce..8a1801fad08c31bb970565697485fc2d866b4299 100644 GIT binary patch delta 1356 zcmaFO^_fetGr-TCmrII^fq{Y7)59f*fr0TK0|P?<2Qvc$!}$x(Z6_*P)w42rx;TbZ zFutApaN1@q9#`|@Tlamhe{wr3l*utWfBD=<&*kZB1ej7Lf0&**YuObO-(VL*&mgZ! zk2F7e2SupXd2+2jqVJhF^@pnF8nZvC|Lp2Q=LgMd+jaiu*4{}=;!$@AW_a0MR@44>!*_Mav>njfhCl^&Dtb6m}`G@$(ttxxHA5Zyd z|06bjQpqCG|F+_J_1yFRYMj+HGS9Qux?X(w&c?sdQDXM}-+v{3T%UVw(bo9qS$E!^ z&RTss`N1~X_0MvC%nqF|zFajRt>pVQ{cWDhvaXg+Se2;nx}3klIb}+@+Hdhguam8N zZztEszr1%pYMpM`67hv=U%xmTVtzU9d~o7to1ba-R{j3-`rLKC!VT`$rM7q0-Qu0( z`{Max<4;$GGPhk3`+w}x*T{0K$y=Wu{Am2)?)x?U#~uW1Wi63tfA%i_$ zKiwfI{wfR@X8ke@(Xqe!J~`Rr{7Nucg+%_N%`hlokK%dmsM)-F$2R_jR5} zUmd!8KjrO$ANIB1!viboZLN}()Ux;Pu0Qws_|0$Y&bA9bSGsX1*XP;yRXgj}Fu(r! zP4Dvc+yc{e_oZU`JGa+Xr0xE@?-g%&{UzTI+cfW7ow34{ec#5_O;_ZnufDjEF~7qi z^z4J_OWvP|ov!lNfA97D=p(8xCAW$@1Y>bkdgyl(B!zjgG$S^We0o|>M&_6Y4)X$^feeaQx|Ka)hl zI^!oDdev4xYni60?`4qyhKXPK6<7rVJLMHt{rl_vkHK;355`5W-0Xic9|?KH&atM2 zUm&bgUSW-py+ed*UBd>iKMaXee=r`>`p8`068eapWAzc-Do9Xp@#FL$uT@iml)9KE zFm)_PH}sdvzuP|jC*RC@njl#1o?Rr(dSP`vPc?&;tmN<7*w+W%{9}CeKL7OA_=f-g zJ{?h#ntYhKIMv_2{r{;|jQbYwKidEN(A)fjo1Y(@qg4F(+v2XvcTCE2{!g2B^!($! zbrFBEXK&4TyFDVJ{P(6`wISZ0&zAi;yK23tdc*w7%Qx36?y=j}wZXQmp}IbM=e8RY zL*L)q@XxBM-uQZF=KAL=H&o86G0wl5cIutf?+-VBIDIrf_(|a!W0v)wPY-@b{&=_Z z`b~SYbvrA}=G}~1v}R95{ac1Vx_^8fu4iQ(s(o@h!ltucE_ud|AF-Qntu1%jSI1DN z`0r`{l)rusy2mHKk>|BO^{?%u#_wul@%_OJhf?{r|&Rxi#h6_f~)Z zu31~~{rueJ<@Nz<9^Ly}9H$=`(Y<4*+4QD+ZmZlfd{I*5gZqE4avWw0gTe~DWM4ftQWuN literal 1387 zcmeAS@N?(olHy`uVBq!ia0y~yV7$e^z!1Q}%)r3VndUN`fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}^2^i3F{Fa=?c9fDTeNsw z&5v*W^{>Asy(EOmacu5BTIr(gskn8a?&q&ntLm1T@RrX1yrp;2lDO0x%ARxkdj9TPSDNtckLRlOr;V$h zosx{V{xGNB?32IW7oNADpEfN&_N2gYkMP6m3v1J_O**snS=O9S_pUy_xND!vOBd~1 z&!uYq=&rm!{p22#=f~bIEV4B}D|>tY($tTitJdd>y}gyD8}<8ZbnouksJH7rNbP8S z{8m(YR@$}cW}@P`wu`M8ujbf^R?a`8c6)J^Vd!q3%DuUYIooTORo7?l+;(GP==*yc z>}2=Oj6J#K`u&v?D(2M~=U=PMtz2WfrOYjlDMvA`zvjv6vt`D2%bfFcV&|7G|GaVA z8d-bh`?V>xW^CNce19A8pN+hIVs+$qpSS0t%73M2=)2!j-RzNd)#tn07T-a5B{foQ~aNhcSVs?s`tJ~X)A0)TDzGoLV`Ja34 zM>(A@+gEQp`FBNDwXyhG_S}%UlfIqqeN=UIp1a+;TT&-iWW7~tJn@y_&;b{-?$5Ww-WhE?al}Xw}__vxZ-b9_5^i z*6Ka^C(iWx_R@sEd-tCHQp&jQ*w^UhM_(W6@||B}Rbu{qy~Cc+JA4MOi~Se8yeAYO zm^UY;_m0};liN05;ED45CAahQq$U4XR{!nW^LPIGJ7$OPcYfPwHQ(N|DtP;%z3n-| zXJRM*HjCUk>5K2K%r<6odxo_tOI2RR!PCps3{}k~LTgo8uQ0zg@eR(JwM=sc!@oW| zh9HKEQ!*HpUOiU6$;1+}h_zz{`^^+?0sl@hg%v_N4j!se4HLY!FepyVV06;D$kY6A%YOQ&QkVpzhEq=|0JJJ;VIz80nLoz{H*jqKW! z$s!KxjovW6C`ozqy>u<}=I8t?ph=y-p#LA|t>>p(&zq>VcR!pPSucC5JdJlo_Svh` zH|`aETg+?sZ`zgjuM6X56+iwK&}xDuaqC9C&YK@5?`~>(Kga#@nO{Mg|Ma$;R!h!{ z=D3~PzWMw1Y1!Sfkze2OzP@~M_RUAW)qm%5bv{37{y8nz&eA3-YRmTgv+hF1dr^;;J&0Sj~Dka|@{F?suY(c%$Ew#wkeCa`zPi{xVxLEfa zR+e7emGXFcZqS-@_(Z*K5i%k1AlHWt~>&t2XurV;l1g3T8DziZ~cE}Z#e*Tz}NSvON| z>s+Z=gOVIgHShktlJ7e!UjE*r4`)_6mlyx%Iud>KZNu(FrmLm;Q4Q}ehPxJim*f1< z|Hb@*UDuPJ%oV}g)1Kd7X0=)@VNLv;xf&UaK?my4)5;a*T+O9Ryfjs3{A134mQWOP Tmhl(^0|SGntDnm{r-UW|qdTwv diff --git a/doc/html/a00130.html b/doc/html/a00130.html index b1add1dc..a7147265 100644 --- a/doc/html/a00130.html +++ b/doc/html/a00130.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference @@ -33,78 +33,39 @@
-
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >:
- - -tbb::flow::interface8::composite_node< tuple< dependency_msg< Ports, Factory >...>, tuple< dependency_msg< Ports, Factory >...> > + + +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, default_opencl_factory >
- + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

+
opencl_node (opencl_graph &g, const std::string &kernel)
 
opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel)
 
template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f)
 
opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f)
 
opencl_node (const opencl_node &node)
 
opencl_node (opencl_node &&node)
 
-template<typename T >
void set_ndranges (std::initializer_list< T > global_work_size)
 
-template<typename GlobalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size)
 
-template<typename T , typename LocalNDRange >
void set_ndranges (std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size)
 
-template<typename T1 , typename T2 = T1>
void set_ndranges (std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size)
 
-template<typename GlobalNDRange , typename LocalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size)
 
-template<typename GlobalNDRange , typename T >
void set_ndranges (GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size)
 
-template<typename... Args>
void set_args (Args &&...args)
 
- - - + +

-Protected Member Functions

-void reset_node (reset_flags=rf_reset_protocol)
 
 opencl_node (opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -112,7 +73,7 @@ void reset_node (reset

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00130.png b/doc/html/a00130.png index 36dff1d29d9364b93d73fc3e0b7d37a6db3d9041..14dcd5dbe1e4fdcaab0b1829c36911047e7ee7ce 100644 GIT binary patch literal 1387 zcmeAS@N?(olHy`uVBq!ia0y~yV7$e^z!1Q}%)r3VndUN`fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}^2^i3F{Fa=?c9fDTeNsw z&5v*W^{>Asy(EOmacu5BTIr(gskn8a?&q&ntLm1T@RrX1yrp;2lDO0x%ARxkdj9TPSDNtckLRlOr;V$h zosx{V{xGNB?32IW7oNADpEfN&_N2gYkMP6m3v1J_O**snS=O9S_pUy_xND!vOBd~1 z&!uYq=&rm!{p22#=f~bIEV4B}D|>tY($tTitJdd>y}gyD8}<8ZbnouksJH7rNbP8S z{8m(YR@$}cW}@P`wu`M8ujbf^R?a`8c6)J^Vd!q3%DuUYIooTORo7?l+;(GP==*yc z>}2=Oj6J#K`u&v?D(2M~=U=PMtz2WfrOYjlDMvA`zvjv6vt`D2%bfFcV&|7G|GaVA z8d-bh`?V>xW^CNce19A8pN+hIVs+$qpSS0t%73M2=)2!j-RzNd)#tn07T-a5B{foQ~aNhcSVs?s`tJ~X)A0)TDzGoLV`Ja34 zM>(A@+gEQp`FBNDwXyhG_S}%UlfIqqeN=UIp1a+;TT&-iWW7~tJn@y_&;b{-?$5Ww-WhE?al}Xw}__vxZ-b9_5^i z*6Ka^C(iWx_R@sEd-tCHQp&jQ*w^UhM_(W6@||B}Rbu{qy~Cc+JA4MOi~Se8yeAYO zm^UY;_m0};liN05;ED45CAahQq$U4XR{!nW^LPIGJ7$OPcYfPwHQ(N|DtP;%z3n-| zXJRM*HjCUk>5K2K%r<6odxo_tOI2RR!PCps3{}k~LTgo8uQ0zg@eR(JwM=sc!@oW| zh9HKEQ!*HpUOiU6$;1+}h_zz{`^^+?0sl@hg%v_N4j!se4HLY!FepyVV06;D$kY6A%YOQ&QkVpzhEq=|0JJJ;VIz80nLoz{H*jqKW! z$s!KxjovW6C`ozqy>u<}=I8t?ph=y-p#LA|t>>p(&zq>VcR!pPSucC5JdJlo_Svh` zH|`aETg+?sZ`zgjuM6X56+iwK&}xDuaqC9C&YK@5?`~>(Kga#@nO{Mg|Ma$;R!h!{ z=D3~PzWMw1Y1!Sfkze2OzP@~M_RUAW)qm%5bv{37{y8nz&eA3-YRmTgv+hF1dr^;;J&0Sj~Dka|@{F?suY(c%$Ew#wkeCa`zPi{xVxLEfa zR+e7emGXFcZqS-@_(Z*K5i%k1AlHWt~>&t2XurV;l1g3T8DziZ~cE}Z#e*Tz}NSvON| z>s+Z=gOVIgHShktlJ7e!UjE*r4`)_6mlyx%Iud>KZNu(FrmLm;Q4Q}ehPxJim*f1< z|Hb@*UDuPJ%oV}g)1Kd7X0=)@VNLv;xf&UaK?my4)5;a*T+O9Ryfjs3{A134mQWOP Tmhl(^0|SGntDnm{r-UW|qdTwv literal 1729 zcmeAS@N?(olHy`uVBq!ia0y~yVCH0CU~bl%kWb$aG3HDlk)Da$fvwY7Rq>QRyOloHW) zoYbSz+dEak({0kRV_p+fls%J^RXrw6T(a@zlz?aNUx$CyT$;J!_oVpS8lJB-+ifS6 zoY-gWX{BWTGO9oQ*C(k-CB5zny8^xxpAQq4nXts)LT=KPkDi?8r@#JKv3jolyWe?U z7NXlG%XwbPl;QV$6*2Wg$gRiuC$GeoZf1CX?5+FOPj^hpbN)}8mOAfx_1_M!j9uGA zXEnZF;_LeI?W)jZ(JI~DmNTv`GjNMY?b4%mRlje!tzq{B2*{kHsK2{al zsH{}K(vrIUb@FQA>b5+&cYoJDy(Q!xwzt|j+0fm{XXT=A(j`}Ju};=)N$kv9mN0Fm z88g4{t-X8atYkMkotk*tyV&BV-i*jChyN%pR(%_PT=}o;lnFm3=th>SRcCg)8Tl7z zd;WY@xS%EHda28%ShYrL!@JAfi`d&DQctg)YJ5q2OW4KU`JM}>E^#PdZzcElz5R-o zV^g>8VijMfov8ibs?htsEHln~%hl)43eA3!@7{ZNW$3(+)-Pw@PE&R72<2E7BGS=p zH)rqTiJ1>q2~FF-c-Dj+K})N(uNQkw@cQc8r?q?HxhpOAbk--n4641bdPj-)gM(9N z&#n2gY2zvXeUZObnlnZJB@Zf=Sgn|9aQ|EA&8)D9Vb` zeP6Y+E@$ed>}W23nTxs?kK}A#eNXCqeDun!V);b|j(1#2+pnq>u6lOFOn&uF{#SpV zot>tbTX!VE>|$Pb>g<4AF-y5gS2k%nPWs2&XRhtJ|8VQf{Tn*@o%POE6#fi;R$1k7 zi8D`v-}CEtcCCjC|2=n~r1xp9`u@0?H}BoM?>0%~XMKx7nT<;8`s^l^uQB(I{AP>~ zUZ*nm!RcUYx&PaQR8E3Y>VHl=skl-jan`bvK9@~qX3km`$Y{V&KQW$x?EnK$_f&=i zhPG$d^}QJnF!c05c#13_9uJu3cHD}=fFU_ql|iCm<3=F{o&z@`I2qUya@MdgFdLYK zF*PtsNNa;M_kuJZJLW|f<$rR$G>=XR>e5^~C2=8x1Ou~y1`ekbE34YbRQ?o-)yl8A zV;wd5xJJXgq8rQ?KAy99|2m5Q%slx8|K{DhX&mQ;oT4DzGnm%_~Ora^?c}cZ*w|*M9pEZB)Ad_OtA~ygPLv&#leR%HH0;G;}>7fn1xJyk&`g-Kln<;7854%#1-(3Et=;HBjyAB5sM7SFmcd#TrnA{({$?5ZWd`?ovWUNB{RFh6;p z)ob@@4Y`&1m)A1zzEnOZd+hnjd2wG9>sR~4SUU^8KFe2f``-UrTZ`2#c6tw`c24Ab zx3uNww)nm`Upb!dkcpXYQflTt`RCrOb@HzdRPEiX{l!#r$NAv>rZay>ReV-9zWw%l z?0%V(F8BF3ir)P)-#&YX3K!E3M)M%11NR^9cKVV2+;-O6M_QoRe^DWS=y>n1KMXNX z`sI3C847x)GJKf*r)L(!hue3|qw%KL&jC)FOJ@Xm87`e-r1hUMS!WJ+UEU)X1_lNO MPgg&ebxsLQ048N9lK=n! diff --git a/doc/html/a00131.html b/doc/html/a00131.html index 36f4d8ae..f17301ef 100644 --- a/doc/html/a00131.html +++ b/doc/html/a00131.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::opencl_program< Factory > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference @@ -33,49 +33,78 @@
-
tbb::flow::interface8::opencl_program< Factory > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::opencl_program< Factory >:
+Inheritance diagram for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >:
- - + + +tbb::flow::interface8::composite_node< tuple< dependency_msg< Ports, Factory >...>, tuple< dependency_msg< Ports, Factory >...> >
- - - - - - - - -

Public Member Functions

opencl_program (opencl_program_type type, const std::string &program_name)
 
opencl_program (const char *program_name)
 
opencl_program (const std::string &program_name)
 
opencl_program (const opencl_program &src)
 
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + +

-Friends

+
+template<typename DeviceSelector >
 opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f)
 
opencl_node (opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f)
 
opencl_node (const opencl_node &node)
 
opencl_node (opencl_node &&node)
 
+template<typename T >
void set_ndranges (std::initializer_list< T > global_work_size)
 
+template<typename GlobalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size)
 
+template<typename T , typename LocalNDRange >
void set_ndranges (std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size)
 
+template<typename T1 , typename T2 = T1>
void set_ndranges (std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size)
 
+template<typename GlobalNDRange , typename LocalNDRange >
void set_ndranges (GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size)
 
+template<typename GlobalNDRange , typename T >
void set_ndranges (GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size)
 
template<typename... Args>
class opencl_node
 
void set_args (Args &&...args)
 
+ + +

+Protected Member Functions

+void reset_node (reset_flags=rf_reset_protocol)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • @@ -83,7 +112,7 @@ template<typename... Args>

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00131.png b/doc/html/a00131.png index 1e59d8d4142575ad7b12c98366e1f3581c5b7db7..36dff1d29d9364b93d73fc3e0b7d37a6db3d9041 100644 GIT binary patch literal 1729 zcmeAS@N?(olHy`uVBq!ia0y~yVCH0CU~bl%kWb$aG3HDlk)Da$fvwY7Rq>QRyOloHW) zoYbSz+dEak({0kRV_p+fls%J^RXrw6T(a@zlz?aNUx$CyT$;J!_oVpS8lJB-+ifS6 zoY-gWX{BWTGO9oQ*C(k-CB5zny8^xxpAQq4nXts)LT=KPkDi?8r@#JKv3jolyWe?U z7NXlG%XwbPl;QV$6*2Wg$gRiuC$GeoZf1CX?5+FOPj^hpbN)}8mOAfx_1_M!j9uGA zXEnZF;_LeI?W)jZ(JI~DmNTv`GjNMY?b4%mRlje!tzq{B2*{kHsK2{al zsH{}K(vrIUb@FQA>b5+&cYoJDy(Q!xwzt|j+0fm{XXT=A(j`}Ju};=)N$kv9mN0Fm z88g4{t-X8atYkMkotk*tyV&BV-i*jChyN%pR(%_PT=}o;lnFm3=th>SRcCg)8Tl7z zd;WY@xS%EHda28%ShYrL!@JAfi`d&DQctg)YJ5q2OW4KU`JM}>E^#PdZzcElz5R-o zV^g>8VijMfov8ibs?htsEHln~%hl)43eA3!@7{ZNW$3(+)-Pw@PE&R72<2E7BGS=p zH)rqTiJ1>q2~FF-c-Dj+K})N(uNQkw@cQc8r?q?HxhpOAbk--n4641bdPj-)gM(9N z&#n2gY2zvXeUZObnlnZJB@Zf=Sgn|9aQ|EA&8)D9Vb` zeP6Y+E@$ed>}W23nTxs?kK}A#eNXCqeDun!V);b|j(1#2+pnq>u6lOFOn&uF{#SpV zot>tbTX!VE>|$Pb>g<4AF-y5gS2k%nPWs2&XRhtJ|8VQf{Tn*@o%POE6#fi;R$1k7 zi8D`v-}CEtcCCjC|2=n~r1xp9`u@0?H}BoM?>0%~XMKx7nT<;8`s^l^uQB(I{AP>~ zUZ*nm!RcUYx&PaQR8E3Y>VHl=skl-jan`bvK9@~qX3km`$Y{V&KQW$x?EnK$_f&=i zhPG$d^}QJnF!c05c#13_9uJu3cHD}=fFU_ql|iCm<3=F{o&z@`I2qUya@MdgFdLYK zF*PtsNNa;M_kuJZJLW|f<$rR$G>=XR>e5^~C2=8x1Ou~y1`ekbE34YbRQ?o-)yl8A zV;wd5xJJXgq8rQ?KAy99|2m5Q%slx8|K{DhX&mQ;oT4DzGnm%_~Ora^?c}cZ*w|*M9pEZB)Ad_OtA~ygPLv&#leR%HH0;G;}>7fn1xJyk&`g-Kln<;7854%#1-(3Et=;HBjyAB5sM7SFmcd#TrnA{({$?5ZWd`?ovWUNB{RFh6;p z)ob@@4Y`&1m)A1zzEnOZd+hnjd2wG9>sR~4SUU^8KFe2f``-UrTZ`2#c6tw`c24Ab zx3uNww)nm`Upb!dkcpXYQflTt`RCrOb@HzdRPEiX{l!#r$NAv>rZay>ReV-9zWw%l z?0%V(F8BF3ir)P)-#&YX3K!E3M)M%11NR^9cKVV2+;-O6M_QoRe^DWS=y>n1KMXNX z`sI3C847x)GJKf*r)L(!hue3|qw%KL&jC)FOJ@Xm87`e-r1hUMS!WJ+UEU)X1_lNO MPgg&ebxsLQ048N9lK=n! delta 812 zcmX@ed!0?OGr-TCmrII^fq{Y7)59f*fq_w;fq@}_gPDPWLHt8w(L_b7dZuTdE{-7; zjBn?@?OScYa)N1e{8BzTX{G4=Dnq>WjlktIMgJMeT!F8@^NwDQuK72B($bq zj4`@z5EX|rl<6g}-vy8b$2 z9k=biYOu%2jf$T3XF~sZeu>Q2Vg6m8Zy7r2pZ)tK=cmMHJDL7Wt!+Da(B|6njlVvN zfA#!zUCaH_{(qC~CVgQM*Zau(<)_Z+y%UXAdtPGQv%fy;rOM0t&)T27C+Qvfb4K*UFxz*W4#%snvpA%XYx}BVz(X&>DV+lgHaxnO1DDV^E!JBgV1dz%K@ghTK{wf5tnXZVEEUJyDg<&vkLAwy78UrCn>MFV|t>vvc(exQGOrLuF^2eRe5B~KRu9BOT|Hl6G38D18dH#FtZb#TB&)KhE!hQcp4D&nZ z)A0*zf8E`(+ICt@?ap)d-f!M+sm`*OwYGWJZ@hitzmw128E*KyyZmbE8-cpHcX`hm z<;}0T@I1}+=A`yl2KCRb8yNTAyyp{VCZ*FEd}N>Kvh@YbKW|IP-u^XttwzH{$A#jr zHZQ&U?MKnxR{M3UZrtrz{`Kbkdz0T+5IJjf$CHIy(#m1ttG8 aB;Vg4TW?a4#=yY9;OXk;vd)Pqp$Pz=iGb7q diff --git a/doc/html/a00132.html b/doc/html/a00132.html index 647f954c..b3a05962 100644 --- a/doc/html/a00132.html +++ b/doc/html/a00132.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::overwrite_node< T > Class Template Reference +tbb::flow::interface8::opencl_program< Factory > Class Template Reference @@ -33,270 +33,57 @@
-
tbb::flow::interface8::overwrite_node< T > Class Template Reference
+
tbb::flow::interface8::opencl_program< Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::overwrite_node< T >:
+Inheritance diagram for tbb::flow::interface8::opencl_program< Factory >:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::write_once_node< T > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-void set_name (const char *name)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-built_predecessors_typebuilt_predecessors ()
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &s)
 
-void internal_delete_built_successor (successor_type &s)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool try_get (input_type &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
- - - - - - - - - - -

-Protected Member Functions

-task * try_put_task (const input_type &v)
 
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - + + + + + + + +

-Protected Attributes

-spin_mutex my_mutex
 
-internal::broadcast_cache
-< input_type, null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-input_type my_buffer
 
-bool my_buffer_is_valid
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
opencl_program (opencl_program_type type, const std::string &program_name)
 
opencl_program (const char *program_name)
 
opencl_program (const std::string &program_name)
 
opencl_program (const opencl_program &src)
 
- - - - - - - - - + + +

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename... Args>
class opencl_node
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00132.png b/doc/html/a00132.png index 4954ba93a5c477b66f580082a8788a157eef45b9..1e59d8d4142575ad7b12c98366e1f3581c5b7db7 100644 GIT binary patch delta 812 zcmca3e4S0PGr-TCmrII^fq{Y7)59f*fq_w;fq@}_gPDPWLHt8w(L_b7dZuTdE{-7; zjBn?@?OScYa)N1e{8BzTX{G4=Dnq>WjlktIMgJMeT!F8@^NwDQuK72B($bq zj4`@z5EX|rl<6g}-vy8b$2 z9k=biYOu%2jf$T3XF~sZeu>Q2Vg6m8Zy7r2pZ)tK=cmMHJDL7Wt!+Da(B|6njlVvN zfA#!zUCaH_{(qC~CVgQM*Zau(<)_Z+y%UXAdtPGQv%fy;rOM0t&)T27C+Qvfb4K*UFxz*W4#%snvpA%XYx}BVz(X&>DV+lgHaxnO1DDV^E!JBgV1dz%K@ghTK{wf5tnXZVEEUJyDg<&vkLAwy78UrCn>MFV|t>vvc(exQGOrLuF^2eRe5B~KRu9BOT|Hl6G38D18dH#FtZb#TB&)KhE!hQcp4D&nZ z)A0*zf8E`(+ICt@?ap)d-f!M+sm`*OwYGWJZ@hitzmw128E*KyyZmbE8-cpHcX`hm z<;}0T@I1}+=A`yl2KCRb8yNTAyyp{VCZ*FEd}N>Kvh@YbKW|IP-u^XttwzH{$A#jr zHZQ&U?MKnxR{M3UZrtrz{`Kbkdz0T+5IJjf$CHIy(#m1ttG8 aB;Vg4TW?a4#=yY9;OXk;vd)Pqp$Py8K7jQA literal 2524 zcmeAS@N?(olHy`uVBq!ia0y~yU>0OxU^u|R%)r3lV=U*)z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0dF2|;Cr z10FpM42o_?I5-TI+#DJv?oT=LdA_QfgGXi!ghtj^!DsSa*f3`Wl->0YH!yl=QiAORYR6P1qTl&i8{O9w+ z$_jsYm6x4Azp`P@zGN1b3R!*QN0+j>U3wZA^dDVy^Z9JEO@fgz?tpObk27Dt<^8_r z*>L%Lp6rB5!iiqU1nKmXukJs4iL#y$mb%Y*g3)BNQa73=vLjv z4nfZrmPMt>i< z#K*3TJ99o%=RL5ORRsCTU7qLXmjM@mBa^sN^Oc`o?pr5uVwJNefD9s zWW4R6rR8xiKe>d4mj5VH+M~uYy*%F6`n=uxsLvPt2qu&n&R(9+4rvyM!5zOeUqMMUiNl(Q3f z;&00C3sjDqAh0?_LhQ$J1)B_)|7&tXrRP^Yo^|a<-uW95%h%61{3di){OK9@4IZ6T zln7q>x_9U1U+c^Fzh`?a?Y2ij@!g-@|4ljkO_NskPJf=a?bqcOrOLZLu9qm>6&rfh zcV6a^!-^5xPG(=8^|09Uu3y{lmmf-$_X+kY%Dk@szMt*k^InU8vA2be*}UK0lDL1x z%B&|Fr2<1sr^}l^Qg^=aZQC;5->>D@2--{azIJ`Gyy?RN!S37P%p3ld$LUWp?~boN zomaO1+Sc4m)1|9karH}nd?IjXUfIvAqc8RAQnG7qbcm}QnG3c^P?>Mj{IX@e*RAfY ztKYnB#oA>uzs|n=wjt(5PSf$5)2s7S&u((Ly?WKIlgw^=lvq|bp8g@!oOX3p)~)HU zpKR}`@O3I-%$WQnz3D@PU}&g*LdE>!@#|N;QsY;13cdPYo%6_i^F`}fvX$+&xBgwe z>Xp2Ql8Qj+)h+fh%GX}blL`#|YONwrf4^hZs(AIz2@WBlmy=wC6u}8^)v7)gC2+!9 zwW?8KqKk(Dn{wIiyYFfletT~^OOhx@g`K>BPzQ_B`~GFB0-Q%4ezl*($?3v0 z@q2q8i&CS--Z~@2Mh}Hg|6W8fO?1!^Y?$DnB2Zaxq6-$}WZ^l&!2wo&e5tAcr^`M2 z#)d`-Mu?UjTUeADPyALFFc45yP!Zrf^75~}ot@pGUJ!&-pRWGu_Bp)uZEpWw-q#nmNH9KZ6Rgdem;Pnub^djqs$*TuuI=3P zE#Xqx`(sn6UXzm-`*?0At0u_YSq1I5{%$l)<6iH@(h`rdcYNI%8`V>)=g`p5>}9W&Ux%(*C6``2_5AO5_MxG&hD?X9_ueSqH(|x$DYN-vh3&uO2@6={`BSJ-EH`^YxEs3g-szx8(`fmw9)0?WL(xo_78c zogUh@@$}=c(A%K&e~2a zhDkS -tbb::parallel_do_feeder< Item > Class Template Reference +tbb::flow::interface8::opencl_subbuffer< T, Factory > Class Template Reference @@ -33,64 +33,100 @@
-
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
+
tbb::flow::interface8::opencl_subbuffer< T, Factory > Class Template Reference
- -

Class the user supplied algorithm body uses to add new tasks. - More...

- -

#include <parallel_do.h>

-Inheritance diagram for tbb::parallel_do_feeder< Item >:
+Inheritance diagram for tbb::flow::interface8::opencl_subbuffer< T, Factory >:
- - + + +tbb::flow::interface8::opencl_buffer< T, Factory >
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-void add (const Item &item)
 Add a work item to a running parallel_do.
 
opencl_subbuffer (const opencl_buffer< T, Factory > &owner, size_t index, size_t size)
 
- Public Member Functions inherited from tbb::flow::interface8::opencl_buffer< T, Factory >
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
+size_t size () const
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (opencl_graph &g, size_t size)
 
opencl_buffer (Factory &f, size_t size)
 
+cl_mem native_object () const
 
+const opencl_buffermemory_object () const
 
+void send (opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const dependency_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
- - - - + + + + + + + + + + +

-Friends

-template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 

+Additional Inherited Members

- Public Types inherited from tbb::flow::interface8::opencl_buffer< T, Factory >
+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
-

Detailed Description

-

template<typename Item>
-class tbb::parallel_do_feeder< Item >

- -

Class the user supplied algorithm body uses to add new tasks.

-
Parameters
- - -
ItemWork item type
-
-
-

The documentation for this class was generated from the following file:
    -
  • parallel_do.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00133.png b/doc/html/a00133.png index 742cad9d022194b018303bb7554cb51173cd3a64..397bb716305b2f8e113cf24a8cfbd7fe3048d794 100644 GIT binary patch delta 1118 zcmey!($1;a8Q|y6%O%Cdz`(%k>ERN@z`$t6z`zi|!OXzGuw=)|jERa?^(&oVG@T$JPA!)?feaD_3m^U~=>=JwNx=&X?b&bO{_%Q(3Qbdef3=sgX)a6PHX; zxf`A|dC3N$*($A5Z>VUlIilv7XnEsQ)!uoxzFjiCVR-nmo!2C{sV~JnrA+2N%uLIB zWqA7Y`uqtg>n3O`=A54{eeJia=cMJc>!0aujJ+-S+k4X0?;CBuKl-?TXYrfUyIiv$ z|GVI`-7NQaT>Z9bXV1OfyZ7ePYi73>zmI>O#k1z#EYD*V(@SE?9M>N1Z9KhqhRbcY zW%s^u+{y2~|NHyC^xTcgv)8*j*IHF?US4E!-6yNKxj(ny)aR;Msn6QCNWVRIxvoU! z#o>z^jq5kse%d7Aw}IFDt?`$Mw|c%Rt-LOBXMfY$d1sSFOS$>?pU;^sSH4kpa@pxQ z@|TQr%+`N@aPN3naf5tr?zXb)^@6#Z6PI7y_T9RB+r_Tr6DcQtUrf6+wR*=dliDJW z^L-1pzD->_`OY=*<;R|x7e%+fEz5hYojKnqzHKgZ^z@|Nd+NJBuUW9|>%rAqCwuMs znWf3cg<>mg1t?MU!+19k}zx|DCOWw;#dhWV#KInJ#BHu}Q zuP;sPKcwcl-?`Iw(jl*$Ng`peNcnnTo6hM;QPWa6IUWRmWu3s(p|O$Cw8;hJ{L*_z(p&dF7| zx4!N8m!ms-?)B>G&EBhXx4GZn&--Bdn&n>$gI{x8h!f6P+kV$8tvYd0u5xgGeKpIw z?Z=M)t-il`+l`55uPfCg`^|d5-oBZ69zY0p; z_~i8O`K21qD>=vD@Xy|c7#+rEjnt#b0f=|?W!Z4UG9^+!u8MW07H=DuzY&;IMR zYv;}De{S9Ic_Vf}*`9A|N%@xO&S>|&TD%|Jzb=>MIQQLp<66#r-ftQ5U#qY9+k26% yAX@mji5-LVf&5^!__p0JHOOn#lpv;G>`RU~bhaPfeVl=Tfx*+&&t;ucLK6TYDkV?= delta 580 zcmZqY{K%r%8Q|y6%O%Cdz`(%k>ERN@z`(GFfq@}_gPDPWVT$1Ugo%n)^-K(&E{-7; zjBn?@o0O-=4saU{WE5sP3Ngcg;*%7>5WC(irtbn~9q^v#NszFhAq{^wL<-+uCF z|F1Lq^y}{ao@CO{-~ImEpZ8t+19OknznztT?dO~q+mGt|t+)4lYQOck>Ysg|nLpPC z?osJgJ>oryT`_KwO~jGeGkv)ZuvapiId$fde1GTF^E!1G?biQVd6e15=Lg>dM+<(U z@xk`F=Ek!{c@q4bZ0Z}>73B^z>(uR(DQ9?Z5%=QWOJ$u_#s$w@7in1>(7Z2LFIP0< zNBYG(Jh$|J{=613fBD1nzisRCMAYQ}{?yQPTHsK=!U-omxx@iLZ4;(w#KP1>nwVXNg>7u -tbb::parallel_while< Body > Class Template Reference +tbb::flow::interface8::overwrite_node< T > Class Template Reference @@ -33,130 +33,270 @@
-
tbb::parallel_while< Body > Class Template Reference
+
tbb::flow::interface8::overwrite_node< T > Class Template Reference
- -

Parallel iteration over a stream, with optional addition of more work. - More...

- -

#include <parallel_while.h>

-Inheritance diagram for tbb::parallel_while< Body >:
+Inheritance diagram for tbb::flow::interface8::overwrite_node< T >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::write_once_node< T >
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef Body::argument_type value_type
 Type of items.
 
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
+void set_name (const char *name)
 
+bool register_successor (successor_type &s)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
+built_predecessors_typebuilt_predecessors ()
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &s)
 
+void internal_delete_built_successor (successor_type &s)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool try_get (input_type &v)
 Request an item from the sender.
 
+bool is_valid ()
 
+void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const input_type &v)
 
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + + + + + + + + + +

+Protected Attributes

+spin_mutex my_mutex
 
+internal::broadcast_cache
+< input_type, null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+input_type my_buffer
 
+bool my_buffer_is_valid
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
+ + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
-

Detailed Description

-

template<typename Body>
-class tbb::parallel_while< Body >

- -

Parallel iteration over a stream, with optional addition of more work.

-

The Body b has the requirement:
- "b(v)"
- "b.argument_type"
- where v is an argument_type

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - - - - -
void tbb::parallel_while< Body >::add (const value_typeitem)
-
- -

Add a work item while running.

-

Should be executed only by body.apply or a thread spawned therefrom.

- -
-
- -
-
-
-template<typename Body >
-
-template<typename Stream >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_while< Body >::run (Stream & stream,
const Body & body 
)
-
- -

Apply body.apply to each item in the stream.

-

A Stream s has the requirements
- "S::value_type"
- "s.pop_if_present(value) is convertible to bool

- -
-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00134.png b/doc/html/a00134.png index fc86480fb6f62f64fddf8d2c87db84e764fa7982..4954ba93a5c477b66f580082a8788a157eef45b9 100644 GIT binary patch literal 2524 zcmeAS@N?(olHy`uVBq!ia0y~yU>0OxU^u|R%)r3lV=U*)z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0dF2|;Cr z10FpM42o_?I5-TI+#DJv?oT=LdA_QfgGXi!ghtj^!DsSa*f3`Wl->0YH!yl=QiAORYR6P1qTl&i8{O9w+ z$_jsYm6x4Azp`P@zGN1b3R!*QN0+j>U3wZA^dDVy^Z9JEO@fgz?tpObk27Dt<^8_r z*>L%Lp6rB5!iiqU1nKmXukJs4iL#y$mb%Y*g3)BNQa73=vLjv z4nfZrmPMt>i< z#K*3TJ99o%=RL5ORRsCTU7qLXmjM@mBa^sN^Oc`o?pr5uVwJNefD9s zWW4R6rR8xiKe>d4mj5VH+M~uYy*%F6`n=uxsLvPt2qu&n&R(9+4rvyM!5zOeUqMMUiNl(Q3f z;&00C3sjDqAh0?_LhQ$J1)B_)|7&tXrRP^Yo^|a<-uW95%h%61{3di){OK9@4IZ6T zln7q>x_9U1U+c^Fzh`?a?Y2ij@!g-@|4ljkO_NskPJf=a?bqcOrOLZLu9qm>6&rfh zcV6a^!-^5xPG(=8^|09Uu3y{lmmf-$_X+kY%Dk@szMt*k^InU8vA2be*}UK0lDL1x z%B&|Fr2<1sr^}l^Qg^=aZQC;5->>D@2--{azIJ`Gyy?RN!S37P%p3ld$LUWp?~boN zomaO1+Sc4m)1|9karH}nd?IjXUfIvAqc8RAQnG7qbcm}QnG3c^P?>Mj{IX@e*RAfY ztKYnB#oA>uzs|n=wjt(5PSf$5)2s7S&u((Ly?WKIlgw^=lvq|bp8g@!oOX3p)~)HU zpKR}`@O3I-%$WQnz3D@PU}&g*LdE>!@#|N;QsY;13cdPYo%6_i^F`}fvX$+&xBgwe z>Xp2Ql8Qj+)h+fh%GX}blL`#|YONwrf4^hZs(AIz2@WBlmy=wC6u}8^)v7)gC2+!9 zwW?8KqKk(Dn{wIiyYFfletT~^OOhx@g`K>BPzQ_B`~GFB0-Q%4ezl*($?3v0 z@q2q8i&CS--Z~@2Mh}Hg|6W8fO?1!^Y?$DnB2Zaxq6-$}WZ^l&!2wo&e5tAcr^`M2 z#)d`-Mu?UjTUeADPyALFFc45yP!Zrf^75~}ot@pGUJ!&-pRWGu_Bp)uZEpWw-q#nmNH9KZ6Rgdem;Pnub^djqs$*TuuI=3P zE#Xqx`(sn6UXzm-`*?0At0u_YSq1I5{%$l)<6iH@(h`rdcYNI%8`V>)=g`p5>}9W&Ux%(*C6``2_5AO5_MxG&hD?X9_ueSqH(|x$DYN-vh3&uO2@6={`BSJ-EH`^YxEs3g-szx8(`fmw9)0?WL(xo_78c zogUh@@$}=c(A%K&e~2a zhDkSUD&D8Xye zbf(}*drCMjrxd?_8Kb>_ntbq79nW9=>k|EPr-v9U2|5=Qs`4^_*NZgv&mO-e&UjZp z@SgGBRLk@KRofZuTP>NMv0MLrH0OSOUEaEj?g!`GskWbVYRYNx>YtNlhg)}A$4=TK zGGo${rOy*)&E(Z*$luFw?7Fc*{Cf8SJLcj=HB8T)4H)GXeh@m~{ZOr8`XOHi{nptG zaa`t%dqnb>Dm3q~d1iEb{N z?Hsef=QJDJwkz*{mYvBv@H6}GYnfupS8sBAUO#j#m}}Bv(W|p& zSbh=OZT{@g*`-nE%34K=YS-6oG2lJ5<=4i;I)~mGWN%+(d53?6Mu=e542kGNH!fM7 zxqE9(_1e2S$G%9W2^#NBXD@nKUw-E4A?@X#U!+|u;Qyt#jL|yO@byd0@W{KRru}E* zRts->o3_{GT37mvt<3vFt>b5_rWNPDE3fL?|MpAIWWUyDe(Z~b>X$z+-hAuj+~AjQ z#D4vgE!BUPbMBx~!~T`!;yq8(mhU(AX -tbb::pipeline Class Reference +tbb::parallel_do_feeder< Item > Class Template Reference @@ -33,104 +33,64 @@
-
tbb::pipeline Class Reference
+
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
-

A processing pipeline that applies filters to items. +

Class the user supplied algorithm body uses to add new tasks. More...

-

#include <pipeline.h>

+

#include <parallel_do.h>

+
+Inheritance diagram for tbb::parallel_do_feeder< Item >:
+
+
+ + + +
- - - - - - - - - - - - - - - - - + + +

Public Member Functions

-__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
-void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
-void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
-void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
+void add (const Item &item)
 Add a work item to a running parallel_do.
 
- - - - - - - - - - - - + + +

Friends

-class internal::stage_task
 
-class internal::pipeline_root_task
 
-class filter
 
-class thread_bound_filter
 
-class internal::pipeline_cleaner
 
-class tbb::interface6::internal::pipeline_proxy
 
+template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 

Detailed Description

-

A processing pipeline that applies filters to items.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
virtual __TBB_EXPORTED_METHOD tbb::pipeline::~pipeline ()
-
-virtual
-
-

Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB.

+

template<typename Item>
+class tbb::parallel_do_feeder< Item >

-
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +

    Class the user supplied algorithm body uses to add new tasks.

    +
    Parameters
    + + +
    ItemWork item type
    +
    +
    +

The documentation for this class was generated from the following file:
    +
  • parallel_do.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00135.png b/doc/html/a00135.png new file mode 100644 index 0000000000000000000000000000000000000000..742cad9d022194b018303bb7554cb51173cd3a64 GIT binary patch literal 625 zcmeAS@N?(olHy`uVBq!ia0y~yVA#XJz!1Q}%)r1fMeuzB0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`iNVvwF{Fa=?cBF~ixmW1 z&#U;p`@R3;D$ys-(VM-kQ;mK7MUKoo&Dy?y#>}%^YM#YHk5o@K3+Q{wwN!Y1N|;hH zIk$1zqv&tb=Kh}0qViYy@DcsQdHr>pjK)oNDabPaf_6b!MM_-QC}l zOd9&T-+%k_zH5JA?yk*8%oQhBK$mJd*G4yn0@z?xNlLUn`F?`}q9ed*EonPc%N*KG)oMwkS`6 zpOZ}kyQ18IW}Uj7GUW{KE#h9>d#S9`%DCW}>mn_S1Df{*>*b1O{7Aoehv%05&!5*K z<}ZJE{{O|v?~F7kt#%pTyJP!{+m_2rz|$N;nDnOVVaC9D#{Q2`|{J;=g+sot?Vx|)elJg%YM#S qH%);5fnx{zhXmV}GiRPX;lCqYwD)N6?Jfoe1_n=8KbLh*2~7YGsw?dP literal 0 HcmV?d00001 diff --git a/doc/html/a00136.html b/doc/html/a00136.html index f0fc4cf5..f2fb79c9 100644 --- a/doc/html/a00136.html +++ b/doc/html/a00136.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference +tbb::parallel_while< Body > Class Template Reference @@ -33,31 +33,130 @@
-
tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference
+
tbb::parallel_while< Body > Class Template Reference
+ +

Parallel iteration over a stream, with optional addition of more work. + More...

+ +

#include <parallel_while.h>

+
+Inheritance diagram for tbb::parallel_while< Body >:
+
+
+ + + +
- - - + + + + +

-Static Public Attributes

-static const int size = N2-N1+1
 

+Public Types

+typedef Body::argument_type value_type
 Type of items.
 
+ + + + + + + + + + + + + +

+Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    template<typename Body>
    +class tbb::parallel_while< Body >

    + +

    Parallel iteration over a stream, with optional addition of more work.

    +

    The Body b has the requirement:
    + "b(v)"
    + "b.argument_type"
    + where v is an argument_type

    +

    Member Function Documentation

    + +
    +
    +
    +template<typename Body >
    + + + + + + + + +
    void tbb::parallel_while< Body >::add (const value_typeitem)
    +
    + +

    Add a work item while running.

    +

    Should be executed only by body.apply or a thread spawned therefrom.

    + +
    +
    + +
    +
    +
    +template<typename Body >
    +
    +template<typename Stream >
    + + + + + + + + + + + + + + + + + + +
    void tbb::parallel_while< Body >::run (Stream & stream,
    const Body & body 
    )
    +
    + +

    Apply body.apply to each item in the stream.

    +

    A Stream s has the requirements
    + "S::value_type"
    + "s.pop_if_present(value) is convertible to bool

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • parallel_while.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00136.png b/doc/html/a00136.png new file mode 100644 index 0000000000000000000000000000000000000000..fc86480fb6f62f64fddf8d2c87db84e764fa7982 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0y~yU|7b$z!1Q}%)r2~WbQvl1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=<7ZD7$B+ufw{vs*S`-9a z;?*Z#`J2C|uc_&f)$VP=KDPoKMP|8w{3>p|`D3f+r59X2o}Ypeye3U&3ZAs5g!6Jr z@#~i{+WV);2T#@U{MElM(Jyy;h{2Meb5WrxFY|Z3NMrx(@mu1Icl87B8ShQCJpW&{ zozcG4lIa<{_1{Nx?$_n5yXby!&Yf!eNvEcq7O(y}X?D1Er*-V4Jt8wEJz4rZVb)Au zeTMwK49Bh;8^o`7FR)`SUR1;M+}VIpZs7-^1KtnS8m1reWzcV(%@D_B&bUV;kEufQ z4$Ft29h?uA76_v%*mc+!zLqJrob~MC(wx8hk9gnonZD|*@AX61g1IIw7QH%ahUFKb-R92@on0Dr zuB=t0sCIqb76aZ>TYhaktaIqCLH71lmUsA9XoLt>&5(#bbmNlMnY*{vRIk0ObL@*` znxOICboQc$|a?f-t#nV`F>-c21bz?3~^jO4ElTf^NlxO{K~vhI^}0pg>Vf60|SGntDnm{r-UW| D=S3h< literal 0 HcmV?d00001 diff --git a/doc/html/a00137.html b/doc/html/a00137.html index 5279c139..029c0f4b 100644 --- a/doc/html/a00137.html +++ b/doc/html/a00137.html @@ -4,7 +4,7 @@ -tbb::pre_scan_tag Struct Reference +tbb::pipeline Class Reference @@ -33,38 +33,104 @@
-
tbb::pre_scan_tag Struct Reference
+
tbb::pipeline Class Reference
-

Used to indicate that the initial scan is being performed. +

A processing pipeline that applies filters to items. More...

-

#include <parallel_scan.h>

+

#include <pipeline.h>

- - - + + + + + + + + + + + + + + + + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+Public Member Functions

+__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
+void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
+void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
+ + + + + + + + + + + + +

+Friends

+class internal::stage_task
 
+class internal::pipeline_root_task
 
+class filter
 
+class thread_bound_filter
 
+class internal::pipeline_cleaner
 
+class tbb::interface6::internal::pipeline_proxy
 

Detailed Description

-

Used to indicate that the initial scan is being performed.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_scan.h
  • +

    A processing pipeline that applies filters to items.

    +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual __TBB_EXPORTED_METHOD tbb::pipeline::~pipeline ()
    +
    +virtual
    +
    +

    Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00138.html b/doc/html/a00138.html index e5ec7eda..b7774fcb 100644 --- a/doc/html/a00138.html +++ b/doc/html/a00138.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference +tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference @@ -33,394 +33,31 @@
-
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
+
tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference
- -

Forwards messages in priority order. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::priority_queue_node< T, Compare, A >:
-
-
- - -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef buffer_node< T, A > base_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

priority_queue_node (graph &g)
 Constructor.
 
priority_queue_node (const priority_queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::item_type 
item_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
prio_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 
-void handle_operations (prio_operation *op_list)
 
-void internal_forward_task (prio_operation *op)
 Tries to forward valid items to successors.
 
-void internal_push (prio_operation *op)
 
-void internal_pop (prio_operation *op)
 
-void internal_reserve (prio_operation *op)
 
-void internal_consume (prio_operation *op)
 
-void internal_release (prio_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 

+Static Public Attributes

+static const int size = N2-N1+1
 
-

Detailed Description

-

template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::priority_queue_node< T, Compare, A >

- -

Forwards messages in priority order.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00138.png b/doc/html/a00138.png deleted file mode 100644 index d3e88b55a66281817e107ea4b0d49b49953838a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4094 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`zt_{nF{Fa=?cKLwi#;S- zFP`l_z3acV+~?Q{GZscSX2{RZW$9|Vk}~g)DbHbn!v;LB8$f`y?OIg#wWw(4Pdto_ zjNYo}*KXZ5>xm>26Vo)WdC}RqrYDVASXgwX+HAjeD{E3Z2M0%lR%PDWtyfjf3kV2o zxZ;2AGk?W5h=yM$K{DdgZJZq(4g{^A@q8ig@#9i{`qLLrZ@zxtUA{R#e9N_4-k$Rm z6%-OyPCxV6aL4jrWoPqpD|WksW??q+n zD^<2NG&C%YGs;@Kb=w{7{jFfF)2e>j@GqZ#EvouKfel#2{RdA!--*ihuZeqiE$VhG zBxwGA0fhm#H^lW%c5b~EHW_SL(8=QLwQJSDI+sp*el0567or0>Fs0fOI}#<@N*x>= z91iGzVPgb=YA=vs3JLl7`7c4i%<@JDY)Zr4+AEf|Ah$Nus)E8<00Q;L^Qur}EH?A`j;p`oGQ+x*Yl%-gZ* z)xAlUt5*Fx_5JD3vY(eb|GmfBN(B zr}B>0fA;;eQhitQrRYW3^yGhfk9P?^?>^^h8(*^bo6R$;qi@re|6HcNKGu%Ml7IKz zC0noM+MAvKT{9!X{k*dOx!1g?8}hl%yK|>M&du2V z_F(66;qrLSy9*ANSzGRZe;4UK^S=ME@V7hudHU|xyN;YW zby0TBs$XKSpH;4}xRaV}cJNsDp0at%y9;ZbKcA1R|MZTz;y>@tgn1`7{(Q0fTiv&b z{{<`Oi5EXIOS`rI^}&T(&A#6}(*NmC#lQ2PYQpcPSN>~rSU=}^ul>2t>wLaFTe#Ev z$dmW^{}b{jJePg+(LVD=)x>z~^X>Cr9*Ws_>YTOzXB*4?D(9cy4h^kczx7kikD2Tr zD>9~?KfUARxtDJ&7fkP7ChY&IMs|zJ`R%jMbXlMO{KPMw|BLtYpZ)gdmhU~^Ub@`h ze8sBUX19Mo>;HE8`A_|@>TP$vgRN0Gzr22aE#tYx)_2<$(pK8kA#s=me7kgG&G`Vh<`^I-^zaM?t<1lak=f`*6+e%&Iw^M&H zxu~YzJWl!i{av>{GlGr3e(v+r*>5h3?)z`!7hbVq)lBufduw)oUA(-w_M2*r`I1$y zcCVT7e5U{Bn!QO;7mAnor@uRPrrSocfcsTt^&gkbuk22Lp8j}G)jacm7WVRGzpsYZ zRDG!|uhq?ZvU61y z_sQbWt73J5^H#5l^Z#@wDm&U^-s)9|GAJsLx`Gdt&qE8!F1_=I4R{QB4sYnvlY)t@ z`C`%cSnPp&WqZTa)TN2sk(oD~!lc5cu(s)@z`55x|C=Y;_7#u(#(j~A5wT%X+a^o} zYjllF0GR{hhDOFAbJ1i6jQjrm`}ZIJ{re|}!r%r~o@t-{%Y!PkH+qn|@-C!?+^`#5 znKPAvn;#Ab-hmq{95*1fH{)(_y{(W?4sJWJkfeG46^p*)p2rsJm_Ze;n8fN;i&kav zf(_D{Y7-ucsQXu~g0_o7K-JYOu#2X7&0D<+)>Mc;`MKcEx%#ii+iy0$G%c@>UB7D8 zF7uM~v}C??yS?jH{d)UwL;p^G`_R(cV&}p`zwQV7A|k8RM!rl;B`@yQs#Wf4m+!Wh z6#Ce&tq=Wrd-D5ft5(@V8zS*1J{!n*ef#)&#+GPD{(3q7xc@JdDr`z@3jdZ`70r6S z=l=dPpYF(7+Z}kaYj@-Jm3jRkp?@JQChs3k^ZHlXivIXibTdys)@S|m=gRu-%fidj z^V##R`?-~Tj@hr0#{9e5$2}}`yYGJ9eNnF<-usm`Z~5Fe%-5$DRuvT`Es`!UKd)YV zJ;3y1&V%M2`}3ctGtY%IlYT$@`Qftq$1U|IKj*&x|LM-z&nD-O7jAxZ?sLt&*VRl= zRnkv>etDlbZ+ZBa@Ox@8lb-*+WOwfK;zxE}U*F!C{%8)^sG|6@pLcGK{Vlh3^Xa=b z=bb~(+T?xMI_+|_-M+JbW&Zx~ES>-KXLq3=sCAXFQ~zn@j~6#KCS0HHS>j(fyKKAn zvx_Mw3in&z*&nlRugvTzyJx4*dVX8xZ(QizZQx>Q)hm5)qS|mJ{8LQm*XWw)39DD# zo&;|FzS{n@(&BGO=- zi@wKJpa$9l@v3%k`^^^Y5P=QbzkmM%YLzpUf#b{Jz&*QHbL^Z!8DbyUVH_2Vosc#p z-SP!RnF@#I_$-Mw#kNF=Yv4vH_Y(OHvvl;qJ&?KsS)2BN`Wzv@7+0VC1poy{><^;3fA?zTmCu2e=t7s z%Q0|BFMM8U_eMwKOl|DLdxu``+nqhXE^@)`zTNfJ_x<-B1BY$It1JD97Ehi&zP{1; z`Z5{5`LnA2F7`h6@xsR=U$4JBkvZ>k-G8H#pP#xNw=P%q|KG=Na`N^|LH*4>&#dFE zW`F-wWd9`5I=_1Q$@T9mtsZ{-QL_u2b@siu)1O?Zraygc_Z8EQ?VmqSoUVLX`~B*w z-P>j-Z?iu8`DIu8<#TN3daH^Ydq)8=Y4tV=l;sN4>JAtp4QIWeH+?q+y3-H_ zmVdHy|8<-5<^AUJKOQVy{p|je%5M!jazBg3=R=F3*m>s-UsZqK;!|EJXYl#M(`g&* zPk%lxdY9QxzWh_fX7|}VFPUt!pBI+@Tehq9puuO0^Yib6N>(PhT~B@n>`M+?r$1R` zZkO@d^zcoKPfmDTSH7cuXN>jil1 -tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference +tbb::pre_scan_tag Struct Reference @@ -33,90 +33,38 @@
-
tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference
+
tbb::pre_scan_tag Struct Reference
-
-Inheritance diagram for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >:
-
-
- - -tbb::flow::interface8::receiver< dependency_msg< T, Factory > > - -
+ +

Used to indicate that the initial scan is being performed. + More...

+ +

#include <parallel_scan.h>

- - - - - - - - - -

-Public Types

-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 
- Public Types inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 The predecessor type for this node.
 
-typedef
-proxy_dependency_receiver< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - - - - -

-Public Member Functions

proxy_dependency_receiver (receiver< T > &r)
 
-task * try_put_task (const dependency_msg< T, Factory > &d)
 Put an item to the receiver.
 
-bool register_predecessor (dependency_predecessor_type &s)
 Add a predecessor to the node.
 
-bool remove_predecessor (dependency_predecessor_type &s)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
-bool try_put (const T &t)
 Put an item to the receiver.
 
-ordinary_receiver & ordinary_receiver ()
 
- - - - - - + + +

-Protected Member Functions

-void reset_receiver (reset_flags f=rf_reset_protocol)
 put receiver back in initial state
 
-bool is_continue_receiver ()
 

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    Used to indicate that the initial scan is being performed.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_scan.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00139.png b/doc/html/a00139.png deleted file mode 100644 index 68da7369fe513f1442b69ee29845a0787b0f22c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1828 zcmeAS@N?(olHy`uVBq!ia0y~yU}j@rU z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`ZL_C~V@L(#+qrM2ZPwy( zGyfQS_V4|VnSWI{{H)WjEqHu+SGKD|OU|e1i4tsvJclnZU-S3U?3@zxim`d-OatTJ zwMD#l?zZm!{a%^(%$Z$^ym#*Y#?RWEHQ`wDzv;C>T3ny1r`Bg{8*jEyE@qFNZyVS;+t&cx1|Le=U?z>ie=7(KBZ0_(K{kibMA79>Yvzuq$1Wx`mzEa%m8}fB7qw&e{FxJY zmnB5_Rhpb@+`@LDZ2y{_Q;tk?4OyROy6WmJ-GlLb=6#DKf;W3zNhnd7nd|;>$27LJ ziS3aZRj2;P`!pMFSgvvYPJ#c`FBmX9OSp^ZUE$ zjD2f!0&+ec{T6+@Rr~vPhn~u%Q+fN=MTLIaeq(7<`6kC~i9%%#{-29)ChR^Hd~m91 z#I~=?*nS)INvRlXubB7kScp^k-;=o~AL%b?tWuwPM?gi}^hV#!PK#^Kyx%qpl=bWq zsCRFE5+^tPO2VDz&pB4=yxvk~SkP_J6MF3R8VmcUPA2cx@BVyk^~~JkSAItA&#`^~ zta9oHrGPMb&O1+XM*5{q|f#*ZbhV`p0Up>FS@|^1C#+f%$ ze;VC6b4DrNB=gR{503Rd%;n$tcU+LZ8``W|xyLR|tj|<_=1kVQTTR;82LAJQSGTTS z(pa5caA(1ywwX7V@40yL{#mwM=R0@LAG?3yz?nCb{>1X$xx2pE#K8DyJS9j-bLkbv2JO!b0t~S~*%cV76nGhaDf2Q^eXKaa+;H#DZ*_hKD@B;t z76&a5}6Dah@Fgnyv;bqvR$jiWTpm!o0!{0zNh8JxnaE&(^7D)FWf2=6ie|)hq1Cs+oO`j77 z#2f{NydIcBjs|IEm=R15j=>CXVAx>@vzCDJ5A`0JsuP2}Y#9U?=3ew-C~=z1U%<9S zh+*!9C(Lsg*RnXMoBU)*chF|M!0BsuK=J}i$+oE#|7PnydbQ+A+`0==H~P}G8*Eor zvM)F(-TN;;p!ViJ%P-fL>o6Sp_|IYq;{nMZLCx2XJ~yn;I9DF_U)+S@M^{oi!wp4V zhIL1G39Zk4`*ZH0lG~4t-Oba9`Jb}(*rJceei={o`FrO2PtA-CHW_EkUo$T|ZR7T= zWy=?V-_h&%RvkHat^IBLwy^WZSaaN+oA=C5(&{@hosA(~A+1?cXj-tGWO2#bz^!-n zv-MOrrV1u5%)O^n7TTv{x1pkD^Qm(ye_hB*j*XVdy6{Tf$Mxc569x-z!y8(K!O@TY zq@}(+4a&t+T)#J8v6E|a>|zP+m<+|H+Z%tX*`o&@6-3;2qn;*eSdW=iII&+`KkhYKmr^{Jses zA^y=mM{X70d1Jznx!_)|s`-(;@9#ooqUwvHqkfmWHvbK2$$hM`oq?m_zIyb-!uj(L zFWa=}vd}xTcQzKuQ$Jd1pY!*=z4mB{a+yHeHd9@zS?^o563@7%?>?Ba_SveNvl(s* z{yu%ky83dG7T=;+DTX$D3$eE7CDzvsvD_)mxbEnz&c(sCu+X|=z<7=C{I*}-qc z{A0%aO%75FbDD~?3QSh@yWg?Av2W@p29^Ww7ffY%(V`~*fG0zh!D``2b_?bx&IZ4X zPmJdp!k88a&#GxKhAUYzWs-;HQaOg0x&IlI57-99#n}92U|?YIboFyt=akR{0Pn?C A@&Et; diff --git a/doc/html/a00140.html b/doc/html/a00140.html index 464b9f31..c2befe74 100644 --- a/doc/html/a00140.html +++ b/doc/html/a00140.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference +tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference @@ -33,90 +33,394 @@
-
tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference
+
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
+ +

Forwards messages in priority order. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::proxy_dependency_sender< T, Factory >:
+Inheritance diagram for tbb::flow::interface8::priority_queue_node< T, Compare, A >:
- - -tbb::flow::interface8::sender< dependency_msg< T, Factory > > + + +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +internal::edge_container
+< predecessor_type >  + + + + + + + + + + + + + + +

Public Types

-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 
- Public Types inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 The successor type for this sender.
 
+
+typedef T input_type
 
+typedef T output_type
 
+typedef buffer_node< T, A > base_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
typedef
-proxy_dependency_sender< T,
-Factory > 
proxy
 
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

proxy_dependency_sender (sender< T > &s)
 
-bool register_successor (dependency_successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (dependency_successor_type &r)
 Removes a successor from this node.
 
-bool try_get (dependency_msg< T, Factory > &d)
 Request an item from the sender.
 
-bool try_reserve (dependency_msg< T, Factory > &d)
 Reserves an item in the sender.
 
-bool try_release ()
 Releases the reserved item.
 
-bool try_consume ()
 Consumes the reserved item.
 
- Public Member Functions inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
-ordinary_sender & ordinary_sender ()
 
-bool has_host_successors ()
 
priority_queue_node (graph &g)
 Constructor.
 
priority_queue_node (const priority_queue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A >
+::size_type 
size_type
 
+typedef buffer_node< T, A >
+::item_type 
item_type
 
+typedef buffer_node< T, A >
+::buffer_operation 
prio_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void reset_node (reset_flags f)
 
+void handle_operations (prio_operation *op_list)
 
+void internal_forward_task (prio_operation *op)
 Tries to forward valid items to successors.
 
+void internal_push (prio_operation *op)
 
+void internal_pop (prio_operation *op)
 
+void internal_reserve (prio_operation *op)
 
+void internal_consume (prio_operation *op)
 
+void internal_release (prio_operation *op)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    template<typename T, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
    +class tbb::flow::interface8::priority_queue_node< T, Compare, A >

    + +

    Forwards messages in priority order.

    +

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

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00140.png b/doc/html/a00140.png index 3aea1666dc3f0c190cc9647a24caa0c801a26f21..d3e88b55a66281817e107ea4b0d49b49953838a0 100644 GIT binary patch literal 4094 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`zt_{nF{Fa=?cKLwi#;S- zFP`l_z3acV+~?Q{GZscSX2{RZW$9|Vk}~g)DbHbn!v;LB8$f`y?OIg#wWw(4Pdto_ zjNYo}*KXZ5>xm>26Vo)WdC}RqrYDVASXgwX+HAjeD{E3Z2M0%lR%PDWtyfjf3kV2o zxZ;2AGk?W5h=yM$K{DdgZJZq(4g{^A@q8ig@#9i{`qLLrZ@zxtUA{R#e9N_4-k$Rm z6%-OyPCxV6aL4jrWoPqpD|WksW??q+n zD^<2NG&C%YGs;@Kb=w{7{jFfF)2e>j@GqZ#EvouKfel#2{RdA!--*ihuZeqiE$VhG zBxwGA0fhm#H^lW%c5b~EHW_SL(8=QLwQJSDI+sp*el0567or0>Fs0fOI}#<@N*x>= z91iGzVPgb=YA=vs3JLl7`7c4i%<@JDY)Zr4+AEf|Ah$Nus)E8<00Q;L^Qur}EH?A`j;p`oGQ+x*Yl%-gZ* z)xAlUt5*Fx_5JD3vY(eb|GmfBN(B zr}B>0fA;;eQhitQrRYW3^yGhfk9P?^?>^^h8(*^bo6R$;qi@re|6HcNKGu%Ml7IKz zC0noM+MAvKT{9!X{k*dOx!1g?8}hl%yK|>M&du2V z_F(66;qrLSy9*ANSzGRZe;4UK^S=ME@V7hudHU|xyN;YW zby0TBs$XKSpH;4}xRaV}cJNsDp0at%y9;ZbKcA1R|MZTz;y>@tgn1`7{(Q0fTiv&b z{{<`Oi5EXIOS`rI^}&T(&A#6}(*NmC#lQ2PYQpcPSN>~rSU=}^ul>2t>wLaFTe#Ev z$dmW^{}b{jJePg+(LVD=)x>z~^X>Cr9*Ws_>YTOzXB*4?D(9cy4h^kczx7kikD2Tr zD>9~?KfUARxtDJ&7fkP7ChY&IMs|zJ`R%jMbXlMO{KPMw|BLtYpZ)gdmhU~^Ub@`h ze8sBUX19Mo>;HE8`A_|@>TP$vgRN0Gzr22aE#tYx)_2<$(pK8kA#s=me7kgG&G`Vh<`^I-^zaM?t<1lak=f`*6+e%&Iw^M&H zxu~YzJWl!i{av>{GlGr3e(v+r*>5h3?)z`!7hbVq)lBufduw)oUA(-w_M2*r`I1$y zcCVT7e5U{Bn!QO;7mAnor@uRPrrSocfcsTt^&gkbuk22Lp8j}G)jacm7WVRGzpsYZ zRDG!|uhq?ZvU61y z_sQbWt73J5^H#5l^Z#@wDm&U^-s)9|GAJsLx`Gdt&qE8!F1_=I4R{QB4sYnvlY)t@ z`C`%cSnPp&WqZTa)TN2sk(oD~!lc5cu(s)@z`55x|C=Y;_7#u(#(j~A5wT%X+a^o} zYjllF0GR{hhDOFAbJ1i6jQjrm`}ZIJ{re|}!r%r~o@t-{%Y!PkH+qn|@-C!?+^`#5 znKPAvn;#Ab-hmq{95*1fH{)(_y{(W?4sJWJkfeG46^p*)p2rsJm_Ze;n8fN;i&kav zf(_D{Y7-ucsQXu~g0_o7K-JYOu#2X7&0D<+)>Mc;`MKcEx%#ii+iy0$G%c@>UB7D8 zF7uM~v}C??yS?jH{d)UwL;p^G`_R(cV&}p`zwQV7A|k8RM!rl;B`@yQs#Wf4m+!Wh z6#Ce&tq=Wrd-D5ft5(@V8zS*1J{!n*ef#)&#+GPD{(3q7xc@JdDr`z@3jdZ`70r6S z=l=dPpYF(7+Z}kaYj@-Jm3jRkp?@JQChs3k^ZHlXivIXibTdys)@S|m=gRu-%fidj z^V##R`?-~Tj@hr0#{9e5$2}}`yYGJ9eNnF<-usm`Z~5Fe%-5$DRuvT`Es`!UKd)YV zJ;3y1&V%M2`}3ctGtY%IlYT$@`Qftq$1U|IKj*&x|LM-z&nD-O7jAxZ?sLt&*VRl= zRnkv>etDlbZ+ZBa@Ox@8lb-*+WOwfK;zxE}U*F!C{%8)^sG|6@pLcGK{Vlh3^Xa=b z=bb~(+T?xMI_+|_-M+JbW&Zx~ES>-KXLq3=sCAXFQ~zn@j~6#KCS0HHS>j(fyKKAn zvx_Mw3in&z*&nlRugvTzyJx4*dVX8xZ(QizZQx>Q)hm5)qS|mJ{8LQm*XWw)39DD# zo&;|FzS{n@(&BGO=- zi@wKJpa$9l@v3%k`^^^Y5P=QbzkmM%YLzpUf#b{Jz&*QHbL^Z!8DbyUVH_2Vosc#p z-SP!RnF@#I_$-Mw#kNF=Yv4vH_Y(OHvvl;qJ&?KsS)2BN`Wzv@7+0VC1poy{><^;3fA?zTmCu2e=t7s z%Q0|BFMM8U_eMwKOl|DLdxu``+nqhXE^@)`zTNfJ_x<-B1BY$It1JD97Ehi&zP{1; z`Z5{5`LnA2F7`h6@xsR=U$4JBkvZ>k-G8H#pP#xNw=P%q|KG=Na`N^|LH*4>&#dFE zW`F-wWd9`5I=_1Q$@T9mtsZ{-QL_u2b@siu)1O?Zraygc_Z8EQ?VmqSoUVLX`~B*w z-P>j-Z?iu8`DIu8<#TN3daH^Ydq)8=Y4tV=l;sN4>JAtp4QIWeH+?q+y3-H_ zmVdHy|8<-5<^AUJKOQVy{p|je%5M!jazBg3=R=F3*m>s-UsZqK;!|EJXYl#M(`g&* zPk%lxdY9QxzWh_fX7|}VFPUt!pBI+@Tehq9puuO0^Yib6N>(PhT~B@n>`M+?r$1R` zZkO@d^zcoKPfmDTSH7cuXN>jil135K9S;Z{XG5l+cM$px8Gh9nC9=L**PUBi^JU5I5F*7 zPfS&L`NMbjcs%pdu1R^me|L`;FRRz}mr2a!{ck1*O`JGA^q=n9GiSCfxjQLpds>=w zT=@q-QRB_wHf+EDOp#0zTX%l`x8FU-D;7KK5yM^wqn6SO0K)sjg@g{(Q&wS3!bG z({vcCY=ykouRp5F(l`FYeaW9$^8ALX9Q~leytI={3qxIhZ}$E_=U)kr&;I>Uzdr63 zf9ZVS&XF6wB6sY$KAkI5`Wu+F-plTX?~Ho&OYeD=-+lWqAztF;^$@vd{#t)!HkB{c zS1#48HQLNG<{afGu<>cNy z=hXfR9Nw(FFXC+B$wg;d>o%U6aBkD*+jk7o&Q>1%d?shF(?^p_i{-jLhWE{^QJDHX zH)Vd?#ItK>)TCZX6I*xL^Zx})`4`5fmUe&pO3#VCJbUKcG4Gvc&M4{6dLvT*V?jJ9 zuG!}#n~6`Zvy+%7Z_ItY$YthC*1B6iH+$LdwJ872rOxqj`jme=98;BN%&a{nJ@?N! zkNx}Q@7&$r5$v6xR_0Z={L8y{%N;Jwp1IZS((c{m&Ujgm75~01+ueElZCSRvS}i2K zvmfx>$;{Cp_lHq{fp_8;hPxBKF!b)cpK9x%{_oGkuMD{`u}Ta5*NneD6vSO)HgUbg zT;hC*d5ilgW{!r_3NIOVEwtdjAmz!gz@XQ>g#AUElC49wifseK4xUMJ3#7ZgFsz;U zg@NgTkw;ZSp2j8SEpC_K8a?bpliy17m?C z%s>Z*7&e$y0u0j~VP+9fZl|(zii?+~DT@Qc7e{V}3u1eV8~QRB8E!2q=er=N%is|G z`VDlaHMDpUK$r`tNb?s)oKjQ~u5Tac9Tj+)w7+_X20o*m2{dg@$X zwEy{f=U+8xN2M)p-JK-2K-ut8|E;szRe$Mkzq)Yio;8-wk4%evIcsCyiak+bJ7pqk z5W=eWToU7Id zs-8Lf+%k5VE%TWF@B6azFZ-qTu-(tu8W=K;9lz9nf3HV;pk?>=R0bc1gO`$Be~GW$ ztF>|S^|kTtzxEa$)s{pg6ZUG?R%Yd=wz@2+iVp4Asvc{0sa+uc{WhVU z$=iQU=#N^Te);#M{QC|ayzXG*-L`FT=9#auQs>EzqS*`Ptd>~K^HRrp|JmH@V#$tg z6nJuTqe@JswrVAwnSHJ=I($jb-4vsAVV!#i8gGLFE>`@(gNMIe>kS{t&wA2+*Q2T- z|B3g~`HMe(W`1)0xw730o(HjYrz$=9FHC+v -tbb::flow::interface8::queue_node< T, A > Class Template Reference +tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference @@ -33,389 +33,90 @@
-
tbb::flow::interface8::queue_node< T, A > Class Template Reference
+
tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference
- -

Forwards messages in FIFO order. - More...

- -

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::queue_node< T, A >:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >:
- - -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > -tbb::flow::interface8::sequencer_node< T, A > + + +tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - +proxy_dependency_receiver< T,
+Factory >  +

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+
+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 
- Public Types inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 The predecessor type for this node.
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
proxy
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A > base_type
 
-typedef base_type::size_type size_type
 
-typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
proxy_dependency_receiver (receiver< T > &r)
 
+task * try_put_task (const dependency_msg< T, Factory > &d)
 Put an item to the receiver.
 
+bool register_predecessor (predecessor_type &s)
 Add a predecessor to the node.
 
+bool remove_predecessor (predecessor_type &s)
 Remove a predecessor from the node.
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
+bool try_put (const T &t)
 Put an item to the receiver.
 
+ordinary_receiver & ordinary_receiver ()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Protected Member Functions

-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
-virtual void handle_operations (buffer_operation *op_list)
 
-task * grab_forwarding_task (buffer_operation &op_data)
 
-bool enqueue_forwarding_task (buffer_operation &op_data)
 
-virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
-virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
-virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
-built_successors_typebuilt_successors ()
 
-virtual void internal_add_built_succ (buffer_operation *op)
 
-virtual void internal_del_built_succ (buffer_operation *op)
 
-built_predecessors_typebuilt_predecessors ()
 
-virtual void internal_add_built_pred (buffer_operation *op)
 
-virtual void internal_del_built_pred (buffer_operation *op)
 
-virtual void internal_succ_cnt (buffer_operation *op)
 
-virtual void internal_pred_cnt (buffer_operation *op)
 
-virtual void internal_copy_succs (buffer_operation *op)
 
-virtual void internal_copy_preds (buffer_operation *op)
 
-virtual void internal_push (buffer_operation *op)
 
-virtual void internal_release (buffer_operation *op)
 
-task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
-void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - + + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
+void reset_receiver (reset_flags f=rf_reset_protocol)
 put receiver back in initial state
 
+bool is_continue_receiver ()
 
-

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::queue_node< T, A >

- -

Forwards messages in FIFO order.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00141.png b/doc/html/a00141.png index 8ad3fc135807da0aed721edaa92e7b59dacc58b2..68da7369fe513f1442b69ee29845a0787b0f22c0 100644 GIT binary patch literal 1828 zcmeAS@N?(olHy`uVBq!ia0y~yU}j@rU z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`ZL_C~V@L(#+qrM2ZPwy( zGyfQS_V4|VnSWI{{H)WjEqHu+SGKD|OU|e1i4tsvJclnZU-S3U?3@zxim`d-OatTJ zwMD#l?zZm!{a%^(%$Z$^ym#*Y#?RWEHQ`wDzv;C>T3ny1r`Bg{8*jEyE@qFNZyVS;+t&cx1|Le=U?z>ie=7(KBZ0_(K{kibMA79>Yvzuq$1Wx`mzEa%m8}fB7qw&e{FxJY zmnB5_Rhpb@+`@LDZ2y{_Q;tk?4OyROy6WmJ-GlLb=6#DKf;W3zNhnd7nd|;>$27LJ ziS3aZRj2;P`!pMFSgvvYPJ#c`FBmX9OSp^ZUE$ zjD2f!0&+ec{T6+@Rr~vPhn~u%Q+fN=MTLIaeq(7<`6kC~i9%%#{-29)ChR^Hd~m91 z#I~=?*nS)INvRlXubB7kScp^k-;=o~AL%b?tWuwPM?gi}^hV#!PK#^Kyx%qpl=bWq zsCRFE5+^tPO2VDz&pB4=yxvk~SkP_J6MF3R8VmcUPA2cx@BVyk^~~JkSAItA&#`^~ zta9oHrGPMb&O1+XM*5{q|f#*ZbhV`p0Up>FS@|^1C#+f%$ ze;VC6b4DrNB=gR{503Rd%;n$tcU+LZ8``W|xyLR|tj|<_=1kVQTTR;82LAJQSGTTS z(pa5caA(1ywwX7V@40yL{#mwM=R0@LAG?3yz?nCb{>1X$xx2pE#K8DyJS9j-bLkbv2JO!b0t~S~*%cV76nGhaDf2Q^eXKaa+;H#DZ*_hKD@B;t z76&a5}6Dah@Fgnyv;bqvR$jiWTpm!o0!{0zNh8JxnaE&(^7D)FWf2=6ie|)hq1Cs+oO`j77 z#2f{NydIcBjs|IEm=R15j=>CXVAx>@vzCDJ5A`0JsuP2}Y#9U?=3ew-C~=z1U%<9S zh+*!9C(Lsg*RnXMoBU)*chF|M!0BsuK=J}i$+oE#|7PnydbQ+A+`0==H~P}G8*Eor zvM)F(-TN;;p!ViJ%P-fL>o6Sp_|IYq;{nMZLCx2XJ~yn;I9DF_U)+S@M^{oi!wp4V zhIL1G39Zk4`*ZH0lG~4t-Oba9`Jb}(*rJceei={o`FrO2PtA-CHW_EkUo$T|ZR7T= zWy=?V-_h&%RvkHat^IBLwy^WZSaaN+oA=C5(&{@hosA(~A+1?cXj-tGWO2#bz^!-n zv-MOrrV1u5%)O^n7TTv{x1pkD^Qm(ye_hB*j*XVdy6{Tf$Mxc569x-z!y8(K!O@TY zq@}(+4a&t+T)#J8v6E|a>|zP+m<+|H+Z%tX*`o&@6-3;2qn;*eSdW=iII&+`KkhYKmr^{Jses zA^y=mM{X70d1Jznx!_)|s`-(;@9#ooqUwvHqkfmWHvbK2$$hM`oq?m_zIyb-!uj(L zFWa=}vd}xTcQzKuQ$Jd1pY!*=z4mB{a+yHeHd9@zS?^o563@7%?>?Ba_SveNvl(s* z{yu%ky83dG7T=;+DTX$D3$eE7CDzvsvD_)mxbEnz&c(sCu+X|=z<7=C{I*}-qc z{A0%aO%75FbDD~?3QSh@yWg?Av2W@p29^Ww7ffY%(V`~*fG0zh!D``2b_?bx&IZ4X zPmJdp!k88a&#GxKhAUYzWs-;HQaOg0x&IlI57-99#n}92U|?YIboFyt=akR{0Pn?C A@&Et; literal 4409 zcmeAS@N?(olHy`uVBq!ia0y~yU{HZd_WM*lsuX3Mo(*K&0hO=0!;i4*QSi4x^mm+ zm$z@bcI&%mn1VvW>gnmJKPu+TJEuQMl!N2P9-$#c%gX3s;IPA(R=u#(pE>>J zo)oJ|Q?Er;YecSG^-5JcG<0vu(pATFBQw`-joTCydeu8@)vBtKUZK6wn=VCVgCti? zUlS7gb<)&TQrlCOZoLMQ4AlqeuGQ5(oVojt*)!0B-+Of8LyI5pUi5d`+C^nQ{nef+vrS?km^4ROg_kaHFQ?xdHyXEt@ z(@$*Ymd)k6Q#a@Pob|<(wzad)A6I?2eE#*vccUfZ@2)f1w|Lbm|6l20cHioBjyyhp zyZ`egoA-O)N%`C9-hRE~WXEaG=|VAnyXIC)7Vkb%vHA1YXYBd5mV7&Tr1LLD&Cao( z0&>T(^B(4J%zl+!T{SDue)`mK-Nh#-Zgu^%MDu4=*t!4No0q?=znS~h-|7PYzCWs) zJEQ-upFh{mHu;~J+GVrdm%fOFhR*-Aa?PCUUsFrxU;j{&FMVrA?Dy>pdvBj={L1Yg zWF}d1=UDUU-{ByIl0r@`g-Qa0*dyCA-=%PjS2 z=;;;F4&B@~>0V}OssFC!Z;$^c@5f*Ee`jrb_&Vd;+hy*WKE8MSrSzsvF)xiD&-l4( z?^~IuZ13-Sd!|kO`uhH9ukdd7$er@jawC5}>_1i1dNxjXdd&8SwEgwpoHyHQ>qof# zk5KWSHEDXv(;qYbOI}Zii?ca%>dlYzO+`CnL$5BcG1NYOyhw3=neMc|rFY&O{rMvG zVZ8sW_=;&$Z!b8XlDg;QB9YT;&b%uz*I9q!)O35T>+4@sA69E$fB#DPwF}F`FRtFS zDKSrM@@4%=>b@txr#}7jJ}zzg#u@2l7avHinznDk)K#n2|40fGi~srgsja=4_1|s# z&PTpH_twkc-S3pJH1nBpdAdfESFinl_5Sp!>2)E?)?aJW-FJKb$E$zVMpnMMqr?8C z`-x}pCPVG(arfr-|NCEMC+{4pYxCmh)`gcZe$Kw@U2DE%)hqdZ^QN}$j@&udF#hNC z9dr6ilBcQ8yz(ZUjDjs^7@&dUwpimEx+=$>az8#R@pt( zjXmGCc5a&Bq^Vc7T)TCt zZOxuXi!aGa^vBz4PhK5%HRboCLpP^Ry{@zPW{J=AYr)G?oWoYFic9$TJokV0>Q!>T z(m^F>{e#u@cdl;^3jO+jyRLR<=>PovcG}w&?w>s6p4H#KYL)tr(8!&CGS_asR$Z}S z>ovKbpE6H+g+g-w-(PEFb_a%DejCZVa#hriP*4dHuLLR=z@^Il`BPV|lApY0%e5$Q zVF4B-yQops4mHg?>6N_}R1U2I7gWDboO)PbapbAt$y1;@P;TZj6CD^j9Cn<$wB{fQ{m|nh$fIhGxBEgKvaQrKA!fn0b;<5)Hs8@nSAt< zdjJ0Y`;Y(r{gZ<+_A#=s{HgnS!pXtmfFG!?WO*}XjRTcA2kw_y$nX``g3M)WU$x4@ zo|sxz6}!9{FS}PaQ|I30b(b4&_kW)E zxm0ica{ul%KHuivJMd;t-h+yjA9X{omVlcZ>R%%*RUgIly}n#3Jzq_5hirV`o_90n zTUuJZlQ=)OcSg)}vF%3>ytI9$ygF;sS?#jr2B6T)DOK10{M9yg#$-`jdkbp=W62A# z&(CemUNNiEq(Ifae{+$(4p`k+-AGHjW!^vk{F*iORDZ~LsNKP4|4ALp)9)2>y#ws})n*VYp~zppI5iOKAQ z*QpdxJ3B=+)ks0%0q3SkMv?*oA6OziXYz1xR5Yzw;={(mVsr46*RLC;H?8e0c)nl1 zTajS--Q)TD{`gzx@AvVue`_VX(b==Z@*mqc-NmZ{l4!D>$d)D zKdZMnXdx)n%XUtlI#u=V+Ha@3|IP9A%2Pge@ca6|GuPNi8G#br9d2(>8$P<$JFKt& zWsu$eeQBvRrRv(78LxNSo;sCz0$iW#6{|xs#8zAF=k=>2XU;dYE#C8>c}>ap+57L> zX=g8u=su(3znT@)Ku=h09l7&M;;uE~D`%!IJb$X8_3HAMy6WX~?$?*iKe{)~S#4{@ zl&N1=fEwT%?nZ_6asS!!DbIg%#2oRbd&DO%tuvA?sL zAnASD3Q*#wS?Nrzg8xr$`{9QlxcA8OwI6=%=-_aG=%W6?q^S?L#MaHWX-nLgT$S^5 z`|Zfk(7g}eOMUUe+@Z!S00~p-gnbdd%4S;(}lIW@*ZE7X#4o1=t=4MKWEm7n_k(`dp&B- zmQQl)40n}gR(5*sS_UrZKbc8R11EvWYtBr6U-DNsdPC7U71iy6j~`TDkK+&jzoqD7 z^~DA8AIh&gG zEb_%BqmZkIUS0n3<)o-zH_bhACJ$Ko>g=$->|a|BnE^ykEkX@xi5JbTRhEOKW2BY5Et4*%1j2HE;;o6fCXHShU+b5I$auzLTD zsSp3GSoN!`e*Oe-Xw(~Ohlbu)0wwRYb%CH3q&Aq1y+;k}V1rs<>-af-?ET05^lX@_ U+mZL$3=9kmp00i_>zopr07VKzkpKVy diff --git a/doc/html/a00142.html b/doc/html/a00142.html index fe92dfad..f9db9216 100644 --- a/doc/html/a00142.html +++ b/doc/html/a00142.html @@ -4,7 +4,7 @@ -tbb::queuing_mutex Class Reference +tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference @@ -33,70 +33,90 @@
-
tbb::queuing_mutex Class Reference
+
tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference
- -

Queuing mutex with local-only spinning. - More...

- -

#include <queuing_mutex.h>

-Inheritance diagram for tbb::queuing_mutex:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_sender< T, Factory >:
- - + + +tbb::flow::interface8::sender< dependency_msg< T, Factory > >
- - - - + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 
- Public Types inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 The successor type for this sender.
 
+typedef
+proxy_dependency_sender< T,
+Factory > 
proxy
 
- - - - - -

Public Member Functions

queuing_mutex ()
 Construct unacquired mutex.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
proxy_dependency_sender (sender< T > &s)
 
+bool register_successor (successor_type &r)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
+bool try_get (dependency_msg< T, Factory > &d)
 Request an item from the sender.
 
+bool try_reserve (dependency_msg< T, Factory > &d)
 Reserves an item in the sender.
 
+bool try_release ()
 Releases the reserved item.
 
+bool try_consume ()
 Consumes the reserved item.
 
- Public Member Functions inherited from tbb::flow::interface8::sender< dependency_msg< T, Factory > >
+ordinary_sender & ordinary_sender ()
 
+bool has_host_successors ()
 
-

Detailed Description

-

Queuing mutex with local-only spinning.

-

The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00142.png b/doc/html/a00142.png index 97f8b53bdb2fc94c669545ed9d635338907e3f57..3aea1666dc3f0c190cc9647a24caa0c801a26f21 100644 GIT binary patch literal 1782 zcmeAS@N?(olHy`uVBq!ia0y~yVEV$qz!1Q}%)r3lC?NQifq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}*6Qiv7*fIbcJAwKkF*5X zy33~h{g+>35K9S;Z{XG5l+cM$px8Gh9nC9=L**PUBi^JU5I5F*7 zPfS&L`NMbjcs%pdu1R^me|L`;FRRz}mr2a!{ck1*O`JGA^q=n9GiSCfxjQLpds>=w zT=@q-QRB_wHf+EDOp#0zTX%l`x8FU-D;7KK5yM^wqn6SO0K)sjg@g{(Q&wS3!bG z({vcCY=ykouRp5F(l`FYeaW9$^8ALX9Q~leytI={3qxIhZ}$E_=U)kr&;I>Uzdr63 zf9ZVS&XF6wB6sY$KAkI5`Wu+F-plTX?~Ho&OYeD=-+lWqAztF;^$@vd{#t)!HkB{c zS1#48HQLNG<{afGu<>cNy z=hXfR9Nw(FFXC+B$wg;d>o%U6aBkD*+jk7o&Q>1%d?shF(?^p_i{-jLhWE{^QJDHX zH)Vd?#ItK>)TCZX6I*xL^Zx})`4`5fmUe&pO3#VCJbUKcG4Gvc&M4{6dLvT*V?jJ9 zuG!}#n~6`Zvy+%7Z_ItY$YthC*1B6iH+$LdwJ872rOxqj`jme=98;BN%&a{nJ@?N! zkNx}Q@7&$r5$v6xR_0Z={L8y{%N;Jwp1IZS((c{m&Ujgm75~01+ueElZCSRvS}i2K zvmfx>$;{Cp_lHq{fp_8;hPxBKF!b)cpK9x%{_oGkuMD{`u}Ta5*NneD6vSO)HgUbg zT;hC*d5ilgW{!r_3NIOVEwtdjAmz!gz@XQ>g#AUElC49wifseK4xUMJ3#7ZgFsz;U zg@NgTkw;ZSp2j8SEpC_K8a?bpliy17m?C z%s>Z*7&e$y0u0j~VP+9fZl|(zii?+~DT@Qc7e{V}3u1eV8~QRB8E!2q=er=N%is|G z`VDlaHMDpUK$r`tNb?s)oKjQ~u5Tac9Tj+)w7+_X20o*m2{dg@$X zwEy{f=U+8xN2M)p-JK-2K-ut8|E;szRe$Mkzq)Yio;8-wk4%evIcsCyiak+bJ7pqk z5W=eWToU7Id zs-8Lf+%k5VE%TWF@B6azFZ-qTu-(tu8W=K;9lz9nf3HV;pk?>=R0bc1gO`$Be~GW$ ztF>|S^|kTtzxEa$)s{pg6ZUG?R%Yd=wz@2+iVp4Asvc{0sa+uc{WhVU z$=iQU=#N^Te);#M{QC|ayzXG*-L`FT=9#auQs>EzqS*`Ptd>~K^HRrp|JmH@V#$tg z6nJuTqe@JswrVAwnSHJ=I($jb-4vsAVV!#i8gGLFE>`@(gNMIe>kS{t&wA2+*Q2T- z|B3g~`HMe(W`1)0xw730o(HjYrz$=9FHC+vX{lnT^vIy z7~jr)JE>WL$JIa0s`&o@-s`_S8P;wqyX{uC=W44;5l3geq4Dk}1JADYY+9ZZuQ;e` zP6~63e{BEYt?zaj?$dWF{_L0fxZF{7XSVnX-)NH+zdw|0|9AZNx8%!j^UQavs2%pm zGCJlz_j0)pvt7^U^Ut0=U8ke|J<6fJdNu2|il}euGmF|z&eZa`6Hw^&dV+3z|E=ueWwIo_zGSqn`8Q%3^&j ztpzr$Q}@p4%gcRP?Wp~BEti!@LaOK_onT$Jw5k^u)`&ZQyCk(j+xC9XD$}TjYgr|^ z^>6#LN>bl_m6}_1sd3%xsn@)&pPl>rw!z+8rN=#X?|LWl#_{^pC5MYTr!5IuU)!(x zQsyn|+tt=@z50^!I9{tw+T#7yp#Ql_rt|WY673`FQ$r@zMe&AAQd-&Q6{J$SAT3Q? z;K2UZYz3^btY6A@bG!_7us)YPA&yPtfl}5_mX0O$(*hejvLsnMmJrMM<>7Yr%sK@g zg?&;Q4l1Sr4IWjpTRzJ>zv(U6CVRlSmPsU`e;;?r52sT5+BGUS4D8l@&oi~_y`J#O zF8}Z6r0c(V?9~(IPrg|AmF?Xu$NKK*q*)E$e%w1}%V@Lua$nx0o}YJe8^UZ1rk%Fm zxtOUS=08i-|7xz1f5t?&PDV5;ecxm{+~?A -tbb::queuing_rw_mutex Class Reference +tbb::flow::interface8::queue_node< T, A > Class Template Reference @@ -33,75 +33,389 @@
-
tbb::queuing_rw_mutex Class Reference
+
tbb::flow::interface8::queue_node< T, A > Class Template Reference
-

Queuing reader-writer mutex with local-only spinning. +

Forwards messages in FIFO order. More...

-

#include <queuing_rw_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::queuing_rw_mutex:
+Inheritance diagram for tbb::flow::interface8::queue_node< T, A >:
- - + + +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A > base_type
 
+typedef base_type::size_type size_type
 
+typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
+void internal_pop (queue_operation *op)
 
+void internal_reserve (queue_operation *op)
 
+void internal_consume (queue_operation *op)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
+virtual void handle_operations (buffer_operation *op_list)
 
+task * grab_forwarding_task (buffer_operation &op_data)
 
+bool enqueue_forwarding_task (buffer_operation &op_data)
 
+virtual task * forward_task ()
 This is executed by an enqueued task, the "forwarder".
 
+virtual void internal_reg_succ (buffer_operation *op)
 Register successor.
 
+virtual void internal_rem_succ (buffer_operation *op)
 Remove successor.
 
+built_successors_typebuilt_successors ()
 
+virtual void internal_add_built_succ (buffer_operation *op)
 
+virtual void internal_del_built_succ (buffer_operation *op)
 
+built_predecessors_typebuilt_predecessors ()
 
+virtual void internal_add_built_pred (buffer_operation *op)
 
+virtual void internal_del_built_pred (buffer_operation *op)
 
+virtual void internal_succ_cnt (buffer_operation *op)
 
+virtual void internal_pred_cnt (buffer_operation *op)
 
+virtual void internal_copy_succs (buffer_operation *op)
 
+virtual void internal_copy_preds (buffer_operation *op)
 
+virtual void internal_push (buffer_operation *op)
 
+virtual void internal_release (buffer_operation *op)
 
+task * try_put_task (const T &t)
 receive an item, return a task *if possible
 
+void reset_receiver (reset_flags)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 

Detailed Description

-

Queuing reader-writer mutex with local-only spinning.

-

Adapted from Krieger, Stumm, et al. pseudocode at http://www.eecg.toronto.edu/parallel/pubs_abs.html#Krieger_etal_ICPP93

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::queue_node< T, A >

+ +

Forwards messages in FIFO order.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00143.png b/doc/html/a00143.png index aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf..8ad3fc135807da0aed721edaa92e7b59dacc58b2 100644 GIT binary patch literal 4409 zcmeAS@N?(olHy`uVBq!ia0y~yU{HZd_WM*lsuX3Mo(*K&0hO=0!;i4*QSi4x^mm+ zm$z@bcI&%mn1VvW>gnmJKPu+TJEuQMl!N2P9-$#c%gX3s;IPA(R=u#(pE>>J zo)oJ|Q?Er;YecSG^-5JcG<0vu(pATFBQw`-joTCydeu8@)vBtKUZK6wn=VCVgCti? zUlS7gb<)&TQrlCOZoLMQ4AlqeuGQ5(oVojt*)!0B-+Of8LyI5pUi5d`+C^nQ{nef+vrS?km^4ROg_kaHFQ?xdHyXEt@ z(@$*Ymd)k6Q#a@Pob|<(wzad)A6I?2eE#*vccUfZ@2)f1w|Lbm|6l20cHioBjyyhp zyZ`egoA-O)N%`C9-hRE~WXEaG=|VAnyXIC)7Vkb%vHA1YXYBd5mV7&Tr1LLD&Cao( z0&>T(^B(4J%zl+!T{SDue)`mK-Nh#-Zgu^%MDu4=*t!4No0q?=znS~h-|7PYzCWs) zJEQ-upFh{mHu;~J+GVrdm%fOFhR*-Aa?PCUUsFrxU;j{&FMVrA?Dy>pdvBj={L1Yg zWF}d1=UDUU-{ByIl0r@`g-Qa0*dyCA-=%PjS2 z=;;;F4&B@~>0V}OssFC!Z;$^c@5f*Ee`jrb_&Vd;+hy*WKE8MSrSzsvF)xiD&-l4( z?^~IuZ13-Sd!|kO`uhH9ukdd7$er@jawC5}>_1i1dNxjXdd&8SwEgwpoHyHQ>qof# zk5KWSHEDXv(;qYbOI}Zii?ca%>dlYzO+`CnL$5BcG1NYOyhw3=neMc|rFY&O{rMvG zVZ8sW_=;&$Z!b8XlDg;QB9YT;&b%uz*I9q!)O35T>+4@sA69E$fB#DPwF}F`FRtFS zDKSrM@@4%=>b@txr#}7jJ}zzg#u@2l7avHinznDk)K#n2|40fGi~srgsja=4_1|s# z&PTpH_twkc-S3pJH1nBpdAdfESFinl_5Sp!>2)E?)?aJW-FJKb$E$zVMpnMMqr?8C z`-x}pCPVG(arfr-|NCEMC+{4pYxCmh)`gcZe$Kw@U2DE%)hqdZ^QN}$j@&udF#hNC z9dr6ilBcQ8yz(ZUjDjs^7@&dUwpimEx+=$>az8#R@pt( zjXmGCc5a&Bq^Vc7T)TCt zZOxuXi!aGa^vBz4PhK5%HRboCLpP^Ry{@zPW{J=AYr)G?oWoYFic9$TJokV0>Q!>T z(m^F>{e#u@cdl;^3jO+jyRLR<=>PovcG}w&?w>s6p4H#KYL)tr(8!&CGS_asR$Z}S z>ovKbpE6H+g+g-w-(PEFb_a%DejCZVa#hriP*4dHuLLR=z@^Il`BPV|lApY0%e5$Q zVF4B-yQops4mHg?>6N_}R1U2I7gWDboO)PbapbAt$y1;@P;TZj6CD^j9Cn<$wB{fQ{m|nh$fIhGxBEgKvaQrKA!fn0b;<5)Hs8@nSAt< zdjJ0Y`;Y(r{gZ<+_A#=s{HgnS!pXtmfFG!?WO*}XjRTcA2kw_y$nX``g3M)WU$x4@ zo|sxz6}!9{FS}PaQ|I30b(b4&_kW)E zxm0ica{ul%KHuivJMd;t-h+yjA9X{omVlcZ>R%%*RUgIly}n#3Jzq_5hirV`o_90n zTUuJZlQ=)OcSg)}vF%3>ytI9$ygF;sS?#jr2B6T)DOK10{M9yg#$-`jdkbp=W62A# z&(CemUNNiEq(Ifae{+$(4p`k+-AGHjW!^vk{F*iORDZ~LsNKP4|4ALp)9)2>y#ws})n*VYp~zppI5iOKAQ z*QpdxJ3B=+)ks0%0q3SkMv?*oA6OziXYz1xR5Yzw;={(mVsr46*RLC;H?8e0c)nl1 zTajS--Q)TD{`gzx@AvVue`_VX(b==Z@*mqc-NmZ{l4!D>$d)D zKdZMnXdx)n%XUtlI#u=V+Ha@3|IP9A%2Pge@ca6|GuPNi8G#br9d2(>8$P<$JFKt& zWsu$eeQBvRrRv(78LxNSo;sCz0$iW#6{|xs#8zAF=k=>2XU;dYE#C8>c}>ap+57L> zX=g8u=su(3znT@)Ku=h09l7&M;;uE~D`%!IJb$X8_3HAMy6WX~?$?*iKe{)~S#4{@ zl&N1=fEwT%?nZ_6asS!!DbIg%#2oRbd&DO%tuvA?sL zAnASD3Q*#wS?Nrzg8xr$`{9QlxcA8OwI6=%=-_aG=%W6?q^S?L#MaHWX-nLgT$S^5 z`|Zfk(7g}eOMUUe+@Z!S00~p-gnbdd%4S;(}lIW@*ZE7X#4o1=t=4MKWEm7n_k(`dp&B- zmQQl)40n}gR(5*sS_UrZKbc8R11EvWYtBr6U-DNsdPC7U71iy6j~`TDkK+&jzoqD7 z^~DA8AIh&gG zEb_%BqmZkIUS0n3<)o-zH_bhACJ$Ko>g=$->|a|BnE^ykEkX@xi5JbTRhEOKW2BY5Et4*%1j2HE;;o6fCXHShU+b5I$auzLTD zsSp3GSoN!`e*Oe-Xw(~Ohlbu)0wwRYb%CH3q&Aq1y+;k}V1rs<>-af-?ET05^lX@_ U+mZL$3=9kmp00i_>zopr07VKzkpKVy delta 732 zcmdm~)WN3M8Q|y6%O%Cdz`(%k>ERN@z`*c=fq@}_gPDPWLFL`apoxlB^-R+}T^vIy z7~jsl-Pdfu>+}EmJyWvhaJM?0zLs)S#O#Kedf(h|Cys}FN**M!lu;oZRp1)`I^5~g7o zi?`PA+`sDLsojrFt-daijWyR?>vi3C?(f?lcHJsH?lF7UJCQf8*QYMIYt%VyNzCzc z$(~m3(T=}g_3fUtaE7$gU6)B_D`lR2wf2mXP|k%u`kTvldKx;whWK zp?JrEA^tk^1HN6{FCG^PU)tSJHs`y-US5p@zE?hRKJcv9UCc1=iV@cXPhuG*o^H;d zs9^XJ&dmB@2^-e~&-|t`zs2{%zB|9JbTZn<#`R&F9U05nP+6Poz0t=xywv5!#{uSS>XeAvbT3#+;u)W zhjq(?K(&tWb9OULnQpA|Z?gM;j#+lmU+)V-9=s*1-d^pQwS&RBB&_$?;fonjbCyc= zhAn2vnzR3Y&!u(NzNv>|cD=h4w#eu(s&a?=G{Kcd-fdm{ldV&z~JfX=d#Wzp$Pz> CrdEdl diff --git a/doc/html/a00144.html b/doc/html/a00144.html index 39e88252..00b5e642 100644 --- a/doc/html/a00144.html +++ b/doc/html/a00144.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock Class Reference +tbb::queuing_mutex Class Reference @@ -33,196 +33,70 @@
-
tbb::interface5::reader_writer_lock Class Reference
+
tbb::queuing_mutex Class Reference
-

Writer-preference reader-writer lock with local-only spinning on readers. +

Queuing mutex with local-only spinning. More...

-

#include <reader_writer_lock.h>

+

#include <queuing_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock:
+Inheritance diagram for tbb::queuing_mutex:
- - + +
- - + + - - - -

Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
class  scoped_lock
 The scoped locking pattern. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - - -

-Public Types

enum  status_t { waiting_nonblocking, -waiting, -active, -invalid - }
 Status type for nodes associated with lock instances. More...
 
- - - - - - - - - - - - - - - - - - - - - + + + + +

Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
-void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
queuing_mutex ()
 Construct unacquired mutex.
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - + + + + + + +

-Friends

-class scoped_lock
 
-class scoped_lock_read
 

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 

Detailed Description

-

Writer-preference reader-writer lock with local-only spinning on readers.

-

Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

-

Member Enumeration Documentation

- -
-
- -

Status type for nodes associated with lock instances.

-

waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

-

waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

-

active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

-

invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

-

The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

-

State diagram for scoped_lock status:

-

waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

-

State diagram for scoped_lock_read status:

-

waiting | V active --------------—>invalid

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
-
- -

Acquires the reader_writer_lock for write.

-

If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
-
- -

Acquires the reader_writer_lock for read.

-

If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
-
- -

Tries to acquire the reader_writer_lock for write.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

- -
-
- -
-
- - - - - - - -
bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
-
- -

Tries to acquire the reader_writer_lock for read.

-

This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +

    Queuing mutex with local-only spinning.

    +

    The documentation for this class was generated from the following file:
      +
    • queuing_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00144.png b/doc/html/a00144.png index 12ea5c61822a9cff028a841febee251e03da1868..97f8b53bdb2fc94c669545ed9d635338907e3f57 100644 GIT binary patch delta 709 zcmbQp`iWJsGr-TCmrII^fq{Y7)59f*fq~%#0|P?<2Qvc$gUY*;K@%0N>l-~?978G? z-_CtIsab)?)j!Ru`2PRi>%Tl1)^01i?N+wuYO6{SM`yjE@$M!A&#v`sTAmZHIH+n) z3UiEqZ2#b`?{*pP(|0QV?3enu+);IBw)hI)Xp=mz79Ds^}!0U|qMgsuvg5h&z9~B(*}@_I}SQ)2N1PStYq| z>-)1xQr~@*np<_Laoy~x*SxNuo%{Q?!QNY?$31rMdMEP6@%q#yhl@I=EeTp*+pqdk z<}K^n)z)vl`jYZEUaL*o;{Da2|G7%0^YWAu?IY_`LnhTl@rF!NTG{9oq*A&dElphD z!2Z{41+1~GU&?lKybN`)K9@Zqj!oo&Qr1tFjwRFT0~|32=LA5NwAwQE#v7}%}*o@Z*;dp+Tm zUH;$CN!Ne#*sCYZpM0_KE8DwSj@|XqNwXTh{kV6|meFSQ<-WX0JwNZ{HiX$2OgnAA zb1_pv%zu`u|J7V21%G5Ol)TAsi{)ro{-sUIw|(-(Jr>%guU=Pg{5>gcO8MQ)TH$Ax zN~gz7z7of3a(B`Dm%A9WZ;Afueg9wX!p~;QZ!!($FAq!BTHpWQz*N%>bNejm*}G>( cX8dI|uWp{<`Y-A(0|Nttr>mdKI;Vst0G6Uh$^ZZW delta 611 zcmeywI+0beGr-TCmrII^fq{Y7)59f*fq~&H0|P?<2Qvc$L+>ocV-ppv>lHj*978G? z-_CuT_t=1krQM;S_P@E^@lWikH&?zt=NZwsmVK2>*pn>PXZmSrhZ{UEDJ+rl?DAYS zamfr2K^Q+cWOF5Gx+xLo)vqv-a<0-nF}?>#u%IV~!l`3swZ z+Dl#spG(pWGnSY$7<%S2Bu%=ktNJ_9V z@9+43pZ~4jD$ev}$~~rnb5mvSa5Me6y!Wf=zOdq5Co&zywON03)`taGeciM2^aB^W z=bzj3cmJyicACCZ{#DB7U%5AAHm`r$6*VI}Gx*n|+dZ=d&&~c+CA;mo|Fo^M?pzI6 zTCnhUz~B1V)Yy}OHyquzE7pJYEav{QKGtsk;&&}&?OQqDZ?@3ht+M`5O;Y&V`zvmK z-|I5v=e8GRf2B=-?_8t1XVEjAH*BWt()UXHt;&-l!aZZte%g9hu6p)k$<^h*o=+~T z$v@|J>*U_dS(l5R>(Aff^<~|%x0!EU*GQeIyVO?|w)%8!fY_?4Tim9lr^Ib@-&&pt zueNunP+BoFe^>TF2KE>ZZ&0XZF(ggOVo3V*XO)Subc_8hncB=R$tBwu7#J8lUHx3v IIVCg!04_8mg#Z8m diff --git a/doc/html/a00145.html b/doc/html/a00145.html index f0c171d8..2d6133f5 100644 --- a/doc/html/a00145.html +++ b/doc/html/a00145.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference +tbb::queuing_rw_mutex Class Reference @@ -33,32 +33,75 @@
-
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
+
tbb::queuing_rw_mutex Class Reference
+ +

Queuing reader-writer mutex with local-only spinning. + More...

+ +

#include <queuing_rw_mutex.h>

+
+Inheritance diagram for tbb::queuing_rw_mutex:
+
+
+ + + +
- - - + + + + +

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + + + + +

+Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = true
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 
-
The documentation for this struct was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00145.png b/doc/html/a00145.png new file mode 100644 index 0000000000000000000000000000000000000000..aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf GIT binary patch literal 776 zcmeAS@N?(olHy`uVBq!ia0y~yV0gj6z!1Q}%)r2)^6n%^Kq9~=#P$FG{~)U8>A%25%s8*1u(bHklD9`Y%9OsY2x@cgudP0Mp$2&?U}{fBSQT4$Ly zZRN)w^@fl9o4t&#t6ebAy}01rgO_=K`@gcU@{1KG&AKI0w{&dRiP~np zNpt#jr=Sg+9%dyjvWofH(i-2ngX`Cy+Z?lI=-gu~l9c*B`)5EH<4-+}HBYycdI#U< zipt1$y|9phd-DVlp{YqK%XXXj?vl#t(1B8)!H-aqNZdl_s49>sY~XEF;7+T&ss3)iKlD^hvFRvhWP8u5BPR*zj$0I zd}((>*_`hRdwDeu_+I(M`M^_mF~htoMqI=*N<7`1LGi%wBb=G_!xA>G2cG#&WqynA zhkbW`UFl@BkB#fYHa%w9zNPP$^9#6296P?!cI~m{AEkWW&NMsTSy9!Tx`p55&z{~| zg~gBGFwe+lJDWE#bC;QBhJXItv%&}LWN+`fxa)j$4(pZ&fodJ$=j>*hGTm6^-(>gy z9JB1Azup&wJa|i1y}jBqYX^gMNm%c(!xuB6<}8)!4O`5THD~|*o=fYjeNzv`?0R=8 zY?0AzE~)jmRb#~$Eb{%hujm)k=~BiQHD-NpkIp;)Q{g~i?8J-w3mLAI+G!lH4}tlo hcs{=(%k^K(yM3DX>^bcFg@J*A!PC{xWt~$(696xsYC`}3 literal 0 HcmV?d00001 diff --git a/doc/html/a00146.html b/doc/html/a00146.html index 2e021d4b..83a88ba1 100644 --- a/doc/html/a00146.html +++ b/doc/html/a00146.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference +tbb::interface5::reader_writer_lock Class Reference @@ -33,32 +33,196 @@
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
+
tbb::interface5::reader_writer_lock Class Reference
+ +

Writer-preference reader-writer lock with local-only spinning on readers. + More...

+ +

#include <reader_writer_lock.h>

+
+Inheritance diagram for tbb::interface5::reader_writer_lock:
+
+
+ + + +
+ + + + + + + +

+Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - + + + +

Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
enum  status_t { waiting_nonblocking, +waiting, +active, +invalid + }
 Status type for nodes associated with lock instances. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
+void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
+ + + + +

+Friends

+class scoped_lock
 
+class scoped_lock_read
 
-
The documentation for this struct was generated from the following file:
    -
  • memory_pool.h
  • +

    Detailed Description

    +

    Writer-preference reader-writer lock with local-only spinning on readers.

    +

    Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

    +

    Member Enumeration Documentation

    + +
    +
    + +

    Status type for nodes associated with lock instances.

    +

    waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

    +

    waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

    +

    active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

    +

    invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

    +

    The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

    +

    State diagram for scoped_lock status:

    +

    waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

    +

    State diagram for scoped_lock_read status:

    +

    waiting | V active --------------—>invalid

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
    +
    + +

    Acquires the reader_writer_lock for write.

    +

    If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
    +
    + +

    Acquires the reader_writer_lock for read.

    +

    If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
    +
    + +

    Tries to acquire the reader_writer_lock for write.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
    +
    + +

    Tries to acquire the reader_writer_lock for read.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00146.png b/doc/html/a00146.png new file mode 100644 index 0000000000000000000000000000000000000000..12ea5c61822a9cff028a841febee251e03da1868 GIT binary patch literal 657 zcmeAS@N?(olHy`uVBq!ia0y~yU^vUbz!1Q}%)r3VJB#rc0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Nx{>_F{Fa=?cBF{j}3TO z+8r8d|C`$#|HQ6(bLIPUo)L{}*;mPgJ;_pirk|E}xWV(1!V)RZF3(jHm&^b$PQK0Z zFj`9{Wip z%JYLS-<=)5nkHmCVa~=Y3_UJZ%mS0Yuqmj$tpTqFMiij*1nbV{bmd8-74!3)g*<#y}#n-_q{Gter|hF_E*~U z_s%uCdlo&@dBbMPE`6`G->N)0BHS}J?We7G<*H{tmRw!_>-pren*4Kqw@&WOoOQYA zx&HhuUSHNNdz<;zb&b@Sx=VdkVXIHq28gYyy2Wi;dP>|j_wAYRYI}zYr4=*tcV!=B vV2|PO1_fCbL(-%yhNMq_R+$(}x7gp3sm=V7T(XUUfq}u()z4*}Q$iB}dagH? literal 0 HcmV?d00001 diff --git a/doc/html/a00147.html b/doc/html/a00147.html index f2490a07..e2203a1e 100644 --- a/doc/html/a00147.html +++ b/doc/html/a00147.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference +tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
+
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
+typedef
+cache_aligned_allocator< U > 
other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00148.html b/doc/html/a00148.html index 5fbf747e..888cca6f 100644 --- a/doc/html/a00148.html +++ b/doc/html/a00148.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference +tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
+
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef zero_allocator< U,
+Allocator > 
other
 

The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00149.html b/doc/html/a00149.html index 22b228dc..150aafd0 100644 --- a/doc/html/a00149.html +++ b/doc/html/a00149.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference +tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference @@ -33,32 +33,32 @@
-
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
+
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef zero_allocator< U,
+Allocator > 
other
 

The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00150.html b/doc/html/a00150.html index ebe79c12..ee765ed3 100644 --- a/doc/html/a00150.html +++ b/doc/html/a00150.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T >::rebind< U > Struct Template Reference +tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
+
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef scalable_allocator< U > other
 
+typedef
+cache_aligned_allocator< U > 
other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00151.html b/doc/html/a00151.html index 82f9a877..ebe6a2b4 100644 --- a/doc/html/a00151.html +++ b/doc/html/a00151.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void >::rebind< U > Struct Template Reference +tbb::scalable_allocator< T >::rebind< U > Struct Template Reference @@ -33,7 +33,7 @@
@@ -41,23 +41,23 @@ Public Types | List of all members
-
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
+
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef scalable_allocator< U > other
 
+typedef scalable_allocator< U > other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00152.html b/doc/html/a00152.html index 1684ed63..3b4dd432 100644 --- a/doc/html/a00152.html +++ b/doc/html/a00152.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T >::rebind< U > Struct Template Reference +tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
+
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef tbb_allocator< U > other
 
+typedef memory_pool_allocator
+< U, P > 
other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00153.html b/doc/html/a00153.html index a58a8b72..eaab0d2b 100644 --- a/doc/html/a00153.html +++ b/doc/html/a00153.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< void >::rebind< U > Struct Template Reference +tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference @@ -33,31 +33,32 @@
-
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
+
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef tbb_allocator< U > other
 
+typedef memory_pool_allocator
+< U, P > 
other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00154.html b/doc/html/a00154.html index 23d2e7eb..fe5dd602 100644 --- a/doc/html/a00154.html +++ b/doc/html/a00154.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference +tbb::scalable_allocator< void >::rebind< U > Struct Template Reference @@ -33,32 +33,31 @@
-
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
+
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 
+typedef scalable_allocator< U > other
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00155.html b/doc/html/a00155.html index 7620e524..3b8be5cc 100644 --- a/doc/html/a00155.html +++ b/doc/html/a00155.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::receiver< T > Class Template Reference +tbb::tbb_allocator< T >::rebind< U > Struct Template Reference @@ -33,149 +33,31 @@
-
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
+
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
- -

Pure virtual template class that defines a receiver of messages of type T. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::receiver< T >:
-
-
- - -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::write_once_node< T > -tbb::flow::interface8::sequencer_node< T, A > - -
- - - - - - - - - - -

Public Types

-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual built_predecessors_typebuilt_predecessors ()=0
 
-virtual void internal_add_built_predecessor (predecessor_type &)=0
 
-virtual void internal_delete_built_predecessor (predecessor_type &)=0
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
-virtual size_t predecessor_count ()=0
 
- - - - - - - -

-Protected Member Functions

-virtual task * try_put_task (const T &t)=0
 
-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - - - - + +

-Friends

-template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 put receiver back in initial state
 
-template<typename TT , typename M >
class internal::successor_cache
 
-template<typename , typename >
class proxy_dependency_receiver
 
+typedef tbb_allocator< U > other
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::receiver< T >

- -

Pure virtual template class that defines a receiver of messages of type T.

-

The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00155.png b/doc/html/a00155.png deleted file mode 100644 index f765e3ebb5ebb0e3f2ed23359f95a6fea80c51f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4584 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}Gu-wzdF{Fa=?cKL!i@Zcw zF63^U_Wu8g@}xyfNyk)}lJiveCjWTh#((^gzKF;fS-y5>S-$qeRtpv^Snz=HEPsUW zX>L|l*8Z%z16fgV8X6iEA)lGUE`M@zbUe6tmi&fU)5N*Bxa6+>X}G#&Pe4GxhZX71 zkI(;VH*L9KKhyaxY7Hp-%pbZ z^S_+C&U@jQv51I>&8w3?3oT^+>HK_t{`RTm(@($q?z8ug@vd)~*IyoZdj9vk@1=Iz zj_Y5psN4Ny?`6I8_^_iDCi509Sn%Nfhc|yLSf4&goij;(V=d>6*B^h*d~SPr=H@MX zQ~u4pJndPnjh+~n!7Wbzixq86O-=4=1AxT2JlS&)gYHOu{4;U$;x%*KzxnR*d;GIu=F#c5 zRrc5J{3p5mN6DwChj+j(J8o+`kH3DJ4eQ;fsY1KnOIq+=37j|2$ImjizpOw0m}Bkp zA3ufr!j5LFkzN2Xm{6=dV_&oEX)DOnruGS@y857iUiFi4b!H_fU%Nsv)x*TJ4_x@!uGwgm~qNZ+{jvBCx&+c9umyU27{EGqMclQwU3#?nMr zU4xv3Q`>a6T-wkYCKYyNs7hAs^x{8kuxHX^1D?a&nM>OfCAM7viR3JtD%X~Hqe;q`T#k z=cd*$E6;5gD*PsiZk;+gg?nwuq@0CQ{U+&}%$uCzn)_7crW4#K`_AWwGi&~s->aYT zcE-7#Ki?Z^d*;cyxxZWY`{u>-YPxd2i;r%fukv%F`qoeXw$@pH%J7w2_o_H+Pf*62 z;Ljg3H=kA6nf}%7pQ!CzmHvt~A6{RtX|1Tc{o_~q?=NjJe0jp>&!6cnjjr4sWnZy$ zedyQ8?-M80oDKW9C%68;#=QA|7;65`^P9w8Yd&v&)Mxo4pKmKaI{*In@%?sse*S%z z&z-hkTwZgl)T-d;=Y7v>=k~w-czR8(zH#39eQ~9GivN7s;}bt?(i5wH8!PT@y!JeM zpY;0ApI806{Be)}S^F@F>wj0O`cIl)b$8ypx6)_#zq8%D`sAxUm?YUzuP2xxbq7?fF`J0{*E~UYYEayg%yvd5N{3 zn^(n|xyPSY`PrC${Ii~^{rV68p6-uL+wb;I*0%O}&&e;dzkXl+)BkbhFU#ZcyPmep zk&mde(OYBu*Xewk@BNcCOEd4=l$*HpW?RL^*%qDIeqt+jh~c7?dDo* zKhAmm+w@<0)X&{p_q{y)+RA>-tJJmiuN-%jpXEPUW3&FrdCnKp-@mkfws()j`N{w8 zEPf_^9t$qHnCVIj9(9)9T zd6Q+UkA9vEbJ(1Mf2_8(ea}zc`&^oL{r>uA_Px(PCqK)pT>f;Y?t8_PXNvSe%#mDYbtiEn(pvVU3+iw+2Ru=KGScmpIGneAMaJt zcjfk)xQP1wv;M2ho4jPw6JdY;UX{w+Y!x@{xhm3`pltQOzvAELj_Ti@lh*!y6!tGI z^!hH||LqrUY@GOi`^P=$XaCE8oTFm>vwmyQq&G`J`3aoYjulT@vtsQWXx0ShwU2XD zw6nBfSreSsY}8M7-8u!!nxJeeb>4H+qHRUctck;@hyFJFhYhY6@Eq21TWiB}IN-1W z&*}`Ma)ObI>v3UAQ&ao`TV7WEb!&N8_q$e0amC&Kcq6W@>Hb1A(fNLP`pyT}Uzpd{ zBz`@tt?B+Ekb?ESFl{l>l3aD&-%LdI?AT@`@<;4#rbb0!ZmPx)-CLIfK0La0D&Rx( zmgNf{9Nju~;e+iN{>}%xv$dTM=3hiL5aABEfo_j0Y~)^7*vN&mv$6)~@@w?C?Pl6` z!OQtz(>8Vyx5crH(HTn@COF<^=30DlU4!nHO92}eyk%^?m=S(JEGknY;=;FvLm6AN z6S&u!i0EWgJ0zOi5(O3hTw+^n7Z^yryeo^Fdjf)Wo%@?_Jo;z=QsE@s%MpA-X2Zdw3RnPLJ;EUjQkor<>=c5{v$ zuU|a>aN@S)nw*FGPp?tgS-PV*W!v{(d6S+T7rXxJbJ)GQXS*joiJq2jr#Y{DpRMO7 z*8Xe1SDOE~)?+uMa+*_xJ4IC7bii_E+Dv zzTZ~*xN`sP$tvZx5$~%_y(g{Dwt0U|Qv2BF%VG5|E9$Bp{{F1p&wai9>dT#_w<>?8 zhpfN6?sDVl`QL5dzplyYk5?=IS+nr+RQL3K|Lbi2x_^K6S9f0c%r)kf`{J(I?!Pl{ zQ^n);(a(?S&#&C|AoG9C&d|q|{kJz)?Ug>iqwoFJ<9u@sZ|$oKPyhb=6Ys9rSI1)~ ztHgi5^zqL;i^sv-IwMZM$dtFV(PR$B*T| ztbP5t!tT6H>4hiG_i7HEd~$L6v0TE)e76rYyw>^|=|)9&%)nB#}q_f^V! z&;MkWx1gb=aEkcW0@dy#BZUapmuGJ32q@-+JWi+kbJ_YxcYUd;jszH{*Sr z?{7bkF24IK$fke)-pM;=tSR63E#3TI$*DK*>I~-{pI=aP^r`IsFq`_%-_}ID-wg@# z{2P+nKmM6MZO6{L_y0|++wA^N{Nta0)$bK+)JxWL*XhnXetp*Qqi1i=p1-(SIl=dl-eSdrLGwc7mb8YPZe_Ipxz7^y)(|Oxp_k7OUzPd*2yyv>d)v=%df;?YbWwQ0`QIBTFPFAtMRN*&C|Ho_HUABq8cmKM)`ro4pze)8T;4Cc$ zHnrzi_VMCLd%7Uml3Ka@YK2@|;)+Cxw$Lq?4jb@9H;9`-iv8COO-HVNuP}`F4u)!Vy4Nzz8zywIC>I~|lg5qu#*ef=xKF(2DoeA>g!NoX)_eq^^zx?Az z{+|B^w+-hOf4-j@HtCMl9otDN_S<*-n%}+eugcCo`F*_*17CT5{Il(&!z6GIHvH`K z-Tkd9k3XJtR`>k33LL2Yzmja^`SKgTK0mLyQ}5!}ZNF`U_5b&5dbj0u$%9YNYtR3- zlE3|UdZx{JzaJ;gyuS0~{ z?pfvel4ri}o=teYW1Z>jEg$60Ev!5F{io1k_X9u9s4O&3=G)s9#pM-!E9u;S{PW8_k&n(j{+YZspB<(?$Y%e4yAT~% zEAr9%k9(%<@J_U?_ER}|7@VR$tayLqv-`O|r98Qtmn-&mJ_na5AHQ7WT3%rn|L@(M z^N%V`DrfDQfAsV9!#g3t_q)huf9hk+6?*!UeQM5c$b8o~>0?UKsm$sv)qjfSS=bi! zzIdHExjSCpp!fMpq33H=t{ZYcX+7aL={PtaJP3^MeXerzw*Mz1&wsBf#WNsrUsq}) zf3JSh6YY5t|9c_b`}LsmA{-I|U%NieQPE!naY2@i`pGP)`#}x5Wq5_9AUU+u!SUdk adh5x~EN7KcRxvOzFnGH9xvX -tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Reference +tbb::tbb_allocator< void >::rebind< U > Struct Template Reference @@ -33,82 +33,31 @@
-
tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Referenceabstract
+
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
-
-Inheritance diagram for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >:
-
-
- - -tbb::flow::interface8::proxy_dependency_receiver< T, Factory > - -
- - - - - -

Public Types

-typedef sender< dependency_msg
-< T, Factory > > 
dependency_predecessor_type
 The predecessor type for this node.
 
-typedef
-proxy_dependency_receiver< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - -

-Public Member Functions

-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual task * try_put_task (const dependency_msg< T, Factory > &)=0
 Put an item to the receiver.
 
-virtual bool register_predecessor (dependency_predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (dependency_predecessor_type &)
 Remove a predecessor from the node.
 
-ordinary_receiver & ordinary_receiver ()
 
- - - - - - + +

-Protected Member Functions

-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
-virtual bool is_continue_receiver ()
 
+typedef tbb_allocator< U > other
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00157.html b/doc/html/a00157.html index 2947993a..e8a69421 100644 --- a/doc/html/a00157.html +++ b/doc/html/a00157.html @@ -4,7 +4,7 @@ -tbb::recursive_mutex Class Reference +tbb::flow::interface8::receiver< T > Class Template Reference @@ -33,127 +33,149 @@
-
tbb::recursive_mutex Class Reference
+
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
-

#include <recursive_mutex.h>

+

Pure virtual template class that defines a receiver of messages of type T. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::recursive_mutex:
+Inheritance diagram for tbb::flow::interface8::receiver< T >:
- - + + +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::write_once_node< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - + + + + + + + + + +

Public Types

-typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
-typedef pthread_mutex_t * native_handle_type
 
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

recursive_mutex ()
 Construct unacquired recursive_mutex.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-native_handle_type native_handle ()
 
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual built_predecessors_typebuilt_predecessors ()=0
 
+virtual void internal_add_built_predecessor (predecessor_type &)=0
 
+virtual void internal_delete_built_predecessor (predecessor_type &)=0
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
+virtual size_t predecessor_count ()=0
 
- - - - - - - + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = true
 
-static const bool is_fair_mutex = false
 

+Protected Member Functions

+virtual task * try_put_task (const T &t)=0
 
+virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 
+virtual bool is_continue_receiver ()
 
- - + + + + + + + + + + + + + + + + + + + +

Friends

-class scoped_lock
 
+template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+template<typename U >
class limiter_node
 put receiver back in initial state
 
+template<typename TT , typename M >
class internal::successor_cache
 
+template<typename , typename >
class proxy_dependency_receiver
 

Detailed Description

-

Mutex that allows recursive mutex acquisition.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::recursive_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

+

template<typename T>
+class tbb::flow::interface8::receiver< T >

-

References tbb::aligned_space< T, N >::begin().

- -

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • +

    Pure virtual template class that defines a receiver of messages of type T.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00157.png b/doc/html/a00157.png index 3157a913de76891db2928ba797af89eeb5eb82f1..f765e3ebb5ebb0e3f2ed23359f95a6fea80c51f1 100644 GIT binary patch literal 4584 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}Gu-wzdF{Fa=?cKL!i@Zcw zF63^U_Wu8g@}xyfNyk)}lJiveCjWTh#((^gzKF;fS-y5>S-$qeRtpv^Snz=HEPsUW zX>L|l*8Z%z16fgV8X6iEA)lGUE`M@zbUe6tmi&fU)5N*Bxa6+>X}G#&Pe4GxhZX71 zkI(;VH*L9KKhyaxY7Hp-%pbZ z^S_+C&U@jQv51I>&8w3?3oT^+>HK_t{`RTm(@($q?z8ug@vd)~*IyoZdj9vk@1=Iz zj_Y5psN4Ny?`6I8_^_iDCi509Sn%Nfhc|yLSf4&goij;(V=d>6*B^h*d~SPr=H@MX zQ~u4pJndPnjh+~n!7Wbzixq86O-=4=1AxT2JlS&)gYHOu{4;U$;x%*KzxnR*d;GIu=F#c5 zRrc5J{3p5mN6DwChj+j(J8o+`kH3DJ4eQ;fsY1KnOIq+=37j|2$ImjizpOw0m}Bkp zA3ufr!j5LFkzN2Xm{6=dV_&oEX)DOnruGS@y857iUiFi4b!H_fU%Nsv)x*TJ4_x@!uGwgm~qNZ+{jvBCx&+c9umyU27{EGqMclQwU3#?nMr zU4xv3Q`>a6T-wkYCKYyNs7hAs^x{8kuxHX^1D?a&nM>OfCAM7viR3JtD%X~Hqe;q`T#k z=cd*$E6;5gD*PsiZk;+gg?nwuq@0CQ{U+&}%$uCzn)_7crW4#K`_AWwGi&~s->aYT zcE-7#Ki?Z^d*;cyxxZWY`{u>-YPxd2i;r%fukv%F`qoeXw$@pH%J7w2_o_H+Pf*62 z;Ljg3H=kA6nf}%7pQ!CzmHvt~A6{RtX|1Tc{o_~q?=NjJe0jp>&!6cnjjr4sWnZy$ zedyQ8?-M80oDKW9C%68;#=QA|7;65`^P9w8Yd&v&)Mxo4pKmKaI{*In@%?sse*S%z z&z-hkTwZgl)T-d;=Y7v>=k~w-czR8(zH#39eQ~9GivN7s;}bt?(i5wH8!PT@y!JeM zpY;0ApI806{Be)}S^F@F>wj0O`cIl)b$8ypx6)_#zq8%D`sAxUm?YUzuP2xxbq7?fF`J0{*E~UYYEayg%yvd5N{3 zn^(n|xyPSY`PrC${Ii~^{rV68p6-uL+wb;I*0%O}&&e;dzkXl+)BkbhFU#ZcyPmep zk&mde(OYBu*Xewk@BNcCOEd4=l$*HpW?RL^*%qDIeqt+jh~c7?dDo* zKhAmm+w@<0)X&{p_q{y)+RA>-tJJmiuN-%jpXEPUW3&FrdCnKp-@mkfws()j`N{w8 zEPf_^9t$qHnCVIj9(9)9T zd6Q+UkA9vEbJ(1Mf2_8(ea}zc`&^oL{r>uA_Px(PCqK)pT>f;Y?t8_PXNvSe%#mDYbtiEn(pvVU3+iw+2Ru=KGScmpIGneAMaJt zcjfk)xQP1wv;M2ho4jPw6JdY;UX{w+Y!x@{xhm3`pltQOzvAELj_Ti@lh*!y6!tGI z^!hH||LqrUY@GOi`^P=$XaCE8oTFm>vwmyQq&G`J`3aoYjulT@vtsQWXx0ShwU2XD zw6nBfSreSsY}8M7-8u!!nxJeeb>4H+qHRUctck;@hyFJFhYhY6@Eq21TWiB}IN-1W z&*}`Ma)ObI>v3UAQ&ao`TV7WEb!&N8_q$e0amC&Kcq6W@>Hb1A(fNLP`pyT}Uzpd{ zBz`@tt?B+Ekb?ESFl{l>l3aD&-%LdI?AT@`@<;4#rbb0!ZmPx)-CLIfK0La0D&Rx( zmgNf{9Nju~;e+iN{>}%xv$dTM=3hiL5aABEfo_j0Y~)^7*vN&mv$6)~@@w?C?Pl6` z!OQtz(>8Vyx5crH(HTn@COF<^=30DlU4!nHO92}eyk%^?m=S(JEGknY;=;FvLm6AN z6S&u!i0EWgJ0zOi5(O3hTw+^n7Z^yryeo^Fdjf)Wo%@?_Jo;z=QsE@s%MpA-X2Zdw3RnPLJ;EUjQkor<>=c5{v$ zuU|a>aN@S)nw*FGPp?tgS-PV*W!v{(d6S+T7rXxJbJ)GQXS*joiJq2jr#Y{DpRMO7 z*8Xe1SDOE~)?+uMa+*_xJ4IC7bii_E+Dv zzTZ~*xN`sP$tvZx5$~%_y(g{Dwt0U|Qv2BF%VG5|E9$Bp{{F1p&wai9>dT#_w<>?8 zhpfN6?sDVl`QL5dzplyYk5?=IS+nr+RQL3K|Lbi2x_^K6S9f0c%r)kf`{J(I?!Pl{ zQ^n);(a(?S&#&C|AoG9C&d|q|{kJz)?Ug>iqwoFJ<9u@sZ|$oKPyhb=6Ys9rSI1)~ ztHgi5^zqL;i^sv-IwMZM$dtFV(PR$B*T| ztbP5t!tT6H>4hiG_i7HEd~$L6v0TE)e76rYyw>^|=|)9&%)nB#}q_f^V! z&;MkWx1gb=aEkcW0@dy#BZUapmuGJ32q@-+JWi+kbJ_YxcYUd;jszH{*Sr z?{7bkF24IK$fke)-pM;=tSR63E#3TI$*DK*>I~-{pI=aP^r`IsFq`_%-_}ID-wg@# z{2P+nKmM6MZO6{L_y0|++wA^N{Nta0)$bK+)JxWL*XhnXetp*Qqi1i=p1-(SIl=dl-eSdrLGwc7mb8YPZe_Ipxz7^y)(|Oxp_k7OUzPd*2yyv>d)v=%df;?YbWwQ0`QIBTFPFAtMRN*&C|Ho_HUABq8cmKM)`ro4pze)8T;4Cc$ zHnrzi_VMCLd%7Uml3Ka@YK2@|;)+Cxw$Lq?4jb@9H;9`-iv8COO-HVNuP}`F4u)!Vy4Nzz8zywIC>I~|lg5qu#*ef=xKF(2DoeA>g!NoX)_eq^^zx?Az z{+|B^w+-hOf4-j@HtCMl9otDN_S<*-n%}+eugcCo`F*_*17CT5{Il(&!z6GIHvH`K z-Tkd9k3XJtR`>k33LL2Yzmja^`SKgTK0mLyQ}5!}ZNF`U_5b&5dbj0u$%9YNYtR3- zlE3|UdZx{JzaJ;gyuS0~{ z?pfvel4ri}o=teYW1Z>jEg$60Ev!5F{io1k_X9u9s4O&3=G)s9#pM-!E9u;S{PW8_k&n(j{+YZspB<(?$Y%e4yAT~% zEAr9%k9(%<@J_U?_ER}|7@VR$tayLqv-`O|r98Qtmn-&mJ_na5AHQ7WT3%rn|L@(M z^N%V`DrfDQfAsV9!#g3t_q)huf9hk+6?*!UeQM5c$b8o~>0?UKsm$sv)qjfSS=bi! zzIdHExjSCpp!fMpq33H=t{ZYcX+7aL={PtaJP3^MeXerzw*Mz1&wsBf#WNsrUsq}) zf3JSh6YY5t|9c_b`}LsmA{-I|U%NieQPE!naY2@i`pGP)`#}x5Wq5_9AUU+u!SUdk adh5x~EN7KcRxvOzFnGH9xvXX~{yT^vIy z7~jr)J!y>sPmBGkZL9A8@4YVV#2_1Mo1Uf=z3rTn(B%@L|3Xe2{tS+j{wx-rs^b5` zMfIexS!dki`a`#8y|WCPw)EqtdgDjo!c$Y$IlDO9ERsCjo?hW&{@Qx&(c>B0ccrL( z_R8CIca!Oo%=Zlo7C&Kn$`k4}a%wYA(Q%7{B_P+`LyX@+b zcd4&+Z)+tj%a|NzwPlsnswubA6*VJn6htR(vb$5+s=8meaQcfMMcsQ zUR|tTdnf+ui(~h`%Jmw*JaR=hDm(erv~!n}@7_N!N5hq< z6mY6wVEAWU$1ty9xxn9_l^mCs3&>X3HNQ;mV6tI}^{;2}f6>KM;S?@%KzP?8hIto6 zSwFO_(`ZmHab>hwsLl0&Gd2)S$po#VUEf-&GdG}~uj90tK!f(FM9^b3k?e=@qqGGO(g7wDn z#cM4bPpqrapLeh1>F#gh2jmOfUtT+@ma=qi^7ZYm`tyVi%>VGdqp#j~QT9tc{dk@7 z4m~z`uPbMSR;PX1P-opW>lcGXcXjoa*j*==oT=NpRn%8j_H)g31FhwG>(* z%Y57Fxw~$9bf?_6EoI!tD(_q}%VPR5-UDX4G(djtWU6oidFAnRyB2{zkHwu@o2T6H Tv_Hkbz`)??>gTe~DWM4f54KM9 diff --git a/doc/html/a00158.html b/doc/html/a00158.html index a8d0a75b..b2618560 100644 --- a/doc/html/a00158.html +++ b/doc/html/a00158.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference +tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Reference @@ -33,21 +33,82 @@
+
-
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
+
tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Referenceabstract
+
+Inheritance diagram for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >:
+
+
+ + +tbb::flow::interface8::proxy_dependency_receiver< T, Factory > + +
+ + + + + + + +

+Public Types

+typedef sender< dependency_msg
+< T, Factory > > 
predecessor_type
 The predecessor type for this node.
 
+typedef
+proxy_dependency_receiver< T,
+Factory > 
proxy
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual task * try_put_task (const dependency_msg< T, Factory > &)=0
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+ordinary_receiver & ordinary_receiver ()
 
+ + + + + + +

+Protected Member Functions

+virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
+virtual bool is_continue_receiver ()
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00156.png b/doc/html/a00158.png similarity index 100% rename from doc/html/a00156.png rename to doc/html/a00158.png diff --git a/doc/html/a00159.html b/doc/html/a00159.html index 967213b8..b61656e2 100644 --- a/doc/html/a00159.html +++ b/doc/html/a00159.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference +tbb::recursive_mutex Class Reference @@ -33,21 +33,127 @@
+
-
tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference
+
tbb::recursive_mutex Class Reference
+ +

#include <recursive_mutex.h>

+
+Inheritance diagram for tbb::recursive_mutex:
+
+
+ + + +
+ + + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
+ + + + + + +

+Public Types

+typedef LPCRITICAL_SECTION native_handle_type
 Return native_handle.
 
+typedef pthread_mutex_t * native_handle_type
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

recursive_mutex ()
 Construct unacquired recursive_mutex.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+native_handle_type native_handle ()
 
+ + + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = true
 
+static const bool is_fair_mutex = false
 
+ + + +

+Friends

+class scoped_lock
 
+

Detailed Description

+

Mutex that allows recursive mutex acquisition.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::recursive_mutex::try_lock ()
+
+inline
+
+ +

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.

+ +

References tbb::aligned_space< T, N >::begin().

+ +

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().

+ +
+

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00159.png b/doc/html/a00159.png new file mode 100644 index 0000000000000000000000000000000000000000..3157a913de76891db2928ba797af89eeb5eb82f1 GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0y~yV0gj6z!1Q}%)r2)^6n%^Kq9~=#P$FG{~)yf`&HXk z-T&WvUD}C3Hr6&hO(}ZYIVYjZB|`s&oH+a$94Gx*EId`k|AmX{Nnx|jxX1N}ZqIsW z88&U{$4~XfkHUqgrmS;zakg0`dAL2j!pHoz_1dGyGq&$aQTyzbx9Q0Fxu46Auu32M zAzq!mOZw%MxXu?TQ%{8Lzw|RD`k2A$m8XvAOznRY{&(5cBkxjQ>)zH%T9z?6&T7jl zt5s8Orz>hk+$e}n++=sBvQ>4zaN+b9KguU$Bu?7HdveQ`E3+#DuQHa3nw&G5mZ$x7 zv5WNMwVow;2i(LaIW>m$9QqP+F~{8b<0Y}c%T;9(rqx@NZoRs=_D=lQ7su{>mFqQr zdE|<2RCe;KY3D8{-@7+wm-iCqU~{%=!&23kCOsD>g*?9XJz~tdsSb*S4Ow4(fKjYyDy7s`_&E#ZIqD>LrUNJ>g`&DBx7V!0^wyj$vNIa)G}; zD>*JN7m%&6YkryB!DPb{>(Ai-qKm1*DO}`$@UBG+^Dc<8erQ>z(V$-9%4oAto9h8* zY#^GF4`Qy)91l4a7=E~`b3NdktI?nyqhz&1@80ufnXfy%+qVm{S~U49Sk=#IyDg&D zZOkfLF230E?$Nv$uXdA#-+Z4vzE`u`?f0fd#atf+jpK{gS~#9qSEE1gUdhwl-^35d z7r4K?c2X^6>D=V&+gMgOmPA)l9w|A?kudM9nn(GEy%k$Q)ow@6DgQl1Hw$*cY-Sp^Axo=y_xQ|ud zxn!2b^kcjS%)mbGWU6oidF1hQyB2{zkHwu@o2T6Hv_Hkbz`)??>gTe~DWM4f6Rctt literal 0 HcmV?d00001 diff --git a/doc/html/a00160.html b/doc/html/a00160.html index e99a28a9..4273db8c 100644 --- a/doc/html/a00160.html +++ b/doc/html/a00160.html @@ -4,7 +4,7 @@ -tbb::interface6::runtime_loader Class Reference +tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference @@ -33,286 +33,21 @@
-
-
tbb::interface6::runtime_loader Class Reference
+
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
- -

Load TBB at runtime. - More...

- -

#include <runtime_loader.h>

-
-Inheritance diagram for tbb::interface6::runtime_loader:
-
-
- - - -
- - - - - - - - -

-Public Types

enum  error_mode { em_status, -em_throw, -em_abort - }
 Error mode constants. More...
 
enum  error_code {
-  ec_ok, -ec_bad_call, -ec_bad_arg, -ec_bad_lib, -
-  ec_bad_ver, -ec_no_lib -
- }
 Error codes. More...
 
- - - - - - - - - - - - - - - - -

-Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 
-

Detailed Description

-

Load TBB at runtime.

-

Usage:

-

In source code:

-
#include "tbb/runtime_loader.h"
-
-
char const * path[] = { "<install dir>/lib/ia32", NULL };
-
tbb::runtime_loader loader( path );
-
-
// Now use TBB.
-

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

-

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

-

Attention:

-

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

-
-   Only one TBB library can be loaded per module.
-
--   If one object has already loaded TBB library, another object will not load TBB.
-    If the loaded TBB library is suitable for the second object, both will use TBB
-    cooperatively, otherwise the second object will report an error.
-
--   \c runtime_loader objects will not work (correctly) in parallel due to absence of
-    synchronization.

Member Enumeration Documentation

- -
-
- -

Error codes.

- - - - - - - -
Enumerator
ec_ok  -

No errors.

-
ec_bad_call  -

Invalid function call (e. g. load() called when TBB is already loaded).

-
ec_bad_arg  -

Invalid argument passed.

-
ec_bad_lib  -

Invalid library found (e. g. TBB_runtime_version symbol not found).

-
ec_bad_ver  -

TBB found but version is not suitable.

-
ec_no_lib  -

No suitable TBB library found.

-
- -
-
- -
-
- -

Error mode constants.

- - - - -
Enumerator
em_status  -

Save status of operation and continue.

-
em_throw  -

Throw an exception of tbb::runtime_loader::error_code type.

-
em_abort  -

Print message to stderr and call abort().

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
-
- -

Initialize object and load TBB.

-

See load() for details.

-

If error mode is em_status, call status() to check whether TBB was loaded or not.

-
Parameters
- - - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
-
- -

Load TBB.

-

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

-

Note:

-

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

-

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

-

Neglecting these rules may cause your program to execute 3-rd party malicious code.

-

Errors:

-
    -
  • ec_bad_call - TBB already loaded by this object.
  • -
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • -
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • -
  • ec_no_lib - No suitable library found.
  • -
-
Parameters
- - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
-
-
- -
-
- -
-
- - - - - - - -
error_code tbb::interface6::runtime_loader::status ()
-
- -

Report status.

-

If error mode is em_status, the function returns status of the last operation.

- -
-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00161.html b/doc/html/a00161.html index f53776d4..99264afd 100644 --- a/doc/html/a00161.html +++ b/doc/html/a00161.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T > Class Template Reference +tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference @@ -33,110 +33,21 @@
-
-
tbb::scalable_allocator< T > Class Template Reference
+
tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <scalable_allocator.h>

- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - -

-Public Types

-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scalable_allocator (const scalable_allocator &) throw ()
 
-template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 
-

Detailed Description

-

template<typename T>
-class tbb::scalable_allocator< T >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00162.html b/doc/html/a00162.html index a2e5315f..0cf65489 100644 --- a/doc/html/a00162.html +++ b/doc/html/a00162.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void > Class Template Reference +tbb::interface6::runtime_loader Class Reference @@ -33,53 +33,286 @@
-
tbb::scalable_allocator< void > Class Template Reference
+
tbb::interface6::runtime_loader Class Reference
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. +

Load TBB at runtime. More...

-

#include <scalable_allocator.h>

+

#include <runtime_loader.h>

+
+Inheritance diagram for tbb::interface6::runtime_loader:
+
+
+ + + +
- - - -

-Classes

struct  rebind
 
- - - - - - + + + + + + +

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
enum  error_mode { em_status, +em_throw, +em_abort + }
 Error mode constants. More...
 
enum  error_code {
+  ec_ok, +ec_bad_call, +ec_bad_arg, +ec_bad_lib, +
+  ec_bad_ver, +ec_no_lib +
+ }
 Error codes. More...
 
+ + + + + + + + + + + + + + + +

+Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 

Detailed Description

-

template<>
-class tbb::scalable_allocator< void >

+

Load TBB at runtime.

+

Usage:

+

In source code:

+
#include "tbb/runtime_loader.h"
+
+
char const * path[] = { "<install dir>/lib/ia32", NULL };
+
tbb::runtime_loader loader( path );
+
+
// Now use TBB.
+

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

+

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

+

Attention:

+

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

+
-   Only one TBB library can be loaded per module.
+
+-   If one object has already loaded TBB library, another object will not load TBB.
+    If the loaded TBB library is suitable for the second object, both will use TBB
+    cooperatively, otherwise the second object will report an error.
+
+-   \c runtime_loader objects will not work (correctly) in parallel due to absence of
+    synchronization.

Member Enumeration Documentation

+ +
+
+ +

Error codes.

+ + + + + + + +
Enumerator
ec_ok  +

No errors.

+
ec_bad_call  +

Invalid function call (e. g. load() called when TBB is already loaded).

+
ec_bad_arg  +

Invalid argument passed.

+
ec_bad_lib  +

Invalid library found (e. g. TBB_runtime_version symbol not found).

+
ec_bad_ver  +

TBB found but version is not suitable.

+
ec_no_lib  +

No suitable TBB library found.

+
+ +
+
+ +
+
+ +

Error mode constants.

+ + + + +
Enumerator
em_status  +

Save status of operation and continue.

+
em_throw  +

Throw an exception of tbb::runtime_loader::error_code type.

+
em_abort  +

Print message to stderr and call abort().

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
+
+ +

Initialize object and load TBB.

+

See load() for details.

+

If error mode is em_status, call status() to check whether TBB was loaded or not.

+
Parameters
+ + + + + +
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
+
+ +

Load TBB.

+

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

+

Note:

+

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

+

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

+

Neglecting these rules may cause your program to execute 3-rd party malicious code.

+

Errors:

+
    +
  • ec_bad_call - TBB already loaded by this object.
  • +
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • +
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • +
  • ec_no_lib - No suitable library found.
  • +
+
Parameters
+ + + + +
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
+
+
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
+
+ +
+
+ + + + + + + +
error_code tbb::interface6::runtime_loader::status ()
+
+ +

Report status.

+

If error mode is em_status, the function returns status of the last operation.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • runtime_loader.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00160.png b/doc/html/a00162.png similarity index 100% rename from doc/html/a00160.png rename to doc/html/a00162.png diff --git a/doc/html/a00163.html b/doc/html/a00163.html index a85019c3..3fddc94d 100644 --- a/doc/html/a00163.html +++ b/doc/html/a00163.html @@ -4,7 +4,7 @@ -tbb::spin_mutex::scoped_lock Class Reference +tbb::scalable_allocator< T > Class Template Reference @@ -33,101 +33,110 @@
-
tbb::spin_mutex::scoped_lock Class Reference
+
tbb::scalable_allocator< T > Class Template Reference
-

Represents acquisition of a mutex. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

-

#include <spin_mutex.h>

-
-Inheritance diagram for tbb::spin_mutex::scoped_lock:
-
-
- - - -
+

#include <scalable_allocator.h>

+ + + +

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + +

+Public Types

+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef size_t size_type
 
+typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - - -

Public Member Functions

scoped_lock ()
 Construct without acquiring a mutex.
 
scoped_lock (spin_mutex &m)
 Construct and acquire lock on a mutex.
 
-void acquire (spin_mutex &m)
 Acquire lock.
 
bool try_acquire (spin_mutex &m)
 Try acquiring lock (non-blocking) More...
 
-void release ()
 Release lock.
 
~scoped_lock ()
 Destroy lock. If holding a lock, releases the lock first.
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class spin_mutex
 
scalable_allocator (const scalable_allocator &) throw ()
 
+template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 

Detailed Description

-

Represents acquisition of a mutex.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - -
bool tbb::spin_mutex::scoped_lock::try_acquire (spin_mutexm)
-
-inline
-
+

template<typename T>
+class tbb::scalable_allocator< T >

-

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

    +

    The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00163.png b/doc/html/a00163.png deleted file mode 100644 index 25da9c6ba09d573b82ff7e6295013c42ed53edd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmeAS@N?(olHy`uVBq!ia0y~yU|7e%z!1Q}%)r2~-D}@g1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=<3mpu$B+ufw{vgytu_!~ zUA@%f`TzeF5yu|rN(yC&+`p}?)$lQB&c?IaX=#reJTGaqtW&8J+%@Tm>kF?*;>$~Y zw|y~q+gX_z_ajo+h-yE@?pOS21 zjW;JUe0acUz?b~ePR{vf-%{(FeNU`s=p6`f*~Sp(vWs|Ju{1l)j8Ec#MvGp9_(JXn zN0(X8{ifZ(SHJJ(%<%iS&GtU&zjuMP;$-fw*VD}Y>bOQW@5!iK`Y5sLbV%mD*t)L3 zYig&POT7N(v`)^g`dpGOH-ca37Tdvz&_IbYbof$XZYrXlWoXX!Xz8aeyzx=n#p6M^el1s&kUVm=S zt2ZiHmY!~9e^ECrdE*tm8N1&GtuAj1*&Tf4)iTlWw>*{d&&%3!8D(y2umAt4_QvD% zU8lKDiVGiz{&Gw1#n<^h;t#YrVj1+E#1C{=?lv=)Zk69Hllfnt=RFSt0|SGntDnm{ Hr-UW|UEmb4 diff --git a/doc/html/a00164.html b/doc/html/a00164.html index 1959cbbb..4084b6d3 100644 --- a/doc/html/a00164.html +++ b/doc/html/a00164.html @@ -4,7 +4,7 @@ -tbb::queuing_mutex::scoped_lock Class Reference +tbb::scalable_allocator< void > Class Template Reference @@ -33,94 +33,53 @@
-
tbb::queuing_mutex::scoped_lock Class Reference
+
tbb::scalable_allocator< void > Class Template Reference
-

The scoped locking pattern. +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...

-

#include <queuing_mutex.h>

-
-Inheritance diagram for tbb::queuing_mutex::scoped_lock:
-
-
- - - -
+

#include <scalable_allocator.h>

- - - - - - - - - - - - - - - - - - - + + + +

-Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_mutex &m)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void __TBB_EXPORTED_METHOD acquire (queuing_mutex &m)
 Acquire lock on given mutex.
 
-bool __TBB_EXPORTED_METHOD try_acquire (queuing_mutex &m)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void __TBB_EXPORTED_METHOD release ()
 Release lock.
 

+Classes

struct  rebind
 
+ + + + + + +

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

+

template<>
+class tbb::scalable_allocator< void >

-
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_mutex.h
  • +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00164.png b/doc/html/a00164.png deleted file mode 100644 index 611457f0e8f9f148ec8a56d0ffee01acb4892bd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmeAS@N?(olHy`uVBq!ia0y~yU^vXcz!1Q}%)r1fIoPn2fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}_}A0LF{Fa=?cCSrUMujh z91mJr``_FyGjGO(Rpx$w0(T}cs~$5joUwn#OkO>oNo`?99zlC1IZk>sm1mO3`guHR zv*-Fs-v0jU+|`uHDz)p^@l0O5bO-CY|Jz=jahbF)@V@6|t^M~h>aVNZEw_m#Y{jl9l0iMg{`~R!_-1PUoRi=;3uXB}#%_^ngFq=#bXUy!? zZTP=h`oM!W-`)8@(*PnX{CWqtCy zus9WO)m^)d*Y_6we4)qp`Vh~mO~xiujY~J5^8qBuZA?S<)}D zDznO1CcQ?TZ)*2slS_J^I1m4fTV=NMec9gQ%^xzJ&$|(tzUy#h#`!OX`nlJn9j8j% zs;xWp;AL!_mj3>;-oF=C&D$66^}#l8Dt~QB;tl<#uP>Nt7H!_BU-4GB{r$8$R~d$X kn_xb+Rh>1ncUAq7nsVbQ6Ih=!FfcH9y85}Sb4q9e0M@V^!2kdN diff --git a/doc/html/a00165.html b/doc/html/a00165.html index c4361b96..a76740e0 100644 --- a/doc/html/a00165.html +++ b/doc/html/a00165.html @@ -4,7 +4,7 @@ -tbb::spin_rw_mutex_v3::scoped_lock Class Reference +tbb::queuing_mutex::scoped_lock Class Reference @@ -33,87 +33,62 @@
-
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
+
tbb::queuing_mutex::scoped_lock Class Reference

The scoped locking pattern. More...

-

#include <spin_rw_mutex.h>

+

#include <queuing_mutex.h>

-Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
+Inheritance diagram for tbb::queuing_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-void release ()
 Release lock.
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
-bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
- - - - - - - -

-Protected Attributes

-spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
- - - + + + + + + + + + + + + + + + + + +

-Friends

-class tbb::interface8::internal::x86_rtm_rw_mutex
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_mutex &m)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void __TBB_EXPORTED_METHOD acquire (queuing_mutex &m)
 Acquire lock on given mutex.
 
+bool __TBB_EXPORTED_METHOD try_acquire (queuing_mutex &m)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
+void __TBB_EXPORTED_METHOD release ()
 Release lock.
 

Detailed Description

The scoped locking pattern.

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

Constructor & Destructor Documentation

- +
@@ -121,7 +96,7 @@ class 

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/files.html b/doc/html/files.html index f8203a0b..cf240e16 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -38,15 +38,15 @@
Here is a list of all documented files with brief descriptions:
tbb::interface8::int - + @@ -137,70 +112,15 @@ class  - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -185,19 +185,19 @@ Classes - +
tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock tbb::queuing_mutex::scoped_lock::scoped_lock ( ) tbb::interface8::int

Construct lock that has not acquired a mutex.

Equivalent to zero-initialization of *this.

- - -

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
-
-inline
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -

References is_writer.

- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
-
-protected
-
- -

If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock.

-

Not defined if not holding a lock.

- -

Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

-

The documentation for this class was generated from the following file:
    -
  • spin_rw_mutex.h
  • +
  • queuing_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00165.png b/doc/html/a00165.png index 13249c6a5c9189fb4202efb8b5609124c7dc489e..611457f0e8f9f148ec8a56d0ffee01acb4892bd2 100644 GIT binary patch delta 577 zcmeBYeaE8M8Q|y6%O%Cdz`(%k>ERN@z`$^rfq@}_gPDPWVREox=|n}Vdd9z=E{-7; zjBn?@KKELIhvj(C(%S##cA0rICaf~|`xCe`iCOiSf#Hn(GiLJY`AljHGx7-9Gs$t% zqp3WTMApyaQJX#2SMv7vU+1o-OjfB~zm8|}>ZLna*Ztr2>Ws^zeS!BaY!Wg8>zWrn zHtb2)nadnS)V^VmyA2%9lQNf{nhV>?QRP2TrS`LU*+efzwfOwePn)}t2As@ zDGi5NWokHMX0L9;|JBk59{gf#yPaFpA)hcqpsoD}D_g_Iseud~;l~&i;w0G{DpF+_ z9!)JIBv9%obLI@2IGe$i`bmrmaVHrB*3V5`<;DGAWz}s)nb2cqaer3#OESb=Oy%*O zHdn5Ay7Y!G>yzJwWoPSlXHH%8ylms_<2wCWuX2~H?%HjERN@z`$^Wfq@}_gPDPW!AI6RYoel6J(HZLi(^Oy zyNSb6#D?9kf(TVtyfCzVWESM-K4;OYwCuy-k&Vi8?@u_vOVwwVe1NW5yFaEM+#Uao(bt!|#_+&P$5+KKjkfCbt@+<|<)(F{WwuYt9IokCpN% zudS}Nl*^SbPfC|8ofgY`E%UX`Io->br~5}FzkL??zAL(9`AdZx+uFaBAFXvYz4#rW?;hSLlT3=E#GelF{r5}E*~uoF7~ diff --git a/doc/html/a00166.html b/doc/html/a00166.html index 2734d886..c52f7da4 100644 --- a/doc/html/a00166.html +++ b/doc/html/a00166.html @@ -4,7 +4,7 @@ -tbb::recursive_mutex::scoped_lock Class Reference +tbb::spin_rw_mutex_v3::scoped_lock Class Reference @@ -33,75 +33,174 @@
-
tbb::recursive_mutex::scoped_lock Class Reference
+
tbb::spin_rw_mutex_v3::scoped_lock Class Reference

The scoped locking pattern. More...

-

#include <recursive_mutex.h>

+

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::recursive_mutex::scoped_lock:
+Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
-void release ()
 Release lock.
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+void release ()
 Release lock.
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
+bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
+ + + + + + +

+Protected Attributes

+spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
- - + +

Friends

-class recursive_mutex
 
+class tbb::interface8::internal::x86_rtm_rw_mutex
 

Detailed Description

The scoped locking pattern.

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • recursive_mutex.h
  • +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock ()
    +
    +inline
    +
    + +

    Construct lock that has not acquired a mutex.

    +

    Equivalent to zero-initialization of *this.

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
    +
    +inline
    +
    + +

    Upgrade reader to become a writer.

    +

    Returns whether the upgrade happened without releasing and re-acquiring the lock

    + +

    References is_writer.

    + +
    +
    +

    Member Data Documentation

    + +
    +
    + + + + + +
    + + + + +
    bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
    +
    +protected
    +
    + +

    If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock.

    +

    Not defined if not holding a lock.

    + +

    Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • spin_rw_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00166.png b/doc/html/a00166.png index 9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596..13249c6a5c9189fb4202efb8b5609124c7dc489e 100644 GIT binary patch delta 609 zcmZo=?Ppc&4DfU3<&xrJU|`_&^l%AcU|_hxz`zi|!OXzG;3MmuHBr&JUe43SF{Fa= z?cAG_UK#MX^sid+>i_@8C!HRNa@=9@+L!dgvp~fA_}izV#+wCOJug*o8F+qL!Z2CI zAI!);;Ipm7T2{R>`(6eAO%>1Ouaq{dy!>@`Xzl;4u~mwbN+zuirqn9(aPV^^FqGat7I2GdBHuv&;<|9(#Q}JNxHi^8*a`u7Cdb zY&snZc;KbutKyeNTlMl^J+o$fP(Ys#J2+=ve z&d5a1-tPTx?fXqmQ5%*{VYz-MG$GQpv}C5Ww&K@7*7uyRR?grpt2dkB+ZkF~denAK zY02*54U^Zt_#IdnT0QZBXoTTaJNDW3q7jC>e7A|^ynSS|fjv3CVQsy>j5e3YO8J!6 zR@Yj}<;s^QrAwAhi{-tR`C8|k?&ZtV{Ueg!J_~%`60j#g`Cop`LWcr{?Wfon^U92wy-WwBD;RhV2V}|hPkh3&G)>5O!kmp)7ANxEUi5_1Ma&wPfYN%t6zsO)9z@T@{pu;;Y2@#e$>3~cp^R~e3|TxB@2WW~(9 z-}(*t1*OOG7MUoS}gWR;h9YyOeRpYPQE zxU;<`)bYpB({k;{nr9_D9OZa^_R^la+bUHT1V2c4_o-I(jB4NB?Y~kV=+|5KuDc?` ze9NkTW?5gx@zh1npWbO}`=n97%4MZ^zWx5NC0C=aUpX^>*{n&Kubp0>5YM{C80xf3 zwqI;&ul1^xe$j7F+by2={m^W!DQ=ur?Y~=Rl`RW>zHDx$UN^tuwDsG}uX?Un<zopr0E8_d#sB~S diff --git a/doc/html/a00167.html b/doc/html/a00167.html index a3e9ae23..8704f461 100644 --- a/doc/html/a00167.html +++ b/doc/html/a00167.html @@ -4,7 +4,7 @@ -tbb::queuing_rw_mutex::scoped_lock Class Reference +tbb::interface5::reader_writer_lock::scoped_lock Class Reference @@ -33,120 +33,65 @@
-
tbb::queuing_rw_mutex::scoped_lock Class Reference
+
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
-

The scoped locking pattern. +

The scoped lock pattern for write locks. More...

-

#include <queuing_rw_mutex.h>

+

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + +

Public Member Functions

 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
-bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
-void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
-bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
+void * operator new (size_t s)
 
+void operator delete (void *p)
 
+ + +

+Friends

+class reader_writer_lock
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_rw_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-

Member Function Documentation

- -
-
- - - - - - - -
bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ()
-
- -

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

- -
-
-
The documentation for this class was generated from the following file:
    -
  • queuing_rw_mutex.h
  • +

    The scoped lock pattern for write locks.

    +

    Scoped locks help avoid the common problem of forgetting to release the lock. This type also serves as the node for queuing locks.

    +

    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00167.png b/doc/html/a00167.png index 227e99a9e7146d2e7de5a746eb21af449090be9c..a999a7d0cd0bd7f4fb4169b8e0db9283f0821121 100644 GIT binary patch delta 753 zcmeBXoyVrw8Q|y6%O%Cdz`(%k>ERN@z`!WQz`zi|!OXzG@bRXX*+fO_`n8@ejv*C{ zZ|A=5+ibw&(!bQ}^S}H*fq7?-UMLCGeQ`Uoa0=7C84c{>GY~B zjga#6+GsLqN>ZkZ=Fv+YL0wBHE}7E3g!AYe^J$6IQFbxTW-2escY4jzd|f2^I_~{8 zMed19?msfRF5_`oJ0;U^$<7th_u}ejrJtX;cJ>CwjEyD?lKt&l z89g?bFi1`|y2iHP_$3C32LBD|3_J%c%6Jdj&01wRLzz!r+O#Yt}Ox#YzvNEVptL()ga={JRvEQA*d{K*~71^ zYwrKQCaj(ENOR6{1_lNOPgg&ebxsLQ02~-sP5=M^ delta 605 zcmbQo*3GKe8Q|y6%O%Cdz`(%k>ERN@z`$^Wfq@}_gPDPW!AI6RYoelcy_BbmV@L(# z+qt>xnhkhZjt4E>`@dKI>1D+aT~U`#OHMf7;?bX@XV$nUPP#H*$Y+w0=0O$B zNg&2b-Wey4Z8%)`sJiyKP0B=-yQ|z1oG+~0x#oHO>8BYTDtDKJ_04U#S|i)M_2!fP zY}M~fJ$J>%v#tIX;j@7|bmP_8Kk9cE=fs-n-FR@}v+~L9PwQ7dt$!P_`D#6zny2p6 zgh?WvoNAsEO&Vs-EY)aO|B~^-;wsi^8!Oe87a=`T~o%KmvL)F*G>87fl$I@h3K z`&ZKqD?jkZCr_Vk@b!H0yv5Jri)Xh@TYgOHxULD`jjH1gm%}HX7djWa&GgmMZF9C= z39FuyT)d6VHTvMHZs}e1V$~ZA_ZMyYpZZ|-{*cAo8*2SdpZ&Y~#k|+we9j%@OMCPF zcl`(V$>p7S3(twIT~syyRQMC48=s5iZ;0gPf0K;Z`0Z|jd*}Q{-RjTr$Gdj0yRJF+ zhxNwC)e$)|_up21pZz+c|Egrdj%VuPM<2J@hKcvrhQ_$*N4T=C+I}+B;QySM&^vi` zQKHv-fBkaVS@O)p`tLoS8txlaW@n!sxNr4}WyhMu#yiCq-Fti^eI@gp)eDmu9!^PM kmmdKI;Vst0E37hg#Z8m diff --git a/doc/html/a00168.html b/doc/html/a00168.html index 201f5e6d..7a4e7e02 100644 --- a/doc/html/a00168.html +++ b/doc/html/a00168.html @@ -4,7 +4,7 @@ -tbb::null_mutex::scoped_lock Class Reference +tbb::internal::critical_section_v4::scoped_lock Class Reference @@ -33,55 +33,39 @@
-
tbb::null_mutex::scoped_lock Class Reference
+
tbb::internal::critical_section_v4::scoped_lock Class Reference
- -

Represents acquisition of a mutex. - More...

- -

#include <null_mutex.h>

-Inheritance diagram for tbb::null_mutex::scoped_lock:
+Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
- - + +
- - - - - - - - + +

Public Member Functions

scoped_lock (null_mutex &)
 
-void acquire (null_mutex &)
 
-bool try_acquire (null_mutex &)
 
-void release ()
 
scoped_lock (critical_section_v4 &lock_me)
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

The documentation for this class was generated from the following file:
    -
  • null_mutex.h
  • +
    The documentation for this class was generated from the following file:
      +
    • critical_section.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00168.png b/doc/html/a00168.png index d8565aa377b4b6d12e30bda0927c2756bdb21acf..15626cfa0fabd91facbde8e62a8b58a223eb2eca 100644 GIT binary patch delta 699 zcmdnT@|;z%Gr-TCmrII^fq{Y7)59f*fq@ak4&Y#BU|_gbe)`@-MXP$IGEW!BkP61P zbKmBzG2n6OU+VSwUw+NPnl*D%8goN;?UH?>=`A#;z^d?{kYM6jaYfH*DI#u)o}q4u zB9lT=!A$eT97mtmT-KZyUHsT8WwOfM#k&K2HtSB@S6q85Z?WQ}FPC@S74;AJ;?kpZ zH*Z~1es|J3$w?*i@3Fdu*K7ad>f%;E@%H!QJdsHyi)wA_IgdVR`Z;Mza`nF2*!8kiKQOu3;$qbJft$_>?413>jGH`n&hBHJs zaP4L~z!Y>tltFC5p>+%!8br!i8(5cY&}Pt4XpLn|VAOoWRgXpOBik53kXIQKeCHW( zEoRU#;#$nG;#Q!~_T%gC-2cy%Ve%#>s4VvQ8~1z$k-fj(TmR^~Q`++X03JThF8xyE?9tjUQf%j6buoVd7uD%;lJ zX}7Q4%$xAVw6>UG?X2_FPg*?;by!y`-hTTtMf0rFEfLepj(utSwtNW>I1}ET{PC-* z$k`jEvf0;)MNTKVSLgIRn)sbPpv3R3Pkl@MqT33KvugX2ez*4of4N`Pl(fguD|g2> zM>mbE@7uFngFhR;Xck$2wQFC_HuV!5T5^v&-&ELLSX_B8J}c{6=Fj!&CyGUW*W9;r z{MPjOl_c+nd%qru|K;jR-5o#g$I*v}^>QTDtdCvO3%0lK7 z_7Al@|9#mtD@QWn*56ONf1X`?x=$r`@$J&88e5}@Z*SLSmQGw!{__0S&g``|)3Tpm z+Ht;gU9{(}bNxHRzW&ONiNC?V%lkoJ{ok)M9)$1ovpiQn=~MFmd$t#AcYZtndH%hP zlS;%vR`5K_N;6|)_-DhwmZ)(3c(TmR#u)Xhi7D8y6Rr#@=gDzaHZJH6#1I|4y^%4=Qh7OEbE^V_WuvkVQ{l zL{7ZAZaJ6DTHW@lwb#RT@`s52xKf(0^R4m9joth*uKydqUpuO)zeCSkDc+VL|6low}V;KK%hBMSZ%e{FfhhrZ@*3S$%b-|;{7#J8BJYD@<);T3K0RVoz0Qdj^ diff --git a/doc/html/a00169.html b/doc/html/a00169.html index b841c528..4db9404a 100644 --- a/doc/html/a00169.html +++ b/doc/html/a00169.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock::scoped_lock Class Reference +tbb::queuing_rw_mutex::scoped_lock Class Reference @@ -33,65 +33,120 @@
-
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
+
tbb::queuing_rw_mutex::scoped_lock Class Reference
-

The scoped lock pattern for write locks. +

The scoped locking pattern. More...

-

#include <reader_writer_lock.h>

+

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
+Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
- - + +
- - - - - - - - - - -

Public Member Functions

scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class reader_writer_lock
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
+bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
+void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 

Detailed Description

-

The scoped lock pattern for write locks.

-

Scoped locks help avoid the common problem of forgetting to release the lock. This type also serves as the node for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +

    The scoped locking pattern.

    +

    It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

    +

    Constructor & Destructor Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    tbb::queuing_rw_mutex::scoped_lock::scoped_lock ()
    +
    +inline
    +
    + +

    Construct lock that has not acquired a mutex.

    +

    Equivalent to zero-initialization of *this.

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + + + +
    bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ()
    +
    + +

    Upgrade reader to become a writer.

    +

    Returns whether the upgrade happened without releasing and re-acquiring the lock

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • queuing_rw_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00169.png b/doc/html/a00169.png index a999a7d0cd0bd7f4fb4169b8e0db9283f0821121..227e99a9e7146d2e7de5a746eb21af449090be9c 100644 GIT binary patch delta 605 zcmbQo*3GKe8Q|y6%O%Cdz`(%k>ERN@z`$^Wfq@}_gPDPW!AI6RYoelcy_BbmV@L(# z+qt>xnhkhZjt4E>`@dKI>1D+aT~U`#OHMf7;?bX@XV$nUPP#H*$Y+w0=0O$B zNg&2b-Wey4Z8%)`sJiyKP0B=-yQ|z1oG+~0x#oHO>8BYTDtDKJ_04U#S|i)M_2!fP zY}M~fJ$J>%v#tIX;j@7|bmP_8Kk9cE=fs-n-FR@}v+~L9PwQ7dt$!P_`D#6zny2p6 zgh?WvoNAsEO&Vs-EY)aO|B~^-;wsi^8!Oe87a=`T~o%KmvL)F*G>87fl$I@h3K z`&ZKqD?jkZCr_Vk@b!H0yv5Jri)Xh@TYgOHxULD`jjH1gm%}HX7djWa&GgmMZF9C= z39FuyT)d6VHTvMHZs}e1V$~ZA_ZMyYpZZ|-{*cAo8*2SdpZ&Y~#k|+we9j%@OMCPF zcl`(V$>p7S3(twIT~syyRQMC48=s5iZ;0gPf0K;Z`0Z|jd*}Q{-RjTr$Gdj0yRJF+ zhxNwC)e$)|_up21pZz+c|Egrdj%VuPM<2J@hKcvrhQ_$*N4T=C+I}+B;QySM&^vi` zQKHv-fBkaVS@O)p`tLoS8txlaW@n!sxNr4}WyhMu#yiCq-Fti^eI@gp)eDmu9!^PM kmmdKI;Vst0E37hg#Z8m delta 753 zcmeBXoyVrw8Q|y6%O%Cdz`(%k>ERN@z`!WQz`zi|!OXzG@bRXX*+fO_`n8@ejv*C{ zZ|A=5+ibw&(!bQ}^S}H*fq7?-UMLCGeQ`Uoa0=7C84c{>GY~B zjga#6+GsLqN>ZkZ=Fv+YL0wBHE}7E3g!AYe^J$6IQFbxTW-2escY4jzd|f2^I_~{8 zMed19?msfRF5_`oJ0;U^$<7th_u}ejrJtX;cJ>CwjEyD?lKt&l z89g?bFi1`|y2iHP_$3C32LBD|3_J%c%6Jdj&01wRLzz!r+O#Yt}Ox#YzvNEVptL()ga={JRvEQA*d{K*~71^ zYwrKQCaj(ENOR6{1_lNOPgg&ebxsLQ02~-sP5=M^ diff --git a/doc/html/a00170.html b/doc/html/a00170.html index 683e4087..fe27a145 100644 --- a/doc/html/a00170.html +++ b/doc/html/a00170.html @@ -4,7 +4,7 @@ -tbb::null_rw_mutex::scoped_lock Class Reference +tbb::recursive_mutex::scoped_lock Class Reference @@ -33,61 +33,75 @@
-
tbb::null_rw_mutex::scoped_lock Class Reference
+
tbb::recursive_mutex::scoped_lock Class Reference
-

Represents acquisition of a mutex. +

The scoped locking pattern. More...

-

#include <null_rw_mutex.h>

+

#include <recursive_mutex.h>

-Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::recursive_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock (null_rw_mutex &, bool=true)
 
-void acquire (null_rw_mutex &, bool=true)
 
-bool upgrade_to_writer ()
 
-bool downgrade_to_reader ()
 
-bool try_acquire (null_rw_mutex &, bool=true)
 
-void release ()
 
scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
+bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
+void release ()
 Release lock.
 
+ + +

+Friends

+class recursive_mutex
 

Detailed Description

-

Represents acquisition of a mutex.

+

The scoped locking pattern.

+

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.


The documentation for this class was generated from the following file:
    -
  • null_rw_mutex.h
  • +
  • recursive_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00170.png b/doc/html/a00170.png index 081a54dff5c3418a26e55aabe7207612d4a46482..9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596 100644 GIT binary patch delta 600 zcmcb^(#opX8Q|y6%O%Cdz`(%k>ERN@z`$^pfq@}_gPDPWp?4PJv5AUS^-Ln3E{-7; zjBn?@?OScY>+`?-nuQJp3foV=Yr7`B^U)Nu`Eth$>kW;i*?cCkDPHvm@(Joy zIjRC;>{@Mjv-s%BAHT!y@8G*RVTs?DaO1VxWAv_ky+r;m_H$V2ToVjO){iHuz|GwY!0|9XK9*{@q{@WuQ2quSTPGs{=%l9 z_LA4Z=aO{8j3wp_hMxHhNt5m|98uZJ*x^})reM!$Y2(d_2N>$v6t6NIQMt-+WXXz| zdB61=@(W6j<;&f%`@W^?{i_9R54iG!H(z=6^7YLpYBua=_P$<_`pGIU@7DYylRw|7 z{c&e|O{n9Kqo?KCk2TLqb~wuM{OqMYceholE(m^*@a|Ks>KWC(z1x4KKG3hX?p=39 zhWVCN|ID(!jN_?`o{<2wvC5&n zxOg4Y@mbGeS9zTXOMK;1y!GRnG;Ox_SSsq;)_mU^$53~Izj>GI+0P%UCNt>m ybIpF&8hRNNW>O6^mPj?sII~{Uc(daV_Fw(A(Ms7RpBNYz7(8A5T-G@yGywoX7aERN@z`$^Tfq@}_gPDPWp(3TLY@(u7J>zRn7srqa z#O1ktocG(t1asN3j`)ADTj4Q}4KT4M5iY30M!r@B<;E?a!y%EhA8i+k(VZr`glsibM1WQFpDs+vZJ z{k_i>KiuJ-bfuM>WtMG0ek1epfb*jDC2y+}q+k7Gy4+*`U*+lbU%Q`Akdu62^=K*6 zq${%pCaCy3IZU#d$#Uil8{31$HVkfQC5^|E3z{#oF8guZOd^gUp&;oWqfI9dLxqqe z!v_^3h6kQ036Jdsb+BZ zl6iw|kZObSoSE~kY~S*j2h^U J%Q~loCIE6L^lAVA diff --git a/doc/html/a00171.html b/doc/html/a00171.html index d41c0c38..05a75da3 100644 --- a/doc/html/a00171.html +++ b/doc/html/a00171.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4::scoped_lock Class Reference +tbb::mutex::scoped_lock Class Reference @@ -33,39 +33,75 @@
-
tbb::internal::critical_section_v4::scoped_lock Class Reference
+
tbb::mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <mutex.h>

-Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
+Inheritance diagram for tbb::mutex::scoped_lock:
- - + +
- - + + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock (critical_section_v4 &lock_me)
 
scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
+bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
+void release ()
 Release lock.
 
+ + +

+Friends

+class mutex
 
-
The documentation for this class was generated from the following file:
    -
  • critical_section.h
  • +

    Detailed Description

    +

    The scoped locking pattern.

    +

    It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

    +

    The documentation for this class was generated from the following file:
      +
    • mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00171.png b/doc/html/a00171.png index 15626cfa0fabd91facbde8e62a8b58a223eb2eca..5450176d7fa5c18126f5e6f83daf7a63bab18728 100644 GIT binary patch delta 496 zcmaFPI*&!MGr-TCmrII^fq{Y7)59f*fq`KH0|P?<2Qvc$!@&X`yNQZc^^9vhT^vIy z7~jr)yKb=o59{%urJw)h@0oJP!7d_ycC?oF>n=@ImBf;QOZ#WcbY+^n#A3+=l}Z@i zqo1;=_QbZ-Eo*Zh`%mvu*?Xqxg4qI@vzP1Ey?VK-TV?M7FQkn6(`0#2$dSAJv-p8})BP9ikNa)jvb~9GDsRH?TeI7KFWq{lGVWdcU7OS+ zb&Kb{GI4*bU{YfDI73M5?AH+eQz6ecyqoS=y=D2za&?muyPV_U*PdK7iRa|yw_xw> zpQSE)YxmBumT$cKgjc=)<+b9=zR-*qR`Kqnx<~dc>*6EBoi_)Bi^c}lFKBzVNX{*M zrepP$TXJDHD?e{v{YK-+?y^@$EB9+}39r~K!BF*YaSMZ(hayA22-Am(y!f=V!XL~G Ydg0b?`y^&CFfcH9y85}Sb4q9e0E=kYoB#j- delta 699 zcmbQo@|;z%Gr-TCmrII^fq{Y7)59f*fq@ak4&Y#BU|_gbe)`@-MXP$IGEW!BkP61P zbKmBzG2n6OU+VSwUw+NPnl*D%8goN;?UH?>=`A#;z^d?{kYM6jaYfH*DI#u)o}q4u zB9lT=!A$eT97mtmT-KZyUHsT8WwOfM#k&K2HtSB@S6q85Z?WQ}FPC@S74;AJ;?kpZ zH*Z~1es|J3$w?*i@3Fdu*K7ad>f%;E@%H!QJdsHyi)wA_IgdVR`Z;Mza`nF2*!8kiKQOu3;$qbJft$_>?413>jGH`n&hBHJs zaP4L~z!Y>tltFC5p>+%!8br!i8(5cY&}Pt4XpLn|VAOoWRgXpOBik53kXIQKeCHW( zEoRU#;#$nG;#Q!~_T%gC-2cy%Ve%#>s4VvQ8~1z$k-fj(TmR^~Q`++X03JThF8xyE?9tjUQf%j6buoVd7uD%;lJ zX}7Q4%$xAVw6>UG?X2_FPg*?;by!y`-hTTtMf0rFEfLepj(utSwtNW>I1}ET{PC-* z$k`jEvf0;)MNTKVSLgIRn)sbPpv3R3Pkl@MqT33KvugX2ez*4of4N`Pl(fguD|g2> zM>mbE@7uFngFhR;Xck$2wQFC_HuV!5T5^v&-&ELLSX_B8J}c{6=Fj!&CyGUW*W9;r z{MPjOl_c+nd%qru|K;jR-5o#g$I*v}^> -tbb::mutex::scoped_lock Class Reference +tbb::spin_mutex::scoped_lock Class Reference @@ -33,75 +33,101 @@
-
tbb::mutex::scoped_lock Class Reference
+
tbb::spin_mutex::scoped_lock Class Reference
-

The scoped locking pattern. +

Represents acquisition of a mutex. More...

-

#include <mutex.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::mutex::scoped_lock:
+Inheritance diagram for tbb::spin_mutex::scoped_lock:
- - + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
-void release ()
 Release lock.
 
scoped_lock ()
 Construct without acquiring a mutex.
 
scoped_lock (spin_mutex &m)
 Construct and acquire lock on a mutex.
 
+void acquire (spin_mutex &m)
 Acquire lock.
 
bool try_acquire (spin_mutex &m)
 Try acquiring lock (non-blocking) More...
 
+void release ()
 Release lock.
 
~scoped_lock ()
 Destroy lock. If holding a lock, releases the lock first.
 
- - + +

Friends

-class mutex
 
+class spin_mutex
 

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

The documentation for this class was generated from the following file:
    -
  • mutex.h
  • +

    Represents acquisition of a mutex.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool tbb::spin_mutex::scoped_lock::try_acquire (spin_mutexm)
    +
    +inline
    +
    + +

    Try acquiring lock (non-blocking)

    +

    Return true if lock acquired; false otherwise.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • spin_mutex.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00172.png b/doc/html/a00172.png index 5450176d7fa5c18126f5e6f83daf7a63bab18728..25da9c6ba09d573b82ff7e6295013c42ed53edd9 100644 GIT binary patch delta 547 zcmbQoa*0K;Gr-TCmrII^fq{Y7)59f*fq`Ki0|P?<2Qvc$!*;KITPG@7*FW@haSW+o zd^`7M-)aK^*40Zrp8x+}5pnE+uB1?g$o<>OS`8nA=4?ExotE~v!Sj+v%Q}@x!CjM{ zxW4e3B)+`VciR_(x1E)laX+F}6+Pz{#g%96mz#O|eXP~jRUVgq$4q!9eD_+F#of!V zpSazvVz|NYMF(Ds*pndj;!eNw&~Z*ZyiWt`!K|K9|s zE&0t6>-j0kCf0a!BEyFVj0SwkFYV-k7Q4cDlL5>u*l$)V$Ejek1R4UBBgjR;(}UFI}+r@}pA<_Md`-cVAem zmG69QvZA;4Z+jCn*WPy3J*u=Ud;Iar3>_n}5ow{Qcs}tFhVf%YUov znf_8Nxm2v^_2>4ydZUtM>FHMX7j@H;H(t@3vHNY%>hiXb-N9F0EfWoY%Tp=;ysRyk zQRb%h`v0G5Z#+)lb(-s>xbT7KFSq1ge4Xzj{y>`}mOEGr-TCmrII^fq{Y7)59f*fq`KH0|P?<2Qvc$!@&X`yNQa{^=my{978G? z-_CuzZm|Im>+ztapa13WnR3U$E+T(+w3helE=^UH#FBzb`)AB_WtzOiV#x%RN*Law zpR%d;#J1EeYjYp_Pw!IMd#34v*#eofm+RKOdbz4wW$ytmr+UFzdzrZQ#xE%6vd#9K zbnj8KQ!sCB_>0!iZJ&<4tH0Uar@3E$i|VI89$EcWdyT%%<W%VIHwT1^#s=0eXnVFuF5Gpd zWA&9=a$z?sKW|_CM&rotvR6kd_iJwnuh=cYQ1x$d3xk-4B169j(}#+@__VabAIuDT X;nr^ZBxW!$Ffe$!`njxgN@xNASaR5f diff --git a/doc/html/a00173.html b/doc/html/a00173.html index 4cdca67c..2d3255cd 100644 --- a/doc/html/a00173.html +++ b/doc/html/a00173.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference +tbb::null_rw_mutex::scoped_lock Class Reference @@ -33,64 +33,61 @@
-
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+
tbb::null_rw_mutex::scoped_lock Class Reference
-

The scoped lock pattern for read locks. +

Represents acquisition of a mutex. More...

-

#include <reader_writer_lock.h>

+

#include <null_rw_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
+Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
- - + +
- - - - - - - - - - -

Public Member Functions

scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - + + + + + + + + + + + +

-Friends

-class reader_writer_lock
 
scoped_lock (null_rw_mutex &, bool=true)
 
+void acquire (null_rw_mutex &, bool=true)
 
+bool upgrade_to_writer ()
 
+bool downgrade_to_reader ()
 
+bool try_acquire (null_rw_mutex &, bool=true)
 
+void release ()
 

Detailed Description

-

The scoped lock pattern for read locks.

+

Represents acquisition of a mutex.


The documentation for this class was generated from the following file:
    -
  • reader_writer_lock.h
  • +
  • null_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00173.png b/doc/html/a00173.png index 10066bd980a7f04d27b6d2c16ba84af835b461d3..081a54dff5c3418a26e55aabe7207612d4a46482 100644 GIT binary patch delta 559 zcmX@kc85i=Gr-TCmrII^fq{Y7)59f*fq~%w0|P?<2Qvc$Lq$qg*+fOFddAnDE{-7; zjBn?@?ptlZ!*)Dq>HEL;D>Oxl7Dt_%lyvEF?6NJ2;{J15_RpBv%cJJ`ScqxT6HgA0 zN$QFUp7Xv48{E8ewZ!E4(#nUcPj#uxUAFkZm5W8G7x&h!-M&|AQc2T1$qMBQRW*$c z`+J`&ez?Ou=}Id%%PiZ1{6^;G0p~^QOWsx|NWc2Wbh*d=zsl3=zji;LASe04>d{iB zNmphIOi=N6a+qW@ljY1AHnsnfZs_>BE^ zu56k18kSY3GIwp}+2ds55ze(+G(u`RQ?ZOMck^BC{ia*F8&`cYOWNDA>8JO*eB%pZ z?_9QfUh`Ip-efJfZSS+sam)T3u4nqpy_ zr=y$l(<;LkNO3CfE}EJoTz-T3t=c;Og=vicXCJt=$g1_y;myl0Y@7J*liI&znR&Z0t_EiSQu<7_t~8}bL=TQb784P(^_{k1_lNOPgg%y Jmvv4FO#lRf^sN8@ delta 795 zcmcb^a-2=EGr-TCmrII^fq{Y7)59f*fq~JQfq@}_gPDPWA<#|f#zaM{dZufhE{-7; zjBn?@&0B3C;Bww;>a)N1cX&1&i5J)qb$w@fRG-Y@N3s0Lzx4$L)s!9?wWvsX?&{b& zd5PVcxhh{1->R(S&sO)Wjj;B7b@-NNko@Kh@h*48jV8D6et9OfNzt?Zw8^czry|z5 z%-Fi!bgh8rFYRX^@Aj2#ZMo(bR25r)DQ}YQug_a{zptM3<-5=N*sb>?tvzpkHMx4b zxNMfHb#K|EFKy`yulY?X+wt?wKXuK$+y0rb*3WzYY~}anEt8k5+)y^@N;|S^`e&Dc z9je9f`4ejbgI@AmhFw2?ZK`0fjj(Re%exe5)4;bzwt-QiJC;3xq24X&KBGj##2e)d zYzZpgK;oUX>r@yfevEB|`U zzrKIlXUPR=mW>SGEI;p!V`Y39dUx-?uiw*4>$hz&zV()G*X+kmMGeY!F1vS!=l%bF z?v~1=d%yXO*Y@qYAL(?x?$(o&@{gw{_RqK;;pwW~A9ZR<=F`+;OCE%|uKknFX05UR z%iT}+uGy^LvRO?#ZI)>yujh-^C-0p%J*l19YHGC1*<3s8iM^c8U!k*~qO;93x9^*K zMz7R+)3w#9_3DQhs2CnVQ zZGHaDX7Sy)8}~{szo>F7$-J($|8)7&>nqO9ShcNIT%`K*uG69WRv%h*BqGF*`Za5XP*iEKT;R|#A@^Xsn2t^eq7dmuQ2=UHoiqcN1q%t z3Me}#moa_0jfK>8=8x&;Zaym9{pZ$uhW|4AO%F?Msm?j}Q;s*F$cRT_`PWk)6P^d% zEN7_w!+(qM4;xa5AHK!-rSP(z(jga@n5WWNN{6hRdh1UzFfcH9y85}Sb4q9e07m|V AaR2}S diff --git a/doc/html/a00174.html b/doc/html/a00174.html index 61e71729..e5084893 100644 --- a/doc/html/a00174.html +++ b/doc/html/a00174.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sender< T > Class Template Reference +tbb::null_mutex::scoped_lock Class Reference @@ -33,115 +33,55 @@
-
tbb::flow::interface8::sender< T > Class Template Referenceabstract
+
tbb::null_mutex::scoped_lock Class Reference
-

Pure virtual template class that defines a sender of messages of type T. +

Represents acquisition of a mutex. More...

-

#include <flow_graph.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::flow::interface8::sender< T >:
+Inheritance diagram for tbb::null_mutex::scoped_lock:
- - -tbb::flow::interface8::broadcast_node< T > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::limiter_node< T > -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::priority_queue_node< T, Compare, A > -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::write_once_node< T > -tbb::flow::interface8::sequencer_node< T, A > + +
- - - - - - - - - - - - -

-Public Types

-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + +

Public Member Functions

-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-virtual built_successors_typebuilt_successors ()=0
 
-virtual void internal_add_built_successor (successor_type &)=0
 
-virtual void internal_delete_built_successor (successor_type &)=0
 
-virtual void copy_successors (successor_list_type &)=0
 
-virtual size_t successor_count ()=0
 
scoped_lock (null_mutex &)
 
+void acquire (null_mutex &)
 
+bool try_acquire (null_mutex &)
 
+void release ()
 

Detailed Description

-

template<typename T>
-class tbb::flow::interface8::sender< T >

- -

Pure virtual template class that defines a sender of messages of type T.

+

Represents acquisition of a mutex.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00174.png b/doc/html/a00174.png index f8d0e860bbe1900215e6561d6d50ca9ed37a990b..d8565aa377b4b6d12e30bda0927c2756bdb21acf 100644 GIT binary patch delta 528 zcmaEQTDtdCvO3%0lK7 z_7Al@|9#mtD@QWn*56ONf1X`?x=$r`@$J&88e5}@Z*SLSmQGw!{__0S&g``|)3Tpm z+Ht;gU9{(}bNxHRzW&ONiNC?V%lkoJ{ok)M9)$1ovpiQn=~MFmd$t#AcYZtndH%hP zlS;%vR`5K_N;6|)_-DhwmZ)(3c(TmR#u)Xhi7D8y6Rr#@=gDzaHZJH6#1I|4y^%4=Qh7OEbE^V_WuvkVQ{l zL{7ZAZaJ6DTHW@lwb#RT@`s52xKf(0^R4m9joth*uKydqUpuO)zeCSkDc+VL|6low}V;KK%hBMSZ%e{FfhhrZ@*3S$%b-|;{7#J8BJYD@<);T3K0RX_C0T=)P literal 4585 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}Gu)@>DF{Fa=?cKLUi=sqW zE~ExO{cZngZbpd1B*V@FGj6wuK6xxtvN`vkljFfV4+|`=JS?zS!_39S#U*#)Ps7zM zdjbLiKCF1gzGm6e)~2Q=cT@WWQ(b)#5fPhJKN(kNRxVty;6dP7{s`aG+^npu{ZY#H z|IYlhdt37D@WaQa@A94T|7pziPS(!m(~0Z9jeosm)y}eUc629wbk-d^{N8Uz zOnu2ajdu6<*SanqGX@21*3=5SKQq5gsknYsrR02~#o4=otLFLmS?2ba^@mSyyc|2d zcJu4REjbhBg1uf5@|ij8@+T)yxXzN_Fl(AP$b(nOh`y}416fgV8X6iEpmYGjkhD;@ zP+0^7-mLt{!^+CaT5T;i8x%MJ8#aSoEb`{9zm@s?g$oueNQei!N#h5*$s91h9Kyd5 z3l4X#vg;LXO-)TrcTGXDy&!=Y=^NKRR@k6pI|i<67nu%=MP=S_(&mlMSeodnYml>W zYMbtsOB-6lq{6NYRmqB-Ui^m*_Dp(gz;l>8b7^~`#I_3{k(`B7<=PT&G%0#&d0sQf zd#bWhCDK`Yu1a*q(#a{@z0Xx51EVcHw_Wg3KPeXVQst)8V@uDlD`9?Y4#3+unVUG;eG1|1#M3+5Pp;>^q(pJNboOSAVp2Z=U^! z*U<7~vy|VlK6f3NIdA6No73OEM}FVx4^BTPKMC~b>iwH#YoBa#o_|% z(Z2h+Y}USfoBex_J+;k`KUIDEm&rW!<+1NC{XWwl@}uP4nx4&T-(UYRKlADPYrod< z=YRgQVb%4W|5ma;yk}~!^7(0{YQ3Ms{u=-PhVP#qt(f=axt!^Jg?Z=e9=dD)neD5pom>kEBU`FfUm`_iY9s`X(O`%C=e&DQ-_t3H^5hfm+QUGVYa=Rc2y?|mn8J>%a+HRnlp zrq!>TTE6D%&pnk_-*0;Ka8(@h&-rVdK^ybO`tEW6SO$X;NQ0|jD@40EwwjyW_1LwYD#go>oSUU%rS;4vQ;~W+3 zENxh31=*HiqkgjM)+tYDX2oHY{YM*~!vTj4cveen{ba!7%zM~i%_4Bo;G}KKb9e)* zhDOhHWf74-Om8zaDhhK`HGb&cx*YJ~R^Rb&Mk0Us&_w^06je)d)wO;z5!th2n~}&L zF_41F+!Uy`N4HJ|e2Ct%eBpzmTc<93usy@y`Cxapw)4UKi}Tu=#IJ|7HQiri%gd_2 zZY>Y%e%ER#uDF`~DP+=`M49uRL7to1ruRPw7vPUAJ+)3|WZI~o6q5qW zEC8j&lr5lg8C0mRREY$Y+FnLcpj6d*tawt$B%KT!bx&1E-QMSrQeMkbY)_euyx-~H zyDz>jnDJIZKDq)@Xv@pYe7m=HmdekKM|b|KnX>(QP57jm)1OYLAN_o8ySnGT2N$dC zzpDNBe_Z+fT*a;YuMgLGPSXE9_2ZvyA02YvT{iW6XKQhHbN$ZwCD-mgD_{Tn;QGY7 z75CnMQ#si#x8}RMsrRJy**5R5NopVad^xTDWkp@J!{49Q_gilte)Z*!)!RM$B(J_k zZMp3{J)L{*IvcCcf4=|wB7b-GXZJm4jArJ4s@Z$4I`Z!PO%;#xqo3sA4(isc=-FAP{_62BiWb}Vz^8t*zI{J3)Z?afJh z?bk$3s=52$V&3-mJ-apjM|z=uU;ok9B0oOwZ0>9Ck2e3l`aMcA zy8ran{JTFcYi{2C`)Gw+{o#|M)64%vfBbV6Zd&Z)%ERY&^grLf<;dN)|GusNGTZjk z{*LFL@4NFqCNlL zX+P4gtDNjNnK$_f_rI#{cm6m2t^4<7)qab4lb^_6s_>iSHHozsl%p3v-TK(lGtL#1 zuRX;~=1pEQsb|`;;z>CRLHSyR8*H_k_hV2?4O!dLkD$r{l&?=Vfiw97beUfF!(ufNi!lrE25&V0T8x$X1Hd)tq%&a^r2S8@K#?Hi}n zXPzyY{qSAO#Rn>jmx6m*)jyML<}dm-=fL!}v&zp9h*!VPt(bT0fyMD>Gj|!JiJZJ{oTpxI z^8FL@gSxE-Ki&HqS|$G5%-b(~0o+Tgxbp4epKns?_bY!-TDyI1w8*^k^71=<%q^>} zj^2O#v*eym;q#Aw?5=NT-UW7Ef0X9D^Yz^yZDbA4Uwe7*CeL-{@6GR){iwFlSA7>0 zaekh#=cf(e9-_@F>yLltZC>0l+x?qK-1|r162(-`Zq`GQ^V3h)TYTGGA;&v!*}L?Q zf4&yvf&0sk_sN{kzgfYx>UGwn&gVR{pS{zN^jBLxXPf)(PUt}(K*8vkdUbJ6KX Unev%z1_lNOPgg&ebxsLQ0FN6 -tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Reference +tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference @@ -33,74 +33,64 @@
-
tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Referenceabstract
+
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+ +

The scoped lock pattern for read locks. + More...

+ +

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::flow::interface8::sender< dependency_msg< T, Factory > >:
+Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
- - -tbb::flow::interface8::proxy_dependency_sender< T, Factory > + +
- - - - - - -

-Public Types

-typedef receiver
-< dependency_msg< T, Factory > > 
dependency_successor_type
 The successor type for this sender.
 
-typedef
-proxy_dependency_sender< T,
-Factory > 
proxy
 
- - - - - - - - - - - - - - - - + + + + + + + + + + +

Public Member Functions

-virtual bool register_successor (dependency_successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (dependency_successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (dependency_msg< T, Factory > &)
 Request an item from the sender.
 
-virtual bool try_reserve (dependency_msg< T, Factory > &)
 Reserves an item in the sender.
 
-ordinary_sender & ordinary_sender ()
 
-bool has_host_successors ()
 
scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
+void * operator new (size_t s)
 
+void operator delete (void *p)
 
+ + +

+Friends

+class reader_writer_lock
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    The scoped lock pattern for read locks.

    +

    The documentation for this class was generated from the following file:
      +
    • reader_writer_lock.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00175.png b/doc/html/a00175.png index f942f222c63fd3d6b3402da4c6c8425cb9809f9b..10066bd980a7f04d27b6d2c16ba84af835b461d3 100644 GIT binary patch delta 795 zcmbQsb(~GHGr-TCmrII^fq{Y7)59f*fq~JQfq@}_gPDPWA<#|f#zaM{dZufhE{-7; zjBn?@&0B3C;Bww;>a)N1cX&1&i5J)qb$w@fRG-Y@N3s0Lzx4$L)s!9?wWvsX?&{b& zd5PVcxhh{1->R(S&sO)Wjj;B7b@-NNko@Kh@h*48jV8D6et9OfNzt?Zw8^czry|z5 z%-Fi!bgh8rFYRX^@Aj2#ZMo(bR25r)DQ}YQug_a{zptM3<-5=N*sb>?tvzpkHMx4b zxNMfHb#K|EFKy`yulY?X+wt?wKXuK$+y0rb*3WzYY~}anEt8k5+)y^@N;|S^`e&Dc z9je9f`4ejbgI@AmhFw2?ZK`0fjj(Re%exe5)4;bzwt-QiJC;3xq24X&KBGj##2e)d zYzZpgK;oUX>r@yfevEB|`U zzrKIlXUPR=mW>SGEI;p!V`Y39dUx-?uiw*4>$hz&zV()G*X+kmMGeY!F1vS!=l%bF z?v~1=d%yXO*Y@qYAL(?x?$(o&@{gw{_RqK;;pwW~A9ZR<=F`+;OCE%|uKknFX05UR z%iT}+uGy^LvRO?#ZI)>yujh-^C-0p%J*l19YHGC1*<3s8iM^c8U!k*~qO;93x9^*K zMz7R+)3w#9_3DQhs2CnVQ zZGHaDX7Sy)8}~{szo>F7$-J($|8)7&>nqO9ShcNIT%`K*uG69WRv%h*BqGF*`Za5XP*iEKT;R|#A@^Xsn2t^eq7dmuQ2=UHoiqcN1q%t z3Me}#moa_0jfK>8=8x&;Zaym9{pZ$uhW|4AO%F?Msm?j}Q;s*F$cRT_`PWk)6P^d% zEN7_w!+(qM4;xa5AHK!-rSP(z(jga@n5WWNN{6hRdh1UzFfcH9y85}Sb4q9e0F~y1 AH~;_u literal 1309 zcmeAS@N?(olHy`uVBq!ia0y~yU@T=|U;Tjf7|tI^@o2(%YT<-zFWW0 zu1(>uFJ0pDj59Ot%{@ z7t0Z^b;w?^veBX1Z^id+qwf8}ky_Wx)nC2t`2YB-O#a(#>1!`4@4gncFnxm>e{$`i zOJ{S>tYp1>H18K%6z`Rv7nj?uIUBv_?3Poj&KX=YJzsbKg-;HDbMo@|=H1q(CNvgY z`}ykWkzG*}Zf5?Ul${wHsoQY1<+u3C>qjmnT%DW$&r0s)G-a3D3pWTvZH~8E9TMMF zb#{%_?zog0lBKn#eRu9JjT4?O|5__$kM^x+do~}wAZ^|GHS*<}?tSV$3+{J*H8wBV zvC>m7IX2x@-?+m4i^^di!r<^b9eTVUVhuvv2wwZ0NIG*ibd(MSn z|3dzl{Srl&{ycN>lzlPp@vQY5?eAS-aJ%33uRm};e?b}3gV?(UpDtfvtP4VpLlE2l z)zT@Gw3be>VEnT}jzP1*LAA6Y!B(zQRw2w&Rw2UwMW?Jnh^MSV+({YK1OU=ZZM@&7 zHgeii^RE%pQh)kx?C4nH;&N!p6<3!8aZ$ zzh1U(>T!4T!% z<@Z!crp+HVZQQqZ_rAU#_Hns_YwvzrV_KDR{g&3PzHfJTox5giyKv^eEvFN5>~M)Znli#jVqn^^s#&^xFif-=h|u4uWP)^E30-6QF?cDdESR -tbb::flow::interface8::sequencer_node< T, A > Class Template Reference +tbb::flow::interface8::sender< T > Class Template Reference @@ -33,358 +33,115 @@
-
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
+
tbb::flow::interface8::sender< T > Class Template Referenceabstract
-

Forwards messages in sequence order. +

Pure virtual template class that defines a sender of messages of type T. More...

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::sequencer_node< T, A >:
+Inheritance diagram for tbb::flow::interface8::sender< T >:
- - -tbb::flow::interface8::queue_node< T, A > -tbb::flow::interface8::buffer_node< T, A > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > + + +tbb::flow::interface8::broadcast_node< T > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::limiter_node< T > +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::priority_queue_node< T, Compare, A > +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::write_once_node< T > +tbb::flow::interface8::sequencer_node< T, A >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - + + + - +

Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::queue_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef buffer_node< T, A > class_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
built_successors_type::edge_list_type 
successor_list_type
 
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

-template<typename Sequencer >
 sequencer_node (graph &g, const Sequencer &s)
 Constructor.
 
sequencer_node (const sequencer_node &src)
 Copy constructor.
 
~sequencer_node ()
 Destructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-size_t successor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Protected Types

enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A >
-::size_type 
size_type
 
-typedef buffer_node< T, A >
-::buffer_operation 
sequencer_operation
 
- Protected Types inherited from tbb::flow::interface8::queue_node< T, A >
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef buffer_node< T, A > base_type
 
-typedef base_type::size_type size_type
 
-typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
-  reg_succ, -rem_succ, -req_item, -res_item, -
-  rel_res, -con_res, -put_item, -try_fwd_task, -
-  add_blt_succ, -del_blt_succ, -add_blt_pred, -del_blt_pred, -
-  blt_succ_cnt, -blt_pred_cnt, -blt_succ_cpy, -blt_pred_cpy -
- }
 
enum  op_stat { WAIT =0, -SUCCEEDED, -FAILED - }
 
-typedef size_t size_type
 
-typedef
-internal::aggregating_functor
-< class_type, buffer_operation
handler_type
 
-typedef sender< T >
-::built_successors_type 
built_successors_type
 
-typedef receiver< T >
-::built_predecessors_type 
built_predecessors_type
 
- - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
-void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
-void internal_pop (queue_operation *op)
 
-void internal_reserve (queue_operation *op)
 
-void internal_consume (queue_operation *op)
 
-void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
-internal::round_robin_cache< T,
-null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-bool forwarder_busy
 
-internal::aggregator
-< handler_type,
-buffer_operation
my_aggregator
 
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+virtual built_successors_typebuilt_successors ()=0
 
+virtual void internal_add_built_successor (successor_type &)=0
 
+virtual void internal_delete_built_successor (successor_type &)=0
 
+virtual void copy_successors (successor_list_type &)=0
 
+virtual size_t successor_count ()=0
 

Detailed Description

-

template<typename T, typename A = cache_aligned_allocator<T>>
-class tbb::flow::interface8::sequencer_node< T, A >

+

template<typename T>
+class tbb::flow::interface8::sender< T >

-

Forwards messages in sequence order.

+

Pure virtual template class that defines a sender of messages of type T.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00176.png b/doc/html/a00176.png index 2190e2e8ed3da24541acc59fc2348d86298b606c..f8d0e860bbe1900215e6561d6d50ca9ed37a990b 100644 GIT binary patch literal 4585 zcmeAS@N?(olHy`uVBq!ia0y~yV4cUnz;J+rnSp^}b4Obb0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}Gu)@>DF{Fa=?cKLUi=sqW zE~ExO{cZngZbpd1B*V@FGj6wuK6xxtvN`vkljFfV4+|`=JS?zS!_39S#U*#)Ps7zM zdjbLiKCF1gzGm6e)~2Q=cT@WWQ(b)#5fPhJKN(kNRxVty;6dP7{s`aG+^npu{ZY#H z|IYlhdt37D@WaQa@A94T|7pziPS(!m(~0Z9jeosm)y}eUc629wbk-d^{N8Uz zOnu2ajdu6<*SanqGX@21*3=5SKQq5gsknYsrR02~#o4=otLFLmS?2ba^@mSyyc|2d zcJu4REjbhBg1uf5@|ij8@+T)yxXzN_Fl(AP$b(nOh`y}416fgV8X6iEpmYGjkhD;@ zP+0^7-mLt{!^+CaT5T;i8x%MJ8#aSoEb`{9zm@s?g$oueNQei!N#h5*$s91h9Kyd5 z3l4X#vg;LXO-)TrcTGXDy&!=Y=^NKRR@k6pI|i<67nu%=MP=S_(&mlMSeodnYml>W zYMbtsOB-6lq{6NYRmqB-Ui^m*_Dp(gz;l>8b7^~`#I_3{k(`B7<=PT&G%0#&d0sQf zd#bWhCDK`Yu1a*q(#a{@z0Xx51EVcHw_Wg3KPeXVQst)8V@uDlD`9?Y4#3+unVUG;eG1|1#M3+5Pp;>^q(pJNboOSAVp2Z=U^! z*U<7~vy|VlK6f3NIdA6No73OEM}FVx4^BTPKMC~b>iwH#YoBa#o_|% z(Z2h+Y}USfoBex_J+;k`KUIDEm&rW!<+1NC{XWwl@}uP4nx4&T-(UYRKlADPYrod< z=YRgQVb%4W|5ma;yk}~!^7(0{YQ3Ms{u=-PhVP#qt(f=axt!^Jg?Z=e9=dD)neD5pom>kEBU`FfUm`_iY9s`X(O`%C=e&DQ-_t3H^5hfm+QUGVYa=Rc2y?|mn8J>%a+HRnlp zrq!>TTE6D%&pnk_-*0;Ka8(@h&-rVdK^ybO`tEW6SO$X;NQ0|jD@40EwwjyW_1LwYD#go>oSUU%rS;4vQ;~W+3 zENxh31=*HiqkgjM)+tYDX2oHY{YM*~!vTj4cveen{ba!7%zM~i%_4Bo;G}KKb9e)* zhDOhHWf74-Om8zaDhhK`HGb&cx*YJ~R^Rb&Mk0Us&_w^06je)d)wO;z5!th2n~}&L zF_41F+!Uy`N4HJ|e2Ct%eBpzmTc<93usy@y`Cxapw)4UKi}Tu=#IJ|7HQiri%gd_2 zZY>Y%e%ER#uDF`~DP+=`M49uRL7to1ruRPw7vPUAJ+)3|WZI~o6q5qW zEC8j&lr5lg8C0mRREY$Y+FnLcpj6d*tawt$B%KT!bx&1E-QMSrQeMkbY)_euyx-~H zyDz>jnDJIZKDq)@Xv@pYe7m=HmdekKM|b|KnX>(QP57jm)1OYLAN_o8ySnGT2N$dC zzpDNBe_Z+fT*a;YuMgLGPSXE9_2ZvyA02YvT{iW6XKQhHbN$ZwCD-mgD_{Tn;QGY7 z75CnMQ#si#x8}RMsrRJy**5R5NopVad^xTDWkp@J!{49Q_gilte)Z*!)!RM$B(J_k zZMp3{J)L{*IvcCcf4=|wB7b-GXZJm4jArJ4s@Z$4I`Z!PO%;#xqo3sA4(isc=-FAP{_62BiWb}Vz^8t*zI{J3)Z?afJh z?bk$3s=52$V&3-mJ-apjM|z=uU;ok9B0oOwZ0>9Ck2e3l`aMcA zy8ran{JTFcYi{2C`)Gw+{o#|M)64%vfBbV6Zd&Z)%ERY&^grLf<;dN)|GusNGTZjk z{*LFL@4NFqCNlL zX+P4gtDNjNnK$_f_rI#{cm6m2t^4<7)qab4lb^_6s_>iSHHozsl%p3v-TK(lGtL#1 zuRX;~=1pEQsb|`;;z>CRLHSyR8*H_k_hV2?4O!dLkD$r{l&?=Vfiw97beUfF!(ufNi!lrE25&V0T8x$X1Hd)tq%&a^r2S8@K#?Hi}n zXPzyY{qSAO#Rn>jmx6m*)jyML<}dm-=fL!}v&zp9h*!VPt(bT0fyMD>Gj|!JiJZJ{oTpxI z^8FL@gSxE-Ki&HqS|$G5%-b(~0o+Tgxbp4epKns?_bY!-TDyI1w8*^k^71=<%q^>} zj^2O#v*eym;q#Aw?5=NT-UW7Ef0X9D^Yz^yZDbA4Uwe7*CeL-{@6GR){iwFlSA7>0 zaekh#=cf(e9-_@F>yLltZC>0l+x?qK-1|r162(-`Zq`GQ^V3h)TYTGGA;&v!*}L?Q zf4&yvf&0sk_sN{kzgfYx>UGwn&gVR{pS{zN^jBLxXPf)(PUt}(K*8vkdUbJ6KX Unev%z1_lNOPgg&ebxsLQ0FN6a zk1M}dH?M|Q?tI4Dt@{-t8ygzd{!0tJr z2g&b0v3t{{sBHc_`hMAK|4sp!z3rF#=1Wo8_3ID z3WV=H8&GE5+QSbEI$kHwnVu-ow!`jIrKJpCd)%|91r{<@e4(L*bv~fb08v4qqIaLG zem0st-NzjqXsX(wp?g!7u39yHO~}<9s@iL}Uh@uHwW{i*S7@ky^0>Z(<7n}R|gPg}F)S`GzlYZa>=h)ADZq_RXtSRUN*o{91h7 zs#mtfy{l&B)}J}G<9lM6nd!@-pz?Ru`+i@KmXYjhe&6?R){V!Dx0>bo@4fmy{b_h@ zNZ)izyH%_9rACMSTex$lebVbGd-SxAi~HZHH+=Gtr|y4IXsEIMq^auDAA4{9^r5O& zS?+#yWl6=Wz58^u-~U_@68iV#veSD^wBOH|-Ojx2{G08Yih8bJ-~aiytaDk`t<2|d zr=P60dTS-SQd?(GKqcEx7axQB-N|4I(q_pMI%$m8?3 z`#)c@dB69al)s(s?bka_cAWN{E)?UpYi_k<@$MrPn?HYj#-49$$+we7I{#AC?3{W{ zkUM(jPt3cK`{nJbP}95r;==B2?NM{TCU&xW*^}RqmjBnEoww|N>h`PlFCFZEe42hn zE${38y0TwidVWUF@VWiQ>vD8RsO{60Yvx@4np!&l`iGKy>03Kuzi(gId;3)5S8o3x zGs%)W$C^+7J~x-$PigCq&1vPcwyoJ}c5~m{spT~xY4ayO4KBZzvQhWi1@nDfW~onO zPp^n}=;q#&=4F7rx%1AtRj)MfpE>n$W6X)=vE8ZlvgXx=c2$u- zu1|g@J}>pD*^8NLddwrIB+Z<9bMCvgr?QbhzqvpCC0d(*ByC( z`tHs;mdE?lHyiCf`K2g(;>?)bzw7_)T(jrXVx!uvW;q}4{_9%*O#bXC@8@Zj3*tfU z?~UB~?bExOFaNK9{wc94>!G9mI^MZ`^WtB}z1po98e0G1?;4#uXHUKD`FU#pk*76F zq&MrF%sC*@bb8yrKC!J8Q>Io2-kddc|DV80o18y}YtR3AlD~ez+sMkpM!yb&oSt*? zl;(oz-`4+``h55K{})cqFEo-asg~|*_cx-ljk_nTS+Z>FwP|K4Pi5t& zzB^Fy=U3#+n60bSZkvmrTeoIUy5!kq$-B11S*c2I3JU$o)@`5vJ3cz}>jimGx$vL) z{@=&@=1*O<>i_;+P)OGQe!jVg`_tStHA}z!Sh1?Av0h7iy8YU%*Q)sWw_UrXeBVwt za^)&W=C8NYKAsnHwWK=KdDSYhe=FB)xpvE52_bE-9U5Bi3o2@0r3|0sy zgS?r1FH++cOs{N=dzNY_J(EA;1V|G|^)cPcj1Wy1PVY(Bm1+c01=86Qy^I-Rz=G+O z2X~}e(NC(juCDIb^XJdgYoLthYytuw-k)|CV`5?|^9lo1SIfcG6;(NP+rhOBsKzt1 z2ni*wxuG2?>393-_Lu(>HzwEleZT#7&8k)R3@kTE6x$Si-?M5~-s;2q*45U8T-{+? zxEJK+ZB=%la$o0cs^Y3u*Uso&XMb>V#U1$@Pv3TWt7!`eYzUn{_3`#U*Y|(ECAa^h zfBe7YbGOHK1z zj!>cA@vkp;_4-fdxYMWa9{2ss`8hJO{+g$E=497A`8l#PX7apPSN!~zX~p6Cf~#=MQR{2zVx)SsT0Gas|gKj{_U@pa9bsY$v< zkN0g|0ctL7xI1@E%rAq;&Dq&?n|!86O0LRE+$+01)NcRNU%9`seU6{c`lzA(IuLB! z?yYNh;$Oet@+r@MbHp6+r+dUFFReqAF4cF?9`G(kMqlfy??Ar|xEjUM;Do?G|VBukwRZ$pc>Gg#UP#d_N@Nzj<6}U0WJ6eg4ml zFKy4QzqZ+E_ZhENP$b-V>K7I^tz`Qxef?j>YMMKHCD`xp|7ILnX_68KY7<~h@qS@x z%kM2!#Rs+?vU!jVl!uq)X;7ausy{EqL zZ4TeO#ztzB+@z^jLPF1~g36AoUSX?N-Fx7ly>Hd4+xyBdfn ztqJP3gS!|Yw>Ga?;==~&SA_+sF*7m6DQIg>W(0LOr%pN9(9j@$!s}FugTn#tn6OLN zFaNmx?lHByHSeQ1bl@W5OPv04EaBx(dGu1wBS{s$HefiBO zyY+i3_0_b0rIbP0l+XkK9^MCL diff --git a/doc/html/a00177.html b/doc/html/a00177.html index 8ce4effa..cc82166a 100644 --- a/doc/html/a00177.html +++ b/doc/html/a00177.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::source_node< Output > Class Template Reference +tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Reference @@ -33,218 +33,74 @@
-
tbb::flow::interface8::source_node< Output > Class Template Reference
+
tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Referenceabstract
- -

An executable node that acts as a source, i.e. it has no predecessors. - More...

- -

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::source_node< Output >:
+Inheritance diagram for tbb::flow::interface8::sender< dependency_msg< T, Factory > >:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::sender< Output > + + +tbb::flow::interface8::proxy_dependency_sender< T, Factory >
- - - - - - - - - - - - - - - - - - - - + + + - - - - +proxy_dependency_sender< T,
+Factory >  +

Public Types

-typedef Output output_type
 The type of the output message, which is complete.
 
-typedef receiver< Output > successor_type
 The type of successors of this node.
 
-typedef null_type input_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
-typedef Output output_type
 The output type of this sender.
 
-typedef receiver< Output > successor_type
 The successor type for this node.
 
+
+typedef receiver
+< dependency_msg< T, Factory > > 
successor_type
 The successor type for this sender.
 
typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
proxy
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 source_node (graph &g, Body body, bool is_active=true)
 Constructor for a node with a successor.
 
source_node (const source_node &src)
 Copy constructor.
 
~source_node ()
 The destructor.
 
-void set_name (const char *name)
 
-bool register_successor (successor_type &r)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &r)
 
-void internal_delete_built_successor (successor_type &r)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-bool try_get (output_type &v)
 Request an item from the node.
 
-bool try_reserve (output_type &v)
 Reserves an item.
 
bool try_release ()
 Release a reserved item. More...
 
-bool try_consume ()
 Consumes a reserved item.
 
-void activate ()
 Activates a node that was created in the inactive state.
 
-template<typename Body >
Body copy_function_object ()
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 resets the source_node to its initial state
 
- - - -

-Friends

-class internal::source_task_bypass< source_node< output_type > >
 
- - - - - - - - + + + + + + + + + + + + + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
+virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
+virtual bool try_get (dependency_msg< T, Factory > &)
 Request an item from the sender.
 
+virtual bool try_reserve (dependency_msg< T, Factory > &)
 Reserves an item in the sender.
 
+ordinary_sender & ordinary_sender ()
 
+bool has_host_successors ()
 
-

Detailed Description

-

template<typename Output>
-class tbb::flow::interface8::source_node< Output >

- -

An executable node that acts as a source, i.e. it has no predecessors.

-

Member Function Documentation

- -
-
-
-template<typename Output >
- - - - - -
- - - - - - - -
bool tbb::flow::interface8::source_node< Output >::try_release ()
-
-inlinevirtual
-
- -

Release a reserved item.

-

true = item has been released and so remains in sender, dest must request or reserve future items

- -

Reimplemented from tbb::flow::interface8::sender< Output >.

- -
-

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00177.png b/doc/html/a00177.png index a8bbd54a4772774bff1e515d5690aa14b5b96d5d..f942f222c63fd3d6b3402da4c6c8425cb9809f9b 100644 GIT binary patch literal 1309 zcmeAS@N?(olHy`uVBq!ia0y~yU@T=|U;Tjf7|tI^@o2(%YT<-zFWW0 zu1(>uFJ0pDj59Ot%{@ z7t0Z^b;w?^veBX1Z^id+qwf8}ky_Wx)nC2t`2YB-O#a(#>1!`4@4gncFnxm>e{$`i zOJ{S>tYp1>H18K%6z`Rv7nj?uIUBv_?3Poj&KX=YJzsbKg-;HDbMo@|=H1q(CNvgY z`}ykWkzG*}Zf5?Ul${wHsoQY1<+u3C>qjmnT%DW$&r0s)G-a3D3pWTvZH~8E9TMMF zb#{%_?zog0lBKn#eRu9JjT4?O|5__$kM^x+do~}wAZ^|GHS*<}?tSV$3+{J*H8wBV zvC>m7IX2x@-?+m4i^^di!r<^b9eTVUVhuvv2wwZ0NIG*ibd(MSn z|3dzl{Srl&{ycN>lzlPp@vQY5?eAS-aJ%33uRm};e?b}3gV?(UpDtfvtP4VpLlE2l z)zT@Gw3be>VEnT}jzP1*LAA6Y!B(zQRw2w&Rw2UwMW?Jnh^MSV+({YK1OU=ZZM@&7 zHgeii^RE%pQh)kx?C4nH;&N!p6<3!8aZ$ zzh1U(>T!4T!% z<@Z!crp+HVZQQqZ_rAU#_Hns_YwvzrV_KDR{g&3PzHfJTox5giyKv^eEvFN5>~M)Znli#jVqn^^s#&^xFif-=h|u4uWP)^E30-6QF?cDdESR~XC z9$xpffBJj>W9OMiCmGzHla;WH>C@qe*=qwdzFs%+4Q{wlv#fI7^ZR}|je1GlH<;Ma z2)i?4?fOug{;ODIV>-)O zWm|*!XTRt*<+-ambRV3pY0zC(DW|-x!TeKHbd9`p?#qAgUNn6b`1wyb`haxh)K8yn z&i8+Qw7pCB!cps-js8OS=U2{q&KoyVEs6Wa1Ln;~OOK!VZ1bNtiM!Rxco5sW_IfJz(y`JQ3^VR;ULByNrkN9WsrWMx?+813L7TpfNy93&{9a6nll+@XPi zahvD11_nl^oXI(ij7%&y)NV2{v2bkg-NeemA&@XTg_}b_;egpmF#!dKhTKWI3Jwhn zw^gF?YOE34eK${h(eb?P*@xDxdbR!XtwpO|Z5NI{A{H9TywNo$Fw|54ne$>021Z`rAw{h!WPPpHidDPL z7TKMt5&`HBou99`#*Tyof(zJ5$31U za|#bj*ynX0{(dV@QhfJ)-N!erLa!buzPV`CE5*8VV)mB*rC%FM34P5rm6SXI^ce~#{|RdI*vZ;6G5`U@ea43uQDVf)d%?YI9{NkzXY+kJOE z`@OT`EiW3?l$d9A$aQnYUsSAea8Gd%zW8{BQ%Q&13nilkoi7T7n4G>i2v216b?HCB zz5tU}E^@$vETiGLj${1r|!GUgr;6S&}(LndSXQBY32aEqzV zT97f;Wnu>dbD)aS0SA#z4g&#KB_T|!A#BSc2l(XqQ>vW&+><5;4HjCHp z%Gh>Mf188&_S}!PpBvJgC(m~KwNZ74(S@KpSB{E(&|!DoXMW>fb;P#P&APwyG;RK8 zy2Nx%>-v0t;S+;%ANTG3vhBvI$VtKXzkb<}xaaHM4Q~0LpXOehIhX5#Yfht{lq7%9 zJiXp6ubWK0%WwYJ5iqy@*XdV{Z`Dig>f2tqx|KhxZ|y~~ztLuq8*N`EahGgVeXMo) z=p(aDaUnU&C-)ZavN64}sCwx&v1t99vtCZq)wAL~)}edhX#dSeC1rE^zkfbhyyvD5 z!}gp)nUB+Sr>Wgt`JqSm99T*5HjA3|soiD$-?KN&WH9?)dw)m$`PJHUav1GBm6Pk! z?t6ax&Np$k=l+-Xp3OeHF8p)Y^%T=%ilMo_nKSMzovu)_E#lJw$FrAzm9&?y-gZ(d zed}+v)3w2O;{0TP&)WC8N^(=c{XNzW*AA!84L07ql_3^XRGVuQmG^CA-Swlyb>H`Y zVSWwnow^S+C+Q|}OLQm+GO{i5aA|1N5E4vK=yG9!2rbK;#Z<%epP4t5d!zd4Y8?g! O1_n=8KbLh*2~7ah!b|f2 diff --git a/doc/html/a00178.html b/doc/html/a00178.html index 491f3e19..8dc436ee 100644 --- a/doc/html/a00178.html +++ b/doc/html/a00178.html @@ -4,7 +4,7 @@ -tbb::spin_mutex Class Reference +tbb::flow::interface8::sequencer_node< T, A > Class Template Reference @@ -33,147 +33,358 @@
-
tbb::spin_mutex Class Reference
+
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
-

A lock that occupies a single byte. +

Forwards messages in sequence order. More...

-

#include <spin_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::spin_mutex:
+Inheritance diagram for tbb::flow::interface8::sequencer_node< T, A >:
- - + + +tbb::flow::interface8::queue_node< T, A > +tbb::flow::interface8::buffer_node< T, A > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 

+Public Types

+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::queue_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::buffer_node< T, A >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef buffer_node< T, A > class_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 spin_mutex ()
 Construct unacquired lock. More...
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 Internal constructor with ITT instrumentation.
 
-void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
+template<typename Sequencer >
 sequencer_node (graph &g, const Sequencer &s)
 Constructor.
 
sequencer_node (const sequencer_node &src)
 Copy constructor.
 
~sequencer_node ()
 Destructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
queue_node (graph &g)
 Constructor.
 
queue_node (const queue_node &src)
 Copy constructor.
 
- Public Member Functions inherited from tbb::flow::interface8::buffer_node< T, A >
buffer_node (graph &g)
 Constructor.
 
buffer_node (const buffer_node &src)
 Copy constructor.
 
bool register_successor (successor_type &r)
 Adds a new successor. More...
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+size_t successor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void copy_successors (successor_list_type &v)
 
bool remove_successor (successor_type &r)
 Removes a successor. More...
 
bool try_get (T &v)
 Request an item from the buffer_node. More...
 
bool try_reserve (T &v)
 Reserves an item. More...
 
bool try_release ()
 Release a reserved item. More...
 
bool try_consume ()
 Consumes a reserved item. More...
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Protected Types

enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A >
+::size_type 
size_type
 
+typedef buffer_node< T, A >
+::buffer_operation 
sequencer_operation
 
- Protected Types inherited from tbb::flow::interface8::queue_node< T, A >
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef buffer_node< T, A > base_type
 
+typedef base_type::size_type size_type
 
+typedef base_type::buffer_operation queue_operation
 
- Protected Types inherited from tbb::flow::interface8::buffer_node< T, A >
enum  op_type {
+  reg_succ, +rem_succ, +req_item, +res_item, +
+  rel_res, +con_res, +put_item, +try_fwd_task, +
+  add_blt_succ, +del_blt_succ, +add_blt_pred, +del_blt_pred, +
+  blt_succ_cnt, +blt_pred_cnt, +blt_succ_cpy, +blt_pred_cpy +
+ }
 
enum  op_stat { WAIT =0, +SUCCEEDED, +FAILED + }
 
+typedef size_t size_type
 
+typedef
+internal::aggregating_functor
+< class_type, buffer_operation
handler_type
 
+typedef sender< T >
+::built_successors_type 
built_successors_type
 
+typedef receiver< T >
+::built_predecessors_type 
built_predecessors_type
 
- - - + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class scoped_lock
 

+Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::queue_node< T, A >
+void internal_forward_task (queue_operation *op)
 Tries to forward valid items to successors.
 
+void internal_pop (queue_operation *op)
 
+void internal_reserve (queue_operation *op)
 
+void internal_consume (queue_operation *op)
 
+void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::buffer_node< T, A >
+internal::round_robin_cache< T,
+null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+bool forwarder_busy
 
+internal::aggregator
+< handler_type,
+buffer_operation
my_aggregator
 

Detailed Description

-

A lock that occupies a single byte.

-

A spin_mutex is a spin mutex that fits in a single byte. It should be used only for locking short critical sections (typically less than 20 instructions) when fairness is not an issue. If zero-initialized, the mutex is considered unheld.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::spin_mutex::spin_mutex ()
-
-inline
-
- -

Construct unacquired lock.

-

Equivalent to zero-initialization of *this.

- -

References internal_construct().

+

template<typename T, typename A = cache_aligned_allocator<T>>
+class tbb::flow::interface8::sequencer_node< T, A >

-
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_mutex::try_lock ()
-
-inline
-
- -

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -

References tbb::aligned_space< T, N >::begin().

- -
-
-
The documentation for this class was generated from the following file:
    -
  • spin_mutex.h
  • +

    Forwards messages in sequence order.

    +

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00178.png b/doc/html/a00178.png index 5dfc58974fe23922ad2b6e7edde1e485bc375a30..2190e2e8ed3da24541acc59fc2348d86298b606c 100644 GIT binary patch literal 4402 zcmeAS@N?(olHy`uVBq!ia0y~yUa zk1M}dH?M|Q?tI4Dt@{-t8ygzd{!0tJr z2g&b0v3t{{sBHc_`hMAK|4sp!z3rF#=1Wo8_3ID z3WV=H8&GE5+QSbEI$kHwnVu-ow!`jIrKJpCd)%|91r{<@e4(L*bv~fb08v4qqIaLG zem0st-NzjqXsX(wp?g!7u39yHO~}<9s@iL}Uh@uHwW{i*S7@ky^0>Z(<7n}R|gPg}F)S`GzlYZa>=h)ADZq_RXtSRUN*o{91h7 zs#mtfy{l&B)}J}G<9lM6nd!@-pz?Ru`+i@KmXYjhe&6?R){V!Dx0>bo@4fmy{b_h@ zNZ)izyH%_9rACMSTex$lebVbGd-SxAi~HZHH+=Gtr|y4IXsEIMq^auDAA4{9^r5O& zS?+#yWl6=Wz58^u-~U_@68iV#veSD^wBOH|-Ojx2{G08Yih8bJ-~aiytaDk`t<2|d zr=P60dTS-SQd?(GKqcEx7axQB-N|4I(q_pMI%$m8?3 z`#)c@dB69al)s(s?bka_cAWN{E)?UpYi_k<@$MrPn?HYj#-49$$+we7I{#AC?3{W{ zkUM(jPt3cK`{nJbP}95r;==B2?NM{TCU&xW*^}RqmjBnEoww|N>h`PlFCFZEe42hn zE${38y0TwidVWUF@VWiQ>vD8RsO{60Yvx@4np!&l`iGKy>03Kuzi(gId;3)5S8o3x zGs%)W$C^+7J~x-$PigCq&1vPcwyoJ}c5~m{spT~xY4ayO4KBZzvQhWi1@nDfW~onO zPp^n}=;q#&=4F7rx%1AtRj)MfpE>n$W6X)=vE8ZlvgXx=c2$u- zu1|g@J}>pD*^8NLddwrIB+Z<9bMCvgr?QbhzqvpCC0d(*ByC( z`tHs;mdE?lHyiCf`K2g(;>?)bzw7_)T(jrXVx!uvW;q}4{_9%*O#bXC@8@Zj3*tfU z?~UB~?bExOFaNK9{wc94>!G9mI^MZ`^WtB}z1po98e0G1?;4#uXHUKD`FU#pk*76F zq&MrF%sC*@bb8yrKC!J8Q>Io2-kddc|DV80o18y}YtR3AlD~ez+sMkpM!yb&oSt*? zl;(oz-`4+``h55K{})cqFEo-asg~|*_cx-ljk_nTS+Z>FwP|K4Pi5t& zzB^Fy=U3#+n60bSZkvmrTeoIUy5!kq$-B11S*c2I3JU$o)@`5vJ3cz}>jimGx$vL) z{@=&@=1*O<>i_;+P)OGQe!jVg`_tStHA}z!Sh1?Av0h7iy8YU%*Q)sWw_UrXeBVwt za^)&W=C8NYKAsnHwWK=KdDSYhe=FB)xpvE52_bE-9U5Bi3o2@0r3|0sy zgS?r1FH++cOs{N=dzNY_J(EA;1V|G|^)cPcj1Wy1PVY(Bm1+c01=86Qy^I-Rz=G+O z2X~}e(NC(juCDIb^XJdgYoLthYytuw-k)|CV`5?|^9lo1SIfcG6;(NP+rhOBsKzt1 z2ni*wxuG2?>393-_Lu(>HzwEleZT#7&8k)R3@kTE6x$Si-?M5~-s;2q*45U8T-{+? zxEJK+ZB=%la$o0cs^Y3u*Uso&XMb>V#U1$@Pv3TWt7!`eYzUn{_3`#U*Y|(ECAa^h zfBe7YbGOHK1z zj!>cA@vkp;_4-fdxYMWa9{2ss`8hJO{+g$E=497A`8l#PX7apPSN!~zX~p6Cf~#=MQR{2zVx)SsT0Gas|gKj{_U@pa9bsY$v< zkN0g|0ctL7xI1@E%rAq;&Dq&?n|!86O0LRE+$+01)NcRNU%9`seU6{c`lzA(IuLB! z?yYNh;$Oet@+r@MbHp6+r+dUFFReqAF4cF?9`G(kMqlfy??Ar|xEjUM;Do?G|VBukwRZ$pc>Gg#UP#d_N@Nzj<6}U0WJ6eg4ml zFKy4QzqZ+E_ZhENP$b-V>K7I^tz`Qxef?j>YMMKHCD`xp|7ILnX_68KY7<~h@qS@x z%kM2!#Rs+?vU!jVl!uq)X;7ausy{EqL zZ4TeO#ztzB+@z^jLPF1~g36AoUSX?N-Fx7ly>Hd4+xyBdfn ztqJP3gS!|Yw>Ga?;==~&SA_+sF*7m6DQIg>W(0LOr%pN9(9j@$!s}FugTn#tn6OLN zFaNmx?lHByHSeQ1bl@W5OPv04EaBx(dGu1wBS{s$HefiBO zyY+i3_0_b0rIbP0l+XkK9^MCL delta 685 zcmdm_bdy!FGr-TCmrII^fq{Y7)59f*fq~%#0|P?<2Qvc$gUY*;K@%0N>X|Y;T^vIy z7~jr)ed(0~k860^oSX0eA6vfdl91lkzN_zNJle6;i9^Tf(*7AUV;yIx9KFskb%}@6 zf=MEtu@}Doh@bJ+_q$ryw51;(*I$0@-|SU%-+95bzKn}s9?hKf^Z5C>zk`amM=wuN z^Y+jC^kKgLx$7RX_j+f?_pH7BHfQ;qt@VxP!lZM)Zkg+E_Jn7%b?D3;>o%R7_iAdG zu>G{J+jF%0BVA@!++G;EeetcL-#RKYrB^al zTwA6t-dn%d{`AFjH-1~r%DTiIy4_=~-&I}p^Jk6jtlh=$-@YoZ=-ZN4UYAZ6HBMU+ z^?q-^>Ps0}*14Ol*L(FP>2lNxds;2oHv4(7|yu&uAWns=!MSDQcI>YvhL_`vtd-qtalMnnB?ZdsFX=8!9Axxcp;Fzo)tc;RWR>EAPP#@j2e*GS|U z%=I_g^?z>txubU0i%#RF{JvB$a&`(`!nI>5YV zseZ${@^1z&{(kOWFt_2Y+m)+k4dq`i%9LuT1~Qjy_Wb?JzdJCp^zt(4SksJEp7sHy zjJtkaGGg%kEBPX(&`;N#p|-b!$>kCQYsV5sE& -tbb::spin_rw_mutex_v3 Class Reference +tbb::flow::interface8::source_node< Output > Class Template Reference @@ -33,151 +33,192 @@
-
tbb::spin_rw_mutex_v3 Class Reference
+
tbb::flow::interface8::source_node< Output > Class Template Reference
-

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. +

An executable node that acts as a source, i.e. it has no predecessors. More...

-

#include <spin_rw_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::spin_rw_mutex_v3:
+Inheritance diagram for tbb::flow::interface8::source_node< Output >:
- - + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::sender< Output >
- - - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef Output output_type
 The type of the output message, which is complete.
 
+typedef receiver< Output > successor_type
 The type of successors of this node.
 
+typedef null_type input_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< Output >
+typedef Output output_type
 The output type of this sender.
 
+typedef receiver< Output > successor_type
 The successor type for this node.
 
+typedef
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
+typedef
+built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 
~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
 
-void lock ()
 Acquire writer lock.
 
bool try_lock ()
 Try acquiring writer lock (non-blocking) More...
 
-void unlock ()
 Release lock.
 
-void lock_read ()
 Acquire reader lock.
 
bool try_lock_read ()
 Try acquiring reader lock (non-blocking) More...
 
+template<typename Body >
 source_node (graph &g, Body body, bool is_active=true)
 Constructor for a node with a successor.
 
source_node (const source_node &src)
 Copy constructor.
 
~source_node ()
 The destructor.
 
+void set_name (const char *name)
 
+bool register_successor (successor_type &r)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &r)
 Removes a successor from this node.
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+bool try_get (output_type &v)
 Request an item from the node.
 
+bool try_reserve (output_type &v)
 Reserves an item.
 
bool try_release ()
 Release a reserved item. More...
 
+bool try_consume ()
 Consumes a reserved item.
 
+void activate ()
 Activates a node that was created in the inactive state.
 
+template<typename Body >
Body copy_function_object ()
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - + + + +

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = false
 

+Protected Member Functions

+void reset_node (reset_flags f)
 resets the source_node to its initial state
 
- - - + + +

-Protected Types

-typedef intptr_t state_t
 

+Friends

+class internal::source_task_bypass< source_node< output_type > >
 
- - - - -

-Protected Attributes

state_t state
 State of lock. More...
 
- - - - - - - - - - - + + + + + + + +

-Static Protected Attributes

-static const state_t WRITER = 1
 
-static const state_t WRITER_PENDING = 2
 
-static const state_t READERS = ~(WRITER | WRITER_PENDING)
 
-static const state_t ONE_READER = 4
 
-static const state_t BUSY = WRITER | READERS
 

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 

Detailed Description

-

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::try_lock ()
-
-inline
-
+

template<typename Output>
+class tbb::flow::interface8::source_node< Output >

-

Try acquiring writer lock (non-blocking)

-

Return true if lock acquired; false otherwise.

- -
-
- +

An executable node that acts as a source, i.e. it has no predecessors.

+

Member Function Documentation

+
+
+template<typename Output >
- -
- + @@ -185,49 +226,25 @@ static const state_t 
bool tbb::spin_rw_mutex_v3::try_lock_read bool tbb::flow::interface8::source_node< Output >::try_release ( ) BUSY<
-inline
-
- -

Try acquiring reader lock (non-blocking)

-

Return true if reader lock acquired; false otherwise.

- -
-
-

Member Data Documentation

- -
-
- - - - +inlinevirtual
- - - - -
state_t tbb::spin_rw_mutex_v3::state
-
-protected
-

State of lock.

-

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

+

Release a reserved item.

+

true = item has been released and so remains in sender, dest must request or reserve future items

-

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().

+

Reimplemented from tbb::flow::interface8::sender< Output >.


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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00179.png b/doc/html/a00179.png index ff1efc94eefd31b2d4083e828ac11551d2a93292..a8bbd54a4772774bff1e515d5690aa14b5b96d5d 100644 GIT binary patch literal 1766 zcmeAS@N?(olHy`uVBq!ia0y~yU=m|sVCdjrW?*3G$qM?-z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0~XC z9$xpffBJj>W9OMiCmGzHla;WH>C@qe*=qwdzFs%+4Q{wlv#fI7^ZR}|je1GlH<;Ma z2)i?4?fOug{;ODIV>-)O zWm|*!XTRt*<+-ambRV3pY0zC(DW|-x!TeKHbd9`p?#qAgUNn6b`1wyb`haxh)K8yn z&i8+Qw7pCB!cps-js8OS=U2{q&KoyVEs6Wa1Ln;~OOK!VZ1bNtiM!Rxco5sW_IfJz(y`JQ3^VR;ULByNrkN9WsrWMx?+813L7TpfNy93&{9a6nll+@XPi zahvD11_nl^oXI(ij7%&y)NV2{v2bkg-NeemA&@XTg_}b_;egpmF#!dKhTKWI3Jwhn zw^gF?YOE34eK${h(eb?P*@xDxdbR!XtwpO|Z5NI{A{H9TywNo$Fw|54ne$>021Z`rAw{h!WPPpHidDPL z7TKMt5&`HBou99`#*Tyof(zJ5$31U za|#bj*ynX0{(dV@QhfJ)-N!erLa!buzPV`CE5*8VV)mB*rC%FM34P5rm6SXI^ce~#{|RdI*vZ;6G5`U@ea43uQDVf)d%?YI9{NkzXY+kJOE z`@OT`EiW3?l$d9A$aQnYUsSAea8Gd%zW8{BQ%Q&13nilkoi7T7n4G>i2v216b?HCB zz5tU}E^@$vETiGLj${1r|!GUgr;6S&}(LndSXQBY32aEqzV zT97f;Wnu>dbD)aS0SA#z4g&#KB_T|!A#BSc2l(XqQ>vW&+><5;4HjCHp z%Gh>Mf188&_S}!PpBvJgC(m~KwNZ74(S@KpSB{E(&|!DoXMW>fb;P#P&APwyG;RK8 zy2Nx%>-v0t;S+;%ANTG3vhBvI$VtKXzkb<}xaaHM4Q~0LpXOehIhX5#Yfht{lq7%9 zJiXp6ubWK0%WwYJ5iqy@*XdV{Z`Dig>f2tqx|KhxZ|y~~ztLuq8*N`EahGgVeXMo) z=p(aDaUnU&C-)ZavN64}sCwx&v1t99vtCZq)wAL~)}edhX#dSeC1rE^zkfbhyyvD5 z!}gp)nUB+Sr>Wgt`JqSm99T*5HjA3|soiD$-?KN&WH9?)dw)m$`PJHUav1GBm6Pk! z?t6ax&Np$k=l+-Xp3OeHF8p)Y^%T=%ilMo_nKSMzovu)_E#lJw$FrAzm9&?y-gZ(d zed}+v)3w2O;{0TP&)WC8N^(=c{XNzW*AA!84L07ql_3^XRGVuQmG^CA-Swlyb>H`Y zVSWwnow^S+C+Q|}OLQm+GO{i5aA|1N5E4vK=yG9!2rbK;#Z<%epP4t5d!zd4Y8?g! O1_n=8KbLh*2~7ah!b|f2 delta 733 zcmaFH+sUTb8Q|y6%O%Cdz`(%k>ERN@z`*c=fq@}_gPDPWLFL`apoxlB^-ME7T^vIy z7~jslJ?XOsPmBGkWvlN0?=?SG<{(q!^)E$vvL`#ghm)`J&uIcqJD52pJ&|u-p;CEB zLCbUA1=U|t|Ap^eD>=P!lTPpS|FZ?_XRT2AZ0lmO#@*!c$48YsACLb!wzG7`n|XRO zPufhLt@E+?c};)mp*F*RM{gP5^|M-9AFd>|R_Nv{&AI;DQg}97ht8a_vgpLTS99m7 zmFdpTzZoWI>^l3)rG=r}7kllj6`R!5%6pxA^3{jO#HRgmJL0?O@^giYhg2%1CuL^s z%uidqis@DK1&h;PUu_Gr_u6vt-Yl2rOgSlvnj#rTHGKSIXVn>s%-+^9>(b`4D$-Cv8|atsekb%Y;CgKH+mcvMD_-R-DpxDs z*6Mh^KNz@Z?1Px=cBenH7EStcS;9s2q%d2c=cg9- zivmtN7#ZyP>>I2f=(+s=mv`uko{PNA`-5N1Tp0737OK}bsPnio+9YalJ>YZ>Wbl{h zVyZY4AaX#sZ4tvf0}<8_Eekc!l>F#gq}WoxF2L|7S%CFJi=)T^VLhQ*3*EZf@7d}* z9-D6UZ@B!U-G%X7vh}?!RbLs_|2VsTX~mAyA7VU$KN|EfWGcRu686{}xbf%l3+L)< z>^x1>%+)vZ{oG!2s&Ap1)J^qGSA!kDScjVnD_g(Oda87Ll4EzA%iCX~uF@`NukP_H z`8DOyQkVbYF4ngs7Ja_ow`keJr7re&dtOPIMovFDdv@%3)2`~X*~cXxD6A9G-TiJ> zeDW)Wi(A#V?tZuVpZ%R4hFul)E)C)zITvl*ImOt^M4eHGZx&-tGAIa|L7oNqeD57+ ej)V69nAdbSFWP4@RhWT+fx*+&&t;ucLK6TG0Z$ -tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference +tbb::spin_mutex Class Reference @@ -33,138 +33,147 @@
-
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
+
tbb::spin_mutex Class Reference
-

split_node: accepts a tuple as input, forwards each element of the tuple to its +

A lock that occupies a single byte. More...

-

#include <flow_graph.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::flow::interface8::split_node< TupleType, Allocator >:
+Inheritance diagram for tbb::spin_mutex:
- - -tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface8::graph_node + +
- - - - - - - - - - - - - - - - - - - - + + + +

-Public Types

-typedef
-base_type::output_ports_type 
output_ports_type
 
-typedef base_type::output_type output_type
 
-typedef TupleType input_type
 
-typedef Allocator allocator_type
 
- Public Types inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-typedef TupleType input_type
 
-typedef null_type output_type
 
-typedef
-internal::wrap_tuple_elements
-< N,
-internal::multifunction_output,
-TupleType >::type 
output_ports_type
 
-typedef
-internal::multifunction_input
-< input_type,
-output_ports_type, Allocator > 
fInput_type
 
-typedef
-internal::function_input_queue
-< input_type, Allocator > 
input_queue_type
 

+Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

Public Member Functions

split_node (graph &g)
 
split_node (const split_node &other)
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
multifunction_node (graph &g, size_t concurrency, Body body)
 
multifunction_node (const multifunction_node &other)
 
-void set_name (const char *name)
 
-void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
 spin_mutex ()
 Construct unacquired lock. More...
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 Internal constructor with ITT instrumentation.
 
+void lock ()
 Acquire lock.
 
bool try_lock ()
 Try acquiring lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
- - - - - - - - - - - - - - + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-void reset_node (reset_flags f)
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
- Static Protected Attributes inherited from tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
-static const int N
 

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
+ + +

+Friends

+class scoped_lock
 

Detailed Description

-

template<typename TupleType, typename Allocator = cache_aligned_allocator<TupleType>>
-class tbb::flow::interface8::split_node< TupleType, Allocator >

+

A lock that occupies a single byte.

+

A spin_mutex is a spin mutex that fits in a single byte. It should be used only for locking short critical sections (typically less than 20 instructions) when fairness is not an issue. If zero-initialized, the mutex is considered unheld.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + +
tbb::spin_mutex::spin_mutex ()
+
+inline
+
+ +

Construct unacquired lock.

+

Equivalent to zero-initialization of *this.

+ +

References internal_construct().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_mutex::try_lock ()
+
+inline
+
+ +

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.

-

split_node: accepts a tuple as input, forwards each element of the tuple to its

-

The documentation for this class was generated from the following file:
+
+
The documentation for this class was generated from the following file:
    +
  • spin_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00180.png b/doc/html/a00180.png index a0bcfb49c5dde3f875c4c5f19ecaff9172e75f8f..5dfc58974fe23922ad2b6e7edde1e485bc375a30 100644 GIT binary patch delta 685 zcmeyWag$ZCGr-TCmrII^fq{Y7)59f*fq~%#0|P?<2Qvc$gUY*;K@%0N>X|Y;T^vIy z7~jr)ed(0~k860^oSX0eA6vfdl91lkzN_zNJle6;i9^Tf(*7AUV;yIx9KFskb%}@6 zf=MEtu@}Doh@bJ+_q$ryw51;(*I$0@-|SU%-+95bzKn}s9?hKf^Z5C>zk`amM=wuN z^Y+jC^kKgLx$7RX_j+f?_pH7BHfQ;qt@VxP!lZM)Zkg+E_Jn7%b?D3;>o%R7_iAdG zu>G{J+jF%0BVA@!++G;EeetcL-#RKYrB^al zTwA6t-dn%d{`AFjH-1~r%DTiIy4_=~-&I}p^Jk6jtlh=$-@YoZ=-ZN4UYAZ6HBMU+ z^?q-^>Ps0}*14Ol*L(FP>2lNxds;2oHv4(7|yu&uAWns=!MSDQcI>YvhL_`vtd-qtalMnnB?ZdsFX=8!9Axxcp;Fzo)tc;RWR>EAPP#@j2e*GS|U z%=I_g^?z>txubU0i%#RF{JvB$a&`(`!nI>5YV zseZ${@^1z&{(kOWFt_2Y+m)+k4dq`i%9LuT1~Qjy_Wb?JzdJCp^zt(4SksJEp7sHy zjJtkaGGg%kEBPX(&`;N#p|-b!$>kCQYsV5sE&E1w3N0HF{+s$<7P)NVYY3qhH#9UfF#6uTd-1L; zh_G!tV!^`Fqh)vx%AY_s|8MxI@cVadH$e=jt}HJvDR(db?jZD7K)_(tk&5!~0n6r{ zyZ@@>=Z>lOxZc;Fzb9?K?!~*lckc{Ujwvc6gxuV>dw2UM!IRS;znS*-?&WudmqBhi z?9t=waA3uz>hf~_rxS0i&e_-g_3!)3%RsLGtL}}EOtqiA{QLaR$DgVg-n(nN1LBO` z<>lW4$~ONjEc-uO;{7|h$RrsiCby|~ckiy&n1A%gmA!UCkMG`f_Cgr*RP5AccPD$V z`{&oKto>V^x!L#6yLT_%{kyCRapd0JyZ@(EGVj{mK1HIvp&>9;`29P%>m@&5zPtA^ zaGv>s-PInQg&Z6bp=KZ7z1x57bIW^>7wy9#7RT<{ZM|#v;@#B>5JgFp@voZr2K!t# zISQeAnZV$m&wd36c(4K#_yPg~0tG4i>r{^`f`uO(K#0EAoF~%`N)rtYk3oUpfCLWM zf93`oh#=}-h_j%AKNs{lP{EId@gN(K@CRp@gTVGHC@4H=uX9AQ$-%+l0RP`6h&$k< z{4Z8URAB#wx(<5KUt%@auMi0@u2}OqbJnsM%QCwllvHbQXlO{ND~RY#lzR+HcCegN z0TOf#y&3>YL*NXR?9~$vQOm0e&r-{dkf8ADMW5%7f8F0x6D6v%{^pJ+&+ohP?w#%WId9+9$;7w%mwz|@e@yyE z&968M)%zLNu~MqXRk(@wLa_&6C|8n_GCac1QKq*M4C0pdh(8XL8BMLTfqseucU#>!a^^O$$GlCC_^O z^z(3?_75JvQ~f_jgA&nI$2Z4+r0$M*v+?t#c~xa|zR%m+b<=HI{mV63+nVq1j*Tng zo-;SLr1-S@)$X@%+t2T;o%Q#kz3e5MBVxSMH=CE9@BbP6-uGNl*R#VlMi;A{tL|jQ z{oHi3PUUvhmfKCrdm2}_S?fPKz5L1N@Y0V8*3Nfkt~zTzLt_0Zs~NeE?sbI=?phNQ zqH{(n=U3#EwbA)TRmN?(lUJ=;vFg|Px5s~!rO&weF5SQE`d;6UH|zHC9(sFRtHu82 ziFqOUNq^*RpC{}8JNIIL*GK=yxx&k;&u=P!nsp_fH`6k4{rtC2ool|z{kfk1;2ncq z@5lS|CY_JJ`rL5e@4R!`@7`x6?OF9Iq0au8eciKzHJ1C2{&<{Ye@y)A{mzfC--4r6 zVPDtB{`qIw{s(@^KmJ20Y~H&?*B{*wBY-4gM4zEyqGsF&&H z%Xj=$b7a5peX}IKW=HxJo@8u_}8C1>^ndHgeHvd88!d+wmjC2dH%3QFZ$_co#^vozUQ8A ze)RMB+e5|8m9LNQ-ER2rMN(Z@sAy;?`^U_l`D-V?jw!iUy6oN0j~D;#yMMQA&++}+ zz4KGIPfjRjYQme))VEoREuilK1TX%}{4B>$&gu zvaQqYo^3wYXF6S9_R{&Z-MfFg^O+alX3X`9GgSTmJlxbUE>!gSnSVORmY?IdO*O&h&`f^+B?%n^Z!g*i1Z@zo?uk!z!BDQn;@>{-fFMIO; z?<%!pt5-dmb2-%1e$vg*(E2USptjB>?xa6a|Nhsk)6ctmw^n4m)TMfh+jsB&-<5B3 z;l2OK|Fxfl9*2eof`Zi9GN-4!+#T9pvY!S?k1JM5dBIx;J|I7W%l?Hb$9C^t3~EFi zpF*s{FLIBUUw$cqgiSgkd;H<;hNC9FmlYHqy#K()$jEs3q*Z%E!@`tGXNLnbHl0&c zNKnbokGwA+V6bRSF$af)*EDk$mLAR5pmx-!eY-aAQ&dQBhWT-?bAT5Hc%VG8Ps+JH9`(71U2nIO_K)~;4PyJQ2Pwju(8+zYDt0` zJu*?CHXNui#HVXWsd0aH`Ype#iG(vn1Ox;O79h1Y6hW3OMzknY$m0L%POh<%zyAN( z)61(8D$hRK|2s4^H2U)8S+@o3Ud=bH;@Pz7758r4`|tmM3=Rdi9AZO1KNhVGx%&9V zmcOqo^{39?^6TW?)vNxofr3OLG^s|G@p-`7Rln}6I=TGd|H!Ad^H;6fRyW1ZzGFw_ z#qIAtcG<03HSfoxUoS5y7{-Nu%>`?_dSCkSef8_n`-v61cM|Qr5 zDg0lox${f0?fiP3q(5`qHedQY_4@wLn~po2yV}1`?s1IipC2=}u32@nu=_yd_s`3$ zuinm!yKwyJ%j?t6&Hr5ZRBPIF!+pl*SHEApN(&Ty2CMd)AJd)Nst?&6%u8)rYXU-?hx*#Ag*|HD5%KmYUS)Y+@uUHh$02t#^8Kk|?KIDX#7O7Hph zgsM4zXB*b-d#$y1p38^QAKzd7RLCn`|K@Q_-TbLH|J2An?w@(@*pJ1>b9?^Zb({xE zx`C?4_IG_e{XVZpfBg-%4|_h{@A|m+OO?>U?pLpa*X^pzl;8aDz3=7E68lT{Nk5)l zF+cv7d3yyY&zezE{pGtQOpH|JV25 zKddsJg9_}>Q2WWypjf@?pT^~<%U8XUuc*4aG%51$l8^7dfBgAkz2H2N^{amIf}I-* zs`~Xm=}51CdcW)3{dbR7i(Q_=v3}JrU%0dus1=e0@06{ggn#vAiPcdg4DXiZg9{@8 zfr1c_z2L%S)AsF8EI@?|3yVwyD3U#KJ<=a*bxj z{fj}2Vi@{fHsRvn;E)IivtnW4Q2|vpZd0f7F)}ireAEW&lrMF5IN-2p2WVI!@}+=) z!33Q=P@f!C`T8$*i?4geo_lLzJO7RQ(OoBhhi)*nUA^o5 zrfXtm)fhGHDg3bhLPOn?{{BwV5&-wiF zx33GIzt(s+-M+2yXCe24;{{^A<*T;e)k&^Nf3jM=rQv_`89k_pFXsex_q(sUYbWRU zXGQ$>JyUho&$(*HHSf+l!H?aipZ|?J_bsW$c#itj)8-kL_wG(yKd-=+gX2f-%uq-e z?73uC_?&V3xqEZ7(*i5Z~&V_%pO;esyH(^T`tX`JTtw?!UhFo#BMvH?|wr$^Z20 zQ9tqUsL^83;Lnz_x6gl7rR*6xhB=_ywkg!i%)9o zwCB~|(YtdmZ{Ejl>H9?$zt7$;{(I->+RfFMU$b7{sLQ@t{;{?5zL*`mc$ng}KXXG& zQ{3}qb -tbb::structured_task_group Class Reference +tbb::spin_rw_mutex_v3 Class Reference @@ -33,83 +33,201 @@
-
tbb::structured_task_group Class Reference
+
tbb::spin_rw_mutex_v3 Class Reference
+ +

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. + More...

+ +

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::structured_task_group:
+Inheritance diagram for tbb::spin_rw_mutex_v3:
- - -tbb::internal::task_group_base + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
-task_group_status wait ()
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
spin_rw_mutex_v3 ()
 Construct unacquired mutex.
 
~spin_rw_mutex_v3 ()
 Destructor asserts if the mutex is acquired, i.e. state is zero.
 
+void lock ()
 Acquire writer lock.
 
bool try_lock ()
 Try acquiring writer lock (non-blocking) More...
 
+void unlock ()
 Release lock.
 
+void lock_read ()
 Acquire reader lock.
 
bool try_lock_read ()
 Try acquiring reader lock (non-blocking) More...
 
+ + + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = true
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = false
 
+ + + +

+Protected Types

+typedef intptr_t state_t
 
+ + + +

+Protected Attributes

state_t state
 State of lock. More...
 
- - - - - - - - - - - - - - - + + + + + + + + + + +

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

+Static Protected Attributes

+static const state_t WRITER = 1
 
+static const state_t WRITER_PENDING = 2
 
+static const state_t READERS = ~(WRITER | WRITER_PENDING)
 
+static const state_t ONE_READER = 4
 
+static const state_t BUSY = WRITER | READERS
 
+

Detailed Description

+

Fast, unfair, spinning reader-writer lock with backoff and writer-preference.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_rw_mutex_v3::try_lock ()
+
+inline
+
+ +

Try acquiring writer lock (non-blocking)

+

Return true if lock acquired; false otherwise.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::spin_rw_mutex_v3::try_lock_read ()
+
+inline
+
+ +

Try acquiring reader lock (non-blocking)

+

Return true if reader lock acquired; false otherwise.

+ +
+
+

Member Data Documentation

+ +
+
+ + + + + +
+ + + + +
state_t tbb::spin_rw_mutex_v3::state
+
+protected
+
+ +

State of lock.

+

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

+ +

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().

+ +
+

The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
  • spin_rw_mutex.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00181.png b/doc/html/a00181.png index f9335edceafd7f8bc89407edcd399573fb4cb1e3..ff1efc94eefd31b2d4083e828ac11551d2a93292 100644 GIT binary patch delta 733 zcmX@e-pQue8Q|y6%O%Cdz`(%k>ERN@z`*c=fq@}_gPDPWLFL`apoxlB^-ME7T^vIy z7~jslJ?XOsPmBGkWvlN0?=?SG<{(q!^)E$vvL`#ghm)`J&uIcqJD52pJ&|u-p;CEB zLCbUA1=U|t|Ap^eD>=P!lTPpS|FZ?_XRT2AZ0lmO#@*!c$48YsACLb!wzG7`n|XRO zPufhLt@E+?c};)mp*F*RM{gP5^|M-9AFd>|R_Nv{&AI;DQg}97ht8a_vgpLTS99m7 zmFdpTzZoWI>^l3)rG=r}7kllj6`R!5%6pxA^3{jO#HRgmJL0?O@^giYhg2%1CuL^s z%uidqis@DK1&h;PUu_Gr_u6vt-Yl2rOgSlvnj#rTHGKSIXVn>s%-+^9>(b`4D$-Cv8|atsekb%Y;CgKH+mcvMD_-R-DpxDs z*6Mh^KNz@Z?1Px=cBenH7EStcS;9s2q%d2c=cg9- zivmtN7#ZyP>>I2f=(+s=mv`uko{PNA`-5N1Tp0737OK}bsPnio+9YalJ>YZ>Wbl{h zVyZY4AaX#sZ4tvf0}<8_Eekc!l>F#gq}WoxF2L|7S%CFJi=)T^VLhQ*3*EZf@7d}* z9-D6UZ@B!U-G%X7vh}?!RbLs_|2VsTX~mAyA7VU$KN|EfWGcRu686{}xbf%l3+L)< z>^x1>%+)vZ{oG!2s&Ap1)J^qGSA!kDScjVnD_g(Oda87Ll4EzA%iCX~uF@`NukP_H z`8DOyQkVbYF4ngs7Ja_ow`keJr7re&dtOPIMovFDdv@%3)2`~X*~cXxD6A9G-TiJ> zeDW)Wi(A#V?tZuVpZ%R4hFul)E)C)zITvl*ImOt^M4eHGZx&-tGAIa|L7oNqeD57+ ej)V69nAdbSFWP4@RhWT+fx*+&&t;ucLK6U#*-rKV delta 918 zcmeBVJIJos8Q|y6%O%Cdz`(%k>ERN@z`(GXfq|iegPDPWVRpIJ`iY8G^~?dDE{-7; zjBn?@F8XA}!w~MZyz0NX-A?y19$t~a8au;Cg?;Nce7k+`LtD8-STRGpVSmCv@aB!Soq?H+1VNPcLJCF&OGqRZ2OzV z)0X8r8D_mLVEe3gy2iZl{^J{0*2mtvQW$4;!|vPZ`#K_PwW8wxEh~uR59%qZmT}Ks zySH~m@!~hO{-J@oE0QAX&3}Gax#HTEZ#nD!Zu$IW)%Vy-3vcAfZryMDI!14c`ties z>%Ofk-Zta@iC*_Pt6OiCETXpN%-okyFU+OCh z!$NBnU#?jt4GR!eQ}xG`|Hb&W!_@nQ~PG|@{PO)jQ{A@&zb(o zeBasHb;ZBzO3wvPd$%@m?TpuRwwBJ@c>X^7I_;eob}Y>MW_Qf`PWR_c556%zTDP`x z|JVDg{Iz3?9tGbRAsuwf{#OeR=3TIJ^vSp&w2j; zdfVqqbuA`$c8Z?6U8uMJ+H2FI$Jfuf+Wofuo3m&+kL~*^^ZBcpx2DIRdA=)ehx_}8 zr0NU(*A|y;d37wV3>2PMHm|?R+pzyZ)l2^JdGaTU*PJ>RcJ1Fn;{)gK*oitEeg1^) qfaxVkg?S}x9qFrXDk;T&lz)G!f0_MyNkaw(1_n=8KbLh*2~7Zw;n9l# diff --git a/doc/html/a00182.html b/doc/html/a00182.html index ad4a01c0..7b831981 100644 --- a/doc/html/a00182.html +++ b/doc/html/a00182.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference +tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference @@ -33,21 +33,138 @@
+
-
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
+
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
-
The documentation for this class was generated from the following file:

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00182.png b/doc/html/a00182.png new file mode 100644 index 0000000000000000000000000000000000000000..a0bcfb49c5dde3f875c4c5f19ecaff9172e75f8f GIT binary patch literal 5237 zcmeAS@N?(olHy`uVBq!ia0y~yU_Zvdz;J+rnSp`9QT^vf1_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!F#W2#cqSV@L(#+q*BT9E1w3N0HF{+s$<7P)NVYY3qhH#9UfF#6uTd-1L; zh_G!tV!^`Fqh)vx%AY_s|8MxI@cVadH$e=jt}HJvDR(db?jZD7K)_(tk&5!~0n6r{ zyZ@@>=Z>lOxZc;Fzb9?K?!~*lckc{Ujwvc6gxuV>dw2UM!IRS;znS*-?&WudmqBhi z?9t=waA3uz>hf~_rxS0i&e_-g_3!)3%RsLGtL}}EOtqiA{QLaR$DgVg-n(nN1LBO` z<>lW4$~ONjEc-uO;{7|h$RrsiCby|~ckiy&n1A%gmA!UCkMG`f_Cgr*RP5AccPD$V z`{&oKto>V^x!L#6yLT_%{kyCRapd0JyZ@(EGVj{mK1HIvp&>9;`29P%>m@&5zPtA^ zaGv>s-PInQg&Z6bp=KZ7z1x57bIW^>7wy9#7RT<{ZM|#v;@#B>5JgFp@voZr2K!t# zISQeAnZV$m&wd36c(4K#_yPg~0tG4i>r{^`f`uO(K#0EAoF~%`N)rtYk3oUpfCLWM zf93`oh#=}-h_j%AKNs{lP{EId@gN(K@CRp@gTVGHC@4H=uX9AQ$-%+l0RP`6h&$k< z{4Z8URAB#wx(<5KUt%@auMi0@u2}OqbJnsM%QCwllvHbQXlO{ND~RY#lzR+HcCegN z0TOf#y&3>YL*NXR?9~$vQOm0e&r-{dkf8ADMW5%7f8F0x6D6v%{^pJ+&+ohP?w#%WId9+9$;7w%mwz|@e@yyE z&968M)%zLNu~MqXRk(@wLa_&6C|8n_GCac1QKq*M4C0pdh(8XL8BMLTfqseucU#>!a^^O$$GlCC_^O z^z(3?_75JvQ~f_jgA&nI$2Z4+r0$M*v+?t#c~xa|zR%m+b<=HI{mV63+nVq1j*Tng zo-;SLr1-S@)$X@%+t2T;o%Q#kz3e5MBVxSMH=CE9@BbP6-uGNl*R#VlMi;A{tL|jQ z{oHi3PUUvhmfKCrdm2}_S?fPKz5L1N@Y0V8*3Nfkt~zTzLt_0Zs~NeE?sbI=?phNQ zqH{(n=U3#EwbA)TRmN?(lUJ=;vFg|Px5s~!rO&weF5SQE`d;6UH|zHC9(sFRtHu82 ziFqOUNq^*RpC{}8JNIIL*GK=yxx&k;&u=P!nsp_fH`6k4{rtC2ool|z{kfk1;2ncq z@5lS|CY_JJ`rL5e@4R!`@7`x6?OF9Iq0au8eciKzHJ1C2{&<{Ye@y)A{mzfC--4r6 zVPDtB{`qIw{s(@^KmJ20Y~H&?*B{*wBY-4gM4zEyqGsF&&H z%Xj=$b7a5peX}IKW=HxJo@8u_}8C1>^ndHgeHvd88!d+wmjC2dH%3QFZ$_co#^vozUQ8A ze)RMB+e5|8m9LNQ-ER2rMN(Z@sAy;?`^U_l`D-V?jw!iUy6oN0j~D;#yMMQA&++}+ zz4KGIPfjRjYQme))VEoREuilK1TX%}{4B>$&gu zvaQqYo^3wYXF6S9_R{&Z-MfFg^O+alX3X`9GgSTmJlxbUE>!gSnSVORmY?IdO*O&h&`f^+B?%n^Z!g*i1Z@zo?uk!z!BDQn;@>{-fFMIO; z?<%!pt5-dmb2-%1e$vg*(E2USptjB>?xa6a|Nhsk)6ctmw^n4m)TMfh+jsB&-<5B3 z;l2OK|Fxfl9*2eof`Zi9GN-4!+#T9pvY!S?k1JM5dBIx;J|I7W%l?Hb$9C^t3~EFi zpF*s{FLIBUUw$cqgiSgkd;H<;hNC9FmlYHqy#K()$jEs3q*Z%E!@`tGXNLnbHl0&c zNKnbokGwA+V6bRSF$af)*EDk$mLAR5pmx-!eY-aAQ&dQBhWT-?bAT5Hc%VG8Ps+JH9`(71U2nIO_K)~;4PyJQ2Pwju(8+zYDt0` zJu*?CHXNui#HVXWsd0aH`Ype#iG(vn1Ox;O79h1Y6hW3OMzknY$m0L%POh<%zyAN( z)61(8D$hRK|2s4^H2U)8S+@o3Ud=bH;@Pz7758r4`|tmM3=Rdi9AZO1KNhVGx%&9V zmcOqo^{39?^6TW?)vNxofr3OLG^s|G@p-`7Rln}6I=TGd|H!Ad^H;6fRyW1ZzGFw_ z#qIAtcG<03HSfoxUoS5y7{-Nu%>`?_dSCkSef8_n`-v61cM|Qr5 zDg0lox${f0?fiP3q(5`qHedQY_4@wLn~po2yV}1`?s1IipC2=}u32@nu=_yd_s`3$ zuinm!yKwyJ%j?t6&Hr5ZRBPIF!+pl*SHEApN(&Ty2CMd)AJd)Nst?&6%u8)rYXU-?hx*#Ag*|HD5%KmYUS)Y+@uUHh$02t#^8Kk|?KIDX#7O7Hph zgsM4zXB*b-d#$y1p38^QAKzd7RLCn`|K@Q_-TbLH|J2An?w@(@*pJ1>b9?^Zb({xE zx`C?4_IG_e{XVZpfBg-%4|_h{@A|m+OO?>U?pLpa*X^pzl;8aDz3=7E68lT{Nk5)l zF+cv7d3yyY&zezE{pGtQOpH|JV25 zKddsJg9_}>Q2WWypjf@?pT^~<%U8XUuc*4aG%51$l8^7dfBgAkz2H2N^{amIf}I-* zs`~Xm=}51CdcW)3{dbR7i(Q_=v3}JrU%0dus1=e0@06{ggn#vAiPcdg4DXiZg9{@8 zfr1c_z2L%S)AsF8EI@?|3yVwyD3U#KJ<=a*bxj z{fj}2Vi@{fHsRvn;E)IivtnW4Q2|vpZd0f7F)}ireAEW&lrMF5IN-2p2WVI!@}+=) z!33Q=P@f!C`T8$*i?4geo_lLzJO7RQ(OoBhhi)*nUA^o5 zrfXtm)fhGHDg3bhLPOn?{{BwV5&-wiF zx33GIzt(s+-M+2yXCe24;{{^A<*T;e)k&^Nf3jM=rQv_`89k_pFXsex_q(sUYbWRU zXGQ$>JyUho&$(*HHSf+l!H?aipZ|?J_bsW$c#itj)8-kL_wG(yKd-=+gX2f-%uq-e z?73uC_?&V3xqEZ7(*i5Z~&V_%pO;esyH(^T`tX`JTtw?!UhFo#BMvH?|wr$^Z20 zQ9tqUsL^83;Lnz_x6gl7rR*6xhB=_ywkg!i%)9o zwCB~|(YtdmZ{Ejl>H9?$zt7$;{(I->+RfFMU$b7{sLQ@t{;{?5zL*`mc$ng}KXXG& zQ{3}qb -tbb::interface7::task_arena Class Reference +tbb::structured_task_group Class Reference @@ -33,351 +33,83 @@
-
tbb::interface7::task_arena Class Reference
+
tbb::structured_task_group Class Reference
- -

#include <task_arena.h>

-Inheritance diagram for tbb::interface7::task_arena:
+Inheritance diagram for tbb::structured_task_group:
- - + + +tbb::internal::task_group_base
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

Public Member Functions

 task_arena (int max_concurrency=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
task_arena (tbb::internal::attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
-void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
-void initialize (int max_concurrency, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (const F &f, priority_t p)
 
template<typename F >
void execute (F &f)
 
template<typename F >
void execute (const F &f)
 
void debug_wait_until_empty ()
 
+template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
+task_group_status wait ()
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
+template<typename F >
void run (task_handle< F > &h)
 
+task_group_status wait ()
 
+bool is_canceling ()
 
+void cancel ()
 
- - - - -

-Static Public Member Functions

-static int current_thread_index ()
 Returns the index, aka slot number, of the calling thread in its current arena.
 
- - - -

-Friends

-class tbb::internal::task_scheduler_observer_v3
 
-

Detailed Description

-

1-to-1 proxy representation class of scheduler's arena Constructors set up settings only, real construction is deferred till the first method invocation Destructor only removes one of the references to the inner arena representation. Final destruction happens when all the references (and the work) are gone.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
tbb::interface7::task_arena::task_arena (int max_concurrency = automatic,
unsigned reserved_for_masters = 1 
)
-
-inline
-
- -

Creates task_arena with certain concurrency limits.

-

Sets up settings only, real construction is deferred till the first method invocation

-
    -
  • max_concurrency specifies total number of slots in arena where threads work
  • -
  • reserved_for_masters specifies number of slots to be used by master threads only. Value of 1 is default and reflects behavior of implicit arenas.
  • -
- -
-
- -
-
- - - - - -
- - - - - - - -
tbb::interface7::task_arena::~task_arena ()
-
-inline
-
-

Removes the reference to the internal arena representation, and destroys the external object. Not thread safe wrt concurrent invocations of other methods.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::debug_wait_until_empty ()
-
-inline
-
-

Wait for all work in the arena to be completed Even submitted by other application threads Joins arena if/when possible (in the same way as execute())

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f)
-
-inline
-
-

Enqueues a task into the arena to process a functor, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - + + + + + + + + + + + + + + +
- - - - - - - - - - - - - - - - - - -
void tbb::interface7::task_arena::enqueue (const F & f,
priority_t p 
)
-
-inline

+Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
+task & owner ()
 
+template<typename F >
task_group_status internal_run_and_wait (F &f)
 
+template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
+empty_task * my_root
 
+task_group_context my_context
 
-
-

Enqueues a task with priority p into the arena to process a functor f, and immediately returns. Does not require the calling thread to join the arena

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
void tbb::interface7::task_arena::execute (const F & f)
-
-inline
-
-

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

- -
-
- -
-
- - - - - -
- - - - - - - -
bool tbb::interface7::task_arena::is_active () const
-
-inline
-
-

Returns true if the arena is active (initialized); false otherwise. The name was chosen to match a task_scheduler_init method with the same semantics.

- -
-
- -
-
- - - - - -
- - - - - - - -
void tbb::interface7::task_arena::terminate ()
-
-inline
-
-

Removes the reference to the internal arena representation. Not thread safe wrt concurrent invocations of other methods.

- -
-

The documentation for this class was generated from the following file:
    -
  • task_arena.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00183.png b/doc/html/a00183.png index e9685d4171a2c2b80abd7f134114e57d1cfc52ca..f9335edceafd7f8bc89407edcd399573fb4cb1e3 100644 GIT binary patch delta 918 zcmbQhdXQbQGr-TCmrII^fq{Y7)59f*fq`K&0|P?`2Qvc$!|Zac^%E7X>X`#PT^vIy z7~jr)UG&L{hauc+dDVY&yPfW3JiH=-HFk!P3j5ZzD*aPZx+K{#GctV1=9!T;FLTnw z{Hh z;x=~gOXq#Mb>>ZZi`D#3KOfK0ztUSjeaW%iuRiZP>2B3uI5#fs+4{HtRA=usKezto z>-fL#&5Wzn!ImvQr=(QNC~#QZA-&|qpRZTvm$aW-TvUF^){6OyyPKrKydGl*8_D#B z3ZrujA5-QqK00Z^d}MMVTZj5%9s&PjXbM=4RZ6riG?oYnt>3LQH#GFIXL{(>in8>X z>%ZRqXqDHM7OJ~$?`FBu@@cEGy5-gWKB*~OXkREcvGBzYv$Heo?*uOUoq6Ds+4eV! zr!C8MGR%5g!1h_~bd7o8{l_=1tdG5Sr7+IyhTXT*_jN?pYDLBWTUHRsAJkJ+E#scO zc5m;B;>B-l{X+wFS0qK&oB#ZcbR-*VRd-SYX%s_(Iv7T(B{-MZiQb&TE?_2Y*N z*L_=8yluw)6TR+pR=3_NU3}tx_RhlFJ5LxzHbm7WWp_HJ$B+8M9sY%QI)@%(-Eb=o^G>{yuh&F+}>o$k+@9(-ebv~F$X z{;&5}`E8H4-F2fv`c}j)o7;cy6v(~XULvS5*`uK=smgSV1s{j{tZthZd;TvHpY#0x z^|sHK>RL?h>=ZqByHIccwb!OakFTF|wfk-RH)qju9^3a-=JQuGZ%vOs^L$s{4)^yF zN!1tnuPrXy^6FSz87MrjY+iqrw_*Q-s+aub^W;wyuQ_!t?ApJD#s|*du@iMT`uqvo q0n!V delta 611 zcmX@eK7m!SGr-TCmrII^fq{Y7)59f*fq`KG0|P?<2Qvc$!^-A9wuy>X^-S`fE{-7; zjBn>2ob*_M$3=enm;e7iscQ z;(xpt^lo`xT3DCMqWaQZq+ycDVumS8ByAaky)qLSYeM)Nrf#)*@OY!e!&eRd`?l6| zPG|4YVw(}nz;s4~fiX>_fx(!|p+S;W;Xn_QK!O`1hrwb7mKlLa(!c&Q1cQQt;aVtE zbPKcH>}#7pC$A5)Kd>UED!rRw-_rFA{zS3uS#(%Et%O#0-*MEym6PkV9!%X-6 zx{Wnuf!}f^XYamMzrK3A$_|caPq*Hb|2--7ckSb2cXRC4@TWgt_x9?Jny$ZZb~InE zF!gfzHRYY#;iGS3tTstEm~OWAI+qwOTRY)ZsRYB?-Oo;~*(rQ*a`OBTxA{LGi~QcO z*K_0UV)3Aw8ur`?$EmhTFa+g+VzWhhE%*l#p)e43=9kmp00i_>zopr0JyIVa{vGU diff --git a/doc/html/a00184.html b/doc/html/a00184.html index 8ddade1b..ecbcf645 100644 --- a/doc/html/a00184.html +++ b/doc/html/a00184.html @@ -4,7 +4,7 @@ -tbb::task_group Class Reference +tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference @@ -33,92 +33,21 @@
-
-
tbb::task_group Class Reference
+
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
-
-Inheritance diagram for tbb::task_group:
-
-
- - -tbb::internal::task_group_base - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-template<typename F >
void run (task_handle< F > &h)
 
-template<typename F >
void run (const F &f)
 
-template<typename F >
task_group_status run_and_wait (const F &f)
 
-template<typename F >
task_group_status run_and_wait (task_handle< F > &h)
 
- Public Member Functions inherited from tbb::internal::task_group_base
task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
- - - - - - - - - - - - - - - -

-Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::task_group_base
-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00185.html b/doc/html/a00185.html index 0f4d9244..205efb25 100644 --- a/doc/html/a00185.html +++ b/doc/html/a00185.html @@ -4,7 +4,7 @@ -tbb::internal::task_group_base Class Reference +tbb::interface7::task_arena Class Reference @@ -33,79 +33,362 @@
-
tbb::internal::task_group_base Class Reference
+
tbb::interface7::task_arena Class Reference
+ +

#include <task_arena.h>

-Inheritance diagram for tbb::internal::task_group_base:
+Inheritance diagram for tbb::interface7::task_arena:
- - -tbb::structured_task_group -tbb::task_group + +
+ + + + +

+Classes

struct  attach
 Tag class used to indicate the "attaching" constructor. More...
 
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

task_group_base (uintptr_t traits=0)
 
-template<typename F >
void run (task_handle< F > &h)
 
-task_group_status wait ()
 
-bool is_canceling ()
 
-void cancel ()
 
 task_arena (int max_concurrency=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
task_arena (attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
+void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
+void initialize (int max_concurrency, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
+void initialize (attach)
 Attaches this instance to the current arena of the thread.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (const F &f, priority_t p)
 
template<typename F >
void execute (F &f)
 
template<typename F >
void execute (const F &f)
 
void debug_wait_until_empty ()
 
- - - - - - - - - + + + +

-Protected Member Functions

-task & owner ()
 
-template<typename F >
task_group_status internal_run_and_wait (F &f)
 
-template<typename F , typename Task >
void internal_run (F &f)
 

+Static Public Member Functions

+static int current_thread_index ()
 Returns the index, aka slot number, of the calling thread in its current arena.
 
- - - - - + + + +

-Protected Attributes

-empty_task * my_root
 
-task_group_context my_context
 

+Friends

+class tbb::internal::task_scheduler_observer_v3
 
+

Detailed Description

+

1-to-1 proxy representation class of scheduler's arena Constructors set up settings only, real construction is deferred till the first method invocation Destructor only removes one of the references to the inner arena representation. Final destruction happens when all the references (and the work) are gone.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
tbb::interface7::task_arena::task_arena (int max_concurrency = automatic,
unsigned reserved_for_masters = 1 
)
+
+inline
+
+ +

Creates task_arena with certain concurrency limits.

+

Sets up settings only, real construction is deferred till the first method invocation

+
    +
  • max_concurrency specifies total number of slots in arena where threads work
  • +
  • reserved_for_masters specifies number of slots to be used by master threads only. Value of 1 is default and reflects behavior of implicit arenas.
  • +
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
tbb::interface7::task_arena::~task_arena ()
+
+inline
+
+

Removes the reference to the internal arena representation, and destroys the external object. Not thread safe wrt concurrent invocations of other methods.

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
void tbb::interface7::task_arena::debug_wait_until_empty ()
+
+inline
+
+

Wait for all work in the arena to be completed Even submitted by other application threads Joins arena if/when possible (in the same way as execute())

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::enqueue (const F & f)
+
+inline
+
+

Enqueues a task into the arena to process a functor, and immediately returns. Does not require the calling thread to join the arena

+ +
+
+ +
+
+
+template<typename F >
+ + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::interface7::task_arena::enqueue (const F & f,
priority_t p 
)
+
+inline
+
+

Enqueues a task with priority p into the arena to process a functor f, and immediately returns. Does not require the calling thread to join the arena

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::execute (F & f)
+
+inline
+
+

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
void tbb::interface7::task_arena::execute (const F & f)
+
+inline
+
+

Joins the arena and executes a functor, then returns If not possible to join, wraps the functor into a task, enqueues it and waits for task completion Can decrement the arena demand for workers, causing a worker to leave and free a slot to the calling thread

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool tbb::interface7::task_arena::is_active () const
+
+inline
+
+

Returns true if the arena is active (initialized); false otherwise. The name was chosen to match a task_scheduler_init method with the same semantics.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
void tbb::interface7::task_arena::terminate ()
+
+inline
+
+

Removes the reference to the internal arena representation. Not thread safe wrt concurrent invocations of other methods.

+ +
+

The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
  • task_arena.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00185.png b/doc/html/a00185.png index e95fec5546162fcf72b876a7571a40174f6db6a5..e9685d4171a2c2b80abd7f134114e57d1cfc52ca 100644 GIT binary patch delta 611 zcmZ3(HGx&JGr-TCmrII^fq{Y7)59f*fq`KG0|P?<2Qvc$!^-A9wuy>X^-S`fE{-7; zjBn>2ob*_M$3=enm;e7iscQ z;(xpt^lo`xT3DCMqWaQZq+ycDVumS8ByAaky)qLSYeM)Nrf#)*@OY!e!&eRd`?l6| zPG|4YVw(}nz;s4~fiX>_fx(!|p+S;W;Xn_QK!O`1hrwb7mKlLa(!c&Q1cQQt;aVtE zbPKcH>}#7pC$A5)Kd>UED!rRw-_rFA{zS3uS#(%Et%O#0-*MEym6PkV9!%X-6 zx{Wnuf!}f^XYamMzrK3A$_|caPq*Hb|2--7ckSb2cXRC4@TWgt_x9?Jny$ZZb~InE zF!gfzHRYY#;iGS3tTstEm~OWAI+qwOTRY)ZsRYB?-Oo;~*(rQ*a`OBTxA{LGi~QcO z*K_0UV)3Aw8ur`?$EmhTFa+g+VzWhhE%*l#p)e43=9kmp00i_>zopr0FAZ`VE_OC literal 1324 zcmeAS@N?(olHy`uVBq!ia0y~yU@Tx@VCdjrW?*1AS?F+rI~C+0oIT{P3^H;lP_R>z7@Qn%>dTpYX8v z_NtFpcegI*wtp}+@nJsq{_CGQI?g9Pj6M{fwWC#DbInX)JSqAx1deqJeRT+BuL0-#HI)YWU!#xpWRs!{?%X zA9Q6D1i9HgjvQhX+E~!wvQBZ2y>0#4+`RJHpU`bTe=MEy zFZ_RLe#M+s&kOeNE0@?Or(3*!VW!lDFH-p-b#mQ2k5@N-mOAhHdgtwK@6;a&=~idm zYYi`K35t;W>Z)8+!{xg^tM_?v0Qx_D5~ir}ZuRYP+s^f8N@*KRjq# ztNGRPz{9gYUX^|re)U7OUZ0hk_S=2!vp!8)dHBG!dlxone7&rceAwi=#g28hmqTqY zUioiyh|wq_{@wnj4FwIha{7C$b~8#H3$p#jeBSOvrBjOZ7lchha`n@bd+&%qnR15a!k-eu%wZ8h>c*>s{}>Ey_R4RhiorwL@ht7x(lf zE;=!jgf)-M|{Cf3w$a6IUF zN$x#&y!Vs0Jo)u{&!c}{uiO4%ans}_w)a*%EcN-iNWb;H>8iU@`zoYfFW$eaOyjkh)?dcE0yVv!~B~SQbW2anGTg=X;?peKu zYxWWaH=iQnX~l*S;Bgh#OYiPn(NZ3JeQx)Do?qJ~)$)D!GcYhPc)I$z JtaD0e0swO2WxN0Y diff --git a/doc/html/a00186.html b/doc/html/a00186.html index e471d5b5..c31ebb09 100644 --- a/doc/html/a00186.html +++ b/doc/html/a00186.html @@ -4,7 +4,7 @@ -tbb::task_group_context Struct Reference +tbb::task_group Class Reference @@ -33,25 +33,92 @@
+
-
tbb::task_group_context Struct Reference
+
tbb::task_group Class Reference
- -

#include <parallel_invoke.h>

-

Detailed Description

-

Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs.

-

The documentation for this struct was generated from the following file:
    -
  • parallel_invoke.h
  • +
    +Inheritance diagram for tbb::task_group:
    +
    +
    + + +tbb::internal::task_group_base + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<typename F >
    void run (task_handle< F > &h)
     
    +template<typename F >
    void run (const F &f)
     
    +template<typename F >
    task_group_status run_and_wait (const F &f)
     
    +template<typename F >
    task_group_status run_and_wait (task_handle< F > &h)
     
    - Public Member Functions inherited from tbb::internal::task_group_base
    task_group_base (uintptr_t traits=0)
     
    +template<typename F >
    void run (task_handle< F > &h)
     
    +task_group_status wait ()
     
    +bool is_canceling ()
     
    +void cancel ()
     
    + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from tbb::internal::task_group_base
    +task & owner ()
     
    +template<typename F >
    task_group_status internal_run_and_wait (F &f)
     
    +template<typename F , typename Task >
    void internal_run (F &f)
     
    - Protected Attributes inherited from tbb::internal::task_group_base
    +empty_task * my_root
     
    +task_group_context my_context
     
    +
    The documentation for this class was generated from the following file:
      +
    • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00184.png b/doc/html/a00186.png similarity index 100% rename from doc/html/a00184.png rename to doc/html/a00186.png diff --git a/doc/html/a00187.html b/doc/html/a00187.html index 42379a4f..81a03606 100644 --- a/doc/html/a00187.html +++ b/doc/html/a00187.html @@ -4,7 +4,7 @@ -tbb::task_handle< F > Class Template Reference +tbb::internal::task_group_base Class Reference @@ -33,48 +33,71 @@
-
tbb::task_handle< F > Class Template Reference
+
tbb::internal::task_group_base Class Reference
-Inheritance diagram for tbb::task_handle< F >:
+Inheritance diagram for tbb::internal::task_group_base:
- - + + +tbb::structured_task_group +tbb::task_group
- - - - + + + + + + + + + + +

Public Member Functions

task_handle (const F &f)
 
-void operator() () const
 
task_group_base (uintptr_t traits=0)
 
+template<typename F >
void run (task_handle< F > &h)
 
+task_group_status wait ()
 
+bool is_canceling ()
 
+void cancel ()
 
- - - - - - - - + + + + + + + + + +

-Friends

-template<typename _F >
class internal::task_handle_task
 
-class task_group
 
-class structured_task_group
 

+Protected Member Functions

+task & owner ()
 
+template<typename F >
task_group_status internal_run_and_wait (F &f)
 
+template<typename F , typename Task >
void internal_run (F &f)
 
+ + + + +

+Protected Attributes

+empty_task * my_root
 
+task_group_context my_context
 

The documentation for this class was generated from the following file:
  • task_group.h
  • @@ -82,7 +105,7 @@ class 
structured_task_grou

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00187.png b/doc/html/a00187.png index 5f640e9e7369f83c7c304b581f01b7969a27ed2f..e95fec5546162fcf72b876a7571a40174f6db6a5 100644 GIT binary patch literal 1324 zcmeAS@N?(olHy`uVBq!ia0y~yU@Tx@VCdjrW?*1AS?F+rI~C+0oIT{P3^H;lP_R>z7@Qn%>dTpYX8v z_NtFpcegI*wtp}+@nJsq{_CGQI?g9Pj6M{fwWC#DbInX)JSqAx1deqJeRT+BuL0-#HI)YWU!#xpWRs!{?%X zA9Q6D1i9HgjvQhX+E~!wvQBZ2y>0#4+`RJHpU`bTe=MEy zFZ_RLe#M+s&kOeNE0@?Or(3*!VW!lDFH-p-b#mQ2k5@N-mOAhHdgtwK@6;a&=~idm zYYi`K35t;W>Z)8+!{xg^tM_?v0Qx_D5~ir}ZuRYP+s^f8N@*KRjq# ztNGRPz{9gYUX^|re)U7OUZ0hk_S=2!vp!8)dHBG!dlxone7&rceAwi=#g28hmqTqY zUioiyh|wq_{@wnj4FwIha{7C$b~8#H3$p#jeBSOvrBjOZ7lchha`n@bd+&%qnR15a!k-eu%wZ8h>c*>s{}>Ey_R4RhiorwL@ht7x(lf zE;=!jgf)-M|{Cf3w$a6IUF zN$x#&y!Vs0Jo)u{&!c}{uiO4%ans}_w)a*%EcN-iNWb;H>8iU@`zoYfFW$eaOyjkh)?dcE0yVv!~B~SQbW2anGTg=X;?peKu zYxWWaH=iQnX~l*S;Bgh#OYiPn(NZ3JeQx)Do?qJ~)$)D!GcYhPc)I$z JtaD0e0swO2WxN0Y delta 492 zcmZ3(HH$^DGr-TCmrII^fq{Y7)59f*fq|iofq@}_gPDPW;q`&P6DKNK)ibX2ba4!+ zV0=6G?Yd?K0hjY?zR&*N{}JUFS#tZ9|DKa-JYhFl4>NqzPfL5;>Uk+c)h)>*Xi0za z9OOjGpiFOf->+i~X7+Xhd^NEJ`^FD=rHZf`Ysvulk* zCME6dEd0y&-t6gfiMMB?4Y>|4$^BVx;;YRy64pG<8kwhPtWYk4168C6FsJyvy9t~oKyEQaCzD<*@u=LdGg_#G_d>*;*NBcpzh!J_q2cL}pX z(5{Jj3@%>gmv|dIUb^jK6wtiuVa}kmRQe^G!xH};iD_nW5(hwDU~q{tT;~4!>F;{R z@ONdu`gW|3<8JWVe~f`+OTv`Z*3H+B--=oFI@$W5P$bi>+d^C8e<=4@ZcfqX5C79G zz0x)B)2?r+tkuT5SxfE8ZoWO9<+R;Se5ZFg^Us&R7C-zTmwe?)SgxVh0lCFBOSelp zXm9<_(Du1(x2AbcLEf7)>`|R}UzC|Gc)>jMUc*(AKcl)(D zYr>qkLmKxF`G0yIADzVD;?=|3HuGk|U&iH$0f9e?gx)YPFfe$!`njxgN@xNArV8JN diff --git a/doc/html/a00188.html b/doc/html/a00188.html index 572565f8..1c0fbad0 100644 --- a/doc/html/a00188.html +++ b/doc/html/a00188.html @@ -4,7 +4,7 @@ -tbb::internal::task_handle_task< F > Class Template Reference +tbb::task_group_context Struct Reference @@ -33,39 +33,25 @@
-
-
tbb::internal::task_handle_task< F > Class Template Reference
+
tbb::task_group_context Struct Reference
-
-Inheritance diagram for tbb::internal::task_handle_task< F >:
-
-
- - - -
- - - - -

-Public Member Functions

task_handle_task (task_handle< F > &h)
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • + +

    #include <parallel_invoke.h>

    +

    Detailed Description

    +

    Dummy to avoid cluttering the bulk of the header with enormous amount of ifdefs.

    +

    The documentation for this struct was generated from the following file:
      +
    • parallel_invoke.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00188.png b/doc/html/a00188.png deleted file mode 100644 index 229263c6223fbf739b854a1eafa70239ec72a2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmeAS@N?(olHy`uVBq!ia0y~yV7Sb{z!1Q}%)r2~+mve!&d?A>it%5F-W##^0VUjv*C{Z|7c|v|2%c zwK}fo-~aynMJsp~WpDE;*E0<*>ELSSW!{&RW+pL1h1b=}GpOd0=cGr)yMv|wHEQ~( zd;aSCetprOnpHPn=B-t~mKi+r)LZSZA@A0nHrAi1a`%|B-}^hWR~OFldZ#Py{3LGk zd^QW^Q#;K=z4g2<)!uoh;>kbRZ<5ITl1WQ`ESaowG(AAwc=JYviZ<~B2|O>pRQ0Nx zF1Q?>X|Ymp?x#D@fNzLUH1T2TCy zjjwl0UG>V z+4sw{cb30-^6mQ0%SZoSS@!w-@0GUS%c}R;eUFhl>$vK=wtD2|w^p^&gqIh;o9n)- z>>VS|A!WbM?EfD*#GA6+nD`nISkFH -tbb::task_scheduler_init Class Reference +tbb::task_handle< F > Class Template Reference @@ -33,180 +33,56 @@
-
tbb::task_scheduler_init Class Reference
+
tbb::task_handle< F > Class Template Reference
- -

Class delimiting the scope of task scheduler activity. - More...

- -

#include <task_scheduler_init.h>

-Inheritance diagram for tbb::task_scheduler_init:
+Inheritance diagram for tbb::task_handle< F >:
- - + +
- - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

void __TBB_EXPORTED_METHOD initialize (int number_of_threads=automatic)
 Ensure that scheduler exists for this thread. More...
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads, stack_size_type thread_stack_size)
 The overloaded method with stack size parameter. More...
 
-void __TBB_EXPORTED_METHOD terminate ()
 Inverse of method initialize.
 
if (wait_workers_in_terminate) my_scheduler
 
initialize (number_of_threads, thread_stack_size)
 
~task_scheduler_init ()
 Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
 
-bool is_active () const
 Returns true if scheduler is active (initialized); false otherwise.
 
task_handle (const F &f)
 
+void operator() () const
 
- - - - -

-Static Public Member Functions

static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - - -

-Public Attributes

-task_scheduler_init(int
-number_of_threads=automatic,
-stack_size_type
-thread_stack_size=0, bool
-wait_workers_in_terminate=false) 
thread_stack_size = TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
- - - - - - - -

-Static Public Attributes

-static const int automatic = -1
 Typedef for number of threads that is automatic.
 
-static const int deferred = -2
 Argument to initialize() or constructor that causes initialization to be deferred.
 
-

Detailed Description

-

Class delimiting the scope of task scheduler activity.

-

A thread can construct a task_scheduler_init object and keep it alive while it uses TBB's tasking subsystem (including parallel algorithms).

-

This class allows to customize properties of the TBB task pool to some extent. For example it can limit concurrency level of parallel work initiated by the given thread. It also can be used to specify stack size of the TBB worker threads, though this setting is not effective if the thread pool has already been created.

-

If a parallel construct is used without task_scheduler_init object previously created, the scheduler will be initialized automatically with default settings, and will persist until this thread exits. Default concurrency level is defined as described in task_scheduler_init::initialize().

-

Member Function Documentation

- -
-
- - - - - + + + + + + + +
- - - - - - - -
static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads ()
-
-static

+Friends

+template<typename _F >
class internal::task_handle_task
 
+class task_group
 
+class structured_task_group
 
-
- -

Returns the number of threads TBB scheduler would create if initialized by default.

-

Result returned by this method does not depend on whether the scheduler has already been initialized.

-

Because tbb 2.0 does not support blocking tasks yet, you may use this method to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state.

-

Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- -
-
- -
-
- - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads = automatic)
-
- -

Ensure that scheduler exists for this thread.

-

A value of -1 lets TBB decide on the number of threads, which is usually maximal hardware concurrency for this process, that is the number of logical CPUs on the machine (possibly limited by the processor affinity mask of this process (Windows) or of this thread (Linux, FreeBSD). It is preferable option for production code because it helps to avoid nasty surprises when several TBB based components run side-by-side or in a nested fashion inside the same process.

-

The number_of_threads is ignored if any other task_scheduler_inits currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads,
stack_size_type thread_stack_size 
)
-
- -

The overloaded method with stack size parameter.

-

Overloading is necessary to preserve ABI compatibility

- -
-

The documentation for this class was generated from the following file:
    -
  • task_scheduler_init.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00189.png b/doc/html/a00189.png index 58550fd5aa8d025a8c6f44950d758c08a4175849..5f640e9e7369f83c7c304b581f01b7969a27ed2f 100644 GIT binary patch delta 491 zcmdnWGK)pAGr-TCmrII^fq{Y7)59f*fq|iofq@}_gPDPW;q`&P6DKNK*RS++aSW+o zd^`8;x@H9dm-A}A&;H*35#<peQC$F&C4E4Q}paFkx7=@apuz722aOG6;JjrEz*o`Z#8(cYmGxD zCGG7j{LA;=?CEofw`ZdbxehPM{b^M1RuKGZ%|YLvOl>N*3)S6gc^_99RYxm5R(ZK# z-=kx>PM%#;{%`11^qhFEIWf&FhT;7yCWE-=2X@5x9W3PQ>3qZ^qkfRVqV-aD39~}b zu8DaJE?(xBcpE%ky6s{V(7fwm&Y-kZ`X!sg68{~EX=ZT}2S8q6aEUTp=KlNXZ^ruY zcV)l&cC3%%Zt&ZGjDcfI!j#q4&DW0KidpqK+4`VRB-5?iLR;g1DEC-yPSNKN|I;nK z(lzhXu5YQV)yBJ7OYO>TzCE7hwB1g8r*}E?&zHXzKl~tXj<0XlR}18L$*y>J`?Wc1 y!koB68ut(Re|jDtoy6ec)x+C1^Jc+c#^s3tfj^3b-Y_sQFnGH9xvX zZB|LIpZ#B+f5UX<^Rs?lPJX%SWAXQ2GgkBMF3WwanlpdzS>3DG_8-@0HZ6Oc@i$W0 z`|6Z!7ax^8KKv&6P21Jh^4)XhgbUxi9Z@S|lh;=n@ucPXkN0<;N5(yVy64yJt7q1l ztxdOi6CU={^!z=$dDkbfEnl0rKicMR%+C48O1}TBNcMa0U%!6cXPM8dBXdtrEj($r z|Cdcvc;2NoPo^I(KB3>hP<3SUowNVam}9P%Km2LS`eCXK!@f!E2d;lwYHr-UNMDve WY~C9YrhEnl1_n=8KbLh*2~7asDF(d& diff --git a/doc/html/a00190.html b/doc/html/a00190.html index bfcaaca0..8c283079 100644 --- a/doc/html/a00190.html +++ b/doc/html/a00190.html @@ -4,7 +4,7 @@ -tbb::interface6::task_scheduler_observer Class Reference +tbb::internal::task_handle_task< F > Class Template Reference @@ -33,234 +33,39 @@
-
tbb::interface6::task_scheduler_observer Class Reference
+
tbb::internal::task_handle_task< F > Class Template Reference
-Inheritance diagram for tbb::interface6::task_scheduler_observer:
+Inheritance diagram for tbb::internal::task_handle_task< F >:
- - -tbb::internal::task_scheduler_observer_v3 + +
- - - - -

-Public Types

enum  { keep_awake = false, -allow_sleep = true - }
 Return commands for may_sleep()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 task_scheduler_observer (bool local=false)
 Construct local or global observer in inactive state (observation disabled). More...
 
 task_scheduler_observer (task_arena &a)
 Construct local observer for a given arena in inactive state (observation disabled). More...
 
virtual ~task_scheduler_observer ()
 
void observe (bool state=true)
 Enable or disable observation. More...
 
virtual bool may_sleep ()
 The callback can be invoked by a worker thread before it goes to sleep. More...
 
- Public Member Functions inherited from tbb::internal::task_scheduler_observer_v3
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - + +

-Friends

-class internal::task_scheduler_observer_v3
 
-class internal::observer_proxy
 
-class internal::observer_list
 
task_handle_task (task_handle< F > &h)
 
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (bool local = false)
-
-inline
-
- -

Construct local or global observer in inactive state (observation disabled).

-

For a local observer entry/exit notifications are invoked whenever a worker thread joins/leaves the arena of the observer's owner thread. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. TODO: Obsolete. Global observer semantics is obsolete as it violates master thread isolation guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library.

- -
-
- -
-
- - - - - -
- - - - - - - - -
tbb::interface6::task_scheduler_observer::task_scheduler_observer (task_arena & a)
-
-inline
-
- -

Construct local observer for a given arena in inactive state (observation disabled).

-

entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual tbb::interface6::task_scheduler_observer::~task_scheduler_observer ()
-
-inlinevirtual
-
-

Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, otherwise it can lead to concurrent notification callback on partly destroyed object

- -

References observe().

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual bool tbb::interface6::task_scheduler_observer::may_sleep ()
-
-inlinevirtual
-
- -

The callback can be invoked by a worker thread before it goes to sleep.

-

If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::interface6::task_scheduler_observer::observe (bool state = true)
-
-inline
-
- -

Enable or disable observation.

-

Warning: concurrent invocations of this method are not safe. Repeated calls with the same state are no-ops.

- -

References tbb::internal::task_scheduler_observer_v3::observe(), and tbb::relaxed.

- -

Referenced by ~task_scheduler_observer().

- -
-

The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • +
  • task_group.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00190.png b/doc/html/a00190.png index 37496e90766c364ef54c599c792827549384d309..229263c6223fbf739b854a1eafa70239ec72a2cf 100644 GIT binary patch delta 575 zcmeBTf5W2K8Q|y6%O%Cdz`(%k>ERN@z`$^sfq@}_gPDPWVawkQb0;cV)ieI~ba4!+ zV0=6G;-u9I0<6_>MgRWy=Pz2pvnYF;SGk^PXh{cGGcWVLq%<>$87jQ4R-QpMmpmsu zD&8F|{jX8eN8R&R-}mc_{?x3x`7&><`nAm9nWx@re+_xJ_O!A7OqILGl>Oe{nZ3Gj zj@LU~apxy-o9DAxD4*JC9_p>grmMCO-FTJmGbWR;`o0qVw^H!@VT zi62PddGV#HSKV~M<>*X{m4b6W-C_PA@1frCV~Mas%_U9+yO%5i^GldI{H+*|sLy41 zG}({gqbG{=hwL+F*qE6mx}d7kORK_f@Bj7lpS;82UmJ2u>jijLoHqMW__+3Y(FsP2 zx}seloa&#mTu3aO<^T2Mu8^x4^IvDWo!a8#>%IEtwMz%LYVp5H*mwTcx-F~H|Jqzq zUB2@4o!phzg5sxae7##DccuQSiL>qI3f8RquDte<9s8XtrA|9yiY6Ksm>A!OqaqqyB$qUxiTuk|Nej#>Cf%;ClYK(bQPFOSJwJOVb{Yrh}&# Q7#J8lUHx3vIVCg!0C8XxBLDyZ delta 863 zcmaFE(#5XW8Q|y6%O%Cdz`(%k>ERN@z`*dGfq@}_gPDPW;gh$p`9wvldS*#a7srqa z#T!2?swbHdu_Bf?0bN+#A>Vhh2JtYca@i|%B|*!|F(lI@bc=1b5?G9Q4)VI zumA1E+3&8jeqAB*(YJg{jpj;O|GuX&h3-_FrOi|HhNN9)jRwB-Bs)Uxi6c0ahI!$&_nl< z_^HRjECeTpf3&PUd*`{X(j@li?HwL+Id_$mDnDGPl{sENk)L6ItA0a^$Ex42wU>Wb zvP*tbFxUB2)z^y~d~WPw{FLyT?L_lhX$Agmc?~uM1?1f{m#VO^D#*fAJG`#jbG5It z)sVrhI>fc1V{@FICqwX&nP0UIWXQ|h<*wf~{k8txxx%%d=3lR^zp`%fDt^(v&GmDW zY)=(GFv_rh<3B~~k+>7HGCHRtx?-DRDo9kb$ipZnC`+ur@{g>U&QuUEEqQ=E*e z{bx-M`h4(K@$T%|5p}!k+Jn`}$9QmhZG&K6}@*{4ZbXZdco1j&(4X?s#7L?scVx&#rm>HtRht zv|o3H#NTE6lYXE^DeBX&s(1UuR#&b2$G+^mRRhltQ`NiSOE-%0JqZ1yT07s|K`ZAj pL*<52<|hY#p44ADrQ`?m{uRa(BEA20GcYhPc)I$ztaD0e0s#GyvgQB) diff --git a/doc/html/a00191.html b/doc/html/a00191.html index da0c3502..7c9f4244 100644 --- a/doc/html/a00191.html +++ b/doc/html/a00191.html @@ -4,7 +4,7 @@ -tbb::internal::task_scheduler_observer_v3 Class Reference +tbb::task_scheduler_init Class Reference @@ -33,150 +33,180 @@
-
tbb::internal::task_scheduler_observer_v3 Class Reference
+
tbb::task_scheduler_init Class Reference
+ +

Class delimiting the scope of task scheduler activity. + More...

+ +

#include <task_scheduler_init.h>

-Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+Inheritance diagram for tbb::task_scheduler_init:
- - -tbb::interface6::task_scheduler_observer + +
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +

Public Member Functions

void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
-bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
-virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads=automatic)
 Ensure that scheduler exists for this thread. More...
 
void __TBB_EXPORTED_METHOD initialize (int number_of_threads, stack_size_type thread_stack_size)
 The overloaded method with stack size parameter. More...
 
+void __TBB_EXPORTED_METHOD terminate ()
 Inverse of method initialize.
 
if (wait_workers_in_terminate) my_scheduler
 
initialize (number_of_threads, thread_stack_size)
 
~task_scheduler_init ()
 Destroy scheduler for this thread if thread has no other live task_scheduler_inits.
 
+bool is_active () const
 Returns true if scheduler is active (initialized); false otherwise.
 
+ + + +

+Static Public Member Functions

static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - - - - - + + + + +

-Friends

-class observer_proxy
 
-class observer_list
 
-class interface6::task_scheduler_observer
 

+Public Attributes

+task_scheduler_init(int
+number_of_threads=automatic,
+stack_size_type
+thread_stack_size=0, bool
+wait_workers_in_terminate=false) 
thread_stack_size = TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
+ + + + + + +

+Static Public Attributes

+static const int automatic = -1
 Typedef for number of threads that is automatic.
 
+static const int deferred = -2
 Argument to initialize() or constructor that causes initialization to be deferred.
 
-

Member Function Documentation

- +

Detailed Description

+

Class delimiting the scope of task scheduler activity.

+

A thread can construct a task_scheduler_init object and keep it alive while it uses TBB's tasking subsystem (including parallel algorithms).

+

This class allows to customize properties of the TBB task pool to some extent. For example it can limit concurrency level of parallel work initiated by the given thread. It also can be used to specify stack size of the TBB worker threads, though this setting is not effective if the thread pool has already been created.

+

If a parallel construct is used without task_scheduler_init object previously created, the scheduler will be initialized automatically with default settings, and will persist until this thread exits. Default concurrency level is defined as described in task_scheduler_init::initialize().

+

Member Function Documentation

+
+ + + + + +
- + - - +
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads (bool state = true))
+
+static
-

Enable or disable observation.

-

For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.

-

Repeated calls with the same state are no-ops.

- -

Referenced by tbb::interface6::task_scheduler_observer::observe(), and ~task_scheduler_observer_v3().

+

Returns the number of threads TBB scheduler would create if initialized by default.

+

Result returned by this method does not depend on whether the scheduler has already been initialized.

+

Because tbb 2.0 does not support blocking tasks yet, you may use this method to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state.

+

Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

+

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

- +
- - - - - -
- + - - + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (bool )int number_of_threads = automatic)
-
-inlinevirtual
-

Entry notification.

-

Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+

Ensure that scheduler exists for this thread.

+

A value of -1 lets TBB decide on the number of threads, which is usually maximal hardware concurrency for this process, that is the number of logical CPUs on the machine (possibly limited by the processor affinity mask of this process (Windows) or of this thread (Linux, FreeBSD). It is preferable option for production code because it helps to avoid nasty surprises when several TBB based components run side-by-side or in a nested fashion inside the same process.

+

The number_of_threads is ignored if any other task_scheduler_inits currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted.

- +
- - - - - -
- + - - + + + + + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (bool )int number_of_threads,
stack_size_type thread_stack_size 
)
-
-inlinevirtual
-

Exit notification.

-

Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.

-

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+

The overloaded method with stack size parameter.

+

Overloading is necessary to preserve ABI compatibility


The documentation for this class was generated from the following file:
    -
  • task_scheduler_observer.h
  • +
  • task_scheduler_init.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00191.png b/doc/html/a00191.png index b87088c72d9c41832275a3a031b419b26a0c66d6..58550fd5aa8d025a8c6f44950d758c08a4175849 100644 GIT binary patch delta 519 zcmeBT-^!xc8Q|y6%O%Cdz`(%k>ERN@z`)SYz`zi|!OXzGAb#~)^h8Cgdd4H3E{-7; zjBn@O&O4&Oa+j z^Z#__yT_z=FM4eb|NR*}kNfA>2RrOO*Z*7T{m=6JljDEXSL!bPoAA>A*XNX{f9gCZ zt$#96C7!YJ%$Y|V4`iztS%M7aUDp;1Fqp@wE)rlO*AU@V&QP<|o?+i5d4~9x{0-~B zupbEj#r#0~FXM-){}_IF)uT#p|CyX7<{{xAp~~N|{t4rU(8^_5|F72fG5daed3@sD z=QgXP*U$bh&%a?h^Z8jnFDJiT^|AQ-uNkZPc9-QoR?V5e_pI*KYx|GuGnH z+yBcZDm?GfnkUl_7oX5?V5mB>`OevYY0NQK%OC!ERN@z`*dGfq@}_gPDPW;gh$p`9wvldS*#a7srqa z#AER^1ReU_;1{a)4&wlbxEZ13i`{kAWWKcn}lYUjR;=Ve>ma*toM z-@fYY^_REytXsIR_tt93D^|L$-~0UPKkuC_cv|kdLRMAr9OK>x75BoA?0(t*ZcFD^ z4c7lJ`ljW+Ie5FcT4#6F{(T!&wq^z|llok_uA*=UgWNlxzZ1CbwXf-NeVlYgGJqq( zIQ;qFrSBd;XO3N&t7M|T{iW8|voF7LPTRO_*ZZGSqrJbL2+91ed^hj+pJ&zk&VLTD zTfSGKK6{<@u3qhTujlXj6My&p_fIuzZ^sQx#Ic1&%0MVe^s9n)&1LtA?4uu7k1jcYYQ0OKYISf zw0J%=ur`!3KRFm&uDSFH^MU0b7(6f z0{^zW2AdnZ7(XQt5~!2hdhM5@P1f44&I`IamK?sOt2Bu{dV7b5T*lp}HMeg6=^2T|Y#umlXaVBuc)2^t`K6cQU;4ebM__^HSuhR{fqAzjJFy|C#x7zNdue+QwY?ttv3_ z$Ai1?u(3jb30zGV_;xl@O1TaS?83{1OOV=y^;U` diff --git a/doc/html/a00192.html b/doc/html/a00192.html index dcdff54f..e8369f77 100644 --- a/doc/html/a00192.html +++ b/doc/html/a00192.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T > Class Template Reference +tbb::interface6::task_scheduler_observer Class Reference @@ -33,125 +33,234 @@
-
tbb::tbb_allocator< T > Class Template Reference
+
tbb::interface6::task_scheduler_observer Class Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

+
+Inheritance diagram for tbb::interface6::task_scheduler_observer:
+
+
+ + +tbb::internal::task_scheduler_observer_v3 + +
- - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - + +

Public Types

enum  malloc_type { scalable, -standard +
enum  { keep_awake = false, +allow_sleep = true }
 Specifies current allocator.
 
-typedef
-internal::allocator_type< T >
-::value_type 
value_type
 
-typedef value_type * pointer
 
-typedef const value_type * const_pointer
 
-typedef value_type & reference
 
-typedef const value_type & const_reference
 
-typedef size_t size_type
 
-typedef ptrdiff_t difference_type
 
 Return commands for may_sleep()
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

tbb_allocator (const tbb_allocator &) throw ()
 
-template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 Destroy value at location pointed to by p.
 
 task_scheduler_observer (bool local=false)
 Construct local or global observer in inactive state (observation disabled). More...
 
 task_scheduler_observer (task_arena &a)
 Construct local observer for a given arena in inactive state (observation disabled). More...
 
virtual ~task_scheduler_observer ()
 
void observe (bool state=true)
 Enable or disable observation. More...
 
virtual bool may_sleep ()
 The callback can be invoked by a worker thread before it goes to sleep. More...
 
- Public Member Functions inherited from tbb::internal::task_scheduler_observer_v3
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
+bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
+virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - + + + + + + + +

-Static Public Member Functions

-static malloc_type allocator_type ()
 Returns current allocator.
 

+Friends

+class internal::task_scheduler_observer_v3
 
+class internal::observer_proxy
 
+class internal::observer_list
 
+

Constructor & Destructor Documentation

+ +
+
+ + + + +
+ + + + + + + + +
tbb::interface6::task_scheduler_observer::task_scheduler_observer (bool local = false)
+
+inline
-

Detailed Description

-

template<typename T>
-class tbb::tbb_allocator< T >

+
+ +

Construct local or global observer in inactive state (observation disabled).

+

For a local observer entry/exit notifications are invoked whenever a worker thread joins/leaves the arena of the observer's owner thread. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. TODO: Obsolete. Global observer semantics is obsolete as it violates master thread isolation guarantees and is not composable. Thus the current default behavior of the constructor is obsolete too and will be changed in one of the future versions of the library.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
tbb::interface6::task_scheduler_observer::task_scheduler_observer (task_arena & a)
+
+inline
+
+ +

Construct local observer for a given arena in inactive state (observation disabled).

+

entry/exit notifications are invoked whenever a thread joins/leaves arena. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
virtual tbb::interface6::task_scheduler_observer::~task_scheduler_observer ()
+
+inlinevirtual
+
+

Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, otherwise it can lead to concurrent notification callback on partly destroyed object

+ +

References observe().

-

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool tbb::interface6::task_scheduler_observer::may_sleep ()
+
+inlinevirtual
+
+ +

The callback can be invoked by a worker thread before it goes to sleep.

+

If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void tbb::interface6::task_scheduler_observer::observe (bool state = true)
+
+inline
+
+ +

Enable or disable observation.

+

Warning: concurrent invocations of this method are not safe. Repeated calls with the same state are no-ops.

+ +

References tbb::internal::task_scheduler_observer_v3::observe(), and tbb::relaxed.

+ +

Referenced by ~task_scheduler_observer().

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • task_scheduler_observer.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00192.png b/doc/html/a00192.png new file mode 100644 index 0000000000000000000000000000000000000000..37496e90766c364ef54c599c792827549384d309 GIT binary patch literal 906 zcmeAS@N?(olHy`uVBq!ia0y~yVEE3!z!1Q}%)r3#$y?Z*fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}Ea~au7*fIbcJ9lfCki|* z_D@#r`LF!`#M&zQ-0qP0lVVvfJ_mC)(WDhJn(Uo!v9sk~k1J#7BHn<+O{s&8|B z>#Ad~jn;;J4^Wm^ZME=Qrsl5lvQ@d&Jn`RlumxUT{cz68Z7)jV@8$Ksy*T^bmDaB- zL_YeKZ^<#1Ut_!d_om(7e@jOPInFk^I^%rt(eA^pE;e^&{!)Cphd)xZyZy6adWQ&S zgmL)uzaig$e(rmB#Y}G1RPJ3~wZ&DnjZ4?Be79|%(dw0QGqv8@U3z=ydGq_9cITac z&iS@z{myq8X6tsWuYdK)e)s+LPk%;j-`TYJx2%6f(fjmW-5q&m0>R5>8}6#Lw0O zWC%Vo^Q+c@40)Nm+`Fc~*1tPfxc1Zh>$UY))=gf;FWR@cer}TOsp2PQYis{r_-(Mn zYUMNCvum&B++Mu9tkbk(RvhnhpZa^-yT85gEq~?p%GPd*lX12GtjR&258f)?ojp6E zZg*XKaN3FDREhSf*YXnIx8GXtcgQZK%Sm?Ao1=$!&ox>gV34|R`Js9@eCb9}z6YUyRBPv(J80$HWvJXx%KYTu&y)H~r -tbb::tbb_allocator< void > Class Template Reference +tbb::internal::task_scheduler_observer_v3 Class Reference @@ -33,53 +33,150 @@
-
tbb::tbb_allocator< void > Class Template Reference
+
tbb::internal::task_scheduler_observer_v3 Class Reference
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

+
+Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+
+
+ + +tbb::interface6::task_scheduler_observer + +
- - - + + + + + + + + + + + + + + + + + + +

-Classes

struct  rebind
 

+Public Member Functions

void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
+bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
+virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - - - - + + + + + + + +

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 

+Friends

+class observer_proxy
 
+class observer_list
 
+class interface6::task_scheduler_observer
 
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe (bool state = true)
+
+ +

Enable or disable observation.

+

For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.

+

Repeated calls with the same state are no-ops.

+ +

Referenced by tbb::interface6::task_scheduler_observer::observe(), and ~task_scheduler_observer_v3().

+ +
+
+ +
+
+ + + + +
+ + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry (bool )
+
+inlinevirtual
-

Detailed Description

-

template<>
-class tbb::tbb_allocator< void >

+
-

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +

    Entry notification.

    +

    Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.

    +

    Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

    + +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit (bool )
+
+inlinevirtual
+
+ +

Exit notification.

+

Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.

+

Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • task_scheduler_observer.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00193.png b/doc/html/a00193.png new file mode 100644 index 0000000000000000000000000000000000000000..b87088c72d9c41832275a3a031b419b26a0c66d6 GIT binary patch literal 906 zcmeAS@N?(olHy`uVBq!ia0y~yVEE3!z!1Q}%)r3#$y?Z*fq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}Ea~au7*fIbcJAw<#|k{H z_D6i~{hw&Q&F}?N=B>GzW$sJtjw;9=VO0FTbV`s=6Vn8~Xmba-oVyH_7fS7Ce_ZzV zBkzHQ(tEGZ64kxm%lg4qru2{P-Tb!S_9gOX^gdPX+?VmZY>Qj&@r(A`SG~Rd^46Yp z3-|TjS}l3SO4s#!pWo-bvjtDfU02AeDxPE9`=H`p_>tW&``>Np{HnqF|3%-l+&2er z7gy`-uG+tEqsrFI;AK*uE7w&N?qHC6=ks?0*S+>NU9OLl&PWDuL>PxZ|GV_vZ;df)la0d~vxN@TCI-qox9 z?)Cg#f8y`H|Ng0F?d_O@H~;pj+wA;qe3$i0vU$>}60ya%uYV3$USexrS?9Yb>~2oy(`NO%*z=4=iLcpCG_RFb;NOc|ljllEc?@l_s%AZ}0Gs%eecr=GN^Wy?v5)zv>bs;wHGbEbEx| zRY%Ea-gGy?i5=!8`p@IrtaO-CJ@uuG;%=lznPgv~%0Oyf0QfDusL`}@0JF6eD!3%or0@tl|Ee{&U@|GhZZY;sk9Z&1dX=@;ir*~FfI{_Votq@PcJ ziTcf$Y!lvB7?Jr_?pxi8udh_zI4{%KqIf#a#O}=$#UPc0Lw~ltv)-HEzq)>X&6l2c zb?Q!rSH3TLKWko!T-B=I^Wt}I4e38Kf6n)m@Lb!N3%^wbCVo7U6FFxopY3(oyT?S! z&rJXRyVs_E>g?iOE3^N(`M=-3_q*|3R~P#-<$dRhvH?{`tG?jjNu&s!zzetE3e9LGf<-(v6~iE>B|rsMgNk-r=E@b5}{Jazkl% h2Pmf2ZhdxG-hGjAZ*Iq{bqov)44$rjF6*2UngGcm(CYvI literal 0 HcmV?d00001 diff --git a/doc/html/a00194.html b/doc/html/a00194.html index da5d7c2d..8b15888c 100644 --- a/doc/html/a00194.html +++ b/doc/html/a00194.html @@ -4,7 +4,7 @@ -tbb::tbb_exception Class Reference +tbb::tbb_allocator< T > Class Template Reference @@ -33,191 +33,125 @@
-
tbb::tbb_exception Class Referenceabstract
+
tbb::tbb_allocator< T > Class Template Reference
-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. +

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::tbb_exception:
-
-
- - -tbb::captured_exception -tbb::movable_exception< ExceptionData > - -
+

#include <tbb_allocator.h>

+ + + +

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + + + + +

+Public Types

enum  malloc_type { scalable, +standard + }
 Specifies current allocator.
 
+typedef
+internal::allocator_type< T >
+::value_type 
value_type
 
+typedef value_type * pointer
 
+typedef const value_type * const_pointer
 
+typedef value_type & reference
 
+typedef const value_type & const_reference
 
+typedef size_t size_type
 
+typedef ptrdiff_t difference_type
 
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

virtual tbb_exceptionmove ()=0 throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
virtual void destroy ()=0 throw ()
 Destroys objects created by the move() method. More...
 
virtual void throw_self ()=0
 Throws this exception object. More...
 
-virtual const char * name () const =0 throw ()
 Returns RTTI name of the originally intercepted exception.
 
-virtual const char * what () const =0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 
tbb_allocator (const tbb_allocator &) throw ()
 
+template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 Copy-construct value at location pointed to by p.
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 Destroy value at location pointed to by p.
 
+ + + +

+Static Public Member Functions

+static malloc_type allocator_type ()
 Returns current allocator.
 

Detailed Description

-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.

-

If an unhandled exception of the type derived from tbb::tbb_exception is intercepted by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in the root thread. The root thread is the thread that has started the outermost algorithm or root task sharing the same task_group_context with the guilty algorithm/task (the one that threw the exception first).

-

Note: when documentation mentions workers with respect to exception handling, masters are implied as well, because they are completely equivalent in this context. Consequently a root thread can be master or worker thread.

-

NOTE: In case of nested algorithms or complex task hierarchies when the nested levels share (explicitly or by means of implicit inheritance) the task group context of the outermost level, the exception may be (re-)thrown multiple times (ultimately - in each worker on each nesting level) before reaching the root thread at the outermost level. IMPORTANT: if you intercept an exception derived from this class on a nested level, you must re-throw it in the catch block by means of the "throw;" operator.

-

TBB provides two implementations of this interface: tbb::captured_exception and template class tbb::movable_exception. See their declarations for more info.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual void tbb::tbb_exception::destroy ()
throw (
)
-
-pure virtual
-
- -

Destroys objects created by the move() method.

-

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+

template<typename T>
+class tbb::tbb_allocator< T >

-
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
virtual tbb_exception* tbb::tbb_exception::move ()
throw (
)
-
-pure virtual
-
- -

Creates and returns pointer to the deep copy of this exception object.

-

Move semantics is allowed.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::tbb_exception::operator delete (void * p)
-
-inline
-
-

Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() operation on an exception thrown out of TBB scheduler.

-

When overriding method move() make sure to override operator delete as well if memory is allocated not by TBB's scalable allocator.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual void tbb::tbb_exception::throw_self ()
-
-pure virtual
-
- -

Throws this exception object.

-

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

- -

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

    +

    The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

    +

The documentation for this class was generated from the following file:
    +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00195.html b/doc/html/a00195.html index 81165e90..5bb90fdb 100644 --- a/doc/html/a00195.html +++ b/doc/html/a00195.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_exception_ptr Class Reference +tbb::tbb_allocator< void > Class Template Reference @@ -33,82 +33,53 @@
-
tbb::internal::tbb_exception_ptr Class Reference
+
tbb::tbb_allocator< void > Class Template Reference
-

Exception container that preserves the exact copy of the original exception. +

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...

-

#include <tbb_exception.h>

+

#include <tbb_allocator.h>

- - - - - - - + + +

-Public Member Functions

void destroy () throw ()
 Destroys this objects. More...
 
-void throw_self ()
 Throws the contained exception .
 

+Classes

struct  rebind
 
- - - - - - - - + + + + + + +

-Static Public Member Functions

-static tbb_exception_ptrallocate ()
 
-static tbb_exception_ptrallocate (const tbb_exception &tag)
 
-static tbb_exception_ptrallocate (captured_exception &src)
 This overload uses move semantics (i.e. it empties src)
 

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 

Detailed Description

-

Exception container that preserves the exact copy of the original exception.

-

This class can be used only when the appropriate runtime support (mandated by C++0x) is present

-

Member Function Documentation

- -
-
- - - - - - - - - - - - - -
void tbb::internal::tbb_exception_ptr::destroy ()
throw (
)
-
+

template<>
+class tbb::tbb_allocator< void >

-

Destroys this objects.

-

Note that objects of this type can be created only by the allocate() method.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

The documentation for this class was generated from the following file:
    +
  • tbb_allocator.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00196.html b/doc/html/a00196.html index 82bacc0f..4eddf9c9 100644 --- a/doc/html/a00196.html +++ b/doc/html/a00196.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3 Class Reference +tbb::tbb_exception Class Reference @@ -33,117 +33,63 @@
-
tbb::internal::tbb_thread_v3 Class Reference
+
tbb::tbb_exception Class Referenceabstract
-

Versioned thread class. +

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...

-

#include <tbb_thread.h>

+

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::tbb_exception:
+
+
+ + +tbb::captured_exception +tbb::movable_exception< ExceptionData > + +
- - - -

-Classes

class  id
 
- - - - - -

-Public Types

-typedef HANDLE native_handle_type
 
-typedef pthread_t native_handle_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

tbb_thread_v3 (const tbb_thread_v3 &)
 
tbb_thread_v3 () __TBB_NOEXCEPT(true)
 Constructs a thread object that does not represent a thread of execution.
 
-template<class F >
 tbb_thread_v3 (F f)
 Constructs an object and executes f() in a new thread.
 
-template<class F , class X >
 tbb_thread_v3 (F f, X x)
 Constructs an object and executes f(x) in a new thread.
 
-template<class F , class X , class Y >
 tbb_thread_v3 (F f, X x, Y y)
 Constructs an object and executes f(x,y) in a new thread.
 
-tbb_thread_v3operator= (tbb_thread_v3 &x)
 
-void swap (tbb_thread_v3 &t) __TBB_NOEXCEPT(true)
 
-bool joinable () const __TBB_NOEXCEPT(true)
 
-void __TBB_EXPORTED_METHOD join ()
 The completion of the thread represented by *this happens before join() returns.
 
-void __TBB_EXPORTED_METHOD detach ()
 When detach() returns, *this no longer represents the possibly continuing thread of execution.
 
-id get_id () const __TBB_NOEXCEPT(true)
 
-native_handle_type native_handle ()
 
- - - - -

-Static Public Member Functions

static unsigned __TBB_EXPORTED_FUNC hardware_concurrency () __TBB_NOEXCEPT(true)
 The number of hardware thread contexts. More...
 
- - - -

-Public Attributes

-tbb_thread_v3(tbb_thread_v3
-&&x) __TBB_NOEXCEPT(true)
-tbb_thread_v3
operator= (tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
 
- - - - - + + + + + + + + + + + + + + + + +

-Friends

-void __TBB_EXPORTED_FUNC move_v3 (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
-void tbb::swap (tbb_thread_v3 &t1, tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
 
virtual tbb_exceptionmove ()=0 throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
virtual void destroy ()=0 throw ()
 Destroys objects created by the move() method. More...
 
virtual void throw_self ()=0
 Throws this exception object. More...
 
+virtual const char * name () const =0 throw ()
 Returns RTTI name of the originally intercepted exception.
 
+virtual const char * what () const =0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 

Detailed Description

-

Versioned thread class.

+

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.

+

If an unhandled exception of the type derived from tbb::tbb_exception is intercepted by the TBB scheduler in one of the worker threads, it is delivered to and re-thrown in the root thread. The root thread is the thread that has started the outermost algorithm or root task sharing the same task_group_context with the guilty algorithm/task (the one that threw the exception first).

+

Note: when documentation mentions workers with respect to exception handling, masters are implied as well, because they are completely equivalent in this context. Consequently a root thread can be master or worker thread.

+

NOTE: In case of nested algorithms or complex task hierarchies when the nested levels share (explicitly or by means of implicit inheritance) the task group context of the outermost level, the exception may be (re-)thrown multiple times (ultimately - in each worker on each nesting level) before reaching the root thread at the outermost level. IMPORTANT: if you intercept an exception derived from this class on a nested level, you must re-throw it in the catch block by means of the "throw;" operator.

+

TBB provides two implementations of this interface: tbb::captured_exception and template class tbb::movable_exception. See their declarations for more info.

Member Function Documentation

- +
+ +

Destroys objects created by the move() method.

+

Frees memory and calls destructor for this exception object. Can and must be used only on objects created by the move method.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
virtual tbb_exception* tbb::tbb_exception::move ()
throw (
)
+
+pure virtual
+
+ +

Creates and returns pointer to the deep copy of this exception object.

+

Move semantics is allowed.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void tbb::tbb_exception::operator delete (void * p)
+
+inline
+
+

Operator delete is provided only to allow using existing smart pointers with TBB exception objects obtained as the result of applying move() operation on an exception thrown out of TBB scheduler.

+

When overriding method move() make sure to override operator delete as well if memory is allocated not by TBB's scalable allocator.

+ +
+
+ +
+
+ + +

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00200.png b/doc/html/a00200.png index aa52099a9d5bbc6b96933a805511a865e9ce5c50..ca33e7fe184cb31e2bdd96f46b569d3fabe4e756 100644 GIT binary patch delta 749 zcmcb~Hj7QMGr-TCmrII^fq{Y7)59f*fq~%~0|P?<2Qvc$L(rA#n-dkS>sNZZIEGX( zzMcCz?}-9WtG(ZnegBo;KViC|Hq-Og)iTGBIg=iE*Yv#od3ux1>57DjOD-B@dIssw z*rKvhoFytV`uJq)ym=~`3piFwds;av*RKB;@mX%|Y`_2EQJPDq-+X;PYj3XFnXk2> zH~#0UyJp*;Vmo$rS+LHhwB*&xLTmQavwxQHE(wdjclX-7S9_+W#`kHwSvl#?spEb* zEowiX`z@;UJiPT=yHd}ri@lSc2yne$9Cmrlzr#U6+|${=pWN@1{kJ>*?&{B7VcRsK z@-vPqt$8*t?BmUhn*ZCJoMIQ9&tDz5Z%JwDy^yunr-fW!es5QJi+P6a`?b%m)m?}# z6ms*fH|LCXm2uY2-dS-*WzD7SlP~PrF|S3{Szc|SN^e8_;;p5XCpN0YKAL!NkFMt{ z*2&XUzBYM!PpUfDeQlG@=>moy;Xjxp_>(XF`Xx2#`iw1cYuuigYOJ;7Wc+n-3F`%J zHQk0dgG|ORO`hBf#C@U|_9k3ndcitb%t3#~7KW;WOIYhs)I4za&|Lb_fk}cFro?gK z*ITb9Pu=d%z~~xrmtoF=iFO{ZtsXLL?%T-z;6vxNv*-T{N3Bk~u+Qk+mT!Uk1?|m* zpZ(gW`t-z^WmOq(-ESV)aWgi(d(TaWRhgpKAFTbkJ@c*Iov>-OmWwtlSNU`5c)edv zi`^+<^^1EJhVJ>%wsF-yj>YSL1PWQS9QwWDs>$mA1}ae%QD!ywquSmHN3{#L@3mT= zk=niJYg?GkA&JtO_e1453=9kmp00i_>zopr0Ih&+QUCw| delta 813 zcmbQmc9Tu9Gr-TCmrII^fq{Y7)59f*fq~%{0|P?<2Qvc$1N+t)?GqKP>tA@fIEGX( zzMcEF=!q5&>+Hv?_WW1A|B;=I^TUmuH&Zq%9qr5&Xma!TJUumX+Ki-$OFCw~m?YvW z96M>zOWmqlw?3xrnr-e`WX0Ys?fGhjdt1{j0yz>sO}!_)&KGbKIWIpA1n{&G1zS<$n1pUx{i1GR*|E6k5Mf4TTY&3VmMmDm@R z>+bLVP;Y)={_`r~zxH!p?>kiee%Ybfx64Hy=cIm%3H@PI75Ok*{4rPkyhq|86`sG$ zzltx+pZYR)&A;<3o}se?r!UDsghlHVx1^yyW7Z3XizXKt7on+mz&<6&%g~jnV+Bly z-C^ z#@l5dd|VN5?fu(=e&KsQ{HynB`>(k3X5HtWKP$cmESvUl)Ay?SUlYEvRlPrQYsGuT z)BT&T${+W89VfKyX`XQm?=9WZIX_K{sPnj|XTy6E%lr|TW<9=8XU zHySd&cHe6#x2S)aHPdtxhpScfGjofVNte!Eywa^+ zf8Dq8!!tj*qZZLKZNo+P^~8n!xYfG$!`vh5`tSUm^3#RU;8hCSf%U=me;AzqGW-(T zvrLbfrzH81`icKDS1{XLfra?Si@{!+Oa3uW5HxWJ<=P;`z`(%Z>FVdQj@c=p2>=L) BnV|px diff --git a/doc/html/a00201.html b/doc/html/a00201.html index 84a6e0d0..0de13ba7 100644 --- a/doc/html/a00201.html +++ b/doc/html/a00201.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_base Struct Reference +tbb::internal::thread_closure_1< F, X > Struct Template Reference @@ -33,45 +33,75 @@
-
tbb::internal::thread_closure_base Struct Reference
+
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+ +

Structure used to pass user function with 1 argument to thread. + More...

+ +

#include <tbb_thread.h>

-Inheritance diagram for tbb::internal::thread_closure_base:
+Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
- - -tbb::internal::thread_closure_0< F > -tbb::internal::thread_closure_1< F, X > -tbb::internal::thread_closure_2< F, X, Y > + + +tbb::internal::thread_closure_base
+ + + @@ -159,24 +199,25 @@ void  +pure virtual
virtual void tbb::tbb_exception::throw_self ( ) tbb::swap ( -static
-

The number of hardware thread contexts.

-

Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

-

NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

+

Throws this exception object.

+

Make sure that if you have several levels of derivation from this interface you implement or override this method on the most derived level. The implementation is as simple as "throw *this;". Failure to do this will result in exception of a base class type being thrown.

+ +

Implemented in tbb::movable_exception< ExceptionData >, and tbb::captured_exception.


The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00194.png b/doc/html/a00196.png similarity index 100% rename from doc/html/a00194.png rename to doc/html/a00196.png diff --git a/doc/html/a00197.html b/doc/html/a00197.html index 88d70c5e..0312cddb 100644 --- a/doc/html/a00197.html +++ b/doc/html/a00197.html @@ -4,7 +4,7 @@ -tbb::thread_bound_filter Class Reference +tbb::internal::tbb_exception_ptr Class Reference @@ -33,125 +33,82 @@
-
tbb::thread_bound_filter Class Reference
+
tbb::internal::tbb_exception_ptr Class Reference
-

A stage in a pipeline served by a user thread. +

Exception container that preserves the exact copy of the original exception. More...

-

#include <pipeline.h>

-
-Inheritance diagram for tbb::thread_bound_filter:
-
-
- - -tbb::filter - -
+

#include <tbb_exception.h>

- - - -

-Public Types

enum  result_type { success, -item_not_available, -end_of_stream - }
 
- - - - - - -

Public Member Functions

result_type __TBB_EXPORTED_METHOD try_process_item ()
 If a data item is available, invoke operator() on that item. More...
 
result_type __TBB_EXPORTED_METHOD process_item ()
 Wait until a data item becomes available, and invoke operator() on that item. More...
 
- - - + + + + + +

-Protected Member Functions

thread_bound_filter (mode filter_mode)
 
void destroy () throw ()
 Destroys this objects. More...
 
+void throw_self ()
 Throws the contained exception .
 
- - - - - - - - - - - - - - - - - + + + + + + + +

-Additional Inherited Members

- Static Protected Attributes inherited from tbb::filter
-static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
-static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
-static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

+Static Public Member Functions

+static tbb_exception_ptrallocate ()
 
+static tbb_exception_ptrallocate (const tbb_exception &tag)
 
+static tbb_exception_ptrallocate (captured_exception &src)
 This overload uses move semantics (i.e. it empties src)
 

Detailed Description

-

A stage in a pipeline served by a user thread.

+

Exception container that preserves the exact copy of the original exception.

+

This class can be used only when the appropriate runtime support (mandated by C++0x) is present

Member Function Documentation

- +
- + -
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::process_item void tbb::internal::tbb_exception_ptr::destroy ( )
-
- -

Wait until a data item becomes available, and invoke operator() on that item.

-

This interface is blocking. Returns 'success' if an item was processed. Returns 'end_of_stream' if there are no more items to process. Never returns 'item_not_available', as it blocks until another return condition applies.

- -
-
- -
-
- - - - - + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::try_process_item ()throw (
)
-

If a data item is available, invoke operator() on that item.

-

This interface is non-blocking. Returns 'success' if an item was processed. Returns 'item_not_available' if no item can be processed now but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process.

+

Destroys this objects.

+

Note that objects of this type can be created only by the allocate() method.


The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • +
  • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00197.png b/doc/html/a00197.png deleted file mode 100644 index 7eab1d5112ca5b7d7067137bdd3c71a2d17e0a60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcmeAS@N?(olHy`uVBq!ia0y~yV3^3jz|g_L%)r2K;r>r21_lO+0G|-o|Ns9pFfhD$ z^R=}9&;$ks1~5Kw-~emq9eD-@29A;-zhH*{5ODQWh!Fz=Q;VmIV@L(#+qn-Xtuo+o z^S7IG_V@met_~X9ZciTNrK$5B&x*d~JZswi88eqM6_@+FNbcNye9FY#)jlA`90Q~6 z59j@Rk&%7-)XLM$<=+p_F?{u2Vtv}Km-iRnc>U;IT|=;8RnivG(-~jtrqx|}G0*?q zyZpkX7uEXfZoD`UXT3Q?-m3qZVg11s{U`rEe)sn4kNUJX{l{Khx$rfvxV&Fex%~T# zDQ;${uK8x0 z6vh5tuYI*}#%lMuAFtmqYVn=aS8U{V`HkAv={~1TKh^Cyw?4}F{hq97WzVX9f62S{ zJA1CZ)bn)TsnlOre|6vct-fj7t9>WkTXaupl1Q){0$-LcjlG`A^gw7IL(s%?FJ5cU z4zgMtr!h0gZt<;bhV>fC4Ks|GIy4DT`*Tv#rg8Bo2&S?K1iLX9ZVrss*?;Ss_$lw# ztKGA29p~L@|82cQ?y@_^Qs*20Wv`fJZFV*JdiBu|d;8Z$A(zcIhUnS0^94s6KRLWa zbe@&ensqNDpKa0=`}u6&wg}$KM^?;Dl&j0XI!o{Vs_-{o?%cAI{@i(SvQ1U0iOlEZ z%BdHVPfT{Jp8UVQ=hl(>dF~fi$(~+Z`e^T&#l085?=|b+yld&rZ130i;-b&ZaliLY zYHRgd{{60PS8}egB+PfVeeKH)c62I>K(YO`GiQW8@^dScd@(jXYRkaDz~JfX=d#Wz Gp$Pz3>R)#N diff --git a/doc/html/a00198.html b/doc/html/a00198.html index 1e739519..bbf06aeb 100644 --- a/doc/html/a00198.html +++ b/doc/html/a00198.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_0< F > Struct Template Reference +tbb::internal::tbb_thread_v3 Class Reference @@ -33,61 +33,150 @@
-
tbb::internal::thread_closure_0< F > Struct Template Reference
+
tbb::internal::tbb_thread_v3 Class Reference
-
-Inheritance diagram for tbb::internal::thread_closure_0< F >:
-
-
- - -tbb::internal::thread_closure_base - -
+ +

Versioned thread class. + More...

+ +

#include <tbb_thread.h>

+ + + +

+Classes

class  id
 
+ + + + + +

+Public Types

+typedef HANDLE native_handle_type
 
+typedef pthread_t native_handle_type
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

thread_closure_0 (const F &f)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
tbb_thread_v3 (const tbb_thread_v3 &)
 
tbb_thread_v3 () __TBB_NOEXCEPT(true)
 Constructs a thread object that does not represent a thread of execution.
 
+template<class F >
 tbb_thread_v3 (F f)
 Constructs an object and executes f() in a new thread.
 
+template<class F , class X >
 tbb_thread_v3 (F f, X x)
 Constructs an object and executes f(x) in a new thread.
 
+template<class F , class X , class Y >
 tbb_thread_v3 (F f, X x, Y y)
 Constructs an object and executes f(x,y) in a new thread.
 
+tbb_thread_v3operator= (tbb_thread_v3 &x)
 
+void swap (tbb_thread_v3 &t) __TBB_NOEXCEPT(true)
 
+bool joinable () const __TBB_NOEXCEPT(true)
 
+void __TBB_EXPORTED_METHOD join ()
 The completion of the thread represented by *this happens before join() returns.
 
+void __TBB_EXPORTED_METHOD detach ()
 When detach() returns, *this no longer represents the possibly continuing thread of execution.
 
+id get_id () const __TBB_NOEXCEPT(true)
 
+native_handle_type native_handle ()
 
- - + + +

Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
static unsigned __TBB_EXPORTED_FUNC hardware_concurrency () __TBB_NOEXCEPT(true)
 The number of hardware thread contexts. More...
 
- - + + +

Public Attributes

-F function
 
+tbb_thread_v3(tbb_thread_v3
+&&x) __TBB_NOEXCEPT(true)
+tbb_thread_v3
operator= (tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
 
+ + + + +

+Friends

+void __TBB_EXPORTED_FUNC move_v3 (tbb_thread_v3 &t1, tbb_thread_v3 &t2)
 
+void tbb::swap (tbb_thread_v3 &t1, tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
 
-
The documentation for this struct was generated from the following file:
    +

    Detailed Description

    +

    Versioned thread class.

    +

    Member Function Documentation

    + +
    +
    + + + + + +
    + + + + + + + +
    static unsigned __TBB_EXPORTED_FUNC tbb::internal::tbb_thread_v3::hardware_concurrency ()
    +
    +static
    +
    + +

    The number of hardware thread contexts.

    +

    Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask.

    +

    NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool.

    + +
    +
    +
    The documentation for this class was generated from the following file:
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00198.png b/doc/html/a00198.png deleted file mode 100644 index ca33e7fe184cb31e2bdd96f46b569d3fabe4e756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmeAS@N?(olHy`uVBq!ia0y~yV7SJ>z!1Q}%)r19bfx+x0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`X{D!&V@L(#+qtjvo+$9N z+WRfp_h0$_6Q&z#Gd*uzEprT+GwFeMP0!n(r#I=Gu1J`;6|WL_!0htNrFH5(yw1qldjL$61T?fiK)g~OHRgL2bZv3;8xRZh%?A!{LSXO>lEymh~M zV8_ka^zJ=39ad$EUVpIm=l0CEc6Y+2)mkpvuv`Ta$abfM)i3T@7`o?2+s0MmE8M48pxk7|1-9Mvw|zSnAfMr!w>uWeyEha^fbE2ht#Rs8t_ zN>KlMwvA!)x%|`LkF8bO0fs)jH?h50&RIFfcH9 My85}Sb4q9e08w^;=l}o! diff --git a/doc/html/a00199.html b/doc/html/a00199.html index 835424da..32c3e6af 100644 --- a/doc/html/a00199.html +++ b/doc/html/a00199.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_1< F, X > Struct Template Reference +tbb::thread_bound_filter Class Reference @@ -33,75 +33,125 @@
-
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+
tbb::thread_bound_filter Class Reference
-

Structure used to pass user function with 1 argument to thread. +

A stage in a pipeline served by a user thread. More...

-

#include <tbb_thread.h>

+

#include <pipeline.h>

-Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
+Inheritance diagram for tbb::thread_bound_filter:
- - -tbb::internal::thread_closure_base + + +tbb::filter
+ + + +

+Public Types

enum  result_type { success, +item_not_available, +end_of_stream + }
 
- - - - - - - + + + + + +

Public Member Functions

thread_closure_1 (const F &f, const X &x)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
result_type __TBB_EXPORTED_METHOD try_process_item ()
 If a data item is available, invoke operator() on that item. More...
 
result_type __TBB_EXPORTED_METHOD process_item ()
 Wait until a data item becomes available, and invoke operator() on that item. More...
 
- - - - + + +

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 

+Protected Member Functions

thread_bound_filter (mode filter_mode)
 
- - - - - + + + + + + + + + + + + + + + + +

-Public Attributes

-F function
 
-X arg1
 

+Additional Inherited Members

- Static Protected Attributes inherited from tbb::filter
+static const unsigned char filter_is_serial = 0x1
 The lowest bit 0 is for parallel vs. serial.
 
static const unsigned char filter_is_out_of_order = 0x1<<4
 4th bit distinguishes ordered vs unordered filters. More...
 
+static const unsigned char filter_is_bound = 0x1<<5
 5th bit distinguishes thread-bound and regular filters.
 
+static const unsigned char filter_may_emit_null = 0x1<<6
 6th bit marks input filters emitting small objects
 
static const unsigned char exact_exception_propagation
 7th bit defines exception propagation mode expected by the application. More...
 

Detailed Description

-

template<class F, class X>
-struct tbb::internal::thread_closure_1< F, X >

+

A stage in a pipeline served by a user thread.

+

Member Function Documentation

+ +
+
+ + + + + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::process_item ()
+
+ +

Wait until a data item becomes available, and invoke operator() on that item.

+

This interface is blocking. Returns 'success' if an item was processed. Returns 'end_of_stream' if there are no more items to process. Never returns 'item_not_available', as it blocks until another return condition applies.

+ +
+
+ +
+
+ + + + + + + +
result_type __TBB_EXPORTED_METHOD tbb::thread_bound_filter::try_process_item ()
+
+ +

If a data item is available, invoke operator() on that item.

+

This interface is non-blocking. Returns 'success' if an item was processed. Returns 'item_not_available' if no item can be processed now but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process.

-

Structure used to pass user function with 1 argument to thread.

-

The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • +
+
+
The documentation for this class was generated from the following file:
    +
  • pipeline.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00199.png b/doc/html/a00199.png index 961925b53400cd0df57f3333002868179b5c8a9f..7eab1d5112ca5b7d7067137bdd3c71a2d17e0a60 100644 GIT binary patch delta 712 zcmZ3__LWt!Gr-TCmrII^fq{Y7)59f*fq`Kn0|P?`2Qvc$!-e}lohB+;*SC1OIEGX( zzMcDU(kcTUH-Ec1XMgYi=<1-s?e^qRUYa`J@vP`u&aky=9K%=dCDy0ydU=2Gjn|Lf)inegRwZo_J)QBT zZd%=y7xVnzy~{6LdQq*v?#7D)an|*lGvuxMpBdI4T+x5>@8frGzy7FCd((gH#gz+R zW1&zRztmNt`NM~k$B)+Ncic{itAlKkp)a>^%3#+1cMECRuXOdTsF7>|VX zFeGWYF&K&}H_Ye~bnrRKp|C6oReD`_;Puj2trseqf~hK=hN&v`o`&i@IXjlc=kE3O zeVyf5)&9C?+OGL#n-su)xgW3JFlzCg)K_fecKMCk*6BW{O+VG`Ik!H_ z`2C)&Xl2i;et*fk_B(s7z0~t`->KAJSATWi`>nod+pB#i-CJ}|X_82=8vt!2~hiUQqrbz@hAwUvIqpb zF&J(RjMv$J>znu~@7Jr{vu_>e-D>}By+rP^JH}Gy8~-TxOIEGX( zzMXqBuf>4J)n6~@|NqI>%qbfWN0kQpYUMQ^F|*wGxH5ItvX`7mla~CDS};k(lR0FP zQYOF2+3UYj+IFjZ7HLg3?NP~HG27Pc|E#Ct4*GS^{x>X}64w~_|K7)E(VIVf|9v~* zr+L4~>QoJDlf<;yk0$27&03v3H|~D@-0HY){;+tJldm)uds}^48}s(`u61Q0p5IO# zPTMszM`(-ek=@gKZ*HHavU>8RulwvaOiFoj>g$zN)?dCI4hquWZ2WApJlti>zi2h~IVfZqu|GbB~s%UCG_$d92LM`f=<9+wbeHt=+2fbytns`l;_&FZ@p5 za{A5o`gwu(OKWv5m-@=Cp&E-|onEMepl@MIQIsGo$UqRvZm=@*uX43Dy5Dw%%m zy1Kk*ctU7xz`oq5?yo|4Y2yr)_5_18+bE>?Ln zwf$^~apv?bf=70j$EcnP?A=yY`|{U|I!P6SqNi0^S7obyCwhD-Qs1EZ^7YMY4tFP6 zFUXEqymZ-jht2LAtr)&8y_=hwQ|5xbjT?pn6%8r#gZXSimsi%#d?ohSXM>iX6v z;#yJ<>|afJ#P9H&@ACg|%sH={4p(l`kYu&E0t-KXCST2^>@S2jNfFVdQ&MBb@01DA-MgRZ+ diff --git a/doc/html/a00200.html b/doc/html/a00200.html index 1882a166..d9ea5869 100644 --- a/doc/html/a00200.html +++ b/doc/html/a00200.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference +tbb::internal::thread_closure_0< F > Struct Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
+
tbb::internal::thread_closure_0< F > Struct Template Reference
-Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+Inheritance diagram for tbb::internal::thread_closure_0< F >:
- - -tbb::internal::thread_closure_base + + +tbb::internal::thread_closure_base
- - - - + + + - - + - +

Public Member Functions

thread_closure_2 (const F &f, const X &x, const Y &y)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
+
thread_closure_0 (const F &f)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
void * operator new (size_t size)
 
+
 
void operator delete (void *ptr)
 
 
- - - + +

Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
- - - - - - +

Public Attributes

+
function
 
-X arg1
 
-Y arg2
 
 

The documentation for this struct was generated from the following file:
  • tbb_thread.h
  • @@ -94,7 +87,7 @@ Y 
arg2
- + + + - - + - + +

Public Member Functions

+
thread_closure_1 (const F &f, const X &x)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
void * operator new (size_t size)
 
+
 
void operator delete (void *ptr)
 
 
+ + + + +

+Static Public Member Functions

+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
+ + + + +

+Public Attributes

+F function
 
+X arg1
 
-
The documentation for this struct was generated from the following file:
    +

    Detailed Description

    +

    template<class F, class X>
    +struct tbb::internal::thread_closure_1< F, X >

    + +

    Structure used to pass user function with 1 argument to thread.

    +

    The documentation for this struct was generated from the following file:
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00201.png b/doc/html/a00201.png index 0324577e724e80dc1c635675c7fc1bf9494f27bb..961925b53400cd0df57f3333002868179b5c8a9f 100644 GIT binary patch delta 771 zcmZqVUeBi38Q|y6%O%Cdz`(%k>ERN@z`*c=fq@}_gPDPWLFL`apoxlB^-TLbT^vIy z7~jslnb%^#jE` zNhy=xaR>dnXa5_PO^Iua`+x7_v*^tqzW=_R z@YB3sWOb^BwMk;y>_-#x-)61Oo*P$xe{OYLH-A{X%E?z6i@mKrt&Mqmde^$L5YKO? z4yWy!nIp7C_Q>w(y*IZ{Q&~Ov(${@<8z!YZIra6*D(f%b4hIG4Z#I55*`DRszt68D zva0w^szp{a2gL8XdberXjJZe4)2`(1@;p}NX8kz!g6;Qp*Vb-T`MRsdZT-}DtQUT# zZ#n&@e*3(@`=zxymrH$R*YX-g&lEL_-F{B4?5^37y6d{tWxHQ{1!?@XeR0SB+b0Fj zxb3oTZmODd*jA{xUSgQK#G|Uw@3M)l1H=Ax{0-_aG#ALr^DEYJz3Bcdxul;_Hdb6= z8k>fL3U5GzhtvXwi6#z=N|_BzE|(ZsJC-nV33xJ#)GJIvQ&H!ox%3OmM21J%FqKTd zc3oXwwy&P4Kx?uo&w;jGH?5`bTI=&(jm|k@!@PILf_TQQ9@gjHPh2}evgGH&naXRo zr#*cC{ipWp+$t9|+FMV+LILDAEytgEtBzY{&a6sd1eefj$4HHW*C ztQTZQEMB_oyTfMpjaCd_m) z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Rlw85F{Fa=?cCdCiw$^O z&D*#B`0qcD#o%MFw^i=skmZNvnsg;qUPr8FcqrMH*umMr$l-UxYXb{Ik19g~!=WTj z28o6R5ljqh3L4WG8W=fFd8*!77T$g6!^eUb`+e=EF}}EPCT{%&{cD?484~tsHFp04 zDXWP0(<+w86Wjj(UE60}?U%nl-%a?LFL!gzw1rP5=o;V7k$X9<{@CHKhI{S8-@S}} zbySX@!8(G8;aQM)MBj&!+w1-$uDww+rSX&3;iDyHGiw9tC*G=^d}g2N0lsMr4LemD zA6=7_YnavUo4P+a)N4VdAs*g0M3 z#vPvI@@-&YIHStBWb;1{CQ)&f0Mki+ zuHySA1!^~csh#?@^#lWtL&iC-)E$v)wodojptEyk<Xuib>H%pJN?6I_gWe;RAms5cz!^LfupB5fs=vd7)Uu2PUQzz7aR0F{$aGN zQ092}Lm3P9Vm>#|E{}bGCy59?e=v_Zf4^!1r$>;@p1IK45u+w|2(* zui=Jw{!CiZmHTO9k4kAqTK`#9+jWU6dh?avE>JO*$@#C|a<6cmb9|lr+MCZF^uMW+ z{*`AmZ~B3w{r{$>+|kv3{rcQ_?+0t0@=Nbom48y!+^y&R;Bnbr!(UA-?=1KIjh=Su zlP!CB{XFx;yPY>nwnnv0a^7|(XLIF}=zpR7*N=Zuo^|K1yXptdh4EU8o~wS4Tv+eQ zwELvROQ!A_mveW2YX5rsb0DwQdXpHR^vO@%%fwdRoxNgP=qWABTmL8PeR#I;`O|Id z|LwU_b@D}d<97bq>=1G1eANki|GO|9U2AOPv1;Y52P;Eo_B=a!X~8t3RW=L1@Ap=+ zn0R1z`@M|)oPSSsUYLGBo@cM<(X{{jg(Bi(H+(s@HwBcW6(mc&*CgluD%JmBEBI$U zOPqAo;=kVRiF14Oy&fE0c;0?K@7}FZ;Xm5+0z9`(DEe=c(NjKobn7)T?s&oA{<5TeTc@cBjKVP`hy3L|XW72V> zedqGlpAo;g&m>yOSA>uKtly+Ei%AFATk0-6KYgg;oy3oZ3;FzCx5>B6v-S!)+{mKx zQomS%(eqcrzNZosmYiRFpHC%o`t}J2bY92JpSDEK-`XSSY;?|l|CWD8veutD_`aoX z-@e@k -tbb::tick_count Class Reference +tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference @@ -33,66 +33,68 @@
-
tbb::tick_count Class Reference
+
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
- -

Absolute timestamp. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+
+
+ + +tbb::internal::thread_closure_base + +
- - - - -

-Classes

class  interval_t
 Relative time interval. More...
 
- - - + + + + + + +

Public Member Functions

tick_count ()
 Construct an absolute timestamp initialized to zero.
 
thread_closure_2 (const F &f, const X &x, const Y &y)
 
- Public Member Functions inherited from tbb::internal::thread_closure_base
+void * operator new (size_t size)
 
+void operator delete (void *ptr)
 
- - - - - - + + +

Static Public Member Functions

-static tick_count now ()
 Return current time.
 
-static double resolution ()
 Return the resolution of the clock in seconds per tick.
 
+static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb.dll.
 
- - - - + + + + + + +

-Friends

-interval_t operator- (const tick_count &t1, const tick_count &t0)
 Subtract two timestamps to get the time interval between.
 

+Public Attributes

+F function
 
+X arg1
 
+Y arg2
 
-

Detailed Description

-

Absolute timestamp.

-

The documentation for this class was generated from the following file:
    -
  • tick_count.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_thread.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00202.png b/doc/html/a00202.png new file mode 100644 index 0000000000000000000000000000000000000000..aa52099a9d5bbc6b96933a805511a865e9ce5c50 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0y~yVEDzrz!1Q}%)r3FzI8@B0|SFZfKQ0)|Ns9P7#Lo> z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`>4m3@V@L(#+qrLxo@nu~ z&VIaV&wu6nAKBSBKit@PGi9^V(av0fCO41I(^Dg-%}AQKq+`~LNg}?&v6B|P)UCR8 z>touk+2)=_R_xuAXX%nlcHMQw5AXNP3#!^#_cuEHhMefBUwftA{NFb3 za@PA(!dm9D&sr+mzxq3UW$KR~WtTt4?b-ZE(UbXZ*DtwEe=MT^7QWf?E_71v&f7fU z&7lIn{r-IUyyDokNhTNWa=+jEbLkWn{IcjTm(!CKJ$v`*ywWpJOZdCO{Fw8Xi(k~7*KAdZeNnmY{_YRv7v?{& z68>vH=k>lr)$f-bnti)m1Y9 zTSnYrD7n&OXYp&R7IUbz*VgZ4cZ-GpJ`>x|TD!I6+S@0`Ug-Y%XS`kZ!N(N=*WSM^ z=oh}{!@qj3w*QJdZ`OV8`Lp7Cz_Mu%H+`@AHQ_5;)%zp2R=ig{-M{&&{Bgh6aYEak z<{8KE-qJ0d^W!D&tCvq-$(3I``|I1G-(UY6^GJB2_cMC+vWgq6iWg7C-aFOq{ngP+ zQvT_Uc?;yZCEw08a5``7x0<`8{-N}yNuuJdi$2eOy57<5aeH8SqaovK_q~R4i~5&Y zGfg*fxLP$cw|JR!>Fm|p_5SdFdA{?W%l@AWWuO0&{*t%uH`n{ueJeja^OHMj5k1p3 zTy$SgT-c9Wt!qEbJ+iL<&fh6NT^J2srLY}XA8h}J!TB%4FR?w#^q6@{k`Jk$_&;+6 mv&|J)aBsXA?4`NnAM*r36NgZ)4MGeI3=E#GelF{r5}E*z53KkA literal 0 HcmV?d00001 diff --git a/doc/html/a00203.html b/doc/html/a00203.html index bee08d8b..347ac2f1 100644 --- a/doc/html/a00203.html +++ b/doc/html/a00203.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference +tbb::internal::thread_closure_base Struct Reference @@ -33,56 +33,45 @@
-
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference
+
tbb::internal::thread_closure_base Struct Reference
+
+Inheritance diagram for tbb::internal::thread_closure_base:
+
+
+ + +tbb::internal::thread_closure_0< F > +tbb::internal::thread_closure_1< F, X > +tbb::internal::thread_closure_2< F, X, Y > + +
- - - -

-Public Types

-typedef
-internal::multifunction_output
-< Output > 
output_port_type
 
- - - - -

Public Member Functions

try_put_functor (output_port_type &p, const Output &v)
 
-void operator() ()
 
- - - - - - - + + + +

-Public Attributes

-output_port_type * port
 
-const Output * value
 
-bool result
 
+void * operator new (size_t size)
 
+void operator delete (void *ptr)
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00203.png b/doc/html/a00203.png new file mode 100644 index 0000000000000000000000000000000000000000..0324577e724e80dc1c635675c7fc1bf9494f27bb GIT binary patch literal 1409 zcmeAS@N?(olHy`uVBq!ia0y~yU}j=qU z`C8h4XaWNR0~jATaDcV*jywYc14l`aUogXe2)KGG#E5}`Rlw85F{Fa=?cCdCiw$^O z&D*#B`0qcD#o%MFw^i=skmZNvnsg;qUPr8FcqrMH*umMr$l-UxYXb{Ik19g~!=WTj z28o6R5ljqh3L4WG8W=fFd8*!77T$g6!^eUb`+e=EF}}EPCT{%&{cD?484~tsHFp04 zDXWP0(<+w86Wjj(UE60}?U%nl-%a?LFL!gzw1rP5=o;V7k$X9<{@CHKhI{S8-@S}} zbySX@!8(G8;aQM)MBj&!+w1-$uDww+rSX&3;iDyHGiw9tC*G=^d}g2N0lsMr4LemD zA6=7_YnavUo4P+a)N4VdAs*g0M3 z#vPvI@@-&YIHStBWb;1{CQ)&f0Mki+ zuHySA1!^~csh#?@^#lWtL&iC-)E$v)wodojptEyk<Xuib>H%pJN?6I_gWe;RAms5cz!^LfupB5fs=vd7)Uu2PUQzz7aR0F{$aGN zQ092}Lm3P9Vm>#|E{}bGCy59?e=v_Zf4^!1r$>;@p1IK45u+w|2(* zui=Jw{!CiZmHTO9k4kAqTK`#9+jWU6dh?avE>JO*$@#C|a<6cmb9|lr+MCZF^uMW+ z{*`AmZ~B3w{r{$>+|kv3{rcQ_?+0t0@=Nbom48y!+^y&R;Bnbr!(UA-?=1KIjh=Su zlP!CB{XFx;yPY>nwnnv0a^7|(XLIF}=zpR7*N=Zuo^|K1yXptdh4EU8o~wS4Tv+eQ zwELvROQ!A_mveW2YX5rsb0DwQdXpHR^vO@%%fwdRoxNgP=qWABTmL8PeR#I;`O|Id z|LwU_b@D}d<97bq>=1G1eANki|GO|9U2AOPv1;Y52P;Eo_B=a!X~8t3RW=L1@Ap=+ zn0R1z`@M|)oPSSsUYLGBo@cM<(X{{jg(Bi(H+(s@HwBcW6(mc&*CgluD%JmBEBI$U zOPqAo;=kVRiF14Oy&fE0c;0?K@7}FZ;Xm5+0z9`(DEe=c(NjKobn7)T?s&oA{<5TeTc@cBjKVP`hy3L|XW72V> zedqGlpAo;g&m>yOSA>uKtly+Ei%AFATk0-6KYgg;oy3oZ3;FzCx5>B6v-S!)+{mKx zQomS%(eqcrzNZosmYiRFpHC%o`t}J2bY92JpSDEK-`XSSY;?|l|CWD8veutD_`aoX z-@e@k -tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference +tbb::tick_count Class Reference @@ -33,34 +33,66 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
+
tbb::tick_count Class Reference
+ +

Absolute timestamp. + More...

+ +

#include <tick_count.h>

- - - - - + + + + +

-Public Types

-typedef tbb::internal::true_type type
 
-typedef tbb::internal::true_type type
 

+Classes

class  interval_t
 Relative time interval. More...
 
+ + + + +

+Public Member Functions

tick_count ()
 Construct an absolute timestamp initialized to zero.
 
+ + + + + + + +

+Static Public Member Functions

+static tick_count now ()
 Return current time.
 
+static double resolution ()
 Return the resolution of the clock in seconds per tick.
 
+ + + +

+Friends

+interval_t operator- (const tick_count &t1, const tick_count &t0)
 Subtract two timestamps to get the time interval between.
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_priority_queue.h
  • +

    Detailed Description

    +

    Absolute timestamp.

    +

    The documentation for this class was generated from the following file:
      +
    • tick_count.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00205.html b/doc/html/a00205.html index 00d3f894..fa6adf75 100644 --- a/doc/html/a00205.html +++ b/doc/html/a00205.html @@ -4,7 +4,7 @@ -tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference +tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference @@ -33,31 +33,56 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
+
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference
- - + + +

Public Types

-typedef tbb::internal::false_type type
 
+typedef
+internal::multifunction_output
+< Output > 
output_port_type
 
+ + + + + +

+Public Member Functions

try_put_functor (output_port_type &p, const Output &v)
 
+void operator() ()
 
+ + + + + + +

+Public Attributes

+output_port_type * port
 
+const Output * value
 
+bool result
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00206.html b/doc/html/a00206.html index 543d16b1..43179ef7 100644 --- a/doc/html/a00206.html +++ b/doc/html/a00206.html @@ -4,7 +4,7 @@ -tbb::user_abort Class Reference +tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference @@ -33,46 +33,34 @@
-
tbb::user_abort Class Reference
+
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
- -

Exception for user-initiated abort. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::user_abort:
-
-
- - - -
- - - + + + + +

-Public Member Functions

-const char * what () const throw ()
 

+Public Types

+typedef tbb::internal::true_type type
 
+typedef tbb::internal::true_type type
 
-

Detailed Description

-

Exception for user-initiated abort.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00207.html b/doc/html/a00207.html index e77c21fc..0af44b34 100644 --- a/doc/html/a00207.html +++ b/doc/html/a00207.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference +tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference @@ -33,56 +33,31 @@
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
+
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
-
-
- - - -
- - - - - -

-Public Member Functions

-bool operator() (const value_type &left, const value_type &right) const
 
value_compare (const hash_compare &comparator)
 
- - - -

-Protected Attributes

-hash_compare my_hash_compare
 
- - - + + +

-Friends

-class concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
 

+Public Types

+typedef tbb::internal::false_type type
 
-
The documentation for this class was generated from the following file:
    -
  • concurrent_unordered_map.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00207.png b/doc/html/a00207.png deleted file mode 100644 index d6754637d9f9a87cfc2318a7afd6a9ed9d4d9816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1711 zcmeAS@N?(olHy`uVBq!ia0y~yU^>UZz!1Q}%)r24caWKdfq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}X6NbR7*fIbcJAG#MSFx? z!|$G{`)_W?#qrbGrSRG2bMMMZy*;{?Y+7+gNH9@J$;ahLzO%=qi7LvT`+G{KsVIAL zZa6n7MMabGTI8f271aY)-jgOSVR>@3GV=PaJ>Q}xee0MTxBZ#$%UiFjj2`E=OO~C8 z-TUu-$+RWPWxMB{o?1F>$$l@dx$lpfKC@qXF8J(Rt~W8Y%k?fly^{Ufl2`W2-v2Xi zP4|cutZ%6-$&lLi;qlBExn*(Bm1n7_sxCgKm^**@eKGfK?|c1n@Bd2rX;rVy9=7+i z`_#|UXO>j{JD%v)e0}AzFIFqhHNSoTB;&~4i#sPJXoN=^u0Ek(VX>>WbjHSWmaXSj zeBKjy-0HsHeYZR2CGXCCe;Sj|^|R=~_rPDbr?*;Ouv~mWvs7-%Lv{D>Ip=m;T@N~w z*w&wQxc~kV?ZZ2)yf2*>zVz*8iQeq^OO=v={E~CumY&S1-u^!H<--SCckB5C-^!kA zd}_`XEB|QI+-FO_?;s%KK8}zcMMQ`ulSayC$k=GGE)Nb>ecrN^P@IO})yVH4j08ve$mzzxwRF ze089N=cz{AkrI*aX*6j{!|Zc{f@(^KTwMN`Ft9z?{fE(jf$hQejprEH9(@1#`M4dk zM8o{!R?HF&_n)V2u4OY|*xy&mX277i;S2+t0^>Ew0}Lt$K+-G`=?u&h7+&)vFbE~g zW#n;ST4UV6=+OXD%(>wltrb7`?cy?{gF{&G<81*3wgU`*jIcXx!>gL#+iSJof4@KN z_1y0Y@9Y`mKV|j&t;=`2VZcGUeWYrVDo_O9y}UDB0(eX(Eg^W9aMFGJ_* z^q*a!zR7oE0@ub$o^-<3ss;t@> za!@;Y`kiYFPyP6M!Ry|)v+I}FuPBx++p(!M?6l7J%Xh5}PZi(3w`ca^jeF1Kp6gQW znG~53RI5FChw;rsxBI7jmwr}wWnt;spIg0Z#aF)XH}jNx@AvJ!$jfL_vU24-YoD0A zpD*rQ`AEHFUj408_iT5DuD(0p@nOxX;_Xj9y0|CbUeo{ny~^hk=Mwkvm)OmnU2K&< zwcIxM)Li}Y_p)=h7pRx&Jr8Al`Ms=Wd*r!a_rlxbFRs4(JN;^n>*9RSAG68BR&1}?wu=3>aILU zw_?9wa4q-#kxh5DTfGl?zK<(sy$OqKY3AEWhE=g`Gqn%dJlk1nyR^7GtS>C)tpkJZ zajW<5ZXCREujgV5(<%S;zWevDJ#%*2^-HxgX8S&Wc{gTT<`(A952L4F`dxZ4=HKme zi&w49TeG_O?&>Xtbza81cmhqQmd{!nnYKq~3o|kFyH0>CBOXR)(&UC_SeXL+`s1Y+oikzGweAT*Rs{BM(98DZ2ozBr2X@yO=I`ICy8G(S%|R>%;0*o+dj>z?`y7<*5|xzdX8mWB Yl;1Qd_~-MB3=9kmp00i_>zopr03AP2CjbBd diff --git a/doc/html/a00208.html b/doc/html/a00208.html index 550e488e..c4a29084 100644 --- a/doc/html/a00208.html +++ b/doc/html/a00208.html @@ -4,7 +4,7 @@ -tbb::vector_iterator< Container, Value > Class Template Reference +tbb::user_abort Class Reference @@ -33,21 +33,46 @@
+
-
tbb::vector_iterator< Container, Value > Class Template Reference
+
tbb::user_abort Class Reference
-
The documentation for this class was generated from the following file:
    -
  • concurrent_vector.h
  • + +

    Exception for user-initiated abort. + More...

    + +

    #include <tbb_exception.h>

    +
    +Inheritance diagram for tbb::user_abort:
    +
    +
    + + + +
    + + + + +

    +Public Member Functions

    +const char * what () const throw ()
     
    +

    Detailed Description

    +

    Exception for user-initiated abort.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_exception.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00206.png b/doc/html/a00208.png similarity index 100% rename from doc/html/a00206.png rename to doc/html/a00208.png diff --git a/doc/html/a00209.html b/doc/html/a00209.html index 46736233..9dffd3df 100644 --- a/doc/html/a00209.html +++ b/doc/html/a00209.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::write_once_node< T > Class Template Reference +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference @@ -33,283 +33,56 @@
-
tbb::flow::interface8::write_once_node< T > Class Template Reference
+
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
-Inheritance diagram for tbb::flow::interface8::write_once_node< T >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
- - -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::overwrite_node< T >
-typedef T input_type
 
-typedef T output_type
 
-typedef sender< input_typepredecessor_type
 
-typedef receiver< output_typesuccessor_type
 
-typedef receiver< input_type >
-::built_predecessors_type 
built_predecessors_type
 
-typedef sender< output_type >
-::built_successors_type 
built_successors_type
 
-typedef receiver< input_type >
-::predecessor_list_type 
predecessor_list_type
 
-typedef sender< output_type >
-::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
-typedef T output_type
 The output type of this sender.
 
-typedef receiver< T > successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

Public Member Functions

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
-bool register_successor (successor_type &s)
 Add a new successor to this node.
 
-bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
-built_predecessors_typebuilt_predecessors ()
 
-built_successors_typebuilt_successors ()
 
-void internal_add_built_successor (successor_type &s)
 
-void internal_delete_built_successor (successor_type &s)
 
-size_t successor_count ()
 
-void copy_successors (successor_list_type &v)
 
-void internal_add_built_predecessor (predecessor_type &p)
 
-void internal_delete_built_predecessor (predecessor_type &p)
 
-size_t predecessor_count ()
 
-void copy_predecessors (predecessor_list_type &v)
 
-void extract ()
 
-bool try_get (input_type &v)
 Request an item from the sender.
 
-bool is_valid ()
 
-void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual ~receiver ()
 Destructor.
 
-bool try_put (const T &t)
 Put an item to the receiver.
 
-virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
-virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
-virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
+bool operator() (const value_type &left, const value_type &right) const
 
value_compare (const hash_compare &comparator)
 
- - - - - - - - - - - + + +

-Protected Member Functions

-task * try_put_task (const T &v)
 
- Protected Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
-void reset_receiver (reset_flags)
 
-void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
-virtual bool is_continue_receiver ()
 

+Protected Attributes

+hash_compare my_hash_compare
 
- - - - - - - - - -

Friends

-template<typename R , typename B >
class run_and_put_task
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
- - - - - - - - - - - - + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::overwrite_node< T >
-spin_mutex my_mutex
 
-internal::broadcast_cache
-< input_type, null_rw_mutex
my_successors
 
-internal::edge_container
-< predecessor_type
my_built_predecessors
 
-input_type my_buffer
 
-bool my_buffer_is_valid
 
+class concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
 

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

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00209.png b/doc/html/a00209.png index 6919a098dfb96a008fc3a9a5c549365e9ad3a262..d6754637d9f9a87cfc2318a7afd6a9ed9d4d9816 100644 GIT binary patch literal 1711 zcmeAS@N?(olHy`uVBq!ia0y~yU^>UZz!1Q}%)r24caWKdfq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}X6NbR7*fIbcJAG#MSFx? z!|$G{`)_W?#qrbGrSRG2bMMMZy*;{?Y+7+gNH9@J$;ahLzO%=qi7LvT`+G{KsVIAL zZa6n7MMabGTI8f271aY)-jgOSVR>@3GV=PaJ>Q}xee0MTxBZ#$%UiFjj2`E=OO~C8 z-TUu-$+RWPWxMB{o?1F>$$l@dx$lpfKC@qXF8J(Rt~W8Y%k?fly^{Ufl2`W2-v2Xi zP4|cutZ%6-$&lLi;qlBExn*(Bm1n7_sxCgKm^**@eKGfK?|c1n@Bd2rX;rVy9=7+i z`_#|UXO>j{JD%v)e0}AzFIFqhHNSoTB;&~4i#sPJXoN=^u0Ek(VX>>WbjHSWmaXSj zeBKjy-0HsHeYZR2CGXCCe;Sj|^|R=~_rPDbr?*;Ouv~mWvs7-%Lv{D>Ip=m;T@N~w z*w&wQxc~kV?ZZ2)yf2*>zVz*8iQeq^OO=v={E~CumY&S1-u^!H<--SCckB5C-^!kA zd}_`XEB|QI+-FO_?;s%KK8}zcMMQ`ulSayC$k=GGE)Nb>ecrN^P@IO})yVH4j08ve$mzzxwRF ze089N=cz{AkrI*aX*6j{!|Zc{f@(^KTwMN`Ft9z?{fE(jf$hQejprEH9(@1#`M4dk zM8o{!R?HF&_n)V2u4OY|*xy&mX277i;S2+t0^>Ew0}Lt$K+-G`=?u&h7+&)vFbE~g zW#n;ST4UV6=+OXD%(>wltrb7`?cy?{gF{&G<81*3wgU`*jIcXx!>gL#+iSJof4@KN z_1y0Y@9Y`mKV|j&t;=`2VZcGUeWYrVDo_O9y}UDB0(eX(Eg^W9aMFGJ_* z^q*a!zR7oE0@ub$o^-<3ss;t@> za!@;Y`kiYFPyP6M!Ry|)v+I}FuPBx++p(!M?6l7J%Xh5}PZi(3w`ca^jeF1Kp6gQW znG~53RI5FChw;rsxBI7jmwr}wWnt;spIg0Z#aF)XH}jNx@AvJ!$jfL_vU24-YoD0A zpD*rQ`AEHFUj408_iT5DuD(0p@nOxX;_Xj9y0|CbUeo{ny~^hk=Mwkvm)OmnU2K&< zwcIxM)Li}Y_p)=h7pRx&Jr8Al`Ms=Wd*r!a_rlxbFRs4(JN;^n>*9RSAG68BR&1}?wu=3>aILU zw_?9wa4q-#kxh5DTfGl?zK<(sy$OqKY3AEWhE=g`Gqn%dJlk1nyR^7GtS>C)tpkJZ zajW<5ZXCREujgV5(<%S;zWevDJ#%*2^-HxgX8S&Wc{gTT<`(A952L4F`dxZ4=HKme zi&w49TeG_O?&>Xtbza81cmhqQmd{!nnYKq~3o|kFyH0>CBOXR)(&UC_SeXL+`s1Y+oikzGweAT*Rs{BM(98DZ2ozBr2X@yO=I`ICy8G(S%|R>%;0*o+dj>z?`y7<*5|xzdX8mWB Yl;1Qd_~-MB3=9kmp00i_>zopr03AP2CjbBd literal 2518 zcmeAS@N?(olHy`uVBq!ia0y~yU>0OxU^u|R%)r3lV=U*)z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0<~Tr*m*J9@}XY?|a!~uc3g#ob8$Op8w446ck8u>1kk4 zHe_OIkq}f?IMN}($msTOlHmFJX%dWzrb=!O4HMHP49{NvXm&Ys`H;JWXxpd)~kHLq`XPx=H<)+xP%6auOB^V$6G)+3(QGER6k*B|(U8tP*e7?Gy z!w+dUpWkm|9M0W0WMbOWH(j#OHj5i%x&EW8Za$xFwn;ED#vKsuz45%Ndi&vvkqw`} zXZmEZuvD;~Ke4-V-gEYfN6JSzIP^`E;-&a*+noQ*c3z9mkco-s&sM3z=xHEZ)Z83? zoOV0&*~Y$Kf>F`!2nUCOkg|e9hoB*oQ%{GWKtjr_WiNXh85rZv*DE+QY*%-4XebbP zWFH9fJtN~GC6_4;42o_J4GfG-Ela(?G)qNwkg@`Z>6FF7!XcpG;L!_`XW>{WC;%3Z z^+pv?G-YA}DO>_Eh^0gqRiNbx2gsO)2~v!V{}guL&HH{#MS$~2-uCQSv7uLQUs7`l zy?T3+Lk!bI7Y`*B0YjzEfY4lTg(Mdt#l{t@q&fsWTUZ{+_sr;f`)9SSJ+Jz&?6CcM z;h~{xXXbs&@sA1J`b@jnW**1?U_}d`;v1`0?K{@&_Ge+n9l4JM0{ilhJbb`yF4K00 z_vYivp`oQVS39n^ELio*SZ?;S^qvY=lXrX-Hq+vbA1U1WS6p>qb&31`K6QQjS?w0{ ztjc2c`K9}Pp3{FjR=(kLQSqO+U*Y`)w!6-h)Gk`J%Kt}^(jGOI>*evhyLxf?g_5Rn9cH=DbEw(v%lTVjTR*NeUzgeY z{#s9O<*zQwp17sI*Y^D6Rh}o)WEi?@v0-`G|Ell5FDLwI7S#9X@c;MjJ=?>TZaP~( z{Z_Ut45ZjZ|Zf38%p z$vE=p+gXM+|Igia{gn4HJO5_yyXU*M>a1-G3BCKk5ah<+hu6igwfK9qU#FK}`eRee zk0%(J_1Wu5rA!}9LCY2342KbZWgdcSr}^UixBq(^kRXsSh`VhSoN#I57o=`u;v_nl$&_O2N?3{mx7uzxS?K^{aFe z2d7J@sji!fpiqazM3)t-UU{G-PAQS&zdFBKM6@kk77aj^i9iLyT3k!9yD827rrz*gCM2L}t(}ii`clXO+!TAmc z9C{ic%44FLCOSO%E6gF$At(Tr?a%gB5bD@d&&0@V$mGN{(P7U0|BoL(R<5b3scE^) z#&~bG3KI(lxDaDxbn0nfV2te+6i_(A!6A^u0+wJY(RFiZ5CE435Qz(0B_L`+8Q%U_ z-uBy|f>FmUBy_K?A+)?u0qaR(0hf&jJd%%;rYp$T4j3q?7UU0 za@X~Tg_d@oRs4NhcH62|riM(1lHFwZE$LQOx z6>`_FKR$W7U+rYy@;=$=>o3o|Z1ena*>&lQ^Rw6OpJ!_qYW~0Ib>g?Ou2s801*2X1 z3c=+|;>)J*D!dtM{PmW7U(C5L;e46<4a=)*tAA$wb6xiE*0*iT7f%&jtY^q{NLKmR zl|4^_=U3J~*V=#GH6?kTbTPkLuKeAd+ol$6cKhOYgo9&$+L6TUUJF@$x0wE8JEuRo z9KYY}(VhD99gin06yb3{o7mIv!B*LCezfVL^Pe}m@vx?tEVABxC*AhHx@l4PCa?aRanVxzp@6g6sA)#wK1qJdX0z<#1 z9pT{kf7|WN>H~?ZSN$?GWOB*^RT*gY6*!KS+#Fu?+<05I`#UQWONFhxfWm>>!paH` z791Z1RY8@2fP#*b3nwH+bPL0zJCM@Ji>Mw*`43Ac3$l^Y6eyiEtUHQGQ!NsVj7+=4 zkkS;$A=nN1Be*Pc);$Rh0WswVplWxLaAh^5cJctl#mUY+wk#5s&yUoV|Giq~zkTzw zTZVi$<5{zp-L|!#I&b#oH}9)&EKqiH__0f{y;(oytih9Y&fAy&c2&-s#l+||UAX;g z@qf$IH>J9^daI95o-XezCF?J1trx%CczNZy<8SkJR6VSCpEqsY5*`05=Xabj`VuQI zp4%-b@IcSE*FyF0rrlS1PrsXW`1-%XCq>KlZ+e-lvg6yjw3kbEmgVzE{=W5leqY$h z{gpyYd#rl}r6sqYdj0v}uUXqzN#FZ%;S@MbI0eOw|h^+2W>Z*ZDxu7 z$4`H`zWBG>ob;XPN7SA5Hka7-oUDJ>BPj6iZpY>4VZ9mCKYTr8x9AsGJ);<{7o5K7wEIQ?@~Pe_*uzrX_i|vo=)05H{ouGvuD(=TgoxF(>@*N;D7}3&u+_& z@sIeW?>ypmeqfx$((=URo*YvTsH~VIY{=wPq?FIk=mv_(lbsTb3r}}u&RX`J^-$e! a{pUM!{?$L^zreu2z~JfX=d#Wzp$PypI$<{e diff --git a/doc/html/a00210.html b/doc/html/a00210.html index 6d0bc552..b5322538 100644 --- a/doc/html/a00210.html +++ b/doc/html/a00210.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< T, Allocator > Class Template Reference +tbb::vector_iterator< Container, Value > Class Template Reference @@ -33,98 +33,21 @@
-
-
tbb::zero_allocator< T, Allocator > Class Template Reference
+
tbb::vector_iterator< Container, Value > Class Template Reference
- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. - More...

- -

#include <tbb_allocator.h>

-
-Inheritance diagram for tbb::zero_allocator< T, Allocator >:
-
-
- - - -
- - - - -

-Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - -

-Public Types

-typedef Allocator< T > base_allocator_type
 
-typedef
-base_allocator_type::value_type 
value_type
 
-typedef
-base_allocator_type::pointer 
pointer
 
-typedef
-base_allocator_type::const_pointer 
const_pointer
 
-typedef
-base_allocator_type::reference 
reference
 
-typedef
-base_allocator_type::const_reference 
const_reference
 
-typedef
-base_allocator_type::size_type 
size_type
 
-typedef
-base_allocator_type::difference_type 
difference_type
 
- - - - - - - - -

-Public Member Functions

zero_allocator (const zero_allocator &a) throw ()
 
-template<typename U >
 zero_allocator (const zero_allocator< U > &a) throw ()
 
-pointer allocate (const size_type n, const void *hint=0)
 
-

Detailed Description

-

template<typename T, template< typename X > class Allocator = tbb_allocator>
-class tbb::zero_allocator< T, Allocator >

- -

Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

-

The class is an adapter over an actual allocator that fills the allocation using memset function with template argument C as the value. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • concurrent_vector.h

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00211.html b/doc/html/a00211.html index 81a821e2..23acfdd9 100644 --- a/doc/html/a00211.html +++ b/doc/html/a00211.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< void, Allocator > Class Template Reference +tbb::flow::interface8::write_once_node< T > Class Template Reference @@ -33,67 +33,283 @@
-
tbb::zero_allocator< void, Allocator > Class Template Reference
+
tbb::flow::interface8::write_once_node< T > Class Template Reference
- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. - More...

- -

#include <tbb_allocator.h>

-Inheritance diagram for tbb::zero_allocator< void, Allocator >:
+Inheritance diagram for tbb::flow::interface8::write_once_node< T >:
- - + + +tbb::flow::interface8::overwrite_node< T > +tbb::flow::interface8::graph_node +tbb::flow::interface8::receiver< T > +tbb::flow::interface8::sender< T >
- - - -

-Classes

struct  rebind
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + - - + + + - +built_successors_type::edge_list_type  + +

Public Types

-typedef Allocator< void > base_allocator_type
 
+
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
- Public Types inherited from tbb::flow::interface8::overwrite_node< T >
+typedef T input_type
 
+typedef T output_type
 
+typedef sender< input_typepredecessor_type
 
+typedef receiver< output_typesuccessor_type
 
+typedef receiver< input_type >
+::built_predecessors_type 
built_predecessors_type
 
+typedef sender< output_type >
+::built_successors_type 
built_successors_type
 
+typedef receiver< input_type >
+::predecessor_list_type 
predecessor_list_type
 
+typedef sender< output_type >
+::successor_list_type 
successor_list_type
 
- Public Types inherited from tbb::flow::interface8::receiver< T >
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
typedef
-base_allocator_type::value_type 
value_type
 
+built_predecessors_type::edge_list_type predecessor_list_type
 
- Public Types inherited from tbb::flow::interface8::sender< T >
+typedef T output_type
 The output type of this sender.
 
+typedef receiver< T > successor_type
 The successor type for this node.
 
typedef
-base_allocator_type::pointer 
pointer
 
+internal::edge_container
+< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
typedef
-base_allocator_type::const_pointer 
const_pointer
 
successor_list_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
+void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
overwrite_node (graph &g)
 
overwrite_node (const overwrite_node &src)
 
+bool register_successor (successor_type &s)
 Add a new successor to this node.
 
+bool remove_successor (successor_type &s)
 Removes a successor from this node.
 
+built_predecessors_typebuilt_predecessors ()
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &s)
 
+void internal_delete_built_successor (successor_type &s)
 
+size_t successor_count ()
 
+void copy_successors (successor_list_type &v)
 
+void internal_add_built_predecessor (predecessor_type &p)
 
+void internal_delete_built_predecessor (predecessor_type &p)
 
+size_t predecessor_count ()
 
+void copy_predecessors (predecessor_list_type &v)
 
+void extract ()
 
+bool try_get (input_type &v)
 Request an item from the sender.
 
+bool is_valid ()
 
+void clear ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- Public Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual ~receiver ()
 Destructor.
 
+bool try_put (const T &t)
 Put an item to the receiver.
 
+virtual bool register_predecessor (predecessor_type &)
 Add a predecessor to the node.
 
+virtual bool remove_predecessor (predecessor_type &)
 Remove a predecessor from the node.
 
+virtual void copy_predecessors (predecessor_list_type &)=0
 
- Public Member Functions inherited from tbb::flow::interface8::sender< T >
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+virtual bool try_release ()
 Releases the reserved item.
 
+virtual bool try_consume ()
 Consumes the reserved item.
 
+ + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const T &v)
 
- Protected Member Functions inherited from tbb::flow::interface8::overwrite_node< T >
+void reset_receiver (reset_flags)
 
+void reset_node (reset_flags f)
 
- Protected Member Functions inherited from tbb::flow::interface8::receiver< T >
+virtual bool is_continue_receiver ()
 
+ + + + + + + + + + +

+Friends

+template<typename R , typename B >
class run_and_put_task
 
+template<typename X , typename Y >
class internal::broadcast_cache
 
+template<typename X , typename Y >
class internal::round_robin_cache
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::overwrite_node< T >
+spin_mutex my_mutex
 
+internal::broadcast_cache
+< input_type, null_rw_mutex
my_successors
 
+internal::edge_container
+< predecessor_type
my_built_predecessors
 
+input_type my_buffer
 
+bool my_buffer_is_valid
 
-

Detailed Description

-

template<template< typename T > class Allocator>
-class tbb::zero_allocator< void, Allocator >

- -

Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

-

The documentation for this class was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00211.png b/doc/html/a00211.png index f97e606d73f34771792a992f3bb005438d9cd609..6919a098dfb96a008fc3a9a5c549365e9ad3a262 100644 GIT binary patch literal 2518 zcmeAS@N?(olHy`uVBq!ia0y~yU>0OxU^u|R%)r3lV=U*)z`!68;1lBd|Nnmm28I`J zzLxeMn!v!o0LBLn9ANFdBhSFVz)=$97tHV<0<~Tr*m*J9@}XY?|a!~uc3g#ob8$Op8w446ck8u>1kk4 zHe_OIkq}f?IMN}($msTOlHmFJX%dWzrb=!O4HMHP49{NvXm&Ys`H;JWXxpd)~kHLq`XPx=H<)+xP%6auOB^V$6G)+3(QGER6k*B|(U8tP*e7?Gy z!w+dUpWkm|9M0W0WMbOWH(j#OHj5i%x&EW8Za$xFwn;ED#vKsuz45%Ndi&vvkqw`} zXZmEZuvD;~Ke4-V-gEYfN6JSzIP^`E;-&a*+noQ*c3z9mkco-s&sM3z=xHEZ)Z83? zoOV0&*~Y$Kf>F`!2nUCOkg|e9hoB*oQ%{GWKtjr_WiNXh85rZv*DE+QY*%-4XebbP zWFH9fJtN~GC6_4;42o_J4GfG-Ela(?G)qNwkg@`Z>6FF7!XcpG;L!_`XW>{WC;%3Z z^+pv?G-YA}DO>_Eh^0gqRiNbx2gsO)2~v!V{}guL&HH{#MS$~2-uCQSv7uLQUs7`l zy?T3+Lk!bI7Y`*B0YjzEfY4lTg(Mdt#l{t@q&fsWTUZ{+_sr;f`)9SSJ+Jz&?6CcM z;h~{xXXbs&@sA1J`b@jnW**1?U_}d`;v1`0?K{@&_Ge+n9l4JM0{ilhJbb`yF4K00 z_vYivp`oQVS39n^ELio*SZ?;S^qvY=lXrX-Hq+vbA1U1WS6p>qb&31`K6QQjS?w0{ ztjc2c`K9}Pp3{FjR=(kLQSqO+U*Y`)w!6-h)Gk`J%Kt}^(jGOI>*evhyLxf?g_5Rn9cH=DbEw(v%lTVjTR*NeUzgeY z{#s9O<*zQwp17sI*Y^D6Rh}o)WEi?@v0-`G|Ell5FDLwI7S#9X@c;MjJ=?>TZaP~( z{Z_Ut45ZjZ|Zf38%p z$vE=p+gXM+|Igia{gn4HJO5_yyXU*M>a1-G3BCKk5ah<+hu6igwfK9qU#FK}`eRee zk0%(J_1Wu5rA!}9LCY2342KbZWgdcSr}^UixBq(^kRXsSh`VhSoN#I57o=`u;v_nl$&_O2N?3{mx7uzxS?K^{aFe z2d7J@sji!fpiqazM3)t-UU{G-PAQS&zdFBKM6@kk77aj^i9iLyT3k!9yD827rrz*gCM2L}t(}ii`clXO+!TAmc z9C{ic%44FLCOSO%E6gF$At(Tr?a%gB5bD@d&&0@V$mGN{(P7U0|BoL(R<5b3scE^) z#&~bG3KI(lxDaDxbn0nfV2te+6i_(A!6A^u0+wJY(RFiZ5CE435Qz(0B_L`+8Q%U_ z-uBy|f>FmUBy_K?A+)?u0qaR(0hf&jJd%%;rYp$T4j3q?7UU0 za@X~Tg_d@oRs4NhcH62|riM(1lHFwZE$LQOx z6>`_FKR$W7U+rYy@;=$=>o3o|Z1ena*>&lQ^Rw6OpJ!_qYW~0Ib>g?Ou2s801*2X1 z3c=+|;>)J*D!dtM{PmW7U(C5L;e46<4a=)*tAA$wb6xiE*0*iT7f%&jtY^q{NLKmR zl|4^_=U3J~*V=#GH6?kTbTPkLuKeAd+ol$6cKhOYgo9&$+L6TUUJF@$x0wE8JEuRo z9KYY}(VhD99gin06yb3{o7mIv!B*LCezfVL^Pe}m@vx?tEVABxC*AhHx@l4PCa?aRanVxzp@6g6sA)#wK1qJdX0z<#1 z9pT{kf7|WN>H~?ZSN$?GWOB*^RT*gY6*!KS+#Fu?+<05I`#UQWONFhxfWm>>!paH` z791Z1RY8@2fP#*b3nwH+bPL0zJCM@Ji>Mw*`43Ac3$l^Y6eyiEtUHQGQ!NsVj7+=4 zkkS;$A=nN1Be*Pc);$Rh0WswVplWxLaAh^5cJctl#mUY+wk#5s&yUoV|Giq~zkTzw zTZVi$<5{zp-L|!#I&b#oH}9)&EKqiH__0f{y;(oytih9Y&fAy&c2&-s#l+||UAX;g z@qf$IH>J9^daI95o-XezCF?J1trx%CczNZy<8SkJR6VSCpEqsY5*`05=Xabj`VuQI zp4%-b@IcSE*FyF0rrlS1PrsXW`1-%XCq>KlZ+e-lvg6yjw3kbEmgVzE{=W5leqY$h z{gpyYd#rl}r6sqYdj0v}uUXqzN#FZ%;S@MbI0eOw|h^+2W>Z*ZDxu7 z$4`H`zWBG>ob;XPN7SA5Hka7-oUDJ>BPj6iZpY>4VZ9mCKYTr8x9AsGJ);<{7o5K7wEIQ?@~Pe_*uzrX_i|vo=)05H{ouGvuD(=TgoxF(>@*N;D7}3&u+_& z@sIeW?>ypmeqfx$((=URo*YvTsH~VIY{=wPq?FIk=mv_(lbsTb3r}}u&RX`J^-$e! a{pUM!{?$L^zreu2z~JfX=d#Wzp$PypI$<{e delta 634 zcmca6yqs0BGr-TCmrII^fq{Y7)59f*fq~%x0|P?<2Qvc$gSlnrvWbdT^-N}-E{-7; zjBn>&Y+9_q;M19rCm}E8@8pE^G^0#e?u{*h~<&Cl9DlZVCdX%#uckxMS=-s zhRKJE-bTjGOX8LJd4`?A%PWKBLHoy5t897MWA53UkB>~AZo4C4W8%wqX${p$$8Kb7 z`XXFmxr<}VImRXRf){=jAJD4*_-?X9s|CY{=a-p%YE=_vmfV_Pd*Hp`ezr5-FBms$ zbbY<#JY)WbrrHDFByCjog|65=?;zKPK-cN}_jIkw`gnKMx!lz&R=w&KZCJHx9)kEP z&EV>yCU(I7Dsw{GS-u|?K7JO~4-T1|Km5`V=*n25&A?~_#`Q1;e%j5;B_&Of;j8CA3TWP9{wKAm~Ds+18!4yy)m=mQU;Uu0OTkGhkOaWAs1v zBi#+XS8eVuI=kn!XbtC#`4d0v|d+7|Ipllz9OM|b~wdy4Bry{W-+f5!RC_pgy)NH)3jZJsuV ofd?bUgGdnG&lup6lJu9+Il8^^W2#pd0|Nttr>mdKI;Vst0IlQ`RsaA1 diff --git a/doc/html/a00212.html b/doc/html/a00212.html new file mode 100644 index 00000000..39d376e6 --- /dev/null +++ b/doc/html/a00212.html @@ -0,0 +1,133 @@ + + + + + + +tbb::zero_allocator< T, Allocator > Class Template Reference + + + + + + + +
    + +
    +
    tbb::zero_allocator< T, Allocator > Class Template Reference
    +
    +
    + +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. + More...

    + +

    #include <tbb_allocator.h>

    +
    +Inheritance diagram for tbb::zero_allocator< T, Allocator >:
    +
    +
    + + + +
    + + + + +

    +Classes

    struct  rebind
     
    + + + + + + + + + + + + + + + + + +

    +Public Types

    +typedef Allocator< T > base_allocator_type
     
    +typedef
    +base_allocator_type::value_type 
    value_type
     
    +typedef
    +base_allocator_type::pointer 
    pointer
     
    +typedef
    +base_allocator_type::const_pointer 
    const_pointer
     
    +typedef
    +base_allocator_type::reference 
    reference
     
    +typedef
    +base_allocator_type::const_reference 
    const_reference
     
    +typedef
    +base_allocator_type::size_type 
    size_type
     
    +typedef
    +base_allocator_type::difference_type 
    difference_type
     
    + + + + + + + + +

    +Public Member Functions

    zero_allocator (const zero_allocator &a) throw ()
     
    +template<typename U >
     zero_allocator (const zero_allocator< U > &a) throw ()
     
    +pointer allocate (const size_type n, const void *hint=0)
     
    +

    Detailed Description

    +

    template<typename T, template< typename X > class Allocator = tbb_allocator>
    +class tbb::zero_allocator< T, Allocator >

    + +

    Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.

    +

    The class is an adapter over an actual allocator that fills the allocation using memset function with template argument C as the value. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_allocator.h
    • +
    +
    +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00210.png b/doc/html/a00212.png similarity index 100% rename from doc/html/a00210.png rename to doc/html/a00212.png diff --git a/doc/html/a00213.html b/doc/html/a00213.html new file mode 100644 index 00000000..46e94558 --- /dev/null +++ b/doc/html/a00213.html @@ -0,0 +1,102 @@ + + + + + + +tbb::zero_allocator< void, Allocator > Class Template Reference + + + + + + + +
    + +
    +
    tbb::zero_allocator< void, Allocator > Class Template Reference
    +
    +
    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. + More...

    + +

    #include <tbb_allocator.h>

    +
    +Inheritance diagram for tbb::zero_allocator< void, Allocator >:
    +
    +
    + + + +
    + + + + +

    +Classes

    struct  rebind
     
    + + + + + + + + + +

    +Public Types

    +typedef Allocator< void > base_allocator_type
     
    +typedef
    +base_allocator_type::value_type 
    value_type
     
    +typedef
    +base_allocator_type::pointer 
    pointer
     
    +typedef
    +base_allocator_type::const_pointer 
    const_pointer
     
    +

    Detailed Description

    +

    template<template< typename T > class Allocator>
    +class tbb::zero_allocator< void, Allocator >

    + +

    Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1.

    +

    The documentation for this class was generated from the following file:
      +
    • tbb_allocator.h
    • +
    +
    +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00213.png b/doc/html/a00213.png new file mode 100644 index 0000000000000000000000000000000000000000..f97e606d73f34771792a992f3bb005438d9cd609 GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0y~yV0gg5z!1Q}%)r24ZrQnvfq_9Hz$e7@|Ns9C3=A*c zd@b!iG=YJE0gMkEIKbL@N1lO!fukhIFPPy!1YA88V#L6}WajDO7*fIbcJ9Td#R@#G z{&BPZ|9@QCCFQVTTWUG)WWV({6l0259%(Bn8FL4Q&JAZ=vFcSMm{4Yze7NXsWbC{o zUYVa~*crUMGFTq8e_XZ7mX|%|p3V9A$mHp^I}$b~zI>O~P@Qz_M#iQu!WEXgIJTT) zTv9K1;aBkit&i^}OSD=re0YAD*{4=DVP?s#3AP8`3+`t- zq@CsaQQ_lfVg2Bcx%tB{4S}wVHQEe}HY8v-FPD@wMTXB>P;J@lF;cskE4#aGy-(cnT7mW;!%U=DBl)4gYwr0kj z$uF}H?5l76AyjaiXIppH@}i@gSw5}XyZ+RE&wyR!jM4wtk90TmUbVTu=Ky-RD

Classes

class  tbb::flow::interface8::internal::successor_cache< T, M >
class  tbb::flow::interface8::internal::successor_cache< T, M >
 
class  tbb::flow::interface8::internal::broadcast_cache< T, M >
class  tbb::flow::interface8::internal::broadcast_cache< T, M >
 
class  tbb::flow::interface8::internal::round_robin_cache< T, M >
class  tbb::flow::interface8::internal::round_robin_cache< T, M >
 
class  tbb::flow::interface8::internal::edge_container< C >
class  tbb::flow::interface8::internal::edge_container< C >
 
struct  tbb::flow::interface8::null_type
struct  tbb::flow::interface8::null_type
 
class  tbb::flow::interface8::continue_msg
 An empty class used for messages that mean "I'm done". More...
class  tbb::flow::interface8::continue_msg
 An empty class used for messages that mean "I'm done". More...
 
class  tbb::flow::interface8::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
class  tbb::flow::interface8::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
 
class  tbb::flow::interface8::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
class  tbb::flow::interface8::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
 
class  tbb::flow::interface8::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
class  tbb::flow::interface8::sender< T >
 Pure virtual template class that defines a sender of messages of type T. More...
 
class  tbb::flow::interface8::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
class  tbb::flow::interface8::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
 
class  tbb::flow::interface8::run_and_put_task< R, B >
class  tbb::flow::interface8::run_and_put_task< R, B >
 
class  tbb::flow::interface8::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
class  tbb::flow::interface8::receiver< T >
 Pure virtual template class that defines a receiver of messages of type T. More...
 
class  tbb::flow::interface8::internal::edge_container< C >
class  tbb::flow::interface8::internal::edge_container< C >
 
class  tbb::flow::interface8::continue_receiver
 Base class for receivers of completion messages. More...
class  tbb::flow::interface8::continue_receiver
 Base class for receivers of completion messages. More...
 
class  tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
class  tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
 
class  tbb::flow::interface8::graph
 The graph class. More...
class  tbb::flow::interface8::graph
 The graph class. More...
 
class  tbb::flow::interface8::graph_node
 The base of all graph nodes. More...
class  tbb::flow::interface8::graph_node
 The base of all graph nodes. More...
 
class  tbb::flow::interface8::source_node< Output >
 An executable node that acts as a source, i.e. it has no predecessors. More...
class  tbb::flow::interface8::source_node< Output >
 An executable node that acts as a source, i.e. it has no predecessors. More...
 
struct  tbb::flow::interface8::allocate_buffer< T >
 
struct  tbb::flow::interface8::allocate_buffer< queueing >
 
class  tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
 Implements a function node that supports Input -> Output. More...
class  tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
 Implements a function node that supports Input -> Output. More...
 
class  tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
 implements a function node that supports Input -> (set of outputs) More...
class  tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
 implements a function node that supports Input -> (set of outputs) More...
 
class  tbb::flow::interface8::split_node< TupleType, Allocator >
 split_node: accepts a tuple as input, forwards each element of the tuple to its More...
class  tbb::flow::interface8::split_node< TupleType, Allocator >
 split_node: accepts a tuple as input, forwards each element of the tuple to its More...
 
class  tbb::flow::interface8::continue_node< Output >
 Implements an executable node that supports continue_msg -> Output. More...
class  tbb::flow::interface8::continue_node< Output >
 Implements an executable node that supports continue_msg -> Output. More...
 
class  tbb::flow::interface8::overwrite_node< T >
class  tbb::flow::interface8::overwrite_node< T >
 
class  tbb::flow::interface8::write_once_node< T >
class  tbb::flow::interface8::write_once_node< T >
 
class  tbb::flow::interface8::broadcast_node< T >
 Forwards messages of type T to all successors. More...
class  tbb::flow::interface8::broadcast_node< T >
 Forwards messages of type T to all successors. More...
 
class  tbb::flow::interface8::buffer_node< T, A >
 Forwards messages in arbitrary order. More...
class  tbb::flow::interface8::buffer_node< T, A >
 Forwards messages in arbitrary order. More...
 
class  tbb::flow::interface8::buffer_node< T, A >::buffer_operation
class  tbb::flow::interface8::buffer_node< T, A >::buffer_operation
 
class  tbb::flow::interface8::queue_node< T, A >
 Forwards messages in FIFO order. More...
class  tbb::flow::interface8::queue_node< T, A >
 Forwards messages in FIFO order. More...
 
class  tbb::flow::interface8::sequencer_node< T, A >
 Forwards messages in sequence order. More...
class  tbb::flow::interface8::sequencer_node< T, A >
 Forwards messages in sequence order. More...
 
class  tbb::flow::interface8::priority_queue_node< T, Compare, A >
 Forwards messages in priority order. More...
class  tbb::flow::interface8::priority_queue_node< T, Compare, A >
 Forwards messages in priority order. More...
 
class  tbb::flow::interface8::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
class  tbb::flow::interface8::limiter_node< T >
 Forwards messages only if the threshold has not been reached. More...
 
class  tbb::flow::interface8::join_node< OutputTuple, JP >
class  tbb::flow::interface8::join_node< OutputTuple, JP >
 
class  tbb::flow::interface8::join_node< OutputTuple, reserving >
class  tbb::flow::interface8::join_node< OutputTuple, reserving >
 
class  tbb::flow::interface8::join_node< OutputTuple, queueing >
class  tbb::flow::interface8::join_node< OutputTuple, queueing >
 
class  tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
class  tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 
class  tbb::flow::interface8::indexer_node< T0 >
class  tbb::flow::interface8::indexer_node< T0 >
 
class  tbb::flow::interface8::indexer_node< T0, T1 >
class  tbb::flow::interface8::indexer_node< T0, T1 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
 
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
class  tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 
class  tbb::flow::interface8::composite_node< InputTuple, OutputTuple >
class  tbb::flow::interface8::composite_node< InputTuple, OutputTuple >
 
class  tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
class  tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
 
class  tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >
class  tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >
 
class  tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >
class  tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >
 
class  tbb::flow::interface8::internal::async_gateway< Output >
 Pure virtual template class that defines interface for async communication. More...
class  tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
 Implements async node. More...
 
struct  tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
struct  tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
 
- - + +

Namespaces

 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 
- - + +

Constant Groups

 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/dir_63fb2cc293d133785b96e521fa051167.html b/doc/html/dir_63fb2cc293d133785b96e521fa051167.html index 6e4b5a0d..0ef859f5 100644 --- a/doc/html/dir_63fb2cc293d133785b96e521fa051167.html +++ b/doc/html/dir_63fb2cc293d133785b96e521fa051167.html @@ -43,7 +43,7 @@ Directories

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html b/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html index 85948b31..8a49f26a 100644 --- a/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html +++ b/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html @@ -37,126 +37,126 @@

@@ -274,7 +274,7 @@ static tbb::task *const 

tb

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00232.html b/doc/html/a00234.html similarity index 88% rename from doc/html/a00232.html rename to doc/html/a00234.html index 0d6c0e4a..17cd9a55 100644 --- a/doc/html/a00232.html +++ b/doc/html/a00234.html @@ -48,32 +48,32 @@ - - + + - + - - + + - + - - + + - +

Classes

class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
struct  tbb::interface6::memory_pool_allocator< T, P >::rebind< U >
struct  tbb::interface6::memory_pool_allocator< T, P >::rebind< U >
 
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
struct  tbb::interface6::memory_pool_allocator< void, P >::rebind< U >
struct  tbb::interface6::memory_pool_allocator< void, P >::rebind< U >
 
class  tbb::interface6::memory_pool< Alloc >
 Thread-safe growable pool allocator for variable-size requests. More...
class  tbb::interface6::memory_pool< Alloc >
 Thread-safe growable pool allocator for variable-size requests. More...
 
class  tbb::interface6::fixed_pool
class  tbb::interface6::fixed_pool
 
- - + +

Namespaces

 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 
- - + +

Constant Groups

 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00251.html b/doc/html/a00253.html similarity index 90% rename from doc/html/a00251.html rename to doc/html/a00253.html index cf807004..2811b11c 100644 --- a/doc/html/a00251.html +++ b/doc/html/a00253.html @@ -50,35 +50,35 @@

@@ -90,7 +90,7 @@ template<typename T , typename U , typename P >

- + - - + + - + - - + + - +

Classes

struct  rml::MemPoolPolicy
struct  rml::MemPoolPolicy
 
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
struct  tbb::scalable_allocator< T >::rebind< U >
struct  tbb::scalable_allocator< T >::rebind< U >
 
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
struct  tbb::scalable_allocator< void >::rebind< U >
struct  tbb::scalable_allocator< void >::rebind< U >
 
- - + + - - + +

Namespaces

 rml
 The namespace rml contains components of low-level memory pool interface.
 rml
 The namespace rml contains components of low-level memory pool interface.
 
 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 
- - + + - - + +

Constant Groups

 rml
 The namespace rml contains components of low-level memory pool interface.
 rml
 The namespace rml contains components of low-level memory pool interface.
 
 tbb
 The namespace tbb contains all components of the library.
 tbb
 The namespace tbb contains all components of the library.
 

@@ -124,27 +124,27 @@ Enumerations

- + - + - + - + - + - + - + - + - + - + - + @@ -185,7 +185,7 @@ template<typename T , typename U >

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00271.html b/doc/html/a00273.html similarity index 97% rename from doc/html/a00271.html rename to doc/html/a00273.html index de9d0a8d..dea8fd0c 100644 --- a/doc/html/a00271.html +++ b/doc/html/a00273.html @@ -47,7 +47,7 @@

Functions

void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
 
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
 
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
 
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
 
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
 
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
 
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
 
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
 
MemPoolError rml::pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
- +

Classes

struct  MemPoolPolicy
struct  MemPoolPolicy
 
+MemPoolError  @@ -107,7 +107,7 @@ MemoryPool *  - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

@@ -75,7 +75,7 @@ Enumerations

Functions

-MemPoolError pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
 
bool pool_destroy (MemoryPool *memPool)
pool_identify

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00274.html b/doc/html/a00276.html similarity index 85% rename from doc/html/a00274.html rename to doc/html/a00276.html index d8a92f52..5a894b6a 100644 --- a/doc/html/a00274.html +++ b/doc/html/a00276.html @@ -56,170 +56,170 @@ Classes
struct  atomic< void * >
 Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->. More...
 
class  blocked_range
 A range over which to iterate. More...
class  blocked_range
 A range over which to iterate. More...
 
class  blocked_range2d
 A 2-dimensional range that models the Range concept. More...
class  blocked_range2d
 A 2-dimensional range that models the Range concept. More...
 
class  blocked_range3d
 A 3-dimensional range that models the Range concept. More...
class  blocked_range3d
 A 3-dimensional range that models the Range concept. More...
 
class  cache_aligned_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  cache_aligned_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  combinable
 Thread-local storage with optional reduction. More...
class  combinable
 Thread-local storage with optional reduction. More...
 
class  concurrent_bounded_queue
 A high-performance thread-safe blocking concurrent bounded queue. More...
class  concurrent_bounded_queue
 A high-performance thread-safe blocking concurrent bounded queue. More...
 
class  concurrent_vector
 Concurrent vector container. More...
class  concurrent_vector
 Concurrent vector container. More...
 
class  vector_iterator
class  vector_iterator
 
class  mutex
 Wrapper around the platform's native reader-writer lock. More...
class  mutex
 Wrapper around the platform's native reader-writer lock. More...
 
class  null_mutex
 A mutex which does nothing. More...
class  null_mutex
 A mutex which does nothing. More...
 
class  null_rw_mutex
 A rw mutex which does nothing. More...
class  null_rw_mutex
 A rw mutex which does nothing. More...
 
class  parallel_do_feeder
 Class the user supplied algorithm body uses to add new tasks. More...
class  parallel_do_feeder
 Class the user supplied algorithm body uses to add new tasks. More...
 
struct  task_group_context
struct  task_group_context
 
struct  pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
struct  pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
struct  final_scan_tag
 Used to indicate that the final scan is being performed. More...
struct  final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  parallel_while
 Parallel iteration over a stream, with optional addition of more work. More...
class  parallel_while
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  filter
 A stage in a pipeline. More...
class  filter
 A stage in a pipeline. More...
 
class  thread_bound_filter
 A stage in a pipeline served by a user thread. More...
class  thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  pipeline
 A processing pipeline that applies filters to items. More...
class  pipeline
 A processing pipeline that applies filters to items. More...
 
class  queuing_mutex
 Queuing mutex with local-only spinning. More...
class  queuing_mutex
 Queuing mutex with local-only spinning. More...
 
class  queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
class  queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
 
class  recursive_mutex
class  recursive_mutex
 
class  scalable_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  scalable_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  spin_mutex
 A lock that occupies a single byte. More...
class  spin_mutex
 A lock that occupies a single byte. More...
 
class  spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
class  spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
 
class  task_handle
class  task_handle
 
class  task_group
class  task_group
 
class  structured_task_group
class  structured_task_group
 
class  task_scheduler_init
 Class delimiting the scope of task scheduler activity. More...
class  task_scheduler_init
 Class delimiting the scope of task scheduler activity. More...
 
class  tbb_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  zero_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  zero_allocator
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  bad_last_alloc
 Exception for concurrent containers. More...
class  bad_last_alloc
 Exception for concurrent containers. More...
 
class  improper_lock
 Exception for PPL locks. More...
class  improper_lock
 Exception for PPL locks. More...
 
class  user_abort
 Exception for user-initiated abort. More...
class  user_abort
 Exception for user-initiated abort. More...
 
class  missing_wait
 Exception for missing wait on structured_task_group. More...
class  missing_wait
 Exception for missing wait on structured_task_group. More...
 
class  invalid_multiple_scheduling
 Exception for repeated scheduling of the same task_handle. More...
class  invalid_multiple_scheduling
 Exception for repeated scheduling of the same task_handle. More...
 
class  tbb_exception
 Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...
class  tbb_exception
 Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. More...
 
class  captured_exception
 This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...
class  captured_exception
 This class is used by TBB to propagate information about unhandled exceptions into the root thread. More...
 
class  movable_exception
 Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...
class  movable_exception
 Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...
 
class  tick_count
 Absolute timestamp. More...
class  tick_count
 Absolute timestamp. More...
 
+internal::critical_section_v4  - +false >  + +typedef spin_rw_mutex_v3  +tbb::internal::task_scheduler_observer_v3  +typedef internal::tbb_thread_v3 

Typedefs

typedef
-internal::critical_section_v4 
critical_section
critical_section
 
typedef
interface7::internal::padded_mutex
< interface7::internal::x86_eliding_mutex,
-false > 
speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
 
-typedef spin_rw_mutex_v3 spin_rw_mutex
spin_rw_mutex
 
typedef std::size_t stack_size_type
 
typedef
-tbb::internal::task_scheduler_observer_v3 
task_scheduler_observer
task_scheduler_observer
 
-typedef internal::tbb_thread_v3 tbb_thread
tbb_thread
 Users reference thread class by name tbb_thread.
 
- - + - @@ -233,10 +233,10 @@ Enumerations +  +size_t  - + - + @@ -269,81 +269,81 @@ template<typename Key , typename T , typename HashCompare , typename A > < - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + +void  +void  +tick_count::interval_t  - - + + @@ -354,128 +354,128 @@ template<typename Range , typename Body > - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + @@ -517,138 +517,138 @@ template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +

Enumerations

enum  memory_semantics { full_fence, -acquire, -release, -relaxed +
enum  memory_semantics { full_fence, +acquire, +release, +relaxed }
 Specifies memory semantics. More...
 Specifies memory semantics. More...
 
enum  ets_key_usage_type { ets_key_per_instance, +
enum  ets_key_usage_type { ets_key_per_instance, ets_no_key }
 enum for selecting between single key and key-per-instance versions

Functions

__TBB_DECL_ATOMIC (__TBB_LONG_LONG) __TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG) __TBB_DECL_ATOMIC(long) __TBB_DECL_ATOMIC(unsigned long) __TBB_DECL_ATOMIC_ALT(unsigned
__TBB_DECL_ATOMIC (__TBB_LONG_LONG) __TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG) __TBB_DECL_ATOMIC(long) __TBB_DECL_ATOMIC(unsigned long) __TBB_DECL_ATOMIC_ALT(unsigned
 
-size_t __TBB_DECL_ATOMIC_ALT (int, ptrdiff_t) __TBB_DECL_ATOMIC(unsigned) __TBB_DECL_ATOMIC(int) __TBB_DECL_ATOMIC(unsigned short) __TBB_DECL_ATOMIC(short) __TBB_DECL_ATOMIC(char) __TBB_DECL_ATOMIC(signed char) __TBB_DECL_ATOMIC(unsigned char) __TBB_DECL_ATOMIC(wchar_t) template< typename T > struct atomic< T * >
__TBB_DECL_ATOMIC_ALT (int, ptrdiff_t) __TBB_DECL_ATOMIC(unsigned) __TBB_DECL_ATOMIC(int) __TBB_DECL_ATOMIC(unsigned short) __TBB_DECL_ATOMIC(short) __TBB_DECL_ATOMIC(char) __TBB_DECL_ATOMIC(signed char) __TBB_DECL_ATOMIC(unsigned char) __TBB_DECL_ATOMIC(wchar_t) template< typename T > struct atomic< T * >
 Specialization for atomic<T*> with arithmetic and operator->.
 
@@ -249,11 +249,11 @@ template<memory_semantics M, typename T >
 
template<typename T , typename U >
bool operator== (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
bool operator== (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
 
template<typename T , typename U >
bool operator!= (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
bool operator!= (const cache_aligned_allocator< T > &, const cache_aligned_allocator< U > &)
 
template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
 
template<typename T , class A1 , class A2 >
bool operator== (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator== (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A1 , class A2 >
bool operator!= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator!= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A1 , class A2 >
bool operator< (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator< (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A1 , class A2 >
bool operator> (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator> (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A1 , class A2 >
bool operator<= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator<= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A1 , class A2 >
bool operator>= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
bool operator>= (const concurrent_vector< T, A1 > &a, const concurrent_vector< T, A2 > &b)
 
template<typename T , class A >
void swap (concurrent_vector< T, A > &a, concurrent_vector< T, A > &b)
void swap (concurrent_vector< T, A > &a, concurrent_vector< T, A > &b)
 
template<typename T , typename U >
bool operator== (const scalable_allocator< T > &, const scalable_allocator< U > &)
bool operator== (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
template<typename T , typename U >
bool operator!= (const scalable_allocator< T > &, const scalable_allocator< U > &)
bool operator!= (const scalable_allocator< T > &, const scalable_allocator< U > &)
 
bool is_current_task_group_canceling ()
 
template<class F >
task_handle< F > make_task (const F &f)
task_handle< F > make_task (const F &f)
 
template<typename T , typename U >
bool operator== (const tbb_allocator< T > &, const tbb_allocator< U > &)
bool operator== (const tbb_allocator< T > &, const tbb_allocator< U > &)
 
template<typename T , typename U >
bool operator!= (const tbb_allocator< T > &, const tbb_allocator< U > &)
bool operator!= (const tbb_allocator< T > &, const tbb_allocator< U > &)
 
template<typename T1 , template< typename X1 > class B1, typename T2 , template< typename X2 > class B2>
bool operator== (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
bool operator== (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
 
template<typename T1 , template< typename X1 > class B1, typename T2 , template< typename X2 > class B2>
bool operator!= (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
bool operator!= (const zero_allocator< T1, B1 > &a, const zero_allocator< T2, B2 > &b)
 
int __TBB_EXPORTED_FUNC TBB_runtime_interface_version ()
int __TBB_EXPORTED_FUNC TBB_runtime_interface_version ()
 The function returns the interface version of the TBB shared library being used. More...
 
-void swap (internal::tbb_thread_v3 &t1, internal::tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
swap (internal::tbb_thread_v3 &t1, internal::tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
 
-void move (tbb_thread &t1, tbb_thread &t2)
move (tbb_thread &t1, tbb_thread &t2)
 
-tick_count::interval_t operator- (const tick_count &t1, const tick_count &t0)
operator- (const tick_count &t1, const tick_count &t0)
 
parallel_do

See also requirements on parallel_do Body.

template<typename Iterator , typename Body >
void parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
void parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Range , typename Body >
void parallel_do (const Range &rng, const Body &body)
 
template<typename Iterator , typename Body >
void parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
void parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_do (Range &rng, const Body &body, task_group_context &context)
void parallel_do (Range &rng, const Body &body, task_group_context &context)
 
template<typename Range , typename Body >
void parallel_do (const Range &rng, const Body &body, task_group_context &context)
void parallel_do (const Range &rng, const Body &body, task_group_context &context)
 
parallel_for

See also requirements on Range and parallel_for Body.

template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
void parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
void parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
void parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
void parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
void parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with static_partitioner and user-supplied context. More...
void parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
void parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 
parallel_for_each
template<typename Iterator , typename Function >
void parallel_for_each (Iterator first, Iterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
void parallel_for_each (Iterator first, Iterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
template<typename Range , typename Function >
void parallel_for_each (Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from rng using user-supplied context. More...
void parallel_for_each (Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from rng using user-supplied context. More...
 
template<typename Range , typename Function >
void parallel_for_each (const Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from const rng user-supplied context. More...
void parallel_for_each (const Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from const rng user-supplied context. More...
 
template<typename Iterator , typename Function >
void parallel_for_each (Iterator first, Iterator last, const Function &f)
void parallel_for_each (Iterator first, Iterator last, const Function &f)
 Uses default context.
 
template<typename Range , typename Function >
void parallel_for_each (Range &rng, const Function &f)
void parallel_for_each (Range &rng, const Function &f)
 Uses default context.
 
template<typename Range , typename Function >
void parallel_for_each (const Range &rng, const Function &f)
void parallel_for_each (const Range &rng, const Function &f)
 Uses default context.
 
parallel_invoke
template<typename F0 , typename F1 , typename... F>
void parallel_invoke (F0 &&f0, F1 &&f1, F &&...f)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
void parallel_invoke (F0 &&f0, F1 &&f1, F &&...f)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
template<typename F0 , typename F1 >
void parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
template<typename F0 , typename F1 >

See also requirements on Range and parallel_reduce Body.

template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
void parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
void parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
void parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
void parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
void parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
void parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
Value parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
void parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Body >
void parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
void parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
Value parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
parallel_scan

See also requirements on Range and parallel_scan Body.

template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
void parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
void parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
void parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
parallel_sort

See also requirements on iterators for parallel_sort.

template<typename RandomAccessIterator , typename Compare >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
void parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range , typename Compare >
void parallel_sort (Range &rng, const Compare &comp)
 Sorts the data in rng using the given comparator. More...
void parallel_sort (Range &rng, const Compare &comp)
 Sorts the data in rng using the given comparator. More...
 
template<typename Range , typename Compare >
void parallel_sort (const Range &rng, const Compare &comp)
 Sorts the data in const rng using the given comparator. More...
void parallel_sort (const Range &rng, const Compare &comp)
 Sorts the data in const rng using the given comparator. More...
 
template<typename Range >
void parallel_sort (Range &rng)
 Sorts the data in rng with a default comparator std::less<RandomAccessIterator> More...
void parallel_sort (Range &rng)
 Sorts the data in rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range >
void parallel_sort (const Range &rng)
 Sorts the data in const rng with a default comparator std::less<RandomAccessIterator> More...
void parallel_sort (const Range &rng)
 Sorts the data in const rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
void parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 

Detailed Description

@@ -659,7 +659,7 @@ template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4
@@ -704,7 +704,7 @@ template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00289.html b/doc/html/a00289.html deleted file mode 100644 index 7708a97e..00000000 --- a/doc/html/a00289.html +++ /dev/null @@ -1,2294 +0,0 @@ - - - - - - -Algorithms - - - - - - - -
- -
-
Algorithms
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::blocked_range< Value >
 A range over which to iterate. More...
 
class  tbb::blocked_range2d< RowValue, ColValue >
 A 2-dimensional range that models the Range concept. More...
 
class  tbb::blocked_range3d< PageValue, RowValue, ColValue >
 A 3-dimensional range that models the Range concept. More...
 
struct  tbb::pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
struct  tbb::final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  tbb::parallel_while< Body >
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  tbb::filter
 A stage in a pipeline. More...
 
class  tbb::thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  tbb::pipeline
 A processing pipeline that applies filters to items. More...
 
- - - - - - - - - - - - - - - - - - - - - - -

-parallel_do

See also requirements on parallel_do Body.

-
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
-template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body)
 
-template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body)
 
-template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body, task_group_context &context)
 
-template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body, task_group_context &context)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_for

See also requirements on Range and parallel_for Body.

-
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_for_each

template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from rng using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from const rng user-supplied context. More...
 
-template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f)
 Uses default context.
 
-template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f)
 Uses default context.
 
-template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f)
 Uses default context.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_invoke

template<typename F0 , typename F1 , typename... F>
void tbb::parallel_invoke (F0 &&f0, F1 &&f1, F &&...f)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
-template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
-template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1)
 
-template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8)
 
-template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_reduce

See also requirements on Range and parallel_reduce Body.

-
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
- - - - - - - - - - - - - - -

-parallel_scan

See also requirements on Range and parallel_scan Body.

-
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-parallel_sort

See also requirements on iterators for parallel_sort.

-
template<typename RandomAccessIterator , typename Compare >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range , typename Compare >
void tbb::parallel_sort (Range &rng, const Compare &comp)
 Sorts the data in rng using the given comparator. More...
 
template<typename Range , typename Compare >
void tbb::parallel_sort (const Range &rng, const Compare &comp)
 Sorts the data in const rng using the given comparator. More...
 
template<typename Range >
void tbb::parallel_sort (Range &rng)
 Sorts the data in rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range >
void tbb::parallel_sort (const Range &rng)
 Sorts the data in const rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void tbb::parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 
-

Detailed Description

-

Function Documentation

- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body 
)
-
- -

Parallel iteration with deterministic reduction and default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body,
task_group_context & context 
)
-
- -

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
-
- -

Parallel iteration with deterministic reduction and default partitioner.

-

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
task_group_context & context 
)
-
- -

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Iterator , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_do (Iterator first,
Iterator last,
const Body & body 
)
-
- -

Parallel iteration over a range, with optional addition of more work.

- -
-
- -
-
-
-template<typename Iterator , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_do (Iterator first,
Iterator last,
const Body & body,
task_group_context & context 
)
-
- -

Parallel iteration over a range, with optional addition of more work and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body 
)
-
- -

Parallel iteration over range with default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration over range with simple partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration over range with auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const static_partitioner & partitioner 
)
-
- -

Parallel iteration over range with static_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration over range with affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
task_group_context & context 
)
-
- -

Parallel iteration over range with default partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
const static_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with static_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for (const Range & range,
const Body & body,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration over range with affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Iterator , typename Function >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for_each (Iterator first,
Iterator last,
const Function & f,
task_group_context & context 
)
-
- -

Calls function f for all items from [first, last) interval using user-supplied context.

- -

Referenced by tbb::parallel_for_each().

- -
-
- -
-
-
-template<typename Range , typename Function >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for_each (Range & rng,
const Function & f,
task_group_context & context 
)
-
- -

Calls function f for all items from rng using user-supplied context.

- -

References tbb::parallel_for_each().

- -
-
- -
-
-
-template<typename Range , typename Function >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_for_each (const Range & rng,
const Function & f,
task_group_context & context 
)
-
- -

Calls function f for all items from const rng user-supplied context.

- -

References tbb::parallel_for_each().

- -
-
- -
-
-
-template<typename F0 , typename F1 , typename... F>
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_invoke (F0 && f0,
F1 && f1,
F &&... f 
)
-
- -

Executes a list of tasks in parallel and waits for all tasks to complete.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body 
)
-
- -

Parallel iteration with reduction and default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const static_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and static_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
const static_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, static_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
-
- -

Parallel iteration with reduction and default partitioner.

-

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and auto_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const static_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and static_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner 
)
-
- -

Parallel iteration with reduction and affinity_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, simple partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, auto_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const static_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, static_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Value , typename RealBody , typename Reduction >
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner,
task_group_context & context 
)
-
- -

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body 
)
-
- -

Parallel prefix with default partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
-
- -

Parallel prefix with simple_partitioner.

- -
-
- -
-
-
-template<typename Range , typename Body >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_scan (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
-
- -

Parallel prefix with auto_partitioner.

- -
-
- -
-
-
-template<typename RandomAccessIterator , typename Compare >
- - - - - - - - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end,
const Compare & comp 
)
-
- -

Sorts the data in [begin,end) using the given comparator.

-

The compare function object is used for all comparisons between elements during sorting. The compare object must define a bool operator() function.

- -

Referenced by tbb::parallel_sort().

- -
-
- -
-
-
-template<typename RandomAccessIterator >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end 
)
-
-inline
-
- -

Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator>

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename Range , typename Compare >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (Range & rng,
const Compare & comp 
)
-
- -

Sorts the data in rng using the given comparator.

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename Range , typename Compare >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (const Range & rng,
const Compare & comp 
)
-
- -

Sorts the data in const rng using the given comparator.

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename Range >
- - - - - - - - -
void tbb::parallel_sort (Range & rng)
-
- -

Sorts the data in rng with a default comparator std::less<RandomAccessIterator>

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename Range >
- - - - - - - - -
void tbb::parallel_sort (const Range & rng)
-
- -

Sorts the data in const rng with a default comparator std::less<RandomAccessIterator>

- -

References tbb::parallel_sort().

- -
-
- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_sort (T * begin,
T * end 
)
-
-inline
-
- -

Sorts the data in the range [begin,end) with a default comparator std::less<T>

- -

References tbb::parallel_sort().

- -
-
-
-
-

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00290.html b/doc/html/a00290.html deleted file mode 100644 index e29a2d72..00000000 --- a/doc/html/a00290.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -Containers - - - - - - - -
- -
-
Containers
-
-
- - - - - - - - - - - - - - - - - - - - -

-Classes

class  tbb::combinable< T >
 Thread-local storage with optional reduction. More...
 
class  tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
 Unordered map from Key to T. More...
 
class  tbb::strict_ppl::concurrent_queue< T, A >
 A high-performance thread-safe non-blocking concurrent queue. More...
 
class  tbb::concurrent_bounded_queue< T, A >
 A high-performance thread-safe blocking concurrent bounded queue. More...
 
class  tbb::concurrent_vector< T, A >
 Concurrent vector container. More...
 
class  tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
 The enumerable_thread_specific container. More...
 
-

Detailed Description

-
-
-

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. -

-Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

-* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00291.html b/doc/html/a00291.html index abfc585e..78d1d77e 100644 --- a/doc/html/a00291.html +++ b/doc/html/a00291.html @@ -4,7 +4,7 @@ -Memory Allocation +Algorithms @@ -27,108 +27,622 @@
-
Memory Allocation
+
Algorithms
- - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - + +

Classes

class  tbb::aligned_space< T, N >
 Block of space aligned sufficiently to construct an array T with N elements. More...
class  tbb::blocked_range< Value >
 A range over which to iterate. More...
 
class  tbb::cache_aligned_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb::blocked_range2d< RowValue, ColValue >
 A 2-dimensional range that models the Range concept. More...
 
class  tbb::cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb::blocked_range3d< PageValue, RowValue, ColValue >
 A 3-dimensional range that models the Range concept. More...
 
class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
struct  tbb::pre_scan_tag
 Used to indicate that the initial scan is being performed. More...
 
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
struct  tbb::final_scan_tag
 Used to indicate that the final scan is being performed. More...
 
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb::parallel_while< Body >
 Parallel iteration over a stream, with optional addition of more work. More...
 
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb::filter
 A stage in a pipeline. More...
 
class  tbb::tbb_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
class  tbb::thread_bound_filter
 A stage in a pipeline served by a user thread. More...
 
class  tbb::tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::zero_allocator< T, Allocator >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
class  tbb::pipeline
 A processing pipeline that applies filters to items. More...
 
- - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

-Functions

void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
 
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
 
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
 
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
 
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
 
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
 
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
 
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
 

+parallel_do

See also requirements on parallel_do Body.

+
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body)
 Parallel iteration over a range, with optional addition of more work. More...
 
template<typename Iterator , typename Body >
void tbb::parallel_do (Iterator first, Iterator last, const Body &body, task_group_context &context)
 Parallel iteration over a range, with optional addition of more work and user-supplied context. More...
 
+template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body)
 
+template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body)
 
+template<typename Range , typename Body >
void tbb::parallel_do (Range &rng, const Body &body, task_group_context &context)
 
+template<typename Range , typename Body >
void tbb::parallel_do (const Range &rng, const Body &body, task_group_context &context)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+parallel_for

See also requirements on Range and parallel_for Body.

+
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body)
 Parallel iteration over range with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner)
 Parallel iteration over range with simple partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner)
 Parallel iteration over range with auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner)
 Parallel iteration over range with static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner)
 Parallel iteration over range with affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, task_group_context &context)
 Parallel iteration over range with default partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_for (const Range &range, const Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration over range with affinity_partitioner and user-supplied context. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+parallel_for_each

template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f, task_group_context &context)
 Calls function f for all items from [first, last) interval using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from rng using user-supplied context. More...
 
template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f, task_group_context &context)
 Calls function f for all items from const rng user-supplied context. More...
 
+template<typename Iterator , typename Function >
void tbb::parallel_for_each (Iterator first, Iterator last, const Function &f)
 Uses default context.
 
+template<typename Range , typename Function >
void tbb::parallel_for_each (Range &rng, const Function &f)
 Uses default context.
 
+template<typename Range , typename Function >
void tbb::parallel_for_each (const Range &rng, const Function &f)
 Uses default context.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+parallel_invoke

template<typename F0 , typename F1 , typename... F>
void tbb::parallel_invoke (F0 &&f0, F1 &&f1, F &&...f)
 Executes a list of tasks in parallel and waits for all tasks to complete. More...
 
+template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9, tbb::task_group_context &context)
 
+template<typename F0 , typename F1 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1)
 
+template<typename F0 , typename F1 , typename F2 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8)
 
+template<typename F0 , typename F1 , typename F2 , typename F3 , typename F4 , typename F5 , typename F6 , typename F7 , typename F8 , typename F9 >
void tbb::parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7, const F8 &f8, const F9 &f9)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+parallel_reduce

See also requirements on Range and parallel_reduce Body.

+
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_reduce (const Range &range, Body &body, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner)
 Parallel iteration with reduction and simple_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner)
 Parallel iteration with reduction and auto_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner)
 Parallel iteration with reduction and static_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner)
 Parallel iteration with reduction and affinity_partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const simple_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const auto_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, auto_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, const static_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, static_partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, affinity_partitioner &partitioner, task_group_context &context)
 Parallel iteration with reduction, affinity_partitioner and user-supplied context. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_deterministic_reduce (const Range &range, Body &body, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction)
 Parallel iteration with deterministic reduction and default partitioner. More...
 
template<typename Range , typename Value , typename RealBody , typename Reduction >
Value tbb::parallel_deterministic_reduce (const Range &range, const Value &identity, const RealBody &real_body, const Reduction &reduction, task_group_context &context)
 Parallel iteration with deterministic reduction, simple partitioner and user-supplied context. More...
 
+ + + + + + + + + + + + + + +

+parallel_scan

See also requirements on Range and parallel_scan Body.

+
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body)
 Parallel prefix with default partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const simple_partitioner &partitioner)
 Parallel prefix with simple_partitioner. More...
 
template<typename Range , typename Body >
void tbb::parallel_scan (const Range &range, Body &body, const auto_partitioner &partitioner)
 Parallel prefix with auto_partitioner. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+parallel_sort

See also requirements on iterators for parallel_sort.

+
template<typename RandomAccessIterator , typename Compare >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end, const Compare &comp)
 Sorts the data in [begin,end) using the given comparator. More...
 
template<typename RandomAccessIterator >
void tbb::parallel_sort (RandomAccessIterator begin, RandomAccessIterator end)
 Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range , typename Compare >
void tbb::parallel_sort (Range &rng, const Compare &comp)
 Sorts the data in rng using the given comparator. More...
 
template<typename Range , typename Compare >
void tbb::parallel_sort (const Range &rng, const Compare &comp)
 Sorts the data in const rng using the given comparator. More...
 
template<typename Range >
void tbb::parallel_sort (Range &rng)
 Sorts the data in rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename Range >
void tbb::parallel_sort (const Range &rng)
 Sorts the data in const rng with a default comparator std::less<RandomAccessIterator> More...
 
template<typename T >
void tbb::parallel_sort (T *begin, T *end)
 Sorts the data in the range [begin,end) with a default comparator std::less<T> More...
 

Detailed Description

Function Documentation

- + +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body 
)
+
+ +

Parallel iteration with deterministic reduction and default partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_deterministic_reduce (const Range & range,
Body & body,
task_group_context & context 
)
+
+ +

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
+
+ +

Parallel iteration with deterministic reduction and default partitioner.

+

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_deterministic_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
task_group_context & context 
)
+
+ +

Parallel iteration with deterministic reduction, simple partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Iterator , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_do (Iterator first,
Iterator last,
const Body & body 
)
+
+ +

Parallel iteration over a range, with optional addition of more work.

+ +
+
+
+
+template<typename Iterator , typename Body >
- + - - + + + + + + + + + + + + + + + + + + + + + + + +
void __TBB_EXPORTED_FUNC scalable_aligned_free void tbb::parallel_do (void * ptr)Iterator first,
Iterator last,
const Body & body,
task_group_context & context 
)
-

The "_aligned_free" analogue.

+ +

Parallel iteration over a range, with optional addition of more work and user-supplied context.

- +
+
+template<typename Range , typename Body >
- + - - + + - - + + @@ -137,31 +651,34 @@ Functions
void* __TBB_EXPORTED_FUNC scalable_aligned_malloc void tbb::parallel_for (size_t size, const Range & range,
size_t alignment const Body & body 
-

The "_aligned_malloc" analogue.

+ +

Parallel iteration over range with default partitioner.

- +
+
+template<typename Range , typename Body >
- + - - + + - - + + - - + + @@ -170,25 +687,34 @@ Functions
void* __TBB_EXPORTED_FUNC scalable_aligned_realloc void tbb::parallel_for (void * ptr, const Range & range,
size_t size, const Body & body,
size_t alignment const simple_partitioner & partitioner 
-

The "_aligned_realloc" analogue.

+ +

Parallel iteration over range with simple partitioner.

- +
+
+template<typename Range , typename Body >
- + - - + + - - + + + + + + + + @@ -197,25 +723,34 @@ Functions
int __TBB_EXPORTED_FUNC scalable_allocation_command void tbb::parallel_for (int cmd, const Range & range,
void * param const Body & body,
const auto_partitioner & partitioner 
-

Call TBB allocator-specific commands.

+ +

Parallel iteration over range with auto_partitioner.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + - - + + @@ -224,25 +759,34 @@ Functions
int __TBB_EXPORTED_FUNC scalable_allocation_mode void tbb::parallel_for (int param, const Range & range,
const Body & body,
intptr_t value const static_partitioner & partitioner 
-

Set TBB allocator-specific allocation modes.

+ +

Parallel iteration over range with static_partitioner.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + - - + + @@ -251,86 +795,160 @@ Functions
void* __TBB_EXPORTED_FUNC scalable_calloc void tbb::parallel_for (size_t nobj, const Range & range,
const Body & body,
size_t size affinity_partitioner & partitioner 
-

The "calloc" analogue complementing scalable_malloc.

+ +

Parallel iteration over range with affinity_partitioner.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + + + + + + + + + + +
void __TBB_EXPORTED_FUNC scalable_free void tbb::parallel_for (void * ptr)const Range & range,
const Body & body,
task_group_context & context 
)
-

The "free" analogue to discard a previously allocated piece of memory.

-

Referenced by tbb::scalable_allocator< T >::deallocate().

+

Parallel iteration over range with default partitioner and user-supplied context.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + + + + + + + + + + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_malloc void tbb::parallel_for (size_t size)const Range & range,
const Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
-

The "malloc" analogue to allocate block of memory of size bytes.

-

Referenced by tbb::scalable_allocator< T >::allocate().

+

Parallel iteration over range with simple partitioner and user-supplied context.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + + + + + + + + + + + + + + + + +
size_t __TBB_EXPORTED_FUNC scalable_msize void tbb::parallel_for (void * ptr)const Range & range,
const Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
-

The analogue of msize/malloc_size/malloc_usable_size. Returns the usable size of a memory block previously allocated by scalable*, or 0 (zero) if ptr does not point to such a block.

+ +

Parallel iteration over range with auto_partitioner and user-supplied context.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + - - + + - - + + @@ -339,25 +957,40 @@ Functions
int __TBB_EXPORTED_FUNC scalable_posix_memalign void tbb::parallel_for (void ** memptr, const Range & range,
const Body & body,
size_t alignment, const static_partitioner & partitioner,
size_t size task_group_context & context 
-

The "posix_memalign" analogue.

+ +

Parallel iteration over range with static_partitioner and user-supplied context.

- +
+
+template<typename Range , typename Body >
- + - - + + + + + + + + + + + + + + - - + + @@ -366,14 +999,1293 @@ Functions
void* __TBB_EXPORTED_FUNC scalable_realloc void tbb::parallel_for (void * ptr, const Range & range,
const Body & body,
affinity_partitioner & partitioner,
size_t size task_group_context & context 
-

The "realloc" analogue complementing scalable_malloc.

+ +

Parallel iteration over range with affinity_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Iterator , typename Function >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_for_each (Iterator first,
Iterator last,
const Function & f,
task_group_context & context 
)
+
+ +

Calls function f for all items from [first, last) interval using user-supplied context.

+ +

Referenced by tbb::parallel_for_each().

+ +
+
+ +
+
+
+template<typename Range , typename Function >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_for_each (Range & rng,
const Function & f,
task_group_context & context 
)
+
+ +

Calls function f for all items from rng using user-supplied context.

+ +

References tbb::parallel_for_each().

+ +
+
+ +
+
+
+template<typename Range , typename Function >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_for_each (const Range & rng,
const Function & f,
task_group_context & context 
)
+
+ +

Calls function f for all items from const rng user-supplied context.

+ +

References tbb::parallel_for_each().

+ +
+
+ +
+
+
+template<typename F0 , typename F1 , typename... F>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_invoke (F0 && f0,
F1 && f1,
F &&... f 
)
+
+ +

Executes a list of tasks in parallel and waits for all tasks to complete.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body 
)
+
+ +

Parallel iteration with reduction and default partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and simple_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and auto_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const static_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and static_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and affinity_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const simple_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, simple partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const auto_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, auto_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
const static_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, static_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_reduce (const Range & range,
Body & body,
affinity_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction 
)
+
+ +

Parallel iteration with reduction and default partitioner.

+

parallel_reduce overloads that work with anonymous function objects (see also requirements on parallel_reduce anonymous function objects).

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and simple_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and auto_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const static_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and static_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner 
)
+
+ +

Parallel iteration with reduction and affinity_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const simple_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, simple partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const auto_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, auto_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
const static_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, static_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Value , typename RealBody , typename Reduction >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value tbb::parallel_reduce (const Range & range,
const Value & identity,
const RealBody & real_body,
const Reduction & reduction,
affinity_partitioner & partitioner,
task_group_context & context 
)
+
+ +

Parallel iteration with reduction, affinity_partitioner and user-supplied context.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_scan (const Range & range,
Body & body 
)
+
+ +

Parallel prefix with default partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_scan (const Range & range,
Body & body,
const simple_partitioner & partitioner 
)
+
+ +

Parallel prefix with simple_partitioner.

+ +
+
+ +
+
+
+template<typename Range , typename Body >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_scan (const Range & range,
Body & body,
const auto_partitioner & partitioner 
)
+
+ +

Parallel prefix with auto_partitioner.

+ +
+
+ +
+
+
+template<typename RandomAccessIterator , typename Compare >
+ + + + + + + + + + + + + + + + + + + + + + + + +
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end,
const Compare & comp 
)
+
+ +

Sorts the data in [begin,end) using the given comparator.

+

The compare function object is used for all comparisons between elements during sorting. The compare object must define a bool operator() function.

+ +

Referenced by tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename RandomAccessIterator >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_sort (RandomAccessIterator begin,
RandomAccessIterator end 
)
+
+inline
+
+ +

Sorts the data in [begin,end) with a default comparator std::less<RandomAccessIterator>

+ +

References tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename Range , typename Compare >
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_sort (Range & rng,
const Compare & comp 
)
+
+ +

Sorts the data in rng using the given comparator.

+ +

References tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename Range , typename Compare >
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_sort (const Range & rng,
const Compare & comp 
)
+
+ +

Sorts the data in const rng using the given comparator.

+ +

References tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename Range >
+ + + + + + + + +
void tbb::parallel_sort (Range & rng)
+
+ +

Sorts the data in rng with a default comparator std::less<RandomAccessIterator>

+ +

References tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename Range >
+ + + + + + + + +
void tbb::parallel_sort (const Range & rng)
+
+ +

Sorts the data in const rng with a default comparator std::less<RandomAccessIterator>

+ +

References tbb::parallel_sort().

+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::parallel_sort (T * begin,
T * end 
)
+
+inline
+
+ +

Sorts the data in the range [begin,end) with a default comparator std::less<T>

+ +

References tbb::parallel_sort().


-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00292.html b/doc/html/a00292.html index a2a329d8..4f38e302 100644 --- a/doc/html/a00292.html +++ b/doc/html/a00292.html @@ -4,7 +4,7 @@ -Synchronization +Containers @@ -27,96 +27,38 @@
-
Synchronization
+
Containers
- - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - -

Classes

struct  tbb::atomic< T >
 Primary template for atomic. More...
class  tbb::combinable< T >
 Thread-local storage with optional reduction. More...
 
class  tbb::mutex
 Wrapper around the platform's native reader-writer lock. More...
class  tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
 Unordered map from Key to T. More...
 
class  tbb::null_mutex
 A mutex which does nothing. More...
class  tbb::strict_ppl::concurrent_queue< T, A >
 A high-performance thread-safe non-blocking concurrent queue. More...
 
class  tbb::null_rw_mutex
 A rw mutex which does nothing. More...
class  tbb::concurrent_bounded_queue< T, A >
 A high-performance thread-safe blocking concurrent bounded queue. More...
 
class  tbb::queuing_mutex
 Queuing mutex with local-only spinning. More...
class  tbb::concurrent_vector< T, A >
 Concurrent vector container. More...
 
class  tbb::queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
class  tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
 The enumerable_thread_specific container. More...
 
class  tbb::interface5::reader_writer_lock
 Writer-preference reader-writer lock with local-only spinning on readers. More...
 
class  tbb::recursive_mutex
 
class  tbb::spin_mutex
 A lock that occupies a single byte. More...
 
class  tbb::spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
 
- - - - - - -

-Typedefs

typedef
-interface7::internal::padded_mutex
-< interface7::internal::x86_eliding_mutex,
-false > 
tbb::speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
 
typedef
-interface7::internal::padded_mutex
-< tbb::interface8::internal::x86_rtm_rw_mutex,
-true > 
tbb::interface8::speculative_spin_rw_mutex
 A cross-platform spin reader/writer mutex with speculative lock acquisition. More...
 

Detailed Description

-

Typedef Documentation

- -
-
- - - - -
typedef interface7::internal::padded_mutex< spin_mutex, false > tbb::speculative_spin_mutex
-
- -

A cross-platform spin mutex with speculative lock acquisition.

-

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not. If zero-initialized, the mutex is considered unheld.

- -
-
- -
-
- - - - -
typedef interface7::internal::padded_mutex< tbb::spin_rw_mutex, true > tbb::interface8::speculative_spin_rw_mutex
-
- -

A cross-platform spin reader/writer mutex with speculative lock acquisition.

-

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_rw_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not.

- -
-

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00293.html b/doc/html/a00293.html index bd8a100f..bd0e67c7 100644 --- a/doc/html/a00293.html +++ b/doc/html/a00293.html @@ -4,7 +4,7 @@ -Timing +Memory Allocation @@ -27,23 +27,353 @@
-
Timing
+
Memory Allocation
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

class  tbb::tick_count
 Absolute timestamp. More...
class  tbb::aligned_space< T, N >
 Block of space aligned sufficiently to construct an array T with N elements. More...
 
class  tbb::cache_aligned_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::cache_aligned_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::interface6::memory_pool_allocator< T, P >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::interface6::memory_pool_allocator< void, P >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::scalable_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::scalable_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::tbb_allocator< T >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::tbb_allocator< void >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
class  tbb::zero_allocator< T, Allocator >
 Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5. More...
 
class  tbb::zero_allocator< void, Allocator >
 Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Functions

void *__TBB_EXPORTED_FUNC scalable_malloc (size_t size)
 
void __TBB_EXPORTED_FUNC scalable_free (void *ptr)
 
void *__TBB_EXPORTED_FUNC scalable_realloc (void *ptr, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_calloc (size_t nobj, size_t size)
 
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void **memptr, size_t alignment, size_t size)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size, size_t alignment)
 
void *__TBB_EXPORTED_FUNC scalable_aligned_realloc (void *ptr, size_t size, size_t alignment)
 
void __TBB_EXPORTED_FUNC scalable_aligned_free (void *ptr)
 
size_t __TBB_EXPORTED_FUNC scalable_msize (void *ptr)
 
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param, intptr_t value)
 
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd, void *param)
 

Detailed Description

+

Function Documentation

+ +
+
+ + + + + + + + +
void __TBB_EXPORTED_FUNC scalable_aligned_free (void * ptr)
+
+

The "_aligned_free" analogue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_aligned_malloc (size_t size,
size_t alignment 
)
+
+

The "_aligned_malloc" analogue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_aligned_realloc (void * ptr,
size_t size,
size_t alignment 
)
+
+

The "_aligned_realloc" analogue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int __TBB_EXPORTED_FUNC scalable_allocation_command (int cmd,
void * param 
)
+
+

Call TBB allocator-specific commands.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int __TBB_EXPORTED_FUNC scalable_allocation_mode (int param,
intptr_t value 
)
+
+

Set TBB allocator-specific allocation modes.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_calloc (size_t nobj,
size_t size 
)
+
+

The "calloc" analogue complementing scalable_malloc.

+ +
+
+ +
+
+ + + + + + + + +
void __TBB_EXPORTED_FUNC scalable_free (void * ptr)
+
+

The "free" analogue to discard a previously allocated piece of memory.

+ +

Referenced by tbb::scalable_allocator< T >::deallocate().

+ +
+
+ +
+
+ + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_malloc (size_t size)
+
+

The "malloc" analogue to allocate block of memory of size bytes.

+ +

Referenced by tbb::scalable_allocator< T >::allocate().

+ +
+
+ +
+
+ + + + + + + + +
size_t __TBB_EXPORTED_FUNC scalable_msize (void * ptr)
+
+

The analogue of msize/malloc_size/malloc_usable_size. Returns the usable size of a memory block previously allocated by scalable*, or 0 (zero) if ptr does not point to such a block.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int __TBB_EXPORTED_FUNC scalable_posix_memalign (void ** memptr,
size_t alignment,
size_t size 
)
+
+

The "posix_memalign" analogue.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void* __TBB_EXPORTED_FUNC scalable_realloc (void * ptr,
size_t size 
)
+
+

The "realloc" analogue complementing scalable_malloc.

+ +
+

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00294.html b/doc/html/a00294.html index d2bd6666..251f8a45 100644 --- a/doc/html/a00294.html +++ b/doc/html/a00294.html @@ -4,7 +4,7 @@ -Task Scheduling +Synchronization @@ -27,23 +27,96 @@
-
Task Scheduling
+
Synchronization
- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

class  tbb::task_scheduler_init
 Class delimiting the scope of task scheduler activity. More...
struct  tbb::atomic< T >
 Primary template for atomic. More...
 
class  tbb::mutex
 Wrapper around the platform's native reader-writer lock. More...
 
class  tbb::null_mutex
 A mutex which does nothing. More...
 
class  tbb::null_rw_mutex
 A rw mutex which does nothing. More...
 
class  tbb::queuing_mutex
 Queuing mutex with local-only spinning. More...
 
class  tbb::queuing_rw_mutex
 Queuing reader-writer mutex with local-only spinning. More...
 
class  tbb::interface5::reader_writer_lock
 Writer-preference reader-writer lock with local-only spinning on readers. More...
 
class  tbb::recursive_mutex
 
class  tbb::spin_mutex
 A lock that occupies a single byte. More...
 
class  tbb::spin_rw_mutex_v3
 Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...
 
+ + + + + + +

+Typedefs

typedef
+interface7::internal::padded_mutex
+< interface7::internal::x86_eliding_mutex,
+false > 
tbb::speculative_spin_mutex
 A cross-platform spin mutex with speculative lock acquisition. More...
 
typedef
+interface7::internal::padded_mutex
+< tbb::interface8::internal::x86_rtm_rw_mutex,
+true > 
tbb::interface8::speculative_spin_rw_mutex
 A cross-platform spin reader/writer mutex with speculative lock acquisition. More...
 

Detailed Description

+

Typedef Documentation

+ +
+
+ + + + +
typedef interface7::internal::padded_mutex< spin_mutex, false > tbb::speculative_spin_mutex
+
+ +

A cross-platform spin mutex with speculative lock acquisition.

+

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not. If zero-initialized, the mutex is considered unheld.

+ +
+
+ +
+
+ + + + +
typedef interface7::internal::padded_mutex< tbb::spin_rw_mutex, true > tbb::interface8::speculative_spin_rw_mutex
+
+ +

A cross-platform spin reader/writer mutex with speculative lock acquisition.

+

On platforms with proper HW support, this lock may speculatively execute its critical sections, using HW mechanisms to detect real data races and ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_rw_mutex. It should be used for locking short critical sections where the lock is contended but the data it protects are not.

+ +
+

-Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00295.html b/doc/html/a00295.html new file mode 100644 index 00000000..9547aa52 --- /dev/null +++ b/doc/html/a00295.html @@ -0,0 +1,52 @@ + + + + + + +Timing + + + + + + + +
+ +
+
Timing
+
+
+ + + + + +

+Classes

class  tbb::tick_count
 Absolute timestamp. More...
 
+

Detailed Description

+
+
+

+Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

+Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

+* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00296.html b/doc/html/a00296.html index 98f187ff..4a779117 100644 --- a/doc/html/a00296.html +++ b/doc/html/a00296.html @@ -4,7 +4,7 @@ -Member List +Task Scheduling @@ -20,31 +20,30 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • -
    +
    -
    __TBB_malloc_proxy_caller Member List
    +
    Task Scheduling
    - -

    This is the complete list of members for __TBB_malloc_proxy_caller, including all inherited members.

    - - -
    __TBB_malloc_proxy_caller() (defined in __TBB_malloc_proxy_caller)__TBB_malloc_proxy_callerinline
    + + + + + +

    +Classes

    class  tbb::task_scheduler_init
     Class delimiting the scope of task scheduler activity. More...
     
    +

    Detailed Description

    +

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00297.html b/doc/html/a00297.html deleted file mode 100644 index 514e695a..00000000 --- a/doc/html/a00297.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    rml::MemPoolPolicy Member List
    -
    -
    - -

    This is the complete list of members for rml::MemPoolPolicy, including all inherited members.

    - - - - - - - - - - -
    fixedPool (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    granularity (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    keepAllMemory (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    MemPoolPolicy(rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false) (defined in rml::MemPoolPolicy)rml::MemPoolPolicyinline
    pAlloc (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    pFree (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    reserved (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    TBBMALLOC_POOL_VERSION enum value (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    version (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    -
    -

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. -

    -Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00298.html b/doc/html/a00298.html index 0c7f3f70..3d129901 100644 --- a/doc/html/a00298.html +++ b/doc/html/a00298.html @@ -31,25 +31,20 @@
  • Class Members
  • -
    -
    tbb::aligned_space< T, N > Member List
    +
    __TBB_malloc_proxy_caller Member List
    -

    This is the complete list of members for tbb::aligned_space< T, N >, including all inherited members.

    +

    This is the complete list of members for __TBB_malloc_proxy_caller, including all inherited members.

    - - +
    begin()tbb::aligned_space< T, N >inline
    end()tbb::aligned_space< T, N >inline
    __TBB_malloc_proxy_caller() (defined in __TBB_malloc_proxy_caller)__TBB_malloc_proxy_callerinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00299.html b/doc/html/a00299.html index 0199d9df..c06be6b3 100644 --- a/doc/html/a00299.html +++ b/doc/html/a00299.html @@ -33,25 +33,30 @@
    -
    tbb::atomic< T > Member List
    +
    rml::MemPoolPolicy Member List
    -

    This is the complete list of members for tbb::atomic< T >, including all inherited members.

    +

    This is the complete list of members for rml::MemPoolPolicy, including all inherited members.

    - - - - + + + + + + + + +
    atomic()=default (defined in tbb::atomic< T >)tbb::atomic< T >
    atomic(T arg) (defined in tbb::atomic< T >)tbb::atomic< T >inline
    operator=(T rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline
    operator=(const atomic< T > &rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline
    fixedPool (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    granularity (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    keepAllMemory (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    MemPoolPolicy(rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false) (defined in rml::MemPoolPolicy)rml::MemPoolPolicyinline
    pAlloc (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    pFree (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    reserved (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    TBBMALLOC_POOL_VERSION enum value (defined in rml::MemPoolPolicy)rml::MemPoolPolicy
    version (defined in rml::MemPoolPolicy)rml::MemPoolPolicy

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00300.html b/doc/html/a00300.html index 1c08054b..5dada838 100644 --- a/doc/html/a00300.html +++ b/doc/html/a00300.html @@ -33,25 +33,23 @@
    -
    tbb::atomic< void * > Member List
    +
    tbb::aligned_space< T, N > Member List
    -

    This is the complete list of members for tbb::atomic< void * >, including all inherited members.

    +

    This is the complete list of members for tbb::aligned_space< T, N >, including all inherited members.

    - - - - + +
    atomic()=default (defined in tbb::atomic< void * >)tbb::atomic< void * >
    atomic(void *arg) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
    operator=(void *rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
    operator=(const atomic< void * > &rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
    begin()tbb::aligned_space< T, N >inline
    end()tbb::aligned_space< T, N >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00301.html b/doc/html/a00301.html index 01730576..40e9dfe6 100644 --- a/doc/html/a00301.html +++ b/doc/html/a00301.html @@ -33,36 +33,25 @@
    -
    tbb::blocked_range< Value > Member List
    +
    tbb::atomic< T > Member List
    -

    This is the complete list of members for tbb::blocked_range< Value >, including all inherited members.

    +

    This is the complete list of members for tbb::atomic< T >, including all inherited members.

    - - - - - - - - - - - - - - - + + + +
    begin() const tbb::blocked_range< Value >inline
    blocked_range()tbb::blocked_range< Value >inline
    blocked_range(Value begin_, Value end_, size_type grainsize_=1)tbb::blocked_range< Value >inline
    blocked_range(blocked_range &r, split)tbb::blocked_range< Value >inline
    blocked_range(blocked_range &r, proportional_split &proportion)tbb::blocked_range< Value >inline
    blocked_range2d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
    blocked_range3d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
    const_iterator typedeftbb::blocked_range< Value >
    empty() const tbb::blocked_range< Value >inline
    end() const tbb::blocked_range< Value >inline
    grainsize() const tbb::blocked_range< Value >inline
    is_divisible() const tbb::blocked_range< Value >inline
    is_splittable_in_proportiontbb::blocked_range< Value >static
    size() const tbb::blocked_range< Value >inline
    size_type typedeftbb::blocked_range< Value >
    atomic()=default (defined in tbb::atomic< T >)tbb::atomic< T >
    atomic(T arg) (defined in tbb::atomic< T >)tbb::atomic< T >inline
    operator=(T rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline
    operator=(const atomic< T > &rhs) (defined in tbb::atomic< T >)tbb::atomic< T >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00302.html b/doc/html/a00302.html index 84ed4058..26563433 100644 --- a/doc/html/a00302.html +++ b/doc/html/a00302.html @@ -33,33 +33,25 @@
    -
    tbb::blocked_range2d< RowValue, ColValue > Member List
    +
    tbb::atomic< void * > Member List
    -

    This is the complete list of members for tbb::blocked_range2d< RowValue, ColValue >, including all inherited members.

    +

    This is the complete list of members for tbb::atomic< void * >, including all inherited members.

    - - - - - - - - - - - - + + + +
    blocked_range2d(RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(blocked_range2d &r, split) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(blocked_range2d &r, proportional_split &proportion) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    col_range_type typedef (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >
    cols() const tbb::blocked_range2d< RowValue, ColValue >inline
    do_split(blocked_range2d &r, Split &split_obj) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    empty() const tbb::blocked_range2d< RowValue, ColValue >inline
    is_divisible() const tbb::blocked_range2d< RowValue, ColValue >inline
    is_splittable_in_proportiontbb::blocked_range2d< RowValue, ColValue >static
    row_range_type typedeftbb::blocked_range2d< RowValue, ColValue >
    rows() const tbb::blocked_range2d< RowValue, ColValue >inline
    atomic()=default (defined in tbb::atomic< void * >)tbb::atomic< void * >
    atomic(void *arg) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
    operator=(void *rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline
    operator=(const atomic< void * > &rhs) (defined in tbb::atomic< void * >)tbb::atomic< void * >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00303.html b/doc/html/a00303.html index 94ea0365..85abc023 100644 --- a/doc/html/a00303.html +++ b/doc/html/a00303.html @@ -33,35 +33,36 @@
    -
    tbb::blocked_range3d< PageValue, RowValue, ColValue > Member List
    +
    tbb::blocked_range< Value > Member List
    -

    This is the complete list of members for tbb::blocked_range3d< PageValue, RowValue, ColValue >, including all inherited members.

    +

    This is the complete list of members for tbb::blocked_range< Value >, including all inherited members.

    - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
    blocked_range3d(PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(blocked_range3d &r, split) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(blocked_range3d &r, proportional_split &proportion) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    col_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
    cols() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    do_split(blocked_range3d &r, Split &split_obj) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    empty() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    is_divisible() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    is_splittable_in_proportiontbb::blocked_range3d< PageValue, RowValue, ColValue >static
    page_range_type typedeftbb::blocked_range3d< PageValue, RowValue, ColValue >
    pages() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    row_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
    rows() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    begin() const tbb::blocked_range< Value >inline
    blocked_range()tbb::blocked_range< Value >inline
    blocked_range(Value begin_, Value end_, size_type grainsize_=1)tbb::blocked_range< Value >inline
    blocked_range(blocked_range &r, split)tbb::blocked_range< Value >inline
    blocked_range(blocked_range &r, proportional_split &proportion)tbb::blocked_range< Value >inline
    blocked_range2d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
    blocked_range3d (defined in tbb::blocked_range< Value >)tbb::blocked_range< Value >friend
    const_iterator typedeftbb::blocked_range< Value >
    empty() const tbb::blocked_range< Value >inline
    end() const tbb::blocked_range< Value >inline
    grainsize() const tbb::blocked_range< Value >inline
    is_divisible() const tbb::blocked_range< Value >inline
    is_splittable_in_proportiontbb::blocked_range< Value >static
    size() const tbb::blocked_range< Value >inline
    size_type typedeftbb::blocked_range< Value >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00304.html b/doc/html/a00304.html index bf77b27e..93909a10 100644 --- a/doc/html/a00304.html +++ b/doc/html/a00304.html @@ -33,40 +33,33 @@
    -
    tbb::cache_aligned_allocator< T > Member List
    +
    tbb::blocked_range2d< RowValue, ColValue > Member List
    -

    This is the complete list of members for tbb::cache_aligned_allocator< T >, including all inherited members.

    +

    This is the complete list of members for tbb::blocked_range2d< RowValue, ColValue >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
    address(reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    address(const_reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    allocate(size_type n, const void *hint=0)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator() (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator(const cache_aligned_allocator &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator(const cache_aligned_allocator< U > &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    const_pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    const_reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    construct(U *p, Args &&...args)tbb::cache_aligned_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    deallocate(pointer p, size_type)tbb::cache_aligned_allocator< T >inline
    destroy(pointer p)tbb::cache_aligned_allocator< T >inline
    difference_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    max_size() const tbb::cache_aligned_allocator< T >inline
    pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    size_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    value_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    blocked_range2d(RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(blocked_range2d &r, split) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    blocked_range2d(blocked_range2d &r, proportional_split &proportion) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    col_range_type typedef (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >
    cols() const tbb::blocked_range2d< RowValue, ColValue >inline
    do_split(blocked_range2d &r, Split &split_obj) (defined in tbb::blocked_range2d< RowValue, ColValue >)tbb::blocked_range2d< RowValue, ColValue >inline
    empty() const tbb::blocked_range2d< RowValue, ColValue >inline
    is_divisible() const tbb::blocked_range2d< RowValue, ColValue >inline
    is_splittable_in_proportiontbb::blocked_range2d< RowValue, ColValue >static
    row_range_type typedeftbb::blocked_range2d< RowValue, ColValue >
    rows() const tbb::blocked_range2d< RowValue, ColValue >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00305.html b/doc/html/a00305.html index 0e5497a2..3dc4f5ea 100644 --- a/doc/html/a00305.html +++ b/doc/html/a00305.html @@ -33,22 +33,35 @@
    -
    tbb::cache_aligned_allocator< T >::rebind< U > Member List
    +
    tbb::blocked_range3d< PageValue, RowValue, ColValue > Member List
    -

    This is the complete list of members for tbb::cache_aligned_allocator< T >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::blocked_range3d< PageValue, RowValue, ColValue >, including all inherited members.

    - + + + + + + + + + + + + + +
    other typedef (defined in tbb::cache_aligned_allocator< T >::rebind< U >)tbb::cache_aligned_allocator< T >::rebind< U >
    blocked_range3d(PageValue page_begin, PageValue page_end, RowValue row_begin, RowValue row_end, ColValue col_begin, ColValue col_end) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(PageValue page_begin, PageValue page_end, typename page_range_type::size_type page_grainsize, RowValue row_begin, RowValue row_end, typename row_range_type::size_type row_grainsize, ColValue col_begin, ColValue col_end, typename col_range_type::size_type col_grainsize) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(blocked_range3d &r, split) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    blocked_range3d(blocked_range3d &r, proportional_split &proportion) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    col_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
    cols() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    do_split(blocked_range3d &r, Split &split_obj) (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    empty() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    is_divisible() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    is_splittable_in_proportiontbb::blocked_range3d< PageValue, RowValue, ColValue >static
    page_range_type typedeftbb::blocked_range3d< PageValue, RowValue, ColValue >
    pages() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline
    row_range_type typedef (defined in tbb::blocked_range3d< PageValue, RowValue, ColValue >)tbb::blocked_range3d< PageValue, RowValue, ColValue >
    rows() const tbb::blocked_range3d< PageValue, RowValue, ColValue >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00306.html b/doc/html/a00306.html index 28740bc6..c9939e99 100644 --- a/doc/html/a00306.html +++ b/doc/html/a00306.html @@ -33,24 +33,40 @@
    -
    tbb::cache_aligned_allocator< void > Member List
    +
    tbb::cache_aligned_allocator< T > Member List
    -

    This is the complete list of members for tbb::cache_aligned_allocator< void >, including all inherited members.

    +

    This is the complete list of members for tbb::cache_aligned_allocator< T >, including all inherited members.

    - - - + + + + + + + + + + + + + + + + + + +
    const_pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
    pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
    value_type typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
    address(reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    address(const_reference x) const (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    allocate(size_type n, const void *hint=0)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator() (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator(const cache_aligned_allocator &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    cache_aligned_allocator(const cache_aligned_allocator< U > &) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    const_pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    const_reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    construct(U *p, Args &&...args)tbb::cache_aligned_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >inline
    deallocate(pointer p, size_type)tbb::cache_aligned_allocator< T >inline
    destroy(pointer p)tbb::cache_aligned_allocator< T >inline
    difference_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    max_size() const tbb::cache_aligned_allocator< T >inline
    pointer typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    reference typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    size_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >
    value_type typedef (defined in tbb::cache_aligned_allocator< T >)tbb::cache_aligned_allocator< T >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00307.html b/doc/html/a00307.html index faa3bd00..ab42da40 100644 --- a/doc/html/a00307.html +++ b/doc/html/a00307.html @@ -33,22 +33,22 @@
    -
    tbb::cache_aligned_allocator< void >::rebind< U > Member List
    +
    tbb::cache_aligned_allocator< T >::rebind< U > Member List
    -

    This is the complete list of members for tbb::cache_aligned_allocator< void >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::cache_aligned_allocator< T >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::cache_aligned_allocator< void >::rebind< U >)tbb::cache_aligned_allocator< void >::rebind< U >
    other typedef (defined in tbb::cache_aligned_allocator< T >::rebind< U >)tbb::cache_aligned_allocator< T >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00308.html b/doc/html/a00308.html index d7025a12..82190a85 100644 --- a/doc/html/a00308.html +++ b/doc/html/a00308.html @@ -33,31 +33,24 @@
    -
    tbb::combinable< T > Member List
    +
    tbb::cache_aligned_allocator< void > Member List
    -

    This is the complete list of members for tbb::combinable< T >, including all inherited members.

    +

    This is the complete list of members for tbb::cache_aligned_allocator< void >, including all inherited members.

    - - - - - - - - - - + + +
    clear() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable(finit _finit) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combine(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combine_each(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    local() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    local(bool &exists) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    operator=(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    ~combinable()tbb::combinable< T >inline
    const_pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
    pointer typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >
    value_type typedef (defined in tbb::cache_aligned_allocator< void >)tbb::cache_aligned_allocator< void >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00309.html b/doc/html/a00309.html index 887d3c04..dd4a6cfb 100644 --- a/doc/html/a00309.html +++ b/doc/html/a00309.html @@ -33,55 +33,22 @@
    -
    tbb::concurrent_bounded_queue< T, A > Member List
    +
    tbb::cache_aligned_allocator< void >::rebind< U > Member List
    -

    This is the complete list of members for tbb::concurrent_bounded_queue< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::cache_aligned_allocator< void >::rebind< U >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    abort()tbb::concurrent_bounded_queue< T, A >inline
    allocator_type typedeftbb::concurrent_bounded_queue< T, A >
    capacity() const tbb::concurrent_bounded_queue< T, A >inline
    clear()tbb::concurrent_bounded_queue< T, A >
    concurrent_bounded_queue(const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inlineexplicit
    concurrent_bounded_queue(const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(concurrent_bounded_queue &&src)tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(concurrent_bounded_queue &&src, const allocator_type &a) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
    const_iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
    const_reference typedeftbb::concurrent_bounded_queue< T, A >
    difference_type typedeftbb::concurrent_bounded_queue< T, A >
    emplace(Arguments &&...args) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    empty() const tbb::concurrent_bounded_queue< T, A >inline
    get_allocator() const tbb::concurrent_bounded_queue< T, A >inline
    internal::concurrent_queue_iterator (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >friend
    iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
    pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
    push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
    push(T &&source)tbb::concurrent_bounded_queue< T, A >inline
    reference typedeftbb::concurrent_bounded_queue< T, A >
    set_capacity(size_type new_capacity)tbb::concurrent_bounded_queue< T, A >inline
    size() const tbb::concurrent_bounded_queue< T, A >inline
    size_type typedeftbb::concurrent_bounded_queue< T, A >
    try_emplace(Arguments &&...args) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    try_pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
    try_push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
    try_push(T &&source)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_begin() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_begin() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_end() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_end() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    value_type typedeftbb::concurrent_bounded_queue< T, A >
    ~concurrent_bounded_queue()tbb::concurrent_bounded_queue< T, A >
    other typedef (defined in tbb::cache_aligned_allocator< void >::rebind< U >)tbb::cache_aligned_allocator< void >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00310.html b/doc/html/a00310.html index 50535c9c..00f91643 100644 --- a/doc/html/a00310.html +++ b/doc/html/a00310.html @@ -33,99 +33,31 @@
    -
    tbb::concurrent_vector< T, A > Member List
    +
    tbb::combinable< T > Member List
    -

    This is the complete list of members for tbb::concurrent_vector< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::combinable< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
    allocator_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    assign(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    assign(I first, I last)tbb::concurrent_vector< T, A >inline
    assign(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    at(size_type index)tbb::concurrent_vector< T, A >inline
    at(size_type index) const tbb::concurrent_vector< T, A >inline
    back()tbb::concurrent_vector< T, A >inline
    back() const tbb::concurrent_vector< T, A >inline
    begin()tbb::concurrent_vector< T, A >inline
    begin() const tbb::concurrent_vector< T, A >inline
    capacity() const tbb::concurrent_vector< T, A >inline
    cbegin() const tbb::concurrent_vector< T, A >inline
    cend() const tbb::concurrent_vector< T, A >inline
    clear()tbb::concurrent_vector< T, A >inline
    concurrent_vector(const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inlineexplicit
    concurrent_vector(std::initializer_list< T > init_list, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(const concurrent_vector &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(concurrent_vector &&source)tbb::concurrent_vector< T, A >inline
    concurrent_vector(concurrent_vector &&source, const allocator_type &a) (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >inline
    concurrent_vector(const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(size_type n)tbb::concurrent_vector< T, A >inlineexplicit
    concurrent_vector(size_type n, const_reference t, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(I first, I last, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    const_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    copy_range(void *dst, const void *p_type_erased_iterator, size_type n) (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    crbegin() const tbb::concurrent_vector< T, A >inline
    crend() const tbb::concurrent_vector< T, A >inline
    difference_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    emplace_back(Args &&...args)tbb::concurrent_vector< T, A >inline
    empty() const tbb::concurrent_vector< T, A >inline
    end()tbb::concurrent_vector< T, A >inline
    end() const tbb::concurrent_vector< T, A >inline
    front()tbb::concurrent_vector< T, A >inline
    front() const tbb::concurrent_vector< T, A >inline
    get_allocator() const tbb::concurrent_vector< T, A >inline
    grow_by(size_type delta)tbb::concurrent_vector< T, A >inline
    grow_by(size_type delta, const_reference t)tbb::concurrent_vector< T, A >inline
    grow_by(I first, I last)tbb::concurrent_vector< T, A >inline
    grow_by(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    grow_to_at_least(size_type n)tbb::concurrent_vector< T, A >inline
    grow_to_at_least(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    internal::vector_iterator (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >friend
    internal_vector_base() const (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >inline
    iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    max_size() const tbb::concurrent_vector< T, A >inline
    operator=(const concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
    operator=(concurrent_vector &&other)tbb::concurrent_vector< T, A >inline
    operator=(const concurrent_vector< T, M > &vector)tbb::concurrent_vector< T, A >inline
    operator=(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    operator[](size_type index)tbb::concurrent_vector< T, A >inline
    operator[](size_type index) const tbb::concurrent_vector< T, A >inline
    pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    push_back(const_reference item)tbb::concurrent_vector< T, A >inline
    push_back(T &&item)tbb::concurrent_vector< T, A >inline
    range(size_t grainsize=1)tbb::concurrent_vector< T, A >inline
    range(size_t grainsize=1) const tbb::concurrent_vector< T, A >inline
    range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    rbegin()tbb::concurrent_vector< T, A >inline
    rbegin() const tbb::concurrent_vector< T, A >inline
    reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    rend()tbb::concurrent_vector< T, A >inline
    rend() const tbb::concurrent_vector< T, A >inline
    reserve(size_type n)tbb::concurrent_vector< T, A >inline
    resize(size_type n)tbb::concurrent_vector< T, A >inline
    resize(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    shrink_to_fit()tbb::concurrent_vector< T, A >
    size() const tbb::concurrent_vector< T, A >inline
    size_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    swap(concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
    value_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    ~concurrent_vector()tbb::concurrent_vector< T, A >inline
    clear() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable(finit _finit) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combinable(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combine(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    combine_each(combine_func_t f_combine) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    local() (defined in tbb::combinable< T >)tbb::combinable< T >inline
    local(bool &exists) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    operator=(const combinable &other) (defined in tbb::combinable< T >)tbb::combinable< T >inline
    ~combinable()tbb::combinable< T >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00311.html b/doc/html/a00311.html index 779a87e7..dfa600ac 100644 --- a/doc/html/a00311.html +++ b/doc/html/a00311.html @@ -33,25 +33,55 @@
    -
    tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Member List
    +
    tbb::concurrent_bounded_queue< T, A > Member List
    -

    This is the complete list of members for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard, including all inherited members.

    +

    This is the complete list of members for tbb::concurrent_bounded_queue< T, A >, including all inherited members.

    - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    dismiss() (defined in tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard)tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guardinline
    element (defined in tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard)tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard
    element_construction_guard(pointer an_element) (defined in tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard)tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guardinline
    ~element_construction_guard() (defined in tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard)tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guardinline
    abort()tbb::concurrent_bounded_queue< T, A >inline
    allocator_type typedeftbb::concurrent_bounded_queue< T, A >
    capacity() const tbb::concurrent_bounded_queue< T, A >inline
    clear()tbb::concurrent_bounded_queue< T, A >
    concurrent_bounded_queue(const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inlineexplicit
    concurrent_bounded_queue(const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(concurrent_bounded_queue &&src)tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(concurrent_bounded_queue &&src, const allocator_type &a) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    concurrent_bounded_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::concurrent_bounded_queue< T, A >inline
    const_iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
    const_reference typedeftbb::concurrent_bounded_queue< T, A >
    difference_type typedeftbb::concurrent_bounded_queue< T, A >
    emplace(Arguments &&...args) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    empty() const tbb::concurrent_bounded_queue< T, A >inline
    get_allocator() const tbb::concurrent_bounded_queue< T, A >inline
    internal::concurrent_queue_iterator (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >friend
    iterator typedef (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >
    pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
    push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
    push(T &&source)tbb::concurrent_bounded_queue< T, A >inline
    reference typedeftbb::concurrent_bounded_queue< T, A >
    set_capacity(size_type new_capacity)tbb::concurrent_bounded_queue< T, A >inline
    size() const tbb::concurrent_bounded_queue< T, A >inline
    size_type typedeftbb::concurrent_bounded_queue< T, A >
    try_emplace(Arguments &&...args) (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    try_pop(T &destination)tbb::concurrent_bounded_queue< T, A >inline
    try_push(const T &source)tbb::concurrent_bounded_queue< T, A >inline
    try_push(T &&source)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_begin() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_begin() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_end() (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    unsafe_end() const (defined in tbb::concurrent_bounded_queue< T, A >)tbb::concurrent_bounded_queue< T, A >inline
    value_type typedeftbb::concurrent_bounded_queue< T, A >
    ~concurrent_bounded_queue()tbb::concurrent_bounded_queue< T, A >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00312.html b/doc/html/a00312.html index 6c5fee55..06166ff0 100644 --- a/doc/html/a00312.html +++ b/doc/html/a00312.html @@ -33,38 +33,99 @@
    -
    tbb::mutex Member List
    +
    tbb::concurrent_vector< T, A > Member List
    -

    This is the complete list of members for tbb::mutex, including all inherited members.

    +

    This is the complete list of members for tbb::concurrent_vector< T, A >, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    DESTROYED enum value (defined in tbb::mutex)tbb::mutex
    HELD enum value (defined in tbb::mutex)tbb::mutex
    INITIALIZED enum value (defined in tbb::mutex)tbb::mutex
    is_fair_mutex (defined in tbb::mutex)tbb::mutexstatic
    is_recursive_mutex (defined in tbb::mutex)tbb::mutexstatic
    is_rw_mutex (defined in tbb::mutex)tbb::mutexstatic
    lock()tbb::mutexinline
    mutex()tbb::mutexinline
    native_handle() (defined in tbb::mutex)tbb::mutexinline
    native_handle_type typedeftbb::mutex
    native_handle_type typedef (defined in tbb::mutex)tbb::mutex
    scoped_lock (defined in tbb::mutex)tbb::mutexfriend
    set_state(state_t to)tbb::mutexinline
    state_t enum name (defined in tbb::mutex)tbb::mutex
    try_lock()tbb::mutexinline
    unlock()tbb::mutexinline
    ~mutex() (defined in tbb::mutex)tbb::mutexinline
    allocator_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    assign(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    assign(I first, I last)tbb::concurrent_vector< T, A >inline
    assign(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    at(size_type index)tbb::concurrent_vector< T, A >inline
    at(size_type index) const tbb::concurrent_vector< T, A >inline
    back()tbb::concurrent_vector< T, A >inline
    back() const tbb::concurrent_vector< T, A >inline
    begin()tbb::concurrent_vector< T, A >inline
    begin() const tbb::concurrent_vector< T, A >inline
    capacity() const tbb::concurrent_vector< T, A >inline
    cbegin() const tbb::concurrent_vector< T, A >inline
    cend() const tbb::concurrent_vector< T, A >inline
    clear()tbb::concurrent_vector< T, A >inline
    concurrent_vector(const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inlineexplicit
    concurrent_vector(std::initializer_list< T > init_list, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(const concurrent_vector &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(concurrent_vector &&source)tbb::concurrent_vector< T, A >inline
    concurrent_vector(concurrent_vector &&source, const allocator_type &a) (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >inline
    concurrent_vector(const concurrent_vector< T, M > &vector, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(size_type n)tbb::concurrent_vector< T, A >inlineexplicit
    concurrent_vector(size_type n, const_reference t, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    concurrent_vector(I first, I last, const allocator_type &a=allocator_type())tbb::concurrent_vector< T, A >inline
    const_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    const_reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    copy_range(void *dst, const void *p_type_erased_iterator, size_type n) (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    crbegin() const tbb::concurrent_vector< T, A >inline
    crend() const tbb::concurrent_vector< T, A >inline
    difference_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    emplace_back(Args &&...args)tbb::concurrent_vector< T, A >inline
    empty() const tbb::concurrent_vector< T, A >inline
    end()tbb::concurrent_vector< T, A >inline
    end() const tbb::concurrent_vector< T, A >inline
    front()tbb::concurrent_vector< T, A >inline
    front() const tbb::concurrent_vector< T, A >inline
    get_allocator() const tbb::concurrent_vector< T, A >inline
    grow_by(size_type delta)tbb::concurrent_vector< T, A >inline
    grow_by(size_type delta, const_reference t)tbb::concurrent_vector< T, A >inline
    grow_by(I first, I last)tbb::concurrent_vector< T, A >inline
    grow_by(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    grow_to_at_least(size_type n)tbb::concurrent_vector< T, A >inline
    grow_to_at_least(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    internal::vector_iterator (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >friend
    internal_vector_base() const (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >inline
    iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    max_size() const tbb::concurrent_vector< T, A >inline
    operator=(const concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
    operator=(concurrent_vector &&other)tbb::concurrent_vector< T, A >inline
    operator=(const concurrent_vector< T, M > &vector)tbb::concurrent_vector< T, A >inline
    operator=(std::initializer_list< T > init_list)tbb::concurrent_vector< T, A >inline
    operator[](size_type index)tbb::concurrent_vector< T, A >inline
    operator[](size_type index) const tbb::concurrent_vector< T, A >inline
    pointer typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    push_back(const_reference item)tbb::concurrent_vector< T, A >inline
    push_back(T &&item)tbb::concurrent_vector< T, A >inline
    range(size_t grainsize=1)tbb::concurrent_vector< T, A >inline
    range(size_t grainsize=1) const tbb::concurrent_vector< T, A >inline
    range_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    rbegin()tbb::concurrent_vector< T, A >inline
    rbegin() const tbb::concurrent_vector< T, A >inline
    reference typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    rend()tbb::concurrent_vector< T, A >inline
    rend() const tbb::concurrent_vector< T, A >inline
    reserve(size_type n)tbb::concurrent_vector< T, A >inline
    resize(size_type n)tbb::concurrent_vector< T, A >inline
    resize(size_type n, const_reference t)tbb::concurrent_vector< T, A >inline
    reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    reverse_iterator typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    shrink_to_fit()tbb::concurrent_vector< T, A >
    size() const tbb::concurrent_vector< T, A >inline
    size_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    swap(concurrent_vector &vector)tbb::concurrent_vector< T, A >inline
    value_type typedef (defined in tbb::concurrent_vector< T, A >)tbb::concurrent_vector< T, A >
    ~concurrent_vector()tbb::concurrent_vector< T, A >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00313.html b/doc/html/a00313.html index 201cc64d..772877d1 100644 --- a/doc/html/a00313.html +++ b/doc/html/a00313.html @@ -33,28 +33,25 @@
    -
    tbb::mutex::scoped_lock Member List
    +
    tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00314.html b/doc/html/a00314.html index 7ad18d41..f29b4c00 100644 --- a/doc/html/a00314.html +++ b/doc/html/a00314.html @@ -33,25 +33,38 @@
    -
    tbb::null_mutex Member List
    +
    tbb::mutex Member List
    -

    This is the complete list of members for tbb::null_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::mutex, including all inherited members.

    - - - - + + + + + + + + + + + + + + + + +
    is_fair_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    is_recursive_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    is_rw_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    null_mutex() (defined in tbb::null_mutex)tbb::null_mutexinline
    DESTROYED enum value (defined in tbb::mutex)tbb::mutex
    HELD enum value (defined in tbb::mutex)tbb::mutex
    INITIALIZED enum value (defined in tbb::mutex)tbb::mutex
    is_fair_mutex (defined in tbb::mutex)tbb::mutexstatic
    is_recursive_mutex (defined in tbb::mutex)tbb::mutexstatic
    is_rw_mutex (defined in tbb::mutex)tbb::mutexstatic
    lock()tbb::mutexinline
    mutex()tbb::mutexinline
    native_handle() (defined in tbb::mutex)tbb::mutexinline
    native_handle_type typedeftbb::mutex
    native_handle_type typedef (defined in tbb::mutex)tbb::mutex
    scoped_lock (defined in tbb::mutex)tbb::mutexfriend
    set_state(state_t to)tbb::mutexinline
    state_t enum name (defined in tbb::mutex)tbb::mutex
    try_lock()tbb::mutexinline
    unlock()tbb::mutexinline
    ~mutex() (defined in tbb::mutex)tbb::mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00315.html b/doc/html/a00315.html index 3e9d55e1..223a4e53 100644 --- a/doc/html/a00315.html +++ b/doc/html/a00315.html @@ -33,27 +33,28 @@
    -
    tbb::null_mutex::scoped_lock Member List
    +
    tbb::mutex::scoped_lock Member List
    -

    This is the complete list of members for tbb::null_mutex::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::mutex::scoped_lock, including all inherited members.

    - - - - - - + + + + + + +
    acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    release() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    scoped_lock(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    try_acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    ~scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    acquire(mutex &mutex)tbb::mutex::scoped_lockinline
    mutex (defined in tbb::mutex::scoped_lock)tbb::mutex::scoped_lockfriend
    release()tbb::mutex::scoped_lockinline
    scoped_lock()tbb::mutex::scoped_lockinline
    scoped_lock(mutex &mutex)tbb::mutex::scoped_lockinline
    try_acquire(mutex &mutex)tbb::mutex::scoped_lockinline
    ~scoped_lock()tbb::mutex::scoped_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00316.html b/doc/html/a00316.html index be540b53..f2e38901 100644 --- a/doc/html/a00316.html +++ b/doc/html/a00316.html @@ -33,25 +33,25 @@
    -
    tbb::null_rw_mutex Member List
    +
    tbb::null_mutex Member List
    -

    This is the complete list of members for tbb::null_rw_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::null_mutex, including all inherited members.

    - - - - + + + +
    is_fair_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    is_recursive_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    is_rw_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    null_rw_mutex() (defined in tbb::null_rw_mutex)tbb::null_rw_mutexinline
    is_fair_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    is_recursive_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    is_rw_mutex (defined in tbb::null_mutex)tbb::null_mutexstatic
    null_mutex() (defined in tbb::null_mutex)tbb::null_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00317.html b/doc/html/a00317.html index 7be96b14..4e03df54 100644 --- a/doc/html/a00317.html +++ b/doc/html/a00317.html @@ -33,29 +33,27 @@
    -
    tbb::null_rw_mutex::scoped_lock Member List
    +
    tbb::null_mutex::scoped_lock Member List
    -

    This is the complete list of members for tbb::null_rw_mutex::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::null_mutex::scoped_lock, including all inherited members.

    - - - - - - - - + + + + + +
    acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    downgrade_to_reader() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    release() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    scoped_lock(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    try_acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    upgrade_to_writer() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    ~scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    release() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    scoped_lock(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    try_acquire(null_mutex &) (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline
    ~scoped_lock() (defined in tbb::null_mutex::scoped_lock)tbb::null_mutex::scoped_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00318.html b/doc/html/a00318.html index 9227f457..c3995530 100644 --- a/doc/html/a00318.html +++ b/doc/html/a00318.html @@ -33,23 +33,25 @@
    -
    tbb::parallel_do_feeder< Item > Member List
    +
    tbb::null_rw_mutex Member List
    -

    This is the complete list of members for tbb::parallel_do_feeder< Item >, including all inherited members.

    +

    This is the complete list of members for tbb::null_rw_mutex, including all inherited members.

    - - + + + +
    add(const Item &item)tbb::parallel_do_feeder< Item >inline
    internal::parallel_do_feeder_impl (defined in tbb::parallel_do_feeder< Item >)tbb::parallel_do_feeder< Item >friend
    is_fair_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    is_recursive_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    is_rw_mutex (defined in tbb::null_rw_mutex)tbb::null_rw_mutexstatic
    null_rw_mutex() (defined in tbb::null_rw_mutex)tbb::null_rw_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00319.html b/doc/html/a00319.html index f8216210..16628e3b 100644 --- a/doc/html/a00319.html +++ b/doc/html/a00319.html @@ -33,22 +33,29 @@
    -
    tbb::pre_scan_tag Member List
    +
    tbb::null_rw_mutex::scoped_lock Member List
    -

    This is the complete list of members for tbb::pre_scan_tag, including all inherited members.

    +

    This is the complete list of members for tbb::null_rw_mutex::scoped_lock, including all inherited members.

    - + + + + + + + +
    is_final_scan() (defined in tbb::pre_scan_tag)tbb::pre_scan_taginlinestatic
    acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    downgrade_to_reader() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    release() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    scoped_lock(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    try_acquire(null_rw_mutex &, bool=true) (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    upgrade_to_writer() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline
    ~scoped_lock() (defined in tbb::null_rw_mutex::scoped_lock)tbb::null_rw_mutex::scoped_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00320.html b/doc/html/a00320.html index b66b8439..10f09f5a 100644 --- a/doc/html/a00320.html +++ b/doc/html/a00320.html @@ -33,22 +33,23 @@
    -
    tbb::final_scan_tag Member List
    +
    tbb::parallel_do_feeder< Item > Member List
    -

    This is the complete list of members for tbb::final_scan_tag, including all inherited members.

    +

    This is the complete list of members for tbb::parallel_do_feeder< Item >, including all inherited members.

    - + +
    is_final_scan() (defined in tbb::final_scan_tag)tbb::final_scan_taginlinestatic
    add(const Item &item)tbb::parallel_do_feeder< Item >inline
    internal::parallel_do_feeder_impl (defined in tbb::parallel_do_feeder< Item >)tbb::parallel_do_feeder< Item >friend

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00321.html b/doc/html/a00321.html index 62011999..a2a22a2a 100644 --- a/doc/html/a00321.html +++ b/doc/html/a00321.html @@ -33,26 +33,22 @@
    -
    tbb::parallel_while< Body > Member List
    +
    tbb::pre_scan_tag Member List
    -

    This is the complete list of members for tbb::parallel_while< Body >, including all inherited members.

    +

    This is the complete list of members for tbb::pre_scan_tag, including all inherited members.

    - - - - - +
    add(const value_type &item)tbb::parallel_while< Body >
    parallel_while()tbb::parallel_while< Body >inline
    run(Stream &stream, const Body &body)tbb::parallel_while< Body >
    value_type typedeftbb::parallel_while< Body >
    ~parallel_while()tbb::parallel_while< Body >inline
    is_final_scan() (defined in tbb::pre_scan_tag)tbb::pre_scan_taginlinestatic

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00322.html b/doc/html/a00322.html index 8673a9e0..c28d3412 100644 --- a/doc/html/a00322.html +++ b/doc/html/a00322.html @@ -33,26 +33,22 @@
    -
    tbb::filter Member List
    +
    tbb::final_scan_tag Member List
    -

    This is the complete list of members for tbb::filter, including all inherited members.

    +

    This is the complete list of members for tbb::final_scan_tag, including all inherited members.

    - - - - - +
    exact_exception_propagationtbb::filterprotectedstatic
    filter_is_boundtbb::filterprotectedstatic
    filter_is_out_of_ordertbb::filterprotectedstatic
    filter_is_serialtbb::filterprotectedstatic
    filter_may_emit_nulltbb::filterprotectedstatic
    is_final_scan() (defined in tbb::final_scan_tag)tbb::final_scan_taginlinestatic

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00323.html b/doc/html/a00323.html index 00b1c656..d1df7089 100644 --- a/doc/html/a00323.html +++ b/doc/html/a00323.html @@ -33,33 +33,26 @@
    -
    tbb::thread_bound_filter Member List
    +
    tbb::parallel_while< Body > Member List
    -

    This is the complete list of members for tbb::thread_bound_filter, including all inherited members.

    +

    This is the complete list of members for tbb::parallel_while< Body >, including all inherited members.

    - - - - - - - - - - - - + + + + +
    end_of_stream enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    exact_exception_propagationtbb::filterprotectedstatic
    filter_is_boundtbb::filterprotectedstatic
    filter_is_out_of_ordertbb::filterprotectedstatic
    filter_is_serialtbb::filterprotectedstatic
    filter_may_emit_nulltbb::filterprotectedstatic
    item_not_available enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    process_item()tbb::thread_bound_filter
    result_type enum name (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    success enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    thread_bound_filter(mode filter_mode) (defined in tbb::thread_bound_filter)tbb::thread_bound_filterinlineprotected
    try_process_item()tbb::thread_bound_filter
    add(const value_type &item)tbb::parallel_while< Body >
    parallel_while()tbb::parallel_while< Body >inline
    run(Stream &stream, const Body &body)tbb::parallel_while< Body >
    value_type typedeftbb::parallel_while< Body >
    ~parallel_while()tbb::parallel_while< Body >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00324.html b/doc/html/a00324.html index e5b62b3f..4f2a3c37 100644 --- a/doc/html/a00324.html +++ b/doc/html/a00324.html @@ -33,33 +33,26 @@
    -
    tbb::pipeline Member List
    +
    tbb::filter Member List
    -

    This is the complete list of members for tbb::pipeline, including all inherited members.

    +

    This is the complete list of members for tbb::filter, including all inherited members.

    - - - - - - - - - - - - + + + + +
    add_filter(filter &filter_)tbb::pipeline
    clear()tbb::pipeline
    filter (defined in tbb::pipeline)tbb::pipelinefriend
    internal::pipeline_cleaner (defined in tbb::pipeline)tbb::pipelinefriend
    internal::pipeline_root_task (defined in tbb::pipeline)tbb::pipelinefriend
    internal::stage_task (defined in tbb::pipeline)tbb::pipelinefriend
    pipeline()tbb::pipeline
    run(size_t max_number_of_live_tokens)tbb::pipeline
    run(size_t max_number_of_live_tokens, tbb::task_group_context &context)tbb::pipeline
    tbb::interface6::internal::pipeline_proxy (defined in tbb::pipeline)tbb::pipelinefriend
    thread_bound_filter (defined in tbb::pipeline)tbb::pipelinefriend
    ~pipeline()tbb::pipelinevirtual
    exact_exception_propagationtbb::filterprotectedstatic
    filter_is_boundtbb::filterprotectedstatic
    filter_is_out_of_ordertbb::filterprotectedstatic
    filter_is_serialtbb::filterprotectedstatic
    filter_may_emit_nulltbb::filterprotectedstatic

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00325.html b/doc/html/a00325.html index 0b62524e..d8f2801e 100644 --- a/doc/html/a00325.html +++ b/doc/html/a00325.html @@ -33,26 +33,33 @@
    -
    tbb::queuing_mutex Member List
    +
    tbb::thread_bound_filter Member List
    -

    This is the complete list of members for tbb::queuing_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::thread_bound_filter, including all inherited members.

    - - - - - + + + + + + + + + + + +
    internal_construct() (defined in tbb::queuing_mutex)tbb::queuing_mutex
    is_fair_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    is_recursive_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    is_rw_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    queuing_mutex()tbb::queuing_mutexinline
    end_of_stream enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    exact_exception_propagationtbb::filterprotectedstatic
    filter_is_boundtbb::filterprotectedstatic
    filter_is_out_of_ordertbb::filterprotectedstatic
    filter_is_serialtbb::filterprotectedstatic
    filter_may_emit_nulltbb::filterprotectedstatic
    item_not_available enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    process_item()tbb::thread_bound_filter
    result_type enum name (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    success enum value (defined in tbb::thread_bound_filter)tbb::thread_bound_filter
    thread_bound_filter(mode filter_mode) (defined in tbb::thread_bound_filter)tbb::thread_bound_filterinlineprotected
    try_process_item()tbb::thread_bound_filter

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00326.html b/doc/html/a00326.html index 43ee577f..05703187 100644 --- a/doc/html/a00326.html +++ b/doc/html/a00326.html @@ -33,27 +33,33 @@
    -
    tbb::queuing_mutex::scoped_lock Member List
    +
    tbb::pipeline Member List
    -

    This is the complete list of members for tbb::queuing_mutex::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::pipeline, including all inherited members.

    - - - - - - + + + + + + + + + + + +
    acquire(queuing_mutex &m)tbb::queuing_mutex::scoped_lock
    release()tbb::queuing_mutex::scoped_lock
    scoped_lock()tbb::queuing_mutex::scoped_lockinline
    scoped_lock(queuing_mutex &m)tbb::queuing_mutex::scoped_lockinline
    try_acquire(queuing_mutex &m)tbb::queuing_mutex::scoped_lock
    ~scoped_lock()tbb::queuing_mutex::scoped_lockinline
    add_filter(filter &filter_)tbb::pipeline
    clear()tbb::pipeline
    filter (defined in tbb::pipeline)tbb::pipelinefriend
    internal::pipeline_cleaner (defined in tbb::pipeline)tbb::pipelinefriend
    internal::pipeline_root_task (defined in tbb::pipeline)tbb::pipelinefriend
    internal::stage_task (defined in tbb::pipeline)tbb::pipelinefriend
    pipeline()tbb::pipeline
    run(size_t max_number_of_live_tokens)tbb::pipeline
    run(size_t max_number_of_live_tokens, tbb::task_group_context &context)tbb::pipeline
    tbb::interface6::internal::pipeline_proxy (defined in tbb::pipeline)tbb::pipelinefriend
    thread_bound_filter (defined in tbb::pipeline)tbb::pipelinefriend
    ~pipeline()tbb::pipelinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00327.html b/doc/html/a00327.html index 2d7543c3..d9d8b11a 100644 --- a/doc/html/a00327.html +++ b/doc/html/a00327.html @@ -33,27 +33,26 @@
    -
    tbb::queuing_rw_mutex Member List
    +
    tbb::queuing_mutex Member List
    -

    This is the complete list of members for tbb::queuing_rw_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::queuing_mutex, including all inherited members.

    - - - - - - + + + + +
    internal_construct() (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutex
    is_fair_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    is_recursive_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    is_rw_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    queuing_rw_mutex()tbb::queuing_rw_mutexinline
    ~queuing_rw_mutex()tbb::queuing_rw_mutexinline
    internal_construct() (defined in tbb::queuing_mutex)tbb::queuing_mutex
    is_fair_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    is_recursive_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    is_rw_mutex (defined in tbb::queuing_mutex)tbb::queuing_mutexstatic
    queuing_mutex()tbb::queuing_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00328.html b/doc/html/a00328.html index 167a7a29..d9d8d259 100644 --- a/doc/html/a00328.html +++ b/doc/html/a00328.html @@ -33,29 +33,27 @@
    -
    tbb::queuing_rw_mutex::scoped_lock Member List
    +
    tbb::queuing_mutex::scoped_lock Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00329.html b/doc/html/a00329.html index 700701fb..faf053fe 100644 --- a/doc/html/a00329.html +++ b/doc/html/a00329.html @@ -33,33 +33,27 @@
    -
    tbb::recursive_mutex Member List
    +
    tbb::queuing_rw_mutex Member List
    -

    This is the complete list of members for tbb::recursive_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::queuing_rw_mutex, including all inherited members.

    - - - - - - - - - - - - + + + + + +
    is_fair_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    is_recursive_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    is_rw_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    lock()tbb::recursive_mutexinline
    native_handle() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline
    native_handle_type typedeftbb::recursive_mutex
    native_handle_type typedef (defined in tbb::recursive_mutex)tbb::recursive_mutex
    recursive_mutex()tbb::recursive_mutexinline
    scoped_lock (defined in tbb::recursive_mutex)tbb::recursive_mutexfriend
    try_lock()tbb::recursive_mutexinline
    unlock()tbb::recursive_mutexinline
    ~recursive_mutex() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline
    internal_construct() (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutex
    is_fair_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    is_recursive_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    is_rw_mutex (defined in tbb::queuing_rw_mutex)tbb::queuing_rw_mutexstatic
    queuing_rw_mutex()tbb::queuing_rw_mutexinline
    ~queuing_rw_mutex()tbb::queuing_rw_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00330.html b/doc/html/a00330.html index cedd77d9..d18e8870 100644 --- a/doc/html/a00330.html +++ b/doc/html/a00330.html @@ -33,28 +33,29 @@
    -
    tbb::recursive_mutex::scoped_lock Member List
    +
    tbb::queuing_rw_mutex::scoped_lock Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00331.html b/doc/html/a00331.html index 2a9c3d1b..f63dc09b 100644 --- a/doc/html/a00331.html +++ b/doc/html/a00331.html @@ -33,40 +33,33 @@
    -
    tbb::scalable_allocator< T > Member List
    +
    tbb::recursive_mutex Member List
    -

    This is the complete list of members for tbb::scalable_allocator< T >, including all inherited members.

    +

    This is the complete list of members for tbb::recursive_mutex, including all inherited members.

    - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
    address(reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    address(const_reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    allocate(size_type n, const void *=0)tbb::scalable_allocator< T >inline
    const_pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    const_reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    construct(U *p, Args &&...args) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    deallocate(pointer p, size_type)tbb::scalable_allocator< T >inline
    destroy(pointer p) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    difference_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    max_size() const tbb::scalable_allocator< T >inline
    pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    scalable_allocator() (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    scalable_allocator(const scalable_allocator &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    scalable_allocator(const scalable_allocator< U > &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    size_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    value_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    is_fair_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    is_recursive_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    is_rw_mutex (defined in tbb::recursive_mutex)tbb::recursive_mutexstatic
    lock()tbb::recursive_mutexinline
    native_handle() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline
    native_handle_type typedeftbb::recursive_mutex
    native_handle_type typedef (defined in tbb::recursive_mutex)tbb::recursive_mutex
    recursive_mutex()tbb::recursive_mutexinline
    scoped_lock (defined in tbb::recursive_mutex)tbb::recursive_mutexfriend
    try_lock()tbb::recursive_mutexinline
    unlock()tbb::recursive_mutexinline
    ~recursive_mutex() (defined in tbb::recursive_mutex)tbb::recursive_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00332.html b/doc/html/a00332.html index ce7d4f10..f0d8598c 100644 --- a/doc/html/a00332.html +++ b/doc/html/a00332.html @@ -33,22 +33,28 @@
    -
    tbb::scalable_allocator< T >::rebind< U > Member List
    +
    tbb::recursive_mutex::scoped_lock Member List
    -

    This is the complete list of members for tbb::scalable_allocator< T >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::recursive_mutex::scoped_lock, including all inherited members.

    - + + + + + + +
    other typedef (defined in tbb::scalable_allocator< T >::rebind< U >)tbb::scalable_allocator< T >::rebind< U >
    acquire(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
    recursive_mutex (defined in tbb::recursive_mutex::scoped_lock)tbb::recursive_mutex::scoped_lockfriend
    release()tbb::recursive_mutex::scoped_lockinline
    scoped_lock()tbb::recursive_mutex::scoped_lockinline
    scoped_lock(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
    try_acquire(recursive_mutex &mutex)tbb::recursive_mutex::scoped_lockinline
    ~scoped_lock()tbb::recursive_mutex::scoped_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00333.html b/doc/html/a00333.html index 996203e9..e12be983 100644 --- a/doc/html/a00333.html +++ b/doc/html/a00333.html @@ -33,24 +33,40 @@
    -
    tbb::scalable_allocator< void > Member List
    +
    tbb::scalable_allocator< T > Member List
    -

    This is the complete list of members for tbb::scalable_allocator< void >, including all inherited members.

    +

    This is the complete list of members for tbb::scalable_allocator< T >, including all inherited members.

    - - - + + + + + + + + + + + + + + + + + + +
    const_pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
    pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
    value_type typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
    address(reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    address(const_reference x) const (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    allocate(size_type n, const void *=0)tbb::scalable_allocator< T >inline
    const_pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    const_reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    construct(U *p, Args &&...args) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    deallocate(pointer p, size_type)tbb::scalable_allocator< T >inline
    destroy(pointer p) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    difference_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    max_size() const tbb::scalable_allocator< T >inline
    pointer typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    reference typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    scalable_allocator() (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    scalable_allocator(const scalable_allocator &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    scalable_allocator(const scalable_allocator< U > &) (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >inline
    size_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >
    value_type typedef (defined in tbb::scalable_allocator< T >)tbb::scalable_allocator< T >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00334.html b/doc/html/a00334.html index b30d66ce..e4fcfd51 100644 --- a/doc/html/a00334.html +++ b/doc/html/a00334.html @@ -33,22 +33,22 @@
    -
    tbb::scalable_allocator< void >::rebind< U > Member List
    +
    tbb::scalable_allocator< T >::rebind< U > Member List
    -

    This is the complete list of members for tbb::scalable_allocator< void >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::scalable_allocator< T >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::scalable_allocator< void >::rebind< U >)tbb::scalable_allocator< void >::rebind< U >
    other typedef (defined in tbb::scalable_allocator< T >::rebind< U >)tbb::scalable_allocator< T >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00335.html b/doc/html/a00335.html index f3a0da12..c662db4b 100644 --- a/doc/html/a00335.html +++ b/doc/html/a00335.html @@ -33,30 +33,24 @@
    -
    tbb::spin_mutex Member List
    +
    tbb::scalable_allocator< void > Member List
    -

    This is the complete list of members for tbb::spin_mutex, including all inherited members.

    +

    This is the complete list of members for tbb::scalable_allocator< void >, including all inherited members.

    - - - - - - - - - + + +
    internal_construct()tbb::spin_mutex
    is_fair_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    is_recursive_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    is_rw_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    lock()tbb::spin_mutexinline
    scoped_lock (defined in tbb::spin_mutex)tbb::spin_mutexfriend
    spin_mutex()tbb::spin_mutexinline
    try_lock()tbb::spin_mutexinline
    unlock()tbb::spin_mutexinline
    const_pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
    pointer typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >
    value_type typedef (defined in tbb::scalable_allocator< void >)tbb::scalable_allocator< void >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00336.html b/doc/html/a00336.html index ef169da7..c9f7cb15 100644 --- a/doc/html/a00336.html +++ b/doc/html/a00336.html @@ -33,28 +33,22 @@
    -
    tbb::spin_mutex::scoped_lock Member List
    +
    tbb::scalable_allocator< void >::rebind< U > Member List
    -

    This is the complete list of members for tbb::spin_mutex::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::scalable_allocator< void >::rebind< U >, including all inherited members.

    - - - - - - - +
    acquire(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
    release()tbb::spin_mutex::scoped_lockinline
    scoped_lock()tbb::spin_mutex::scoped_lockinline
    scoped_lock(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
    spin_mutex (defined in tbb::spin_mutex::scoped_lock)tbb::spin_mutex::scoped_lockfriend
    try_acquire(spin_mutex &m)tbb::spin_mutex::scoped_lockinline
    ~scoped_lock()tbb::spin_mutex::scoped_lockinline
    other typedef (defined in tbb::scalable_allocator< void >::rebind< U >)tbb::scalable_allocator< void >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00337.html b/doc/html/a00337.html index 305fe103..df414fcd 100644 --- a/doc/html/a00337.html +++ b/doc/html/a00337.html @@ -33,38 +33,30 @@
    -
    tbb::spin_rw_mutex_v3 Member List
    +
    tbb::spin_mutex Member List
    -

    This is the complete list of members for tbb::spin_rw_mutex_v3, including all inherited members.

    +

    This is the complete list of members for tbb::spin_mutex, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + + + + + + +
    BUSY (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    is_fair_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    is_recursive_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    is_rw_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    lock()tbb::spin_rw_mutex_v3inline
    lock_read()tbb::spin_rw_mutex_v3inline
    ONE_READER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    READERS (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline
    statetbb::spin_rw_mutex_v3protected
    state_t typedef (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protected
    try_lock()tbb::spin_rw_mutex_v3inline
    try_lock_read()tbb::spin_rw_mutex_v3inline
    unlock()tbb::spin_rw_mutex_v3inline
    WRITER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    WRITER_PENDING (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    ~spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline
    internal_construct()tbb::spin_mutex
    is_fair_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    is_recursive_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    is_rw_mutex (defined in tbb::spin_mutex)tbb::spin_mutexstatic
    lock()tbb::spin_mutexinline
    scoped_lock (defined in tbb::spin_mutex)tbb::spin_mutexfriend
    spin_mutex()tbb::spin_mutexinline
    try_lock()tbb::spin_mutexinline
    unlock()tbb::spin_mutexinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00338.html b/doc/html/a00338.html index 713548d3..2796bdcc 100644 --- a/doc/html/a00338.html +++ b/doc/html/a00338.html @@ -33,32 +33,28 @@
    -
    tbb::spin_rw_mutex_v3::scoped_lock Member List
    +
    tbb::spin_mutex::scoped_lock Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00339.html b/doc/html/a00339.html index 118c4dd8..157c8c9e 100644 --- a/doc/html/a00339.html +++ b/doc/html/a00339.html @@ -33,26 +33,38 @@
    -
    tbb::task_handle< F > Member List
    +
    tbb::spin_rw_mutex_v3 Member List
    -

    This is the complete list of members for tbb::task_handle< F >, including all inherited members.

    +

    This is the complete list of members for tbb::spin_rw_mutex_v3, including all inherited members.

    - - - - - + + + + + + + + + + + + + + + + +
    internal::task_handle_task (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    operator()() const (defined in tbb::task_handle< F >)tbb::task_handle< F >inline
    structured_task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    task_handle(const F &f) (defined in tbb::task_handle< F >)tbb::task_handle< F >inline
    BUSY (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    is_fair_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    is_recursive_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    is_rw_mutex (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3static
    lock()tbb::spin_rw_mutex_v3inline
    lock_read()tbb::spin_rw_mutex_v3inline
    ONE_READER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    READERS (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline
    statetbb::spin_rw_mutex_v3protected
    state_t typedef (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protected
    try_lock()tbb::spin_rw_mutex_v3inline
    try_lock_read()tbb::spin_rw_mutex_v3inline
    unlock()tbb::spin_rw_mutex_v3inline
    WRITER (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    WRITER_PENDING (defined in tbb::spin_rw_mutex_v3)tbb::spin_rw_mutex_v3protectedstatic
    ~spin_rw_mutex_v3()tbb::spin_rw_mutex_v3inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00340.html b/doc/html/a00340.html index 50ba00ac..2adb0437 100644 --- a/doc/html/a00340.html +++ b/doc/html/a00340.html @@ -33,36 +33,32 @@
    -
    tbb::task_group Member List
    +
    tbb::spin_rw_mutex_v3::scoped_lock Member List
    -

    This is the complete list of members for tbb::task_group, including all inherited members.

    +

    This is the complete list of members for tbb::spin_rw_mutex_v3::scoped_lock, including all inherited members.

    - - - - - - - - - - - - - - - + + + + + + + + + + +
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
    run(const F &f) (defined in tbb::task_group)tbb::task_groupinline
    run_and_wait(const F &f) (defined in tbb::task_group)tbb::task_groupinline
    run_and_wait(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
    task_group() (defined in tbb::task_group)tbb::task_groupinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    acquire(spin_rw_mutex &m, bool write=true)tbb::spin_rw_mutex_v3::scoped_lockinline
    downgrade_to_reader()tbb::spin_rw_mutex_v3::scoped_lockinline
    is_writertbb::spin_rw_mutex_v3::scoped_lockprotected
    mutextbb::spin_rw_mutex_v3::scoped_lockprotected
    release()tbb::spin_rw_mutex_v3::scoped_lockinline
    scoped_lock()tbb::spin_rw_mutex_v3::scoped_lockinline
    scoped_lock(spin_rw_mutex &m, bool write=true)tbb::spin_rw_mutex_v3::scoped_lockinline
    tbb::interface8::internal::x86_rtm_rw_mutex (defined in tbb::spin_rw_mutex_v3::scoped_lock)tbb::spin_rw_mutex_v3::scoped_lockfriend
    try_acquire(spin_rw_mutex &m, bool write=true)tbb::spin_rw_mutex_v3::scoped_lockinline
    upgrade_to_writer()tbb::spin_rw_mutex_v3::scoped_lockinline
    ~scoped_lock()tbb::spin_rw_mutex_v3::scoped_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00341.html b/doc/html/a00341.html index fa99304c..6c11ad03 100644 --- a/doc/html/a00341.html +++ b/doc/html/a00341.html @@ -33,33 +33,26 @@
    -
    tbb::structured_task_group Member List
    +
    tbb::task_handle< F > Member List
    -

    This is the complete list of members for tbb::structured_task_group, including all inherited members.

    +

    This is the complete list of members for tbb::task_handle< F >, including all inherited members.

    - - - - - - - - - - - - + + + + +
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    run_and_wait(task_handle< F > &h) (defined in tbb::structured_task_group)tbb::structured_task_groupinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::structured_task_group)tbb::structured_task_groupinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal::task_handle_task (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    operator()() const (defined in tbb::task_handle< F >)tbb::task_handle< F >inline
    structured_task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    task_group (defined in tbb::task_handle< F >)tbb::task_handle< F >friend
    task_handle(const F &f) (defined in tbb::task_handle< F >)tbb::task_handle< F >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00342.html b/doc/html/a00342.html index 91df3539..9576d415 100644 --- a/doc/html/a00342.html +++ b/doc/html/a00342.html @@ -33,32 +33,36 @@
    -
    tbb::task_scheduler_init Member List
    +
    tbb::task_group Member List
    -

    This is the complete list of members for tbb::task_scheduler_init, including all inherited members.

    +

    This is the complete list of members for tbb::task_group, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + + + + + +
    automatictbb::task_scheduler_initstatic
    default_num_threads()tbb::task_scheduler_initstatic
    deferredtbb::task_scheduler_initstatic
    if(wait_workers_in_terminate) my_scheduler (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
    initialize(int number_of_threads=automatic)tbb::task_scheduler_init
    initialize(int number_of_threads, stack_size_type thread_stack_size)tbb::task_scheduler_init
    initialize(number_of_threads, thread_stack_size) (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
    is_active() const tbb::task_scheduler_initinline
    terminate()tbb::task_scheduler_init
    thread_stack_sizetbb::task_scheduler_init
    ~task_scheduler_init()tbb::task_scheduler_initinline
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
    run(const F &f) (defined in tbb::task_group)tbb::task_groupinline
    run_and_wait(const F &f) (defined in tbb::task_group)tbb::task_groupinline
    run_and_wait(task_handle< F > &h) (defined in tbb::task_group)tbb::task_groupinline
    task_group() (defined in tbb::task_group)tbb::task_groupinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00343.html b/doc/html/a00343.html index 2fc5720a..f2d798e5 100644 --- a/doc/html/a00343.html +++ b/doc/html/a00343.html @@ -33,44 +33,33 @@
    -
    tbb::tbb_allocator< T > Member List
    +
    tbb::structured_task_group Member List
    -

    This is the complete list of members for tbb::tbb_allocator< T >, including all inherited members.

    +

    This is the complete list of members for tbb::structured_task_group, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
    address(reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    address(const_reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    allocate(size_type n, const void *=0)tbb::tbb_allocator< T >inline
    allocator_type()tbb::tbb_allocator< T >inlinestatic
    const_pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    const_reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    construct(U *p, Args &&...args)tbb::tbb_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    deallocate(pointer p, size_type)tbb::tbb_allocator< T >inline
    destroy(pointer p)tbb::tbb_allocator< T >inline
    difference_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    malloc_type enum nametbb::tbb_allocator< T >
    max_size() const tbb::tbb_allocator< T >inline
    pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    scalable enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    size_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    standard enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    tbb_allocator() (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    tbb_allocator(const tbb_allocator &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    tbb_allocator(const tbb_allocator< U > &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    value_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    run_and_wait(task_handle< F > &h) (defined in tbb::structured_task_group)tbb::structured_task_groupinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::structured_task_group)tbb::structured_task_groupinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00344.html b/doc/html/a00344.html index fb63c61a..a738867b 100644 --- a/doc/html/a00344.html +++ b/doc/html/a00344.html @@ -33,22 +33,32 @@
    -
    tbb::tbb_allocator< T >::rebind< U > Member List
    +
    tbb::task_scheduler_init Member List
    -

    This is the complete list of members for tbb::tbb_allocator< T >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::task_scheduler_init, including all inherited members.

    - + + + + + + + + + + +
    other typedef (defined in tbb::tbb_allocator< T >::rebind< U >)tbb::tbb_allocator< T >::rebind< U >
    automatictbb::task_scheduler_initstatic
    default_num_threads()tbb::task_scheduler_initstatic
    deferredtbb::task_scheduler_initstatic
    if(wait_workers_in_terminate) my_scheduler (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
    initialize(int number_of_threads=automatic)tbb::task_scheduler_init
    initialize(int number_of_threads, stack_size_type thread_stack_size)tbb::task_scheduler_init
    initialize(number_of_threads, thread_stack_size) (defined in tbb::task_scheduler_init)tbb::task_scheduler_init
    is_active() const tbb::task_scheduler_initinline
    terminate()tbb::task_scheduler_init
    thread_stack_sizetbb::task_scheduler_init
    ~task_scheduler_init()tbb::task_scheduler_initinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00345.html b/doc/html/a00345.html index 0d34a0c2..a819d7da 100644 --- a/doc/html/a00345.html +++ b/doc/html/a00345.html @@ -33,24 +33,44 @@
    -
    tbb::tbb_allocator< void > Member List
    +
    tbb::tbb_allocator< T > Member List
    -

    This is the complete list of members for tbb::tbb_allocator< void >, including all inherited members.

    +

    This is the complete list of members for tbb::tbb_allocator< T >, including all inherited members.

    - - - + + + + + + + + + + + + + + + + + + + + + + +
    const_pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
    pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
    value_type typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
    address(reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    address(const_reference x) const (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    allocate(size_type n, const void *=0)tbb::tbb_allocator< T >inline
    allocator_type()tbb::tbb_allocator< T >inlinestatic
    const_pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    const_reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    construct(U *p, Args &&...args)tbb::tbb_allocator< T >inline
    construct(pointer p, value_type &&value) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    construct(pointer p, const value_type &value) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    deallocate(pointer p, size_type)tbb::tbb_allocator< T >inline
    destroy(pointer p)tbb::tbb_allocator< T >inline
    difference_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    malloc_type enum nametbb::tbb_allocator< T >
    max_size() const tbb::tbb_allocator< T >inline
    pointer typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    reference typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    scalable enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    size_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    standard enum value (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >
    tbb_allocator() (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    tbb_allocator(const tbb_allocator &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    tbb_allocator(const tbb_allocator< U > &) (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >inline
    value_type typedef (defined in tbb::tbb_allocator< T >)tbb::tbb_allocator< T >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00346.html b/doc/html/a00346.html index c428fc1f..8eb2aabe 100644 --- a/doc/html/a00346.html +++ b/doc/html/a00346.html @@ -33,22 +33,22 @@
    -
    tbb::tbb_allocator< void >::rebind< U > Member List
    +
    tbb::tbb_allocator< T >::rebind< U > Member List
    -

    This is the complete list of members for tbb::tbb_allocator< void >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::tbb_allocator< T >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::tbb_allocator< void >::rebind< U >)tbb::tbb_allocator< void >::rebind< U >
    other typedef (defined in tbb::tbb_allocator< T >::rebind< U >)tbb::tbb_allocator< T >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00347.html b/doc/html/a00347.html index a53237c3..2a5f2577 100644 --- a/doc/html/a00347.html +++ b/doc/html/a00347.html @@ -33,33 +33,24 @@
    -
    tbb::zero_allocator< T, Allocator > Member List
    +
    tbb::tbb_allocator< void > Member List
    -

    This is the complete list of members for tbb::zero_allocator< T, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::tbb_allocator< void >, including all inherited members.

    - - - - - - - - - - - - + + +
    allocate(const size_type n, const void *hint=0) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    base_allocator_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    const_pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    const_reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    difference_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    size_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    value_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    zero_allocator() (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    zero_allocator(const zero_allocator &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    zero_allocator(const zero_allocator< U > &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    const_pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
    pointer typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >
    value_type typedef (defined in tbb::tbb_allocator< void >)tbb::tbb_allocator< void >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00348.html b/doc/html/a00348.html index a73478c3..ebdedaef 100644 --- a/doc/html/a00348.html +++ b/doc/html/a00348.html @@ -33,22 +33,22 @@
    -
    tbb::zero_allocator< T, Allocator >::rebind< U > Member List
    +
    tbb::tbb_allocator< void >::rebind< U > Member List
    -

    This is the complete list of members for tbb::zero_allocator< T, Allocator >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::tbb_allocator< void >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::zero_allocator< T, Allocator >::rebind< U >)tbb::zero_allocator< T, Allocator >::rebind< U >
    other typedef (defined in tbb::tbb_allocator< void >::rebind< U >)tbb::tbb_allocator< void >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00349.html b/doc/html/a00349.html index 7218c25f..82cb142d 100644 --- a/doc/html/a00349.html +++ b/doc/html/a00349.html @@ -33,25 +33,33 @@
    -
    tbb::zero_allocator< void, Allocator > Member List
    +
    tbb::zero_allocator< T, Allocator > Member List
    -

    This is the complete list of members for tbb::zero_allocator< void, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::zero_allocator< T, Allocator >, including all inherited members.

    - - - - + + + + + + + + + + + +
    base_allocator_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    const_pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    value_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    allocate(const size_type n, const void *hint=0) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    base_allocator_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    const_pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    const_reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    difference_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    pointer typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    reference typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    size_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    value_type typedef (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >
    zero_allocator() (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    zero_allocator(const zero_allocator &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline
    zero_allocator(const zero_allocator< U > &a) (defined in tbb::zero_allocator< T, Allocator >)tbb::zero_allocator< T, Allocator >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00350.html b/doc/html/a00350.html index 0bb72382..c016aef3 100644 --- a/doc/html/a00350.html +++ b/doc/html/a00350.html @@ -33,22 +33,22 @@
    -
    tbb::zero_allocator< void, Allocator >::rebind< U > Member List
    +
    tbb::zero_allocator< T, Allocator >::rebind< U > Member List
    -

    This is the complete list of members for tbb::zero_allocator< void, Allocator >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::zero_allocator< T, Allocator >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::zero_allocator< void, Allocator >::rebind< U >)tbb::zero_allocator< void, Allocator >::rebind< U >
    other typedef (defined in tbb::zero_allocator< T, Allocator >::rebind< U >)tbb::zero_allocator< T, Allocator >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00351.html b/doc/html/a00351.html index 80f4e1c6..9dd911ef 100644 --- a/doc/html/a00351.html +++ b/doc/html/a00351.html @@ -33,23 +33,25 @@
    -
    tbb::bad_last_alloc Member List
    +
    tbb::zero_allocator< void, Allocator > Member List
    -

    This is the complete list of members for tbb::bad_last_alloc, including all inherited members.

    +

    This is the complete list of members for tbb::zero_allocator< void, Allocator >, including all inherited members.

    - - + + + +
    what() const (defined in tbb::bad_last_alloc)tbb::bad_last_alloc
    ~bad_last_alloc() (defined in tbb::bad_last_alloc)tbb::bad_last_allocinline
    base_allocator_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    const_pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    pointer typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >
    value_type typedef (defined in tbb::zero_allocator< void, Allocator >)tbb::zero_allocator< void, Allocator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00352.html b/doc/html/a00352.html index bd4633e7..61486373 100644 --- a/doc/html/a00352.html +++ b/doc/html/a00352.html @@ -33,22 +33,22 @@
    -
    tbb::improper_lock Member List
    +
    tbb::zero_allocator< void, Allocator >::rebind< U > Member List
    -

    This is the complete list of members for tbb::improper_lock, including all inherited members.

    +

    This is the complete list of members for tbb::zero_allocator< void, Allocator >::rebind< U >, including all inherited members.

    - +
    what() const (defined in tbb::improper_lock)tbb::improper_lock
    other typedef (defined in tbb::zero_allocator< void, Allocator >::rebind< U >)tbb::zero_allocator< void, Allocator >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00353.html b/doc/html/a00353.html index ded6eae9..8148c6d2 100644 --- a/doc/html/a00353.html +++ b/doc/html/a00353.html @@ -33,22 +33,23 @@
    -
    tbb::user_abort Member List
    +
    tbb::bad_last_alloc Member List
    -

    This is the complete list of members for tbb::user_abort, including all inherited members.

    +

    This is the complete list of members for tbb::bad_last_alloc, including all inherited members.

    - + +
    what() const (defined in tbb::user_abort)tbb::user_abort
    what() const (defined in tbb::bad_last_alloc)tbb::bad_last_alloc
    ~bad_last_alloc() (defined in tbb::bad_last_alloc)tbb::bad_last_allocinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00354.html b/doc/html/a00354.html index 6c1ddcb7..8b1313c0 100644 --- a/doc/html/a00354.html +++ b/doc/html/a00354.html @@ -33,22 +33,22 @@
    -
    tbb::missing_wait Member List
    +
    tbb::improper_lock Member List
    -

    This is the complete list of members for tbb::missing_wait, including all inherited members.

    +

    This is the complete list of members for tbb::improper_lock, including all inherited members.

    - +
    what() const (defined in tbb::missing_wait)tbb::missing_wait
    what() const (defined in tbb::improper_lock)tbb::improper_lock

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00355.html b/doc/html/a00355.html index 5782eb72..5edf0965 100644 --- a/doc/html/a00355.html +++ b/doc/html/a00355.html @@ -33,22 +33,22 @@
    -
    tbb::invalid_multiple_scheduling Member List
    +
    tbb::user_abort Member List
    -

    This is the complete list of members for tbb::invalid_multiple_scheduling, including all inherited members.

    +

    This is the complete list of members for tbb::user_abort, including all inherited members.

    - +
    what() const (defined in tbb::invalid_multiple_scheduling)tbb::invalid_multiple_scheduling
    what() const (defined in tbb::user_abort)tbb::user_abort

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00356.html b/doc/html/a00356.html index fb052752..1b36efdf 100644 --- a/doc/html/a00356.html +++ b/doc/html/a00356.html @@ -33,28 +33,22 @@
    -
    tbb::tbb_exception Member List
    +
    tbb::missing_wait Member List
    -

    This is the complete list of members for tbb::tbb_exception, including all inherited members.

    +

    This is the complete list of members for tbb::missing_wait, including all inherited members.

    - - - - - - - +
    destroy()=0tbb::tbb_exceptionpure virtual
    move()=0tbb::tbb_exceptionpure virtual
    name() const =0tbb::tbb_exceptionpure virtual
    operator delete(void *p)tbb::tbb_exceptioninline
    throw_self()=0tbb::tbb_exceptionpure virtual
    what() const =0tbb::tbb_exceptionpure virtual
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline
    what() const (defined in tbb::missing_wait)tbb::missing_wait

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00357.html b/doc/html/a00357.html index b30af859..d66efc2e 100644 --- a/doc/html/a00357.html +++ b/doc/html/a00357.html @@ -33,34 +33,22 @@
    -
    tbb::captured_exception Member List
    +
    tbb::invalid_multiple_scheduling Member List
    -

    This is the complete list of members for tbb::captured_exception, including all inherited members.

    +

    This is the complete list of members for tbb::invalid_multiple_scheduling, including all inherited members.

    - - - - - - - - - - - - - +
    captured_exception(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    captured_exception(const char *name_, const char *info) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    clear() (defined in tbb::captured_exception)tbb::captured_exception
    destroy()tbb::captured_exceptionvirtual
    move()tbb::captured_exceptionvirtual
    name() const tbb::captured_exceptionvirtual
    operator delete(void *p)tbb::tbb_exceptioninline
    operator=(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    set(const char *name, const char *info) (defined in tbb::captured_exception)tbb::captured_exception
    throw_self()tbb::captured_exceptioninlinevirtual
    what() const tbb::captured_exceptionvirtual
    ~captured_exception() (defined in tbb::captured_exception)tbb::captured_exception
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline
    what() const (defined in tbb::invalid_multiple_scheduling)tbb::invalid_multiple_scheduling

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00358.html b/doc/html/a00358.html index 598921ed..47b95fa0 100644 --- a/doc/html/a00358.html +++ b/doc/html/a00358.html @@ -33,35 +33,28 @@
    -
    tbb::movable_exception< ExceptionData > Member List
    +
    tbb::tbb_exception Member List
    -

    This is the complete list of members for tbb::movable_exception< ExceptionData >, including all inherited members.

    +

    This is the complete list of members for tbb::tbb_exception, including all inherited members.

    - - - - - - - - - - - - - - + + + + + + +
    data() (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    data() const (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    destroy()tbb::movable_exception< ExceptionData >inlinevirtual
    movable_exception(const ExceptionData &data_) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    movable_exception(const movable_exception &src) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    move()tbb::movable_exception< ExceptionData >inlinevirtual
    my_exception_datatbb::movable_exception< ExceptionData >protected
    name() const tbb::movable_exception< ExceptionData >inlinevirtual
    operator delete(void *p)tbb::tbb_exceptioninline
    operator=(const movable_exception &src) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    throw_self()tbb::movable_exception< ExceptionData >inlinevirtual
    what() const tbb::movable_exception< ExceptionData >inlinevirtual
    ~movable_exception() (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline
    destroy()=0tbb::tbb_exceptionpure virtual
    move()=0tbb::tbb_exceptionpure virtual
    name() const =0tbb::tbb_exceptionpure virtual
    operator delete(void *p)tbb::tbb_exceptioninline
    throw_self()=0tbb::tbb_exceptionpure virtual
    what() const =0tbb::tbb_exceptionpure virtual
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00359.html b/doc/html/a00359.html index d3f2e4bf..5751faf2 100644 --- a/doc/html/a00359.html +++ b/doc/html/a00359.html @@ -33,25 +33,34 @@
    -
    tbb::tick_count Member List
    +
    tbb::captured_exception Member List
    -

    This is the complete list of members for tbb::tick_count, including all inherited members.

    +

    This is the complete list of members for tbb::captured_exception, including all inherited members.

    - - - - + + + + + + + + + + + + +
    now()tbb::tick_countinlinestatic
    operator-(const tick_count &t1, const tick_count &t0)tbb::tick_countfriend
    resolution()tbb::tick_countinlinestatic
    tick_count()tbb::tick_countinline
    captured_exception(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    captured_exception(const char *name_, const char *info) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    clear() (defined in tbb::captured_exception)tbb::captured_exception
    destroy()tbb::captured_exceptionvirtual
    move()tbb::captured_exceptionvirtual
    name() const tbb::captured_exceptionvirtual
    operator delete(void *p)tbb::tbb_exceptioninline
    operator=(const captured_exception &src) (defined in tbb::captured_exception)tbb::captured_exceptioninline
    set(const char *name, const char *info) (defined in tbb::captured_exception)tbb::captured_exception
    throw_self()tbb::captured_exceptioninlinevirtual
    what() const tbb::captured_exceptionvirtual
    ~captured_exception() (defined in tbb::captured_exception)tbb::captured_exception
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00360.html b/doc/html/a00360.html index 1741cfd8..0f1d98c9 100644 --- a/doc/html/a00360.html +++ b/doc/html/a00360.html @@ -33,30 +33,35 @@
    -
    tbb::tick_count::interval_t Member List
    +
    tbb::movable_exception< ExceptionData > Member List
    -

    This is the complete list of members for tbb::tick_count::interval_t, including all inherited members.

    +

    This is the complete list of members for tbb::movable_exception< ExceptionData >, including all inherited members.

    - - - - - - - - - + + + + + + + + + + + + + +
    interval_t()tbb::tick_count::interval_tinline
    interval_t(double sec)tbb::tick_count::interval_tinlineexplicit
    operator+(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
    operator+=(const interval_t &i)tbb::tick_count::interval_tinline
    operator-(const tick_count &t1, const tick_count &t0)tbb::tick_count::interval_tfriend
    operator-(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
    operator-=(const interval_t &i)tbb::tick_count::interval_tinline
    seconds() const tbb::tick_count::interval_tinline
    tbb::tick_count (defined in tbb::tick_count::interval_t)tbb::tick_count::interval_tfriend
    data() (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    data() const (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    destroy()tbb::movable_exception< ExceptionData >inlinevirtual
    movable_exception(const ExceptionData &data_) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    movable_exception(const movable_exception &src) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    move()tbb::movable_exception< ExceptionData >inlinevirtual
    my_exception_datatbb::movable_exception< ExceptionData >protected
    name() const tbb::movable_exception< ExceptionData >inlinevirtual
    operator delete(void *p)tbb::tbb_exceptioninline
    operator=(const movable_exception &src) (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    throw_self()tbb::movable_exception< ExceptionData >inlinevirtual
    what() const tbb::movable_exception< ExceptionData >inlinevirtual
    ~movable_exception() (defined in tbb::movable_exception< ExceptionData >)tbb::movable_exception< ExceptionData >inline
    ~tbb_exception() (defined in tbb::tbb_exception)tbb::tbb_exceptioninline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00361.html b/doc/html/a00361.html index 9c9098e2..18fc0bf0 100644 --- a/doc/html/a00361.html +++ b/doc/html/a00361.html @@ -33,37 +33,25 @@
    -
    tbb::flow::interface8::sender< T > Member List
    +
    tbb::tick_count Member List
    -

    This is the complete list of members for tbb::flow::interface8::sender< T >, including all inherited members.

    +

    This is the complete list of members for tbb::tick_count, including all inherited members.

    - - - - - - - - - - - - - - - - + + + +
    built_successors()=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    built_successors_type typedeftbb::flow::interface8::sender< T >
    copy_successors(successor_list_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    internal_add_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    internal_delete_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    output_type typedeftbb::flow::interface8::sender< T >
    register_successor(successor_type &r)=0tbb::flow::interface8::sender< T >pure virtual
    remove_successor(successor_type &r)=0tbb::flow::interface8::sender< T >pure virtual
    successor_count()=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    successor_list_type typedef (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >
    successor_type typedeftbb::flow::interface8::sender< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    now()tbb::tick_countinlinestatic
    operator-(const tick_count &t1, const tick_count &t0)tbb::tick_countfriend
    resolution()tbb::tick_countinlinestatic
    tick_count()tbb::tick_countinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00362.html b/doc/html/a00362.html index 8e444035..ceef7493 100644 --- a/doc/html/a00362.html +++ b/doc/html/a00362.html @@ -33,43 +33,30 @@
    -
    tbb::flow::interface8::receiver< T > Member List
    +
    tbb::tick_count::interval_t Member List
    -

    This is the complete list of members for tbb::flow::interface8::receiver< T >, including all inherited members.

    +

    This is the complete list of members for tbb::tick_count::interval_t, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + +
    built_predecessors()=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    input_type typedeftbb::flow::interface8::receiver< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal::successor_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal_add_built_predecessor(predecessor_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    internal_delete_built_predecessor(predecessor_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    limiter_node classtbb::flow::interface8::receiver< T >friend
    predecessor_count()=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >
    predecessor_type typedeftbb::flow::interface8::receiver< T >
    proxy_dependency_receiver (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >protectedpure virtual
    run_and_put_task classtbb::flow::interface8::receiver< T >friend
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >protectedpure virtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    interval_t()tbb::tick_count::interval_tinline
    interval_t(double sec)tbb::tick_count::interval_tinlineexplicit
    operator+(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
    operator+=(const interval_t &i)tbb::tick_count::interval_tinline
    operator-(const tick_count &t1, const tick_count &t0)tbb::tick_count::interval_tfriend
    operator-(const interval_t &i, const interval_t &j)tbb::tick_count::interval_tfriend
    operator-=(const interval_t &i)tbb::tick_count::interval_tinline
    seconds() const tbb::tick_count::interval_tinline
    tbb::tick_count (defined in tbb::tick_count::interval_t)tbb::tick_count::interval_tfriend

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00363.html b/doc/html/a00363.html index 60dad588..7f5587ab 100644 --- a/doc/html/a00363.html +++ b/doc/html/a00363.html @@ -33,70 +33,37 @@
    -
    tbb::flow::interface8::limiter_node< T > Member List
    +
    tbb::flow::interface8::sender< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::limiter_node< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::sender< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
    built_predecessors() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    built_successors() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    decrementtbb::flow::interface8::limiter_node< T >
    extract() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::decrementer< limiter_node< T > > (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::forward_task_bypass< limiter_node< T > > (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal_add_built_predecessor(sender< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_add_built_successor(receiver< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_delete_built_predecessor(sender< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_delete_built_successor(receiver< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    limiter_node(graph &g, size_t threshold, int num_decrement_predecessors=0)tbb::flow::interface8::limiter_node< T >inline
    limiter_node(const limiter_node &src)tbb::flow::interface8::limiter_node< T >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    predecessor_count() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &src)tbb::flow::interface8::limiter_node< T >inlinevirtual
    register_successor(receiver< output_type > &r)tbb::flow::interface8::limiter_node< T >inlinevirtual
    remove_predecessor(predecessor_type &src)tbb::flow::interface8::limiter_node< T >inlinevirtual
    remove_successor(receiver< output_type > &r)tbb::flow::interface8::limiter_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    successor_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    built_successors()=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    built_successors_type typedeftbb::flow::interface8::sender< T >
    copy_successors(successor_list_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    internal_add_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    internal_delete_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    output_type typedeftbb::flow::interface8::sender< T >
    register_successor(successor_type &r)=0tbb::flow::interface8::sender< T >pure virtual
    remove_successor(successor_type &r)=0tbb::flow::interface8::sender< T >pure virtual
    successor_count()=0 (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >pure virtual
    successor_list_type typedef (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >
    successor_type typedeftbb::flow::interface8::sender< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00364.html b/doc/html/a00364.html index d3d3f1fe..88a44994 100644 --- a/doc/html/a00364.html +++ b/doc/html/a00364.html @@ -33,51 +33,43 @@
    -
    tbb::flow::interface8::continue_receiver Member List
    +
    tbb::flow::interface8::receiver< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::continue_receiver, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::receiver< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
    built_predecessors() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiver
    continue_receiver(int number_of_predecessors=0)tbb::flow::interface8::continue_receiverinline
    continue_receiver(const continue_receiver &src)tbb::flow::interface8::continue_receiverinline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    execute()=0tbb::flow::interface8::continue_receiverprotectedpure virtual
    input_type typedeftbb::flow::interface8::continue_receiver
    internal::broadcast_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal::round_robin_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal::successor_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal_add_built_predecessor(predecessor_type &s) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    internal_delete_built_predecessor(predecessor_type &s) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    limiter_node (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    my_built_predecessors (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_current_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_initial_predecessor_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_mutex (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_predecessor_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    predecessor_count() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiver
    predecessor_type typedeftbb::flow::interface8::continue_receiver
    register_predecessor(predecessor_type &)tbb::flow::interface8::continue_receiverinlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::continue_receiverinlinevirtual
    reset_receiver(reset_flags f) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    try_put(const continue_msg &t)tbb::flow::interface8::receiver< continue_msg >inline
    try_put_task(const input_type &) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    ~continue_receiver()tbb::flow::interface8::continue_receiverinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< continue_msg >inlinevirtual
    built_predecessors()=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    input_type typedeftbb::flow::interface8::receiver< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal::successor_cache (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    internal_add_built_predecessor(predecessor_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    internal_delete_built_predecessor(predecessor_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    limiter_node classtbb::flow::interface8::receiver< T >friend
    predecessor_count()=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >
    predecessor_type typedeftbb::flow::interface8::receiver< T >
    proxy_dependency_receiver (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >friend
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >protectedpure virtual
    run_and_put_task classtbb::flow::interface8::receiver< T >friend
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >protectedpure virtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00365.html b/doc/html/a00365.html index e93826e8..7b3d8034 100644 --- a/doc/html/a00365.html +++ b/doc/html/a00365.html @@ -33,38 +33,70 @@
    -
    tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Member List
    +
    tbb::flow::interface8::limiter_node< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::limiter_node< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    const_reference typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    graph (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >friend
    graph_iterator()tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    graph_iterator(const graph_iterator &other)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    graph_node (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >friend
    iterator_category typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator!=(const graph_iterator &other) const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator*() const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator++()tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator++(int)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator->() const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator=(const graph_iterator &other)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator==(const graph_iterator &other) const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    pointer typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    reference typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    size_type typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    value_type typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    built_predecessors() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    built_successors() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    decrementtbb::flow::interface8::limiter_node< T >
    extract() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::decrementer< limiter_node< T > > (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::forward_task_bypass< limiter_node< T > > (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    internal_add_built_predecessor(sender< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_add_built_successor(receiver< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_delete_built_predecessor(sender< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    internal_delete_built_successor(receiver< output_type > &src) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    limiter_node(graph &g, size_t threshold, int num_decrement_predecessors=0)tbb::flow::interface8::limiter_node< T >inline
    limiter_node(const limiter_node &src)tbb::flow::interface8::limiter_node< T >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    predecessor_count() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &src)tbb::flow::interface8::limiter_node< T >inlinevirtual
    register_successor(receiver< output_type > &r)tbb::flow::interface8::limiter_node< T >inlinevirtual
    remove_predecessor(predecessor_type &src)tbb::flow::interface8::limiter_node< T >inlinevirtual
    remove_successor(receiver< output_type > &r)tbb::flow::interface8::limiter_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    successor_type typedef (defined in tbb::flow::interface8::limiter_node< T >)tbb::flow::interface8::limiter_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::limiter_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00366.html b/doc/html/a00366.html index 32fdc31c..a9f0621d 100644 --- a/doc/html/a00366.html +++ b/doc/html/a00366.html @@ -33,48 +33,51 @@
    -
    tbb::flow::interface8::graph Member List
    +
    tbb::flow::interface8::continue_receiver Member List
    -

    This is the complete list of members for tbb::flow::interface8::graph, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::continue_receiver, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_task_to_reset_list(task *tp) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    async_node (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    begin()tbb::flow::interface8::graphinline
    begin() const tbb::flow::interface8::graphinline
    cbegin() const tbb::flow::interface8::graphinline
    cend() const tbb::flow::interface8::graphinline
    const_iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    decrement_wait_count()tbb::flow::interface8::graphinline
    end()tbb::flow::interface8::graphinline
    end() const tbb::flow::interface8::graphinline
    exception_thrown() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    graph()tbb::flow::interface8::graphinline
    graph(task_group_context &use_this_context)tbb::flow::interface8::graphinlineexplicit
    graph_iterator (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    graph_node (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    increment_wait_count()tbb::flow::interface8::graphinline
    is_active() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    is_cancelled()tbb::flow::interface8::graphinline
    iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    reset(reset_flags f=rf_reset_protocol) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    root_task()tbb::flow::interface8::graphinline
    run(Receiver &r, Body body)tbb::flow::interface8::graphinline
    run(Body body)tbb::flow::interface8::graphinline
    set_active(bool a=true) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    set_name(const char *name) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    wait_for_all()tbb::flow::interface8::graphinline
    ~graph()tbb::flow::interface8::graphinline
    built_predecessors() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiver
    continue_receiver(int number_of_predecessors=0)tbb::flow::interface8::continue_receiverinline
    continue_receiver(const continue_receiver &src)tbb::flow::interface8::continue_receiverinline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    execute()=0tbb::flow::interface8::continue_receiverprotectedpure virtual
    input_type typedeftbb::flow::interface8::continue_receiver
    internal::broadcast_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal::round_robin_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal::successor_cache (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    internal_add_built_predecessor(predecessor_type &s) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    internal_delete_built_predecessor(predecessor_type &s) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    limiter_node (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    my_built_predecessors (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_current_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_initial_predecessor_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_mutex (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    my_predecessor_count (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverprotected
    predecessor_count() (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiver
    predecessor_type typedeftbb::flow::interface8::continue_receiver
    register_predecessor(predecessor_type &)tbb::flow::interface8::continue_receiverinlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::continue_receiverinlinevirtual
    reset_receiver(reset_flags f) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverfriend
    try_put(const continue_msg &t)tbb::flow::interface8::receiver< continue_msg >inline
    try_put_task(const input_type &) (defined in tbb::flow::interface8::continue_receiver)tbb::flow::interface8::continue_receiverinlineprotectedvirtual
    ~continue_receiver()tbb::flow::interface8::continue_receiverinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< continue_msg >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00367.html b/doc/html/a00367.html index 38b9e4ec..d9a4eda6 100644 --- a/doc/html/a00367.html +++ b/doc/html/a00367.html @@ -33,31 +33,38 @@
    -
    tbb::flow::interface8::graph_node Member List
    +
    tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Member List
    -

    This is the complete list of members for tbb::flow::interface8::graph_node, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >, including all inherited members.

    - - - - - - - - - - + + + + + + + + + + + + + + + + +
    extract()=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodepure virtual
    graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodefriend
    graph_iterator (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodefriend
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f=rf_reset_protocol)=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotectedpure virtual
    set_name(const char *name)=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodepure virtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    const_reference typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    graph (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >friend
    graph_iterator()tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    graph_iterator(const graph_iterator &other)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    graph_node (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >friend
    iterator_category typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator!=(const graph_iterator &other) const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator*() const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator++()tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator++(int)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator->() const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    operator=(const graph_iterator &other)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    operator==(const graph_iterator &other) const tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >inline
    pointer typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    reference typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    size_type typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    value_type typedef (defined in tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >)tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00368.html b/doc/html/a00368.html index a2827cc3..0bb53e5f 100644 --- a/doc/html/a00368.html +++ b/doc/html/a00368.html @@ -33,52 +33,48 @@
    -
    tbb::flow::interface8::source_node< Output > Member List
    +
    tbb::flow::interface8::graph Member List
    -

    This is the complete list of members for tbb::flow::interface8::source_node< Output >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::graph, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    activate()tbb::flow::interface8::source_node< Output >inline
    built_successors() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    copy_function_object() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inline
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    extract() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    internal::source_task_bypass< source_node< output_type > > (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >friend
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedeftbb::flow::interface8::source_node< Output >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_successor(successor_type &r)tbb::flow::interface8::source_node< Output >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::source_node< Output >inlinevirtual
    reset_node(reset_flags f)tbb::flow::interface8::source_node< Output >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    source_node(graph &g, Body body, bool is_active=true)tbb::flow::interface8::source_node< Output >inline
    source_node(const source_node &src)tbb::flow::interface8::source_node< Output >inline
    successor_count() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    successor_type typedeftbb::flow::interface8::source_node< Output >
    try_consume()tbb::flow::interface8::source_node< Output >inlinevirtual
    try_get(output_type &v)tbb::flow::interface8::source_node< Output >inlinevirtual
    try_release()tbb::flow::interface8::source_node< Output >inlinevirtual
    try_reserve(output_type &v)tbb::flow::interface8::source_node< Output >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >inlinevirtual
    ~source_node()tbb::flow::interface8::source_node< Output >inline
    add_task_to_reset_list(task *tp) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    async_node (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    begin()tbb::flow::interface8::graphinline
    begin() const tbb::flow::interface8::graphinline
    cbegin() const tbb::flow::interface8::graphinline
    cend() const tbb::flow::interface8::graphinline
    const_iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    decrement_wait_count()tbb::flow::interface8::graphinline
    end()tbb::flow::interface8::graphinline
    end() const tbb::flow::interface8::graphinline
    exception_thrown() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    graph()tbb::flow::interface8::graphinline
    graph(task_group_context &use_this_context)tbb::flow::interface8::graphinlineexplicit
    graph_iterator (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    graph_node (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphfriend
    increment_wait_count()tbb::flow::interface8::graphinline
    is_active() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    is_cancelled()tbb::flow::interface8::graphinline
    iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    reset(reset_flags f=rf_reset_protocol) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    root_task()tbb::flow::interface8::graphinline
    run(Receiver &r, Body body)tbb::flow::interface8::graphinline
    run(Body body)tbb::flow::interface8::graphinline
    set_active(bool a=true) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    set_name(const char *name) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    wait_for_all()tbb::flow::interface8::graphinline
    ~graph()tbb::flow::interface8::graphinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00369.html b/doc/html/a00369.html index 711eb669..366688bd 100644 --- a/doc/html/a00369.html +++ b/doc/html/a00369.html @@ -33,22 +33,31 @@
    -
    tbb::flow::interface8::allocate_buffer< T > Member List
    +
    tbb::flow::interface8::graph_node Member List
    -

    This is the complete list of members for tbb::flow::interface8::allocate_buffer< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::graph_node, including all inherited members.

    - + + + + + + + + + +
    value (defined in tbb::flow::interface8::allocate_buffer< T >)tbb::flow::interface8::allocate_buffer< T >static
    extract()=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodepure virtual
    graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodefriend
    graph_iterator (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodefriend
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f=rf_reset_protocol)=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotectedpure virtual
    set_name(const char *name)=0 (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodepure virtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00370.html b/doc/html/a00370.html index 2a25057e..fd4d5605 100644 --- a/doc/html/a00370.html +++ b/doc/html/a00370.html @@ -33,22 +33,52 @@
    -
    tbb::flow::interface8::allocate_buffer< queueing > Member List
    +
    tbb::flow::interface8::source_node< Output > Member List
    -

    This is the complete list of members for tbb::flow::interface8::allocate_buffer< queueing >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::source_node< Output >, including all inherited members.

    - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    value (defined in tbb::flow::interface8::allocate_buffer< queueing >)tbb::flow::interface8::allocate_buffer< queueing >static
    activate()tbb::flow::interface8::source_node< Output >inline
    built_successors() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    copy_function_object() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inline
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    extract() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    internal::source_task_bypass< source_node< output_type > > (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >friend
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedeftbb::flow::interface8::source_node< Output >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_successor(successor_type &r)tbb::flow::interface8::source_node< Output >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::source_node< Output >inlinevirtual
    reset_node(reset_flags f)tbb::flow::interface8::source_node< Output >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    source_node(graph &g, Body body, bool is_active=true)tbb::flow::interface8::source_node< Output >inline
    source_node(const source_node &src)tbb::flow::interface8::source_node< Output >inline
    successor_count() (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::source_node< Output >)tbb::flow::interface8::source_node< Output >
    successor_type typedeftbb::flow::interface8::source_node< Output >
    try_consume()tbb::flow::interface8::source_node< Output >inlinevirtual
    try_get(output_type &v)tbb::flow::interface8::source_node< Output >inlinevirtual
    try_release()tbb::flow::interface8::source_node< Output >inlinevirtual
    try_reserve(output_type &v)tbb::flow::interface8::source_node< Output >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >inlinevirtual
    ~source_node()tbb::flow::interface8::source_node< Output >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00371.html b/doc/html/a00371.html index 288e92d0..b4e3f6e6 100644 --- a/doc/html/a00371.html +++ b/doc/html/a00371.html @@ -33,42 +33,22 @@
    -
    tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Member List
    +
    tbb::flow::interface8::allocate_buffer< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::allocate_buffer< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - +
    extract() (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    fOutput_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    function_node(graph &g, size_t concurrency, Body body)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inline
    function_node(const function_node &src)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inline
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    internal::broadcast_cache (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    predecessor_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    set_name(const char *name) (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    successors() (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlineprotected
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    value (defined in tbb::flow::interface8::allocate_buffer< T >)tbb::flow::interface8::allocate_buffer< T >static

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00372.html b/doc/html/a00372.html index 620ad06a..7c90fcb3 100644 --- a/doc/html/a00372.html +++ b/doc/html/a00372.html @@ -33,37 +33,22 @@
    -
    tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Member List
    +
    tbb::flow::interface8::allocate_buffer< queueing > Member List
    -

    This is the complete list of members for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::allocate_buffer< queueing >, including all inherited members.

    - - - - - - - - - - - - - - - - +
    extract() (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    N (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >protectedstatic
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    output_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    value (defined in tbb::flow::interface8::allocate_buffer< queueing >)tbb::flow::interface8::allocate_buffer< queueing >static

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00373.html b/doc/html/a00373.html index 19031d0e..3b673180 100644 --- a/doc/html/a00373.html +++ b/doc/html/a00373.html @@ -33,39 +33,44 @@
    -
    tbb::flow::interface8::split_node< TupleType, Allocator > Member List
    +
    tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Member List
    -

    This is the complete list of members for tbb::flow::interface8::split_node< TupleType, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    extract() (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
    input_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    output_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inlinevirtual
    split_node(graph &g) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inline
    split_node(const split_node &other) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inline
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    extract() (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    fOutput_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    function_node(graph &g, size_t concurrency, Body body)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inline
    function_node(const function_node &src)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inline
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    internal::broadcast_cache (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    predecessor_list_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    predecessor_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >friend
    set_name(const char *name) (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    successor_type typedef (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >
    successors() (defined in tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >inlineprotected
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00374.html b/doc/html/a00374.html index adb30bca..260084e7 100644 --- a/doc/html/a00374.html +++ b/doc/html/a00374.html @@ -33,42 +33,37 @@
    -
    tbb::flow::interface8::continue_node< Output > Member List
    +
    tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Member List
    -

    This is the complete list of members for tbb::flow::interface8::continue_node< Output >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
    continue_node(graph &g, Body body)tbb::flow::interface8::continue_node< Output >inline
    continue_node(graph &g, int number_of_predecessors, Body body)tbb::flow::interface8::continue_node< Output >inline
    continue_node(const continue_node &src)tbb::flow::interface8::continue_node< Output >inline
    extract() (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    fOutput_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    internal::broadcast_cache (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    predecessor_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    set_name(const char *name) (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlinevirtual
    successor_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    successors() (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlineprotected
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    extract() (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    N (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >protectedstatic
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    output_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00375.html b/doc/html/a00375.html index fec52ad7..ad01e651 100644 --- a/doc/html/a00375.html +++ b/doc/html/a00375.html @@ -33,75 +33,39 @@
    -
    tbb::flow::interface8::overwrite_node< T > Member List
    +
    tbb::flow::interface8::split_node< TupleType, Allocator > Member List
    -

    This is the complete list of members for tbb::flow::interface8::overwrite_node< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::split_node< TupleType, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
    built_predecessors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    built_successors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    clear() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_add_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    is_valid() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    my_buffer (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_buffer_is_valid (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_built_predecessors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_mutex (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_successors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    overwrite_node(graph &g) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    predecessor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    successor_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(input_type &v)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const input_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~overwrite_node() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    allocator_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    extract() (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >
    input_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    output_type typedef (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >)tbb::flow::interface8::multifunction_node< TupleType, TupleType, rejecting, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inlinevirtual
    split_node(graph &g) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inline
    split_node(const split_node &other) (defined in tbb::flow::interface8::split_node< TupleType, Allocator >)tbb::flow::interface8::split_node< TupleType, Allocator >inline
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00376.html b/doc/html/a00376.html index 39081ac3..ef67e271 100644 --- a/doc/html/a00376.html +++ b/doc/html/a00376.html @@ -33,77 +33,42 @@
    -
    tbb::flow::interface8::write_once_node< T > Member List
    +
    tbb::flow::interface8::continue_node< Output > Member List
    -

    This is the complete list of members for tbb::flow::interface8::write_once_node< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::continue_node< Output >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
    built_predecessors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    built_successors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    clear() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_add_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    is_valid() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    my_buffer (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_buffer_is_valid (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_built_predecessors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_mutex (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_successors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    overwrite_node(graph &g) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    predecessor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    successor_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(input_type &v)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &v) (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    write_once_node(graph &g)tbb::flow::interface8::write_once_node< T >inline
    write_once_node(const write_once_node &src)tbb::flow::interface8::write_once_node< T >inline
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~overwrite_node() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    continue_node(graph &g, Body body)tbb::flow::interface8::continue_node< Output >inline
    continue_node(graph &g, int number_of_predecessors, Body body)tbb::flow::interface8::continue_node< Output >inline
    continue_node(const continue_node &src)tbb::flow::interface8::continue_node< Output >inline
    extract() (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    fOutput_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    internal::broadcast_cache (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    predecessor_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >friend
    set_name(const char *name) (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlinevirtual
    successor_type typedef (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >
    successors() (defined in tbb::flow::interface8::continue_node< Output >)tbb::flow::interface8::continue_node< Output >inlineprotected
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00377.html b/doc/html/a00377.html index 9431092a..85e63ce3 100644 --- a/doc/html/a00377.html +++ b/doc/html/a00377.html @@ -33,67 +33,75 @@
    -
    tbb::flow::interface8::broadcast_node< T > Member List
    +
    tbb::flow::interface8::overwrite_node< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::broadcast_node< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::overwrite_node< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    broadcast_node(graph &g) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    broadcast_node(const broadcast_node &src) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    built_predecessors() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    built_successors() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    predecessor_count() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(receiver< T > &r)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(receiver< T > &r)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    successor_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    built_predecessors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    built_successors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    clear() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_add_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    is_valid() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    my_buffer (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_buffer_is_valid (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_built_predecessors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_mutex (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_successors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    overwrite_node(graph &g) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    predecessor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    successor_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(input_type &v)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const input_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~overwrite_node() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00378.html b/doc/html/a00378.html index 611cb6ab..2163dd7c 100644 --- a/doc/html/a00378.html +++ b/doc/html/a00378.html @@ -33,118 +33,77 @@
    -
    tbb::flow::interface8::buffer_node< T, A > Member List
    +
    tbb::flow::interface8::write_once_node< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::buffer_node< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::write_once_node< T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    internal::aggregating_functor< class_type, buffer_operation > (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::broadcast_cache (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::forward_task_bypass< buffer_node< T, A > > (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_pop(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    set_name(const char *name) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    built_predecessors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    built_successors() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    clear() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_add_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &s) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    is_valid() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    my_buffer (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_buffer_is_valid (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_built_predecessors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_mutex (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    my_successors (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    overwrite_node(graph &g) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    overwrite_node(const overwrite_node &src) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    predecessor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &s)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >
    successor_type typedef (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(input_type &v)tbb::flow::interface8::overwrite_node< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &v) (defined in tbb::flow::interface8::write_once_node< T >)tbb::flow::interface8::write_once_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    write_once_node(graph &g)tbb::flow::interface8::write_once_node< T >inline
    write_once_node(const write_once_node &src)tbb::flow::interface8::write_once_node< T >inline
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~overwrite_node() (defined in tbb::flow::interface8::overwrite_node< T >)tbb::flow::interface8::overwrite_node< T >inline
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00379.html b/doc/html/a00379.html index 0b1ceae4..5cc05b9c 100644 --- a/doc/html/a00379.html +++ b/doc/html/a00379.html @@ -33,31 +33,67 @@
    -
    tbb::flow::interface8::buffer_node< T, A >::buffer_operation Member List
    +
    tbb::flow::interface8::broadcast_node< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::buffer_node< T, A >::buffer_operation, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::broadcast_node< T >, including all inherited members.

    - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    buffer_operation(const T &e, op_type t) (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operationinline
    cnt_val (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    elem (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    elem (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    ltask (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    p (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    pvec (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    r (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    svec (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    type (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    broadcast_node(graph &g) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    broadcast_node(const broadcast_node &src) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    built_predecessors() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    built_successors() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    built_successors_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    extract() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    internal::broadcast_cache (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    predecessor_count() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    predecessor_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(receiver< T > &r)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(receiver< T > &r)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >friend
    set_name(const char *name) (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    successor_type typedef (defined in tbb::flow::interface8::broadcast_node< T >)tbb::flow::interface8::broadcast_node< T >
    try_consume()tbb::flow::interface8::sender< T >inlinevirtual
    try_get(T &)tbb::flow::interface8::sender< T >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::broadcast_node< T >inlineprotectedvirtual
    try_release()tbb::flow::interface8::sender< T >inlinevirtual
    try_reserve(T &)tbb::flow::interface8::sender< T >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00380.html b/doc/html/a00380.html new file mode 100644 index 00000000..b68dcde9 --- /dev/null +++ b/doc/html/a00380.html @@ -0,0 +1,153 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::buffer_node< T, A > Member List
    +
    +
    + +

    This is the complete list of members for tbb::flow::interface8::buffer_node< T, A >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    internal::aggregating_functor< class_type, buffer_operation > (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::broadcast_cache (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::forward_task_bypass< buffer_node< T, A > > (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_pop(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >friend
    set_name(const char *name) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00381.html b/doc/html/a00381.html index 447b4bef..9b520b71 100644 --- a/doc/html/a00381.html +++ b/doc/html/a00381.html @@ -33,117 +33,31 @@
    -
    tbb::flow::interface8::queue_node< T, A > Member List
    +
    tbb::flow::interface8::buffer_node< T, A >::buffer_operation Member List
    -

    This is the complete list of members for tbb::flow::interface8::queue_node< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::buffer_node< T, A >::buffer_operation, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(queue_operation *op)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pop(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    queue_node(graph &g)tbb::flow::interface8::queue_node< T, A >inline
    queue_node(const queue_node &src)tbb::flow::interface8::queue_node< T, A >inline
    queue_operation typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    buffer_operation(const T &e, op_type t) (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operationinline
    cnt_val (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    elem (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    elem (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    ltask (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    p (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    pvec (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    r (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    svec (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation
    type (defined in tbb::flow::interface8::buffer_node< T, A >::buffer_operation)tbb::flow::interface8::buffer_node< T, A >::buffer_operation

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00382.html b/doc/html/a00382.html deleted file mode 100644 index 45800618..00000000 --- a/doc/html/a00382.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::flow::interface8::sequencer_node< T, A > Member List
    -
    -
    - -

    This is the complete list of members for tbb::flow::interface8::sequencer_node< T, A >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(queue_operation *op)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pop(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    queue_node(graph &g)tbb::flow::interface8::queue_node< T, A >inline
    queue_node(const queue_node &src)tbb::flow::interface8::queue_node< T, A >inline
    queue_operation typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    sequencer_node(graph &g, const Sequencer &s)tbb::flow::interface8::sequencer_node< T, A >inline
    sequencer_node(const sequencer_node &src)tbb::flow::interface8::sequencer_node< T, A >inline
    sequencer_operation typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    set_name(const char *name) (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    ~sequencer_node()tbb::flow::interface8::sequencer_node< T, A >inline
    -
    -

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. -

    -Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are -registered trademarks or trademarks of Intel Corporation or its -subsidiaries in the United States and other countries. -

    -* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00383.html b/doc/html/a00383.html index 1217f67a..bf46d10e 100644 --- a/doc/html/a00383.html +++ b/doc/html/a00383.html @@ -33,118 +33,117 @@
    -
    tbb::flow::interface8::priority_queue_node< T, Compare, A > Member List
    +
    tbb::flow::interface8::queue_node< T, A > Member List
    -

    This is the complete list of members for tbb::flow::interface8::priority_queue_node< T, Compare, A >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::queue_node< T, A >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(prio_operation *op_list) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(prio_operation *op)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_pop(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    item_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prio_operation typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    priority_queue_node(graph &g)tbb::flow::interface8::priority_queue_node< T, Compare, A >inline
    priority_queue_node(const priority_queue_node &src)tbb::flow::interface8::priority_queue_node< T, Compare, A >inline
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(queue_operation *op)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pop(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    queue_node(graph &g)tbb::flow::interface8::queue_node< T, A >inline
    queue_node(const queue_node &src)tbb::flow::interface8::queue_node< T, A >inline
    queue_operation typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00384.html b/doc/html/a00384.html index 24432d8b..8fe2a744 100644 --- a/doc/html/a00384.html +++ b/doc/html/a00384.html @@ -33,26 +33,120 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, reserving > Member List
    +
    tbb::flow::interface8::sequencer_node< T, A > Member List
    -

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, reserving >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::sequencer_node< T, A >, including all inherited members.

    - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(buffer_operation *op_list) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(queue_operation *op)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pop(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(queue_operation *op) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    queue_node(graph &g)tbb::flow::interface8::queue_node< T, A >inline
    queue_node(const queue_node &src)tbb::flow::interface8::queue_node< T, A >inline
    queue_operation typedef (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::queue_node< T, A >)tbb::flow::interface8::queue_node< T, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    sequencer_node(graph &g, const Sequencer &s)tbb::flow::interface8::sequencer_node< T, A >inline
    sequencer_node(const sequencer_node &src)tbb::flow::interface8::sequencer_node< T, A >inline
    sequencer_operation typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    set_name(const char *name) (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::sequencer_node< T, A >)tbb::flow::interface8::sequencer_node< T, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual
    ~sequencer_node()tbb::flow::interface8::sequencer_node< T, A >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00385.html b/doc/html/a00385.html index 32fc294d..22d5251d 100644 --- a/doc/html/a00385.html +++ b/doc/html/a00385.html @@ -33,26 +33,118 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, queueing > Member List
    +
    tbb::flow::interface8::priority_queue_node< T, Compare, A > Member List
    -

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, queueing >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::priority_queue_node< T, Compare, A >, including all inherited members.

    - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline
    add_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    add_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    base_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    blt_pred_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_pred_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cnt enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    blt_succ_cpy enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    buffer_node(graph &g)tbb::flow::interface8::buffer_node< T, A >inline
    buffer_node(const buffer_node &src)tbb::flow::interface8::buffer_node< T, A >inline
    built_predecessors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_predecessors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    built_successors() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    built_successors_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    class_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    con_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    copy_predecessors(predecessor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inline
    copy_predecessors(predecessor_list_type &)=0 (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >pure virtual
    copy_successors(successor_list_type &v) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    del_blt_pred enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    del_blt_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    enqueue_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    extract() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    FAILED enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    forward_task()tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    forwarder_busy (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    grab_forwarding_task(buffer_operation &op_data) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotected
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    handle_operations(prio_operation *op_list) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    handler_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    input_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    internal_add_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_add_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_consume(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_copy_preds(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_copy_succs(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_pred(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_del_built_succ(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_delete_built_predecessor(predecessor_type &p) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    internal_forward_task(prio_operation *op)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_pop(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_pred_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_push(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_reg_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_release(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_rem_succ(buffer_operation *op)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    internal_reserve(prio_operation *op) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    internal_succ_cnt(buffer_operation *op) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< T >)tbb::flow::interface8::receiver< T >inlineprotectedvirtual
    item_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    my_aggregator (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_built_predecessors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    my_successors (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    op_stat enum name (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    op_type enum name (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    output_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    predecessor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    predecessor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    predecessor_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prio_operation typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    priority_queue_node(graph &g)tbb::flow::interface8::priority_queue_node< T, Compare, A >inline
    priority_queue_node(const priority_queue_node &src)tbb::flow::interface8::priority_queue_node< T, Compare, A >inline
    put_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reg_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    register_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    rel_res enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    rem_succ enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< T >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    req_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    res_item enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlineprotectedvirtual
    reset_receiver(reset_flags) (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >inlinevirtual
    size_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    SUCCEEDED enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    successor_count() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >
    successor_type typedef (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >
    try_consume()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_fwd_task enum value (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >protected
    try_get(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_put(const T &t)tbb::flow::interface8::receiver< T >inline
    try_put_task(const T &t)tbb::flow::interface8::buffer_node< T, A >inlineprotectedvirtual
    try_release()tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    try_reserve(T &v)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    WAIT enum value (defined in tbb::flow::interface8::priority_queue_node< T, Compare, A >)tbb::flow::interface8::priority_queue_node< T, Compare, A >protected
    ~buffer_node() (defined in tbb::flow::interface8::buffer_node< T, A >)tbb::flow::interface8::buffer_node< T, A >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~receiver()tbb::flow::interface8::receiver< T >inlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< T >)tbb::flow::interface8::sender< T >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00386.html b/doc/html/a00386.html index 5e01248d..774b604f 100644 --- a/doc/html/a00386.html +++ b/doc/html/a00386.html @@ -33,35 +33,26 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, reserving > Member List
    -

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, reserving >, including all inherited members.

    - - - - - - - - - - - - - - + + + + +
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, reserving >)tbb::flow::interface8::join_node< OutputTuple, reserving >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00387.html b/doc/html/a00387.html index e551440b..caadbdc4 100644 --- a/doc/html/a00387.html +++ b/doc/html/a00387.html @@ -33,27 +33,26 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, queueing > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, queueing >, including all inherited members.

    - - - - - - + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, queueing >)tbb::flow::interface8::join_node< OutputTuple, queueing >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00388.html b/doc/html/a00388.html index c421439c..8604cdd7 100644 --- a/doc/html/a00388.html +++ b/doc/html/a00388.html @@ -33,27 +33,35 @@
    -
    tbb::flow::interface8::indexer_node< T0 > Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >, including all inherited members.

    - - - - - - + + + + + + + + + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >
    input_ports_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
    join_node(graph &g) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1, __TBB_B2 b2, __TBB_B3 b3, __TBB_B4 b4, __TBB_B5 b5, __TBB_B6 b6, __TBB_B7 b7, __TBB_B8 b8, __TBB_B9 b9) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    join_node(const join_node &other) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline
    output_type typedef (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >
    set_name(const char *name) (defined in tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >)tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00389.html b/doc/html/a00389.html index e18b4699..0db88520 100644 --- a/doc/html/a00389.html +++ b/doc/html/a00389.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00390.html b/doc/html/a00390.html index e45b20a2..70c6d773 100644 --- a/doc/html/a00390.html +++ b/doc/html/a00390.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2 > Member List
    +
    tbb::flow::interface8::indexer_node< T0 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0 >)tbb::flow::interface8::indexer_node< T0 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00391.html b/doc/html/a00391.html index 2c921f39..9b54a3c3 100644 --- a/doc/html/a00391.html +++ b/doc/html/a00391.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1 >)tbb::flow::interface8::indexer_node< T0, T1 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00392.html b/doc/html/a00392.html index adac27ab..e8272ef9 100644 --- a/doc/html/a00392.html +++ b/doc/html/a00392.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2 >)tbb::flow::interface8::indexer_node< T0, T1, T2 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00393.html b/doc/html/a00393.html index 764b1834..c524fae1 100644 --- a/doc/html/a00393.html +++ b/doc/html/a00393.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00394.html b/doc/html/a00394.html index 1df1b2b5..2305054e 100644 --- a/doc/html/a00394.html +++ b/doc/html/a00394.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00395.html b/doc/html/a00395.html index 44ef48aa..206e0e1a 100644 --- a/doc/html/a00395.html +++ b/doc/html/a00395.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00396.html b/doc/html/a00396.html index 6b85a4b5..8604af9e 100644 --- a/doc/html/a00396.html +++ b/doc/html/a00396.html @@ -33,27 +33,27 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >, including all inherited members.

    - - - - - - + + + + + +
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00397.html b/doc/html/a00397.html index 2f761c17..a4a46762 100644 --- a/doc/html/a00397.html +++ b/doc/html/a00397.html @@ -33,41 +33,27 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - + + + + + +
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    input_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    output_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlineprotectedvirtual
    set_external_ports(T1 &&input_ports_tuple, T2 &&output_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00398.html b/doc/html/a00398.html index 547b157b..968c817b 100644 --- a/doc/html/a00398.html +++ b/doc/html/a00398.html @@ -33,39 +33,27 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Member List
    -

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >, including all inherited members.

    - - - - - - - - - - - - - - - - - - + + + + + +
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    input_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlineprotectedvirtual
    set_external_ports(T &&input_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    indexer_node(graph &g) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    indexer_node(const indexer_node &other) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    InputTuple typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
    output_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >
    set_name(const char *name) (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >inline
    unfolded_type typedef (defined in tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >)tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00399.html b/doc/html/a00399.html index fb4d9264..f196c76b 100644 --- a/doc/html/a00399.html +++ b/doc/html/a00399.html @@ -33,39 +33,41 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Member List
    +
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Member List
    -

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >, including all inherited members.

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    output_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlineprotectedvirtual
    set_external_ports(T &&output_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    input_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    output_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlineprotectedvirtual
    set_external_ports(T1 &&input_ports_tuple, T2 &&output_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00400.html b/doc/html/a00400.html index 6b9f7cee..46650545 100644 --- a/doc/html/a00400.html +++ b/doc/html/a00400.html @@ -33,69 +33,39 @@
    -
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Member List
    +
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Member List
    -

    This is the complete list of members for tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
    async_commit()tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    async_gateway() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_gateway_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    async_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_node(const async_node &other) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_reserve()tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    async_try_put(const output_type &i)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    base_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >protected
    built_successors() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    built_successors_type typedeftbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    copy_function_object() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    copy_successors(successor_list_type &l) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    extract() (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    internal_add_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >pure virtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    internal_delete_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >pure virtual
    mfn_input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >protected
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    N (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >protectedstatic
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    output_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    predecessor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_successor(successor_type &r)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    sender< Output >::register_successor(successor_type &r)=0tbb::flow::interface8::sender< Output >pure virtual
    remove_successor(successor_type &r)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    sender< Output >::remove_successor(successor_type &r)=0tbb::flow::interface8::sender< Output >pure virtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    successor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    try_consume()tbb::flow::interface8::sender< Output >inlinevirtual
    try_get(Output &)tbb::flow::interface8::sender< Output >inlinevirtual
    try_release()tbb::flow::interface8::sender< Output >inlinevirtual
    try_reserve(Output &)tbb::flow::interface8::sender< Output >inlinevirtual
    ~async_gateway() (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >inlinevirtual
    ~async_node() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >inlinevirtual
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    input_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlineprotectedvirtual
    set_external_ports(T &&input_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >)tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00401.html b/doc/html/a00401.html index 71fe1827..6a28e681 100644 --- a/doc/html/a00401.html +++ b/doc/html/a00401.html @@ -33,27 +33,39 @@
    -
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Member List
    +
    tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Member List
    -

    This is the complete list of members for tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >, including all inherited members.

    - - - - - - + + + + + + + + + + + + + + + + + +
    operator()() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functorinline
    output_port_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    port (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    result (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    try_put_functor(output_port_type &p, const Output &v) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functorinline
    value (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    add_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(const NodeTypes &...n) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    add_visible_nodes(Nodes &...) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g, const char *type_name="composite_node") (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    composite_node(graph &g) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    extract() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    output_ports_type typedef (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlineprotectedvirtual
    set_external_ports(T &&output_ports_tuple) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inline
    set_name(const char *name) (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~composite_node() (defined in tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >)tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00402.html b/doc/html/a00402.html index 31c5e9b7..88dd66ec 100644 --- a/doc/html/a00402.html +++ b/doc/html/a00402.html @@ -33,39 +33,69 @@
    -
    tbb::flow::interface8::opencl_buffer_impl< Factory > Member List
    +
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_buffer_impl< Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    get_cl_mem() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_host_ptr() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    map_memory(opencl_device device, dependency_msg< void *, Factory > &dmsg) (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inlinevirtual
    my_cl_mem (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_curr_device_id (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_factory (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_host_ptr (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event_present (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_lock (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    opencl_buffer (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >friend
    opencl_buffer_impl(size_t size, Factory &f) (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inline
    opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    opencl_memory(Factory &f) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    receive(const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    send(opencl_device d, const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    size() const (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inline
    ~opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    async_commit()tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    async_gateway() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_gateway_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    async_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_node(const async_node &other) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    async_reserve()tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    async_try_put(const output_type &i)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    base_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >protected
    built_successors() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    built_successors_type typedeftbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    copy_function_object() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    copy_successors(successor_list_type &l) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    extract() (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inlinevirtual
    fInput_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_queue_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    internal_add_built_successor(successor_type &r) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    internal_add_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >pure virtual
    internal_delete_built_successor(successor_type &r) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    internal_delete_built_successor(successor_type &)=0 (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >pure virtual
    mfn_input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >protected
    multifunction_node(graph &g, size_t concurrency, Body body) (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inline
    multifunction_node(const multifunction_node &other) (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >inline
    my_graph (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    N (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >protectedstatic
    next (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    output_ports_type typedef (defined in tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >)tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
    output_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    predecessor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    register_successor(successor_type &r)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    sender< Output >::register_successor(successor_type &r)=0tbb::flow::interface8::sender< Output >pure virtual
    remove_successor(successor_type &r)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inline
    sender< Output >::remove_successor(successor_type &r)=0tbb::flow::interface8::sender< Output >pure virtual
    reset_node(reset_flags f) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlineprotectedvirtual
    set_name(const char *name) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_count() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    successor_list_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    successor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
    try_consume()tbb::flow::interface8::sender< Output >inlinevirtual
    try_get(Output &)tbb::flow::interface8::sender< Output >inlinevirtual
    try_release()tbb::flow::interface8::sender< Output >inlinevirtual
    try_reserve(Output &)tbb::flow::interface8::sender< Output >inlinevirtual
    ~async_gateway() (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >inlinevirtual
    ~async_node() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    ~sender() (defined in tbb::flow::interface8::sender< Output >)tbb::flow::interface8::sender< Output >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00403.html b/doc/html/a00403.html index 777a5c62..ee602a28 100644 --- a/doc/html/a00403.html +++ b/doc/html/a00403.html @@ -33,56 +33,27 @@
    -
    tbb::flow::interface8::opencl_graph Member List
    +
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_graph, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +
    add_task_to_reset_list(task *tp) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    available_devices()tbb::flow::interface8::opencl_graph
    begin()tbb::flow::interface8::graphinline
    begin() const tbb::flow::interface8::graphinline
    cbegin() const tbb::flow::interface8::graphinline
    cend() const tbb::flow::interface8::graphinline
    const_iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    decrement_wait_count()tbb::flow::interface8::graphinline
    end()tbb::flow::interface8::graphinline
    end() const tbb::flow::interface8::graphinline
    exception_thrown() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    get_opencl_foundation() (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphprotected
    graph()tbb::flow::interface8::graphinline
    graph(task_group_context &use_this_context)tbb::flow::interface8::graphinlineexplicit
    increment_wait_count()tbb::flow::interface8::graphinline
    is_active() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    is_cancelled()tbb::flow::interface8::graphinline
    iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    my_opencl_foundation (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphprotected
    opencl_buffer (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_factory (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_factory() (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graph
    opencl_graph()tbb::flow::interface8::opencl_graphinline
    opencl_graph(task_group_context &context)tbb::flow::interface8::opencl_graphinlineexplicit
    opencl_image2d (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_node (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    reset(reset_flags f=rf_reset_protocol) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    root_task()tbb::flow::interface8::graphinline
    run(Receiver &r, Body body)tbb::flow::interface8::graphinline
    run(Body body)tbb::flow::interface8::graphinline
    set_active(bool a=true) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    set_name(const char *name) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    wait_for_all()tbb::flow::interface8::graphinline
    ~graph()tbb::flow::interface8::graphinline
    ~opencl_graph()tbb::flow::interface8::opencl_graph
    operator()() (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functorinline
    output_port_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    port (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    result (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    try_put_functor(output_port_type &p, const Output &v) (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functorinline
    value (defined in tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor)tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00404.html b/doc/html/a00404.html index 930754e8..3260e2f4 100644 --- a/doc/html/a00404.html +++ b/doc/html/a00404.html @@ -33,39 +33,41 @@
    -
    tbb::flow::interface8::dependency_msg< T, Factory > Member List
    +
    tbb::flow::interface8::opencl_buffer_impl< Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::dependency_msg< T, Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_buffer_impl< Factory >, including all inherited members.

    - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
    clear_event() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    data(bool wait=true) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    data(bool wait=true) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg()=default (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >
    dependency_msg(const T &data) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inlineexplicit
    dependency_msg(opencl_graph &g, const T &data) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(const T &data, cl_event event) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(const dependency_msg &dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(dependency_msg &&dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    get_event() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator const T &() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator T &() (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator=(const dependency_msg &dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    register_callback(Callback c) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    set_event(cl_event e) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    set_graph(graph &g) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    value_type typedef (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >
    ~dependency_msg() (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    factory() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_cl_mem() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_host_ptr() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    map_memory(opencl_device device, dependency_msg< void *, Factory > &dmsg) (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inlinevirtual
    my_cl_mem (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_curr_device_id (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_factory (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_host_ptr (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event_present (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_lock (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    opencl_buffer (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >friend
    opencl_buffer_impl(size_t size, Factory &f) (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inline
    opencl_buffer_impl(cl_mem m, size_t index, size_t size, Factory &f) (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inline
    opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    opencl_memory(Factory &f) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    receive(const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    send(opencl_device d, const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    size() const (defined in tbb::flow::interface8::opencl_buffer_impl< Factory >)tbb::flow::interface8::opencl_buffer_impl< Factory >inline
    ~opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00405.html b/doc/html/a00405.html index 43686e69..daa86ec6 100644 --- a/doc/html/a00405.html +++ b/doc/html/a00405.html @@ -33,32 +33,56 @@
    -
    tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Member List
    +
    tbb::flow::interface8::opencl_graph Member List
    -

    This is the complete list of members for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_graph, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    dependency_predecessor_type typedef (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >
    is_continue_receiver() (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlineprotectedvirtual
    ordinary_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    proxy_dependency_receiver(receiver< T > &r) (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inline
    receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    register_predecessor(dependency_predecessor_type &s)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual
    remove_predecessor(dependency_predecessor_type &s)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlineprotectedvirtual
    try_put(const T &t)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    try_put_task(const dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual
    add_task_to_reset_list(task *tp) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    available_devices()tbb::flow::interface8::opencl_graph
    begin()tbb::flow::interface8::graphinline
    begin() const tbb::flow::interface8::graphinline
    cbegin() const tbb::flow::interface8::graphinline
    cend() const tbb::flow::interface8::graphinline
    const_iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    decrement_wait_count()tbb::flow::interface8::graphinline
    end()tbb::flow::interface8::graphinline
    end() const tbb::flow::interface8::graphinline
    exception_thrown() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    get_opencl_foundation() (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphprotected
    graph()tbb::flow::interface8::graphinline
    graph(task_group_context &use_this_context)tbb::flow::interface8::graphinlineexplicit
    increment_wait_count()tbb::flow::interface8::graphinline
    is_active() (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    is_cancelled()tbb::flow::interface8::graphinline
    iterator typedef (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graph
    my_opencl_foundation (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphprotected
    opencl_buffer (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_factory (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_factory() (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graph
    opencl_graph()tbb::flow::interface8::opencl_graphinline
    opencl_graph(task_group_context &context)tbb::flow::interface8::opencl_graphinlineexplicit
    opencl_image2d (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    opencl_node (defined in tbb::flow::interface8::opencl_graph)tbb::flow::interface8::opencl_graphfriend
    reset(reset_flags f=rf_reset_protocol) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    root_task()tbb::flow::interface8::graphinline
    run(Receiver &r, Body body)tbb::flow::interface8::graphinline
    run(Body body)tbb::flow::interface8::graphinline
    set_active(bool a=true) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    set_name(const char *name) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    wait_for_all()tbb::flow::interface8::graphinline
    ~graph()tbb::flow::interface8::graphinline
    ~opencl_graph()tbb::flow::interface8::opencl_graph

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00406.html b/doc/html/a00406.html index 7dd335d4..71624f05 100644 --- a/doc/html/a00406.html +++ b/doc/html/a00406.html @@ -33,31 +33,39 @@
    -
    tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Member List
    +
    tbb::flow::interface8::dependency_msg< T, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::dependency_msg< T, Factory >, including all inherited members.

    - - - - - - - - - - + + + + + + + + + + + + + + + + + +
    dependency_predecessor_type typedeftbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlineprotectedvirtual
    ordinary_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    register_predecessor(dependency_predecessor_type &)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlinevirtual
    remove_predecessor(dependency_predecessor_type &)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)=0tbb::flow::interface8::receiver< dependency_msg< T, Factory > >protectedpure virtual
    try_put(const T &t)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    try_put_task(const dependency_msg< T, Factory > &)=0tbb::flow::interface8::receiver< dependency_msg< T, Factory > >pure virtual
    clear_event() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    data(bool wait=true) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    data(bool wait=true) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg()=default (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >
    dependency_msg(const T &data) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inlineexplicit
    dependency_msg(opencl_graph &g, const T &data) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(const T &data, cl_event event) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(const dependency_msg &dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    dependency_msg(dependency_msg &&dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    get_event() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator const T &() const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator T &() (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    operator=(const dependency_msg &dmsg) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    register_callback(Callback c) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    set_event(cl_event e) const (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    set_graph(graph &g) (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline
    value_type typedef (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >
    ~dependency_msg() (defined in tbb::flow::interface8::dependency_msg< T, Factory >)tbb::flow::interface8::dependency_msg< T, Factory >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00407.html b/doc/html/a00407.html index 9510c434..4d7ae680 100644 --- a/doc/html/a00407.html +++ b/doc/html/a00407.html @@ -33,33 +33,32 @@
    -
    tbb::flow::interface8::proxy_dependency_sender< T, Factory > Member List
    +
    tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::proxy_dependency_sender< T, Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >, including all inherited members.

    - - - - - - - - - - - - + + + + + + + + + + +
    dependency_successor_type typedef (defined in tbb::flow::interface8::proxy_dependency_sender< T, Factory >)tbb::flow::interface8::proxy_dependency_sender< T, Factory >
    has_host_successors() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    ordinary_sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >
    proxy_dependency_sender(sender< T > &s) (defined in tbb::flow::interface8::proxy_dependency_sender< T, Factory >)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    register_successor(dependency_successor_type &r)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    remove_successor(dependency_successor_type &r)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    try_consume()tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    try_get(dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    try_release()tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    try_reserve(dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlineprotectedvirtual
    ordinary_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    predecessor_type typedef (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >
    proxy typedef (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    proxy_dependency_receiver(receiver< T > &r) (defined in tbb::flow::interface8::proxy_dependency_receiver< T, Factory >)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inline
    receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    register_predecessor(predecessor_type &s)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual
    remove_predecessor(predecessor_type &s)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlineprotectedvirtual
    try_put(const T &t)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    try_put_task(const dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_receiver< T, Factory >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00408.html b/doc/html/a00408.html index f01d078c..382e9e42 100644 --- a/doc/html/a00408.html +++ b/doc/html/a00408.html @@ -33,30 +33,31 @@
    -
    tbb::flow::interface8::sender< dependency_msg< T, Factory > > Member List
    +
    tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Member List
    -

    This is the complete list of members for tbb::flow::interface8::sender< dependency_msg< T, Factory > >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::receiver< dependency_msg< T, Factory > >, including all inherited members.

    - - - - - - - - - + + + + + + + + + +
    dependency_successor_type typedeftbb::flow::interface8::sender< dependency_msg< T, Factory > >
    has_host_successors() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    ordinary_sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >
    register_successor(dependency_successor_type &r)=0tbb::flow::interface8::sender< dependency_msg< T, Factory > >pure virtual
    remove_successor(dependency_successor_type &r)=0tbb::flow::interface8::sender< dependency_msg< T, Factory > >pure virtual
    sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    try_get(dependency_msg< T, Factory > &)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inlinevirtual
    try_reserve(dependency_msg< T, Factory > &)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inlinevirtual
    is_continue_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlineprotectedvirtual
    ordinary_receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    predecessor_type typedeftbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    proxy typedef (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    receiver() (defined in tbb::flow::interface8::receiver< dependency_msg< T, Factory > >)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    register_predecessor(predecessor_type &)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlinevirtual
    remove_predecessor(predecessor_type &)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inlinevirtual
    reset_receiver(reset_flags f=rf_reset_protocol)=0tbb::flow::interface8::receiver< dependency_msg< T, Factory > >protectedpure virtual
    try_put(const T &t)tbb::flow::interface8::receiver< dependency_msg< T, Factory > >inline
    try_put_task(const dependency_msg< T, Factory > &)=0tbb::flow::interface8::receiver< dependency_msg< T, Factory > >pure virtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00409.html b/doc/html/a00409.html index 155adb75..6bafdf42 100644 --- a/doc/html/a00409.html +++ b/doc/html/a00409.html @@ -33,52 +33,33 @@
    -
    tbb::flow::interface8::opencl_device Member List
    +
    tbb::flow::interface8::proxy_dependency_sender< T, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_device, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::proxy_dependency_sender< T, Factory >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
    address_bits() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    built_in_kernel_available(const std::string &k) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    built_in_kernels() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    compiler_available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    extension_available(const std::string &ext) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    extensions() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    info(cl_device_info i, T &t) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    linker_available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    major_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    max_work_group_size() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    max_work_item_sizes() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    minor_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    name() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    opencl_buffer (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_device() (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    opencl_factory (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_foundation (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_memory (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_program (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    operator== (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    out_of_order_exec_mode_on_device_present() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    out_of_order_exec_mode_on_host_present() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_extensions() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_name() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_profile() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_vendor() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    type() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    vendor() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    has_host_successors() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    ordinary_sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >
    proxy_dependency_sender(sender< T > &s) (defined in tbb::flow::interface8::proxy_dependency_sender< T, Factory >)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    register_successor(successor_type &r)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    remove_successor(successor_type &r)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    successor_type typedef (defined in tbb::flow::interface8::proxy_dependency_sender< T, Factory >)tbb::flow::interface8::proxy_dependency_sender< T, Factory >
    try_consume()tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    try_get(dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual
    try_release()tbb::flow::interface8::proxy_dependency_sender< T, Factory >inline
    try_reserve(dependency_msg< T, Factory > &d)tbb::flow::interface8::proxy_dependency_sender< T, Factory >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00410.html b/doc/html/a00410.html index 90eaf569..c2292e5f 100644 --- a/doc/html/a00410.html +++ b/doc/html/a00410.html @@ -33,34 +33,30 @@
    -
    tbb::flow::interface8::opencl_device_list Member List
    +
    tbb::flow::interface8::sender< dependency_msg< T, Factory > > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_device_list, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::sender< dependency_msg< T, Factory > >, including all inherited members.

    - - - - - - - - - - - - - + + + + + + + + +
    add(opencl_device d) (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    begin() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    begin() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    cbegin() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    cend() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    const_iterator typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list
    end() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    end() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    iterator typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list
    opencl_device_list() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    opencl_device_list(std::initializer_list< opencl_device > il) (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    size() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    size_type typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list
    has_host_successors() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    ordinary_sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    proxy typedef (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >
    register_successor(successor_type &r)=0tbb::flow::interface8::sender< dependency_msg< T, Factory > >pure virtual
    remove_successor(successor_type &r)=0tbb::flow::interface8::sender< dependency_msg< T, Factory > >pure virtual
    sender() (defined in tbb::flow::interface8::sender< dependency_msg< T, Factory > >)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inline
    successor_type typedeftbb::flow::interface8::sender< dependency_msg< T, Factory > >
    try_get(dependency_msg< T, Factory > &)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inlinevirtual
    try_reserve(dependency_msg< T, Factory > &)tbb::flow::interface8::sender< dependency_msg< T, Factory > >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00411.html b/doc/html/a00411.html index 28bc8851..0fac307f 100644 --- a/doc/html/a00411.html +++ b/doc/html/a00411.html @@ -33,23 +33,59 @@
    -
    tbb::flow::interface8::callback_base Member List
    +
    tbb::flow::interface8::opencl_device Member List
    -

    This is the complete list of members for tbb::flow::interface8::callback_base, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_device, including all inherited members.

    - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    call() const =0 (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_basepure virtual
    ~callback_base() (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_baseinlinevirtual
    address_bits() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    built_in_kernel_available(const std::string &k) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    built_in_kernels() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    command_queue() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    compiler_available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    device_id() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    device_id_type typedef (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_device
    extension_available(const std::string &ext) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    extensions() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    host enum value (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_device
    info(cl_device_info i, T &t) const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    linker_available() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    major_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    max_work_group_size() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    max_work_item_sizes() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    minor_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    name() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    opencl_buffer (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_device() (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    opencl_device(cl_device_id cl_d_id, device_id_type device_id) (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    opencl_factory (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_foundation (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_memory (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    opencl_program (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    operator== (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_devicefriend
    out_of_order_exec_mode_on_device_present() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    out_of_order_exec_mode_on_host_present() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_extensions() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_name() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_profile() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_vendor() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    platform_version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    set_command_queue(cl_command_queue cmd_queue) (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    type() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    unknown enum value (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_device
    vendor() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline
    version() const (defined in tbb::flow::interface8::opencl_device)tbb::flow::interface8::opencl_deviceinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00412.html b/doc/html/a00412.html index 6355659b..f02afdcc 100644 --- a/doc/html/a00412.html +++ b/doc/html/a00412.html @@ -33,25 +33,34 @@
    -
    tbb::flow::interface8::callback< Callback, T > Member List
    +
    tbb::flow::interface8::opencl_device_list Member List
    -

    This is the complete list of members for tbb::flow::interface8::callback< Callback, T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_device_list, including all inherited members.

    - - - - + + + + + + + + + + + + +
    call() const (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inlinevirtual
    callback(graph &g, Callback c, const T &t) (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inline
    ~callback() (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inline
    ~callback_base() (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_baseinlinevirtual
    add(opencl_device d) (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    begin() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    begin() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    cbegin() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    cend() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    const_iterator typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list
    end() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    end() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    iterator typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list
    opencl_device_list() (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    opencl_device_list(std::initializer_list< opencl_device > il) (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    size() const (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_listinline
    size_type typedef (defined in tbb::flow::interface8::opencl_device_list)tbb::flow::interface8::opencl_device_list

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00413.html b/doc/html/a00413.html index 3cfbe83e..ace57e40 100644 --- a/doc/html/a00413.html +++ b/doc/html/a00413.html @@ -33,36 +33,23 @@
    -
    tbb::flow::interface8::opencl_memory< Factory > Member List
    +
    tbb::flow::interface8::callback_base Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_memory< Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::callback_base, including all inherited members.

    - - - - - - - - - - - - - - - + +
    get_cl_mem() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_host_ptr() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    map_memory(opencl_device, dependency_msg< void *, Factory > &)=0 (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >pure virtual
    my_cl_mem (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_curr_device_id (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_factory (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_host_ptr (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event_present (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_lock (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    opencl_memory(Factory &f) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    receive(const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    send(opencl_device d, const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    ~opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    call() const =0 (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_basepure virtual
    ~callback_base() (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_baseinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00414.html b/doc/html/a00414.html index 9c30cdb2..ddf607bf 100644 --- a/doc/html/a00414.html +++ b/doc/html/a00414.html @@ -33,40 +33,25 @@
    -
    tbb::flow::interface8::opencl_buffer< T, Factory > Member List
    +
    tbb::flow::interface8::callback< Callback, T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_buffer< T, Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::callback< Callback, T >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - + + + +
    access() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    begin() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    data() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    end() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    iterator typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    memory_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    memory_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    native_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    native_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer() (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_buffer(opencl_graph &g, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer(Factory &f, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_factory (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >friend
    opencl_factory_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    operator== (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >friend
    operator[](ptrdiff_t k) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    receive(const dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    send(opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    size() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    call() const (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inlinevirtual
    callback(graph &g, Callback c, const T &t) (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inline
    ~callback() (defined in tbb::flow::interface8::callback< Callback, T >)tbb::flow::interface8::callback< Callback, T >inline
    ~callback_base() (defined in tbb::flow::interface8::callback_base)tbb::flow::interface8::callback_baseinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00415.html b/doc/html/a00415.html index d7ef0dca..4a468350 100644 --- a/doc/html/a00415.html +++ b/doc/html/a00415.html @@ -33,28 +33,37 @@
    -
    tbb::flow::interface8::opencl_factory< DeviceFilter > Member List
    +
    tbb::flow::interface8::opencl_memory< Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_factory< DeviceFilter >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_memory< Factory >, including all inherited members.

    - - - - - - - + + + + + + + + + + + + + + + +
    init(const opencl_device_list &device_list) (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline
    opencl_buffer_impl (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_factory(opencl_graph &g) (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline
    opencl_memory (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_node (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_program (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    ~opencl_factory() (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline
    factory() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_cl_mem() const (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    get_host_ptr() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    map_memory(opencl_device, dependency_msg< void *, Factory > &)=0 (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >pure virtual
    my_cl_mem (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_curr_device_id (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_factory (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_host_ptr (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_event_present (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    my_sending_lock (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >protected
    opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    opencl_memory(Factory &f) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline
    receive(const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    send(opencl_device d, const cl_event *e) (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >
    ~opencl_memory() (defined in tbb::flow::interface8::opencl_memory< Factory >)tbb::flow::interface8::opencl_memory< Factory >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00416.html b/doc/html/a00416.html index 412c9ec8..4336bd17 100644 --- a/doc/html/a00416.html +++ b/doc/html/a00416.html @@ -33,22 +33,41 @@
    -
    tbb::flow::interface8::default_opencl_factory_device_filter Member List
    +
    tbb::flow::interface8::opencl_subbuffer< T, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::default_opencl_factory_device_filter, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_subbuffer< T, Factory >, including all inherited members.

    - + + + + + + + + + + + + + + + + + + + +
    operator()(const opencl_device_list &devices) (defined in tbb::flow::interface8::default_opencl_factory_device_filter)tbb::flow::interface8::default_opencl_factory_device_filterinline
    access() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    begin() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    data() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    end() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    iterator typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    memory_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    memory_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    native_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    native_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer() (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_buffer(opencl_graph &g, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer(Factory &f, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_factory_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_subbuffer() (defined in tbb::flow::interface8::opencl_subbuffer< T, Factory >)tbb::flow::interface8::opencl_subbuffer< T, Factory >inline
    opencl_subbuffer(const opencl_buffer< T, Factory > &owner, size_t index, size_t size) (defined in tbb::flow::interface8::opencl_subbuffer< T, Factory >)tbb::flow::interface8::opencl_subbuffer< T, Factory >inline
    operator[](ptrdiff_t k) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    receive(const dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    send(opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    size() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    subbuffer(size_t index, size_t size) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00417.html b/doc/html/a00417.html index c6ee99fb..2d67ae41 100644 --- a/doc/html/a00417.html +++ b/doc/html/a00417.html @@ -33,25 +33,42 @@
    -
    tbb::flow::interface8::default_opencl_factory Member List
    +
    tbb::flow::interface8::opencl_buffer< T, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::default_opencl_factory, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_buffer< T, Factory >, including all inherited members.

    - - - - + + + + + + + + + + + + + + + + + + + + +
    default_opencl_factory(opencl_graph &g) (defined in tbb::flow::interface8::default_opencl_factory)tbb::flow::interface8::default_opencl_factoryinline
    init(const opencl_device_list &device_list) (defined in tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >)tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >inline
    opencl_factory(opencl_graph &g) (defined in tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >)tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >inline
    ~opencl_factory() (defined in tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >)tbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >inline
    access() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    begin() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    data() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    end() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    iterator typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    memory_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    memory_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    native_object() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    native_object_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer() (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_buffer(opencl_graph &g, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_buffer(Factory &f, size_t size) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    opencl_factory (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >friend
    opencl_factory_type typedef (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >
    opencl_subbuffer (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >friend
    operator== (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >friend
    operator[](ptrdiff_t k) (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    receive(const dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    send(opencl_device device, dependency_msg< opencl_buffer, Factory > &dependency) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    size() const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >inline
    subbuffer(size_t index, size_t size) const (defined in tbb::flow::interface8::opencl_buffer< T, Factory >)tbb::flow::interface8::opencl_buffer< T, Factory >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00418.html b/doc/html/a00418.html index 1d454492..2888d820 100644 --- a/doc/html/a00418.html +++ b/doc/html/a00418.html @@ -33,25 +33,28 @@
    -
    tbb::flow::interface8::opencl_foundation Member List
    +
    tbb::flow::interface8::opencl_factory< DeviceFilter > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_foundation, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_factory< DeviceFilter >, including all inherited members.

    - - - - + + + + + + +
    get_all_devices() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    get_default_device_selector() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    get_default_opencl_factory() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    opencl_foundation(opencl_graph &g) (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    init(const opencl_device_list &device_list) (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline
    opencl_buffer_impl (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_factory(opencl_graph &g) (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline
    opencl_memory (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_node (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    opencl_program (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >friend
    ~opencl_factory() (defined in tbb::flow::interface8::opencl_factory< DeviceFilter >)tbb::flow::interface8::opencl_factory< DeviceFilter >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00419.html b/doc/html/a00419.html index 3d9864af..078eae19 100644 --- a/doc/html/a00419.html +++ b/doc/html/a00419.html @@ -33,26 +33,22 @@
    -
    tbb::flow::interface8::opencl_program< Factory > Member List
    +
    tbb::flow::interface8::default_opencl_factory_device_filter Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_program< Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::default_opencl_factory_device_filter, including all inherited members.

    - - - - - +
    opencl_node (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >friend
    opencl_program(opencl_program_type type, const std::string &program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const char *program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const std::string &program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const opencl_program &src) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    operator()(const opencl_device_list &devices) (defined in tbb::flow::interface8::default_opencl_factory_device_filter)tbb::flow::interface8::default_opencl_factory_device_filterinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00420.html b/doc/html/a00420.html index c57ecbaf..ea6c4bdf 100644 --- a/doc/html/a00420.html +++ b/doc/html/a00420.html @@ -33,22 +33,25 @@
    -
    tbb::flow::interface8::port_ref_impl< N1, N2 > Member List
    +
    tbb::flow::interface8::default_opencl_factory Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00421.html b/doc/html/a00421.html index b9e7495e..3de41a8a 100644 --- a/doc/html/a00421.html +++ b/doc/html/a00421.html @@ -33,22 +33,25 @@
    -
    tbb::flow::interface8::num_arguments< T > Member List
    +
    tbb::flow::interface8::opencl_foundation Member List
    -

    This is the complete list of members for tbb::flow::interface8::num_arguments< T >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_foundation, including all inherited members.

    - + + + +
    value (defined in tbb::flow::interface8::num_arguments< T >)tbb::flow::interface8::num_arguments< T >static
    get_all_devices() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    get_default_device_selector() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    get_default_opencl_factory() (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline
    opencl_foundation(opencl_graph &g) (defined in tbb::flow::interface8::opencl_foundation)tbb::flow::interface8::opencl_foundationinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00422.html b/doc/html/a00422.html index e1992ecb..e5a279e3 100644 --- a/doc/html/a00422.html +++ b/doc/html/a00422.html @@ -33,22 +33,26 @@
    -
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Member List
    +
    tbb::flow::interface8::opencl_program< Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_program< Factory >, including all inherited members.

    - + + + + +
    value (defined in tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>)tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>static
    opencl_node (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >friend
    opencl_program(opencl_program_type type, const std::string &program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const char *program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const std::string &program_name) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline
    opencl_program(const opencl_program &src) (defined in tbb::flow::interface8::opencl_program< Factory >)tbb::flow::interface8::opencl_program< Factory >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00423.html b/doc/html/a00423.html index 9ba94aa9..ceba500d 100644 --- a/doc/html/a00423.html +++ b/doc/html/a00423.html @@ -33,22 +33,22 @@
    -
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Member List
    +
    tbb::flow::interface8::port_ref_impl< N1, N2 > Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00424.html b/doc/html/a00424.html index ec86c3d7..df9ff141 100644 --- a/doc/html/a00424.html +++ b/doc/html/a00424.html @@ -33,23 +33,22 @@
    -
    tbb::flow::interface8::key_from_policy< JP > Member List
    +
    tbb::flow::interface8::num_arguments< T > Member List
    -

    This is the complete list of members for tbb::flow::interface8::key_from_policy< JP >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::num_arguments< T >, including all inherited members.

    - - +
    is_key_matching typedef (defined in tbb::flow::interface8::key_from_policy< JP >)tbb::flow::interface8::key_from_policy< JP >
    type typedef (defined in tbb::flow::interface8::key_from_policy< JP >)tbb::flow::interface8::key_from_policy< JP >
    value (defined in tbb::flow::interface8::num_arguments< T >)tbb::flow::interface8::num_arguments< T >static

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00425.html b/doc/html/a00425.html index ef8425a4..035dfc0f 100644 --- a/doc/html/a00425.html +++ b/doc/html/a00425.html @@ -33,23 +33,22 @@
    -
    tbb::flow::interface8::key_from_policy< key_matching< Key > > Member List
    +
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00426.html b/doc/html/a00426.html index 25779b73..13965aba 100644 --- a/doc/html/a00426.html +++ b/doc/html/a00426.html @@ -33,23 +33,22 @@
    -
    tbb::flow::interface8::key_from_policy< key_matching< Key & > > Member List
    +
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00427.html b/doc/html/a00427.html index cfda054d..62075955 100644 --- a/doc/html/a00427.html +++ b/doc/html/a00427.html @@ -33,25 +33,23 @@
    -
    tbb::flow::interface8::opencl_device_with_key< Key > Member List
    +
    tbb::flow::interface8::key_from_policy< JP > Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00428.html b/doc/html/a00428.html index 4f1e95b2..e254de13 100644 --- a/doc/html/a00428.html +++ b/doc/html/a00428.html @@ -33,34 +33,23 @@
    -
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Member List
    +
    tbb::flow::interface8::key_from_policy< key_matching< Key > > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::key_from_policy< key_matching< Key > >, including all inherited members.

    - - - - - - - - - - - - - + +
    opencl_node(opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(const opencl_node &node) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(opencl_node &&node) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    reset_node(reset_flags=rf_reset_protocol) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inlineprotected
    set_args(Args &&...args) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T > global_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    ~opencl_node() (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    is_key_matching typedef (defined in tbb::flow::interface8::key_from_policy< key_matching< Key > >)tbb::flow::interface8::key_from_policy< key_matching< Key > >
    type typedef (defined in tbb::flow::interface8::key_from_policy< key_matching< Key > >)tbb::flow::interface8::key_from_policy< key_matching< Key > >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00429.html b/doc/html/a00429.html index 0e962864..06c00d48 100644 --- a/doc/html/a00429.html +++ b/doc/html/a00429.html @@ -33,24 +33,23 @@
    -
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Member List
    +
    tbb::flow::interface8::key_from_policy< key_matching< Key & > > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::key_from_policy< key_matching< Key & > >, including all inherited members.

    - - - + +
    opencl_node(opencl_graph &g, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline
    is_key_matching typedef (defined in tbb::flow::interface8::key_from_policy< key_matching< Key & > >)tbb::flow::interface8::key_from_policy< key_matching< Key & > >
    type typedef (defined in tbb::flow::interface8::key_from_policy< key_matching< Key & > >)tbb::flow::interface8::key_from_policy< key_matching< Key & > >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00430.html b/doc/html/a00430.html index 5ad70c23..68046f08 100644 --- a/doc/html/a00430.html +++ b/doc/html/a00430.html @@ -33,24 +33,25 @@
    -
    tbb::flow::interface8::opencl_node< tuple< Ports...> > Member List
    +
    tbb::flow::interface8::opencl_device_with_key< Key > Member List
    -

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...> >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_device_with_key< Key >, including all inherited members.

    - - - + + + +
    opencl_node(opencl_graph &g, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline
    device() const (defined in tbb::flow::interface8::opencl_device_with_key< Key >)tbb::flow::interface8::opencl_device_with_key< Key >inline
    key() const (defined in tbb::flow::interface8::opencl_device_with_key< Key >)tbb::flow::interface8::opencl_device_with_key< Key >inline
    opencl_device_with_key() (defined in tbb::flow::interface8::opencl_device_with_key< Key >)tbb::flow::interface8::opencl_device_with_key< Key >inline
    opencl_device_with_key(opencl_device d, Key k) (defined in tbb::flow::interface8::opencl_device_with_key< Key >)tbb::flow::interface8::opencl_device_with_key< Key >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00431.html b/doc/html/a00431.html index 7c4d844f..796e1850 100644 --- a/doc/html/a00431.html +++ b/doc/html/a00431.html @@ -33,29 +33,34 @@
    -
    tbb::flow::interface8::internal::edge_container< C > Member List
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Member List
    -

    This is the complete list of members for tbb::flow::interface8::internal::edge_container< C >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >, including all inherited members.

    - - - - - - - - + + + + + + + + + + + + +
    add_edge(C &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    clear() (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    copy_edges(edge_list_type &v) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    delete_edge(C &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    edge_count() (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    edge_list_type typedef (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >
    receiver_extract(R &r) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >
    sender_extract(S &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >
    opencl_node(opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, DeviceSelector d, Factory &f) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(opencl_graph &g, const opencl_program< Factory > &p, const std::string &kernel_name, Factory &f) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(const opencl_node &node) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    opencl_node(opencl_node &&node) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    reset_node(reset_flags=rf_reset_protocol) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inlineprotected
    set_args(Args &&...args) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T > global_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T > global_work_size, LocalNDRange &&local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(std::initializer_list< T1 > global_work_size, std::initializer_list< T2 > local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size, LocalNDRange &&local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    set_ndranges(GlobalNDRange &&global_work_size, std::initializer_list< T > local_work_size) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline
    ~opencl_node() (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00432.html b/doc/html/a00432.html index 31cdfc7c..94ba525a 100644 --- a/doc/html/a00432.html +++ b/doc/html/a00432.html @@ -33,26 +33,24 @@
    -
    tbb::flow::interface8::internal::async_gateway< Output > Member List
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Member List
    -

    This is the complete list of members for tbb::flow::interface8::internal::async_gateway< Output >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >, including all inherited members.

    - - - - - + + +
    async_commit()=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    async_reserve()=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    async_try_put(const output_type &i)=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    output_type typedef (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >
    ~async_gateway() (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >inlinevirtual
    opencl_node(opencl_graph &g, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >)tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00433.html b/doc/html/a00433.html index 2e22bf72..c584de39 100644 --- a/doc/html/a00433.html +++ b/doc/html/a00433.html @@ -33,27 +33,24 @@
    -
    tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Member List
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...> > Member List
    -

    This is the complete list of members for tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...> >, including all inherited members.

    - - - - - - + + +
    async_body(const Body &body, async_gateway_type *gateway) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    async_body(const async_body &other) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    async_gateway_type typedef (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >
    get_body() (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    operator()(const Input &v, Ports &) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    set_async_gateway(async_gateway_type *gateway) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    opencl_node(opencl_graph &g, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline
    opencl_node(opencl_graph &g, const opencl_program< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d) (defined in tbb::flow::interface8::opencl_node< tuple< Ports...> >)tbb::flow::interface8::opencl_node< tuple< Ports...> >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00434.html b/doc/html/a00434.html index 4e285cc6..64f9c0c0 100644 --- a/doc/html/a00434.html +++ b/doc/html/a00434.html @@ -33,108 +33,29 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Member List
    +
    tbb::flow::interface8::internal::edge_container< C > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::internal::edge_container< C >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + +
    accessor_location (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    accessor_location (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    allocate_node_copy_construct(node_allocator_type &allocator, const Key &key, const T *t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_default_construct(node_allocator_type &allocator, const Key &key, const T *) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_emplace_construct(node_allocator_type &allocator, Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_move_construct(node_allocator_type &allocator, const Key &key, const T *t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    begin() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    begin() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    bucket_count() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    clear()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    concurrent_hash_map(const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(size_type n, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(const concurrent_hash_map &table, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(concurrent_hash_map &&table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(concurrent_hash_map &&table, const allocator_type &a)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(I first, I last, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(std::initializer_list< value_type > il, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    const_accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    const_iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    count(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    delete_node(node_base *n) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    difference_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    do_not_allocate_node(node_allocator_type &, const Key &, const T *) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    emplace(const_accessor &result, Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    emplace(accessor &result, Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    emplace(Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    end() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    end() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    equal_range(const Key &key) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    equal_range(const Key &key) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    erase(const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    erase(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    erase(accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    exclude(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    find(const_accessor &result, const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    find(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    generic_emplace(Accessor &&result, Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    generic_move_insert(Accessor &&result, value_type &&value) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    get_allocator() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(I first, I last)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(std::initializer_list< value_type > il)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    internal::hash_map_iterator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    internal::hash_map_range (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    internal_copy(const concurrent_hash_map &source)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_copy(I first, I last) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_equal_range(const Key &key, I end) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_fast_find(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    key_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    lookup(bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node *(*allocate_node)(node_allocator_type &, const Key &, const T *), node *tmp_n=0)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    mapped_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    max_size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    my_allocator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    my_hash_compare (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    node_allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    operator=(const concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    operator=(concurrent_hash_map &&table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    operator=(std::initializer_list< value_type > il)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    range(size_type grainsize=1) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    range(size_type grainsize=1) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    rehash(size_type n=0)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    rehash_bucket(bucket *b_new, const hashcode_t h) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    search_bucket(const key_type &key, bucket *b) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    size_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    swap(concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    value_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    ~concurrent_hash_map()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    add_edge(C &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    clear() (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    copy_edges(edge_list_type &v) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    delete_edge(C &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    edge_count() (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >inline
    edge_list_type typedef (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >
    receiver_extract(R &r) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >
    sender_extract(S &s) (defined in tbb::flow::interface8::internal::edge_container< C >)tbb::flow::interface8::internal::edge_container< C >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00435.html b/doc/html/a00435.html index ab5c8ba1..f7dccede 100644 --- a/doc/html/a00435.html +++ b/doc/html/a00435.html @@ -33,31 +33,26 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Member List
    +
    tbb::flow::interface8::internal::async_gateway< Output > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::internal::async_gateway< Output >, including all inherited members.

    - - - - - - - - - - + + + + +
    const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    is_writer() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinlineprotected
    my_hash (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    my_node (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    operator*() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessorinline
    operator->() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessorinline
    release()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    value_type typedeftbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor
    ~const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    async_commit()=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    async_reserve()=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    async_try_put(const output_type &i)=0tbb::flow::interface8::internal::async_gateway< Output >pure virtual
    output_type typedef (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >
    ~async_gateway() (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00436.html b/doc/html/a00436.html index ecfeae34..595375fc 100644 --- a/doc/html/a00436.html +++ b/doc/html/a00436.html @@ -33,22 +33,27 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Member List
    +
    tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >, including all inherited members.

    - + + + + + +
    release() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_usedinline
    async_body(const Body &body, async_gateway_type *gateway) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    async_body(const async_body &other) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    async_gateway_type typedef (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >
    get_body() (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    operator()(const Input &v, Ports &) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline
    set_async_gateway(async_gateway_type *gateway) (defined in tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >)tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00437.html b/doc/html/a00437.html index cfcf8bd4..77e9bb4a 100644 --- a/doc/html/a00437.html +++ b/doc/html/a00437.html @@ -33,25 +33,108 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >, including all inherited members.

    - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    acquire(concurrent_hash_map *base, const hashcode_t h, bool writer=false)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    bucket_accessor(concurrent_hash_map *base, const hashcode_t h, bool writer=false) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    is_writer()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    operator()()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    accessor_location (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    accessor_location (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    allocate_node_copy_construct(node_allocator_type &allocator, const Key &key, const T *t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_default_construct(node_allocator_type &allocator, const Key &key, const T *) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_emplace_construct(node_allocator_type &allocator, Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocate_node_move_construct(node_allocator_type &allocator, const Key &key, const T *t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    begin() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    begin() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    bucket_count() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    clear()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    concurrent_hash_map(const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(size_type n, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(const concurrent_hash_map &table, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(concurrent_hash_map &&table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(concurrent_hash_map &&table, const allocator_type &a)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(I first, I last, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    concurrent_hash_map(std::initializer_list< value_type > il, const allocator_type &a=allocator_type())tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    const_accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    const_iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    const_reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    count(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    delete_node(node_base *n) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    difference_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    do_not_allocate_node(node_allocator_type &, const Key &, const T *) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotectedstatic
    emplace(const_accessor &result, Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    emplace(accessor &result, Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    emplace(Args &&...args)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    end() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    end() const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    equal_range(const Key &key) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    equal_range(const Key &key) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    erase(const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    erase(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    erase(accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    exclude(const_accessor &item_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    find(const_accessor &result, const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    find(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    generic_emplace(Accessor &&result, Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    generic_move_insert(Accessor &&result, value_type &&value) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    get_allocator() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, const Key &key)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const value_type &value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(const_accessor &result, value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(accessor &result, value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(value_type &&value)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(I first, I last)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    insert(std::initializer_list< value_type > il)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    internal::hash_map_iterator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    internal::hash_map_range (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    internal_copy(const concurrent_hash_map &source)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_copy(I first, I last) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_equal_range(const Key &key, I end) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    internal_fast_find(const Key &key) const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    is_write_access_needed (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >friend
    iterator typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    key_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    lookup(bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node *(*allocate_node)(node_allocator_type &, const Key &, const T *), node *tmp_n=0)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    mapped_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    max_size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    my_allocator (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    my_hash_compare (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    node_allocator_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >protected
    operator=(const concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    operator=(concurrent_hash_map &&table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    operator=(std::initializer_list< value_type > il)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    pointer typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    range(size_type grainsize=1) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    range(size_type grainsize=1) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    range_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    reference typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    rehash(size_type n=0)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    rehash_bucket(bucket *b_new, const hashcode_t h) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    search_bucket(const key_type &key, bucket *b) const (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inlineprotected
    size() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline
    size_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    swap(concurrent_hash_map &table)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    value_type typedef (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >
    ~concurrent_hash_map()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00438.html b/doc/html/a00438.html index 73e70430..07a420b9 100644 --- a/doc/html/a00438.html +++ b/doc/html/a00438.html @@ -33,25 +33,31 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor, including all inherited members.

    - - - - + + + + + + + + + +
    call_clear_on_leave(concurrent_hash_map *a_ch_map) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline
    dismiss() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline
    my_ch_map (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave
    ~call_clear_on_leave() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline
    const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    is_writer() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinlineprotected
    my_hash (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    my_node (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    operator*() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessorinline
    operator->() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessorinline
    release()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    value_type typedeftbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor
    ~const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00439.html b/doc/html/a00439.html index 155c8106..b6eee6e7 100644 --- a/doc/html/a00439.html +++ b/doc/html/a00439.html @@ -33,33 +33,22 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used, including all inherited members.

    - - - - - - - - - - - - +
    accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
    concurrent_hash_map< Key, T, HashCompare, Allocator > (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
    const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    is_writer() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinlineprotected
    my_hash (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    my_node (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    operator*() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    operator->() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    release()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    value_type typedeftbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
    ~const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    release() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_usedinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00440.html b/doc/html/a00440.html index 712cb4ac..06d1bbf6 100644 --- a/doc/html/a00440.html +++ b/doc/html/a00440.html @@ -33,31 +33,25 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor, including all inherited members.

    - - - - - - - - - - + + + +
    item (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node
    node(const Key &key) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const Key &key, const T &t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const Key &key, T &&t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(value_type &&i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(value_type &i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const value_type &i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    operator delete(void *ptr, node_allocator_type &a) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    operator new(size_t, node_allocator_type &a) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    acquire(concurrent_hash_map *base, const hashcode_t h, bool writer=false)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    bucket_accessor(concurrent_hash_map *base, const hashcode_t h, bool writer=false) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    is_writer()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline
    operator()()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessorinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00441.html b/doc/html/a00441.html index 779e920c..9566067d 100644 --- a/doc/html/a00441.html +++ b/doc/html/a00441.html @@ -33,49 +33,25 @@
    -
    tbb::interface5::concurrent_priority_queue< T, Compare, A > Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_priority_queue< T, Compare, A >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
    allocator_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    assign(InputIterator begin, InputIterator end)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    assign(std::initializer_list< T > il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    clear()tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(size_type init_capacity, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(std::initializer_list< T > init_list, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(const concurrent_priority_queue &src, const allocator_type &a)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(concurrent_priority_queue &&src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(concurrent_priority_queue &&src, const allocator_type &a)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    const_reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    difference_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    emplace(Args &&...args)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    empty() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    get_allocator() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(concurrent_priority_queue &&src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(std::initializer_list< T > il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    push(const_reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    push(value_type &&elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    size() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    size_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    swap(concurrent_priority_queue &q)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    try_pop(reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    value_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    call_clear_on_leave(concurrent_hash_map *a_ch_map) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline
    dismiss() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline
    my_ch_map (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave
    ~call_clear_on_leave() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leaveinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00442.html b/doc/html/a00442.html index a0045761..de766470 100644 --- a/doc/html/a00442.html +++ b/doc/html/a00442.html @@ -33,30 +33,33 @@
    -
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor, including all inherited members.

    - - - - - - - - - + + + + + + + + + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    concurrent_unordered_map_traits() (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    concurrent_unordered_map_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    get_key(const std::pair< Type1, Type2 > &value) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
    hash_compare typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    key_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    value_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    accessor (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
    concurrent_hash_map< Key, T, HashCompare, Allocator > (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorfriend
    const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    empty() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    is_writer() (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinlineprotected
    my_hash (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    my_node (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorprotected
    operator*() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    operator->() const tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    release()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline
    value_type typedeftbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor
    ~const_accessor()tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessorinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00443.html b/doc/html/a00443.html index 6d703188..b608aa04 100644 --- a/doc/html/a00443.html +++ b/doc/html/a00443.html @@ -33,25 +33,31 @@
    -
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node, including all inherited members.

    - - - - + + + + + + + + + +
    concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_comparefriend
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareprotected
    operator()(const value_type &left, const value_type &right) const (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareinline
    value_compare(const hash_compare &comparator) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareinline
    item (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node
    node(const Key &key) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const Key &key, const T &t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const Key &key, T &&t) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(value_type &&i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(Args &&...args) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(value_type &i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    node(const value_type &i) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    operator delete(void *ptr, node_allocator_type &a) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline
    operator new(size_t, node_allocator_type &a) (defined in tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node)tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::nodeinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00444.html b/doc/html/a00444.html index e5931e39..87ae951b 100644 --- a/doc/html/a00444.html +++ b/doc/html/a00444.html @@ -33,51 +33,49 @@
    -
    tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Member List
    +
    tbb::interface5::concurrent_priority_queue< T, Compare, A > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_priority_queue< T, Compare, A >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    at(const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    at(const key_type &key) const (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_map(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(concurrent_unordered_map &&table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(const concurrent_unordered_map &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(concurrent_unordered_map &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_map &&table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    operator[](const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    allocator_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    assign(InputIterator begin, InputIterator end)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    assign(std::initializer_list< T > il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    clear()tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(size_type init_capacity, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(std::initializer_list< T > init_list, const allocator_type &a=allocator_type())tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inlineexplicit
    concurrent_priority_queue(const concurrent_priority_queue &src, const allocator_type &a)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(concurrent_priority_queue &&src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    concurrent_priority_queue(concurrent_priority_queue &&src, const allocator_type &a)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    const_reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    difference_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    emplace(Args &&...args)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    empty() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    get_allocator() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(const concurrent_priority_queue &src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(concurrent_priority_queue &&src)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    operator=(std::initializer_list< T > il)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    push(const_reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    push(value_type &&elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    reference typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    size() const tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    size_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >
    swap(concurrent_priority_queue &q)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    try_pop(reference elem)tbb::interface5::concurrent_priority_queue< T, Compare, A >inline
    value_type typedeftbb::interface5::concurrent_priority_queue< T, Compare, A >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00445.html b/doc/html/a00445.html index 62d5db93..3f6ffea4 100644 --- a/doc/html/a00445.html +++ b/doc/html/a00445.html @@ -33,48 +33,30 @@
    -
    tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Member List
    +
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    concurrent_unordered_multimap(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_multimap(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(concurrent_unordered_multimap &&table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(const concurrent_unordered_multimap &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(concurrent_unordered_multimap &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_multimap &&table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    concurrent_unordered_map_traits() (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    concurrent_unordered_map_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    get_key(const std::pair< Type1, Type2 > &value) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
    hash_compare typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    key_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected
    value_type typedef (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >protected

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00446.html b/doc/html/a00446.html index 72bdc5e9..b5b57611 100644 --- a/doc/html/a00446.html +++ b/doc/html/a00446.html @@ -33,31 +33,25 @@
    -
    tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Member List
    +
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare, including all inherited members.

    - - - - - - - - - - + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    concurrent_unordered_set_traits() (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    concurrent_unordered_set_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    get_key(const value_type &value) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
    hash_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    key_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    value_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    value_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_comparefriend
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareprotected
    operator()(const value_type &left, const value_type &right) const (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareinline
    value_compare(const hash_compare &comparator) (defined in tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare)tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compareinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00447.html b/doc/html/a00447.html index 20651efa..09e79c88 100644 --- a/doc/html/a00447.html +++ b/doc/html/a00447.html @@ -33,48 +33,51 @@
    -
    tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Member List
    +
    tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    concurrent_unordered_set(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_set(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(concurrent_unordered_set &&table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(const concurrent_unordered_set &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(concurrent_unordered_set &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_set &&table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    at(const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    at(const key_type &key) const (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_map(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(concurrent_unordered_map &&table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(const concurrent_unordered_map &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_map(concurrent_unordered_map &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_map &table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_map &&table) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    operator[](const key_type &key) (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00448.html b/doc/html/a00448.html index 59e4b265..7ca259c4 100644 --- a/doc/html/a00448.html +++ b/doc/html/a00448.html @@ -33,48 +33,48 @@
    -
    tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Member List
    +
    tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Member List
    -

    This is the complete list of members for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    concurrent_unordered_multiset(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_multiset(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(concurrent_unordered_multiset &&table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(const concurrent_unordered_multiset &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(concurrent_unordered_multiset &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_multiset &&table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    concurrent_unordered_multimap(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_multimap(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(concurrent_unordered_multimap &&table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(const concurrent_unordered_multimap &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multimap(concurrent_unordered_multimap &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_multimap &table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_multimap &&table) (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00449.html b/doc/html/a00449.html index 8b0e0d6e..2b5126d0 100644 --- a/doc/html/a00449.html +++ b/doc/html/a00449.html @@ -33,35 +33,31 @@
    -
    tbb::interface5::reader_writer_lock Member List
    +
    tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Member List
    -

    This is the complete list of members for tbb::interface5::reader_writer_lock, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >, including all inherited members.

    - - - - - - - - - - - - - - + + + + + + + + + +
    active enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    invalid enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    lock()tbb::interface5::reader_writer_lock
    lock_read()tbb::interface5::reader_writer_lock
    reader_writer_lock()tbb::interface5::reader_writer_lockinline
    scoped_lock (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lockfriend
    scoped_lock_read (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lockfriend
    status_t enum nametbb::interface5::reader_writer_lock
    try_lock()tbb::interface5::reader_writer_lock
    try_lock_read()tbb::interface5::reader_writer_lock
    unlock()tbb::interface5::reader_writer_lock
    waiting enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    waiting_nonblocking enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    ~reader_writer_lock()tbb::interface5::reader_writer_lockinline
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    allow_multimapping enum value (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    concurrent_unordered_set_traits() (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    concurrent_unordered_set_traits(const hash_compare &hc) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotected
    get_key(const value_type &value) (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >inlineprotectedstatic
    hash_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    key_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    my_hash_compare (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    value_compare typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected
    value_type typedef (defined in tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >)tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >protected

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00450.html b/doc/html/a00450.html index dc5e74b6..0d5d341e 100644 --- a/doc/html/a00450.html +++ b/doc/html/a00450.html @@ -33,26 +33,48 @@
    -
    tbb::interface5::reader_writer_lock::scoped_lock Member List
    +
    tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Member List
    -

    This is the complete list of members for tbb::interface5::reader_writer_lock::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >, including all inherited members.

    - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    operator delete(void *p) (defined in tbb::interface5::reader_writer_lock::scoped_lock)tbb::interface5::reader_writer_lock::scoped_lockinline
    operator new(size_t s) (defined in tbb::interface5::reader_writer_lock::scoped_lock)tbb::interface5::reader_writer_lock::scoped_lockinline
    reader_writer_lock (defined in tbb::interface5::reader_writer_lock::scoped_lock)tbb::interface5::reader_writer_lock::scoped_lockfriend
    scoped_lock(reader_writer_lock &lock)tbb::interface5::reader_writer_lock::scoped_lockinline
    ~scoped_lock()tbb::interface5::reader_writer_lock::scoped_lockinline
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    concurrent_unordered_set(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_set(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(concurrent_unordered_set &&table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(const concurrent_unordered_set &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_set(concurrent_unordered_set &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_set &table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_set &&table) (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00451.html b/doc/html/a00451.html index 28b3ea8a..9b42f1e6 100644 --- a/doc/html/a00451.html +++ b/doc/html/a00451.html @@ -33,26 +33,48 @@
    -
    tbb::interface5::reader_writer_lock::scoped_lock_read Member List
    +
    tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Member List
    -

    This is the complete list of members for tbb::interface5::reader_writer_lock::scoped_lock_read, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >, including all inherited members.

    - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
    operator delete(void *p) (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    operator new(size_t s) (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    reader_writer_lock (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readfriend
    scoped_lock_read(reader_writer_lock &lock)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    ~scoped_lock_read()tbb::interface5::reader_writer_lock::scoped_lock_readinline
    allocator_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    concurrent_unordered_multiset(size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inlineexplicit
    concurrent_unordered_multiset(const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(Iterator first, Iterator last, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &_Hasher=hasher(), const key_equal &_Key_equality=key_equal(), const allocator_type &a=allocator_type()) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(std::initializer_list< value_type > il, size_type n_of_buckets=base_type::initial_bucket_number, const hasher &a_hasher=hasher(), const key_equal &a_keyeq=key_equal(), const allocator_type &a=allocator_type())tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(concurrent_unordered_multiset &&table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(const concurrent_unordered_multiset &table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    concurrent_unordered_multiset(concurrent_unordered_multiset &&table, const Allocator &a) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    const_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    const_reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    difference_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    hasher typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_compare typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_equal typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    key_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    local_iterator typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    mapped_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    operator=(const concurrent_unordered_multiset &table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    operator=(concurrent_unordered_multiset &&table) (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >inline
    pointer typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    reference typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    size_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >
    value_type typedef (defined in tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >)tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00452.html b/doc/html/a00452.html index 845e4534..5d7b58df 100644 --- a/doc/html/a00452.html +++ b/doc/html/a00452.html @@ -33,23 +33,35 @@
    -
    tbb::interface5::internal::use_element_copy_constructor< T, C > Member List
    +
    tbb::interface5::reader_writer_lock Member List
    -

    This is the complete list of members for tbb::interface5::internal::use_element_copy_constructor< T, C >, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::reader_writer_lock, including all inherited members.

    - - + + + + + + + + + + + + + +
    type typedef (defined in tbb::interface5::internal::use_element_copy_constructor< T, C >)tbb::interface5::internal::use_element_copy_constructor< T, C >
    type typedef (defined in tbb::interface5::internal::use_element_copy_constructor< T, C >)tbb::interface5::internal::use_element_copy_constructor< T, C >
    active enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    invalid enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    lock()tbb::interface5::reader_writer_lock
    lock_read()tbb::interface5::reader_writer_lock
    reader_writer_lock()tbb::interface5::reader_writer_lockinline
    scoped_lock (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lockfriend
    scoped_lock_read (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lockfriend
    status_t enum nametbb::interface5::reader_writer_lock
    try_lock()tbb::interface5::reader_writer_lock
    try_lock_read()tbb::interface5::reader_writer_lock
    unlock()tbb::interface5::reader_writer_lock
    waiting enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    waiting_nonblocking enum value (defined in tbb::interface5::reader_writer_lock)tbb::interface5::reader_writer_lock
    ~reader_writer_lock()tbb::interface5::reader_writer_lockinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00453.html b/doc/html/a00453.html index e74459fc..48e8c5bf 100644 --- a/doc/html/a00453.html +++ b/doc/html/a00453.html @@ -33,22 +33,26 @@
    -
    tbb::interface5::internal::use_element_copy_constructor< T, false > Member List
    +
    tbb::interface5::reader_writer_lock::scoped_lock Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00454.html b/doc/html/a00454.html index d26e9344..af2afa8c 100644 --- a/doc/html/a00454.html +++ b/doc/html/a00454.html @@ -33,30 +33,26 @@
    -
    tbb::interface6::aggregator_operation Member List
    +
    tbb::interface5::reader_writer_lock::scoped_lock_read Member List
    -

    This is the complete list of members for tbb::interface6::aggregator_operation, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::reader_writer_lock::scoped_lock_read, including all inherited members.

    - - - - - - - - - + + + + +
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_ext (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationfriend
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline
    operator delete(void *p) (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    operator new(size_t s) (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    reader_writer_lock (defined in tbb::interface5::reader_writer_lock::scoped_lock_read)tbb::interface5::reader_writer_lock::scoped_lock_readfriend
    scoped_lock_read(reader_writer_lock &lock)tbb::interface5::reader_writer_lock::scoped_lock_readinline
    ~scoped_lock_read()tbb::interface5::reader_writer_lock::scoped_lock_readinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00455.html b/doc/html/a00455.html index 678a767c..b101b17d 100644 --- a/doc/html/a00455.html +++ b/doc/html/a00455.html @@ -33,24 +33,23 @@
    -
    tbb::interface6::aggregator_ext< handler_type > Member List
    +
    tbb::interface5::internal::use_element_copy_constructor< T, C > Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00456.html b/doc/html/a00456.html index b5c029cf..b96ee4d1 100644 --- a/doc/html/a00456.html +++ b/doc/html/a00456.html @@ -33,26 +33,22 @@
    -
    tbb::interface6::aggregator Member List
    +
    tbb::interface5::internal::use_element_copy_constructor< T, false > Member List
    -

    This is the complete list of members for tbb::interface6::aggregator, including all inherited members.

    +

    This is the complete list of members for tbb::interface5::internal::use_element_copy_constructor< T, false >, including all inherited members.

    - - - - - +
    aggregator() (defined in tbb::interface6::aggregator)tbb::interface6::aggregatorinline
    aggregator_ext(const internal::basic_handler &h) (defined in tbb::interface6::aggregator_ext< internal::basic_handler >)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
    execute(const Body &b)tbb::interface6::aggregatorinline
    execute_impl(aggregator_operation &op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
    process(aggregator_operation *op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
    type typedef (defined in tbb::interface5::internal::use_element_copy_constructor< T, false >)tbb::interface5::internal::use_element_copy_constructor< T, false >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00457.html b/doc/html/a00457.html index 20a876f0..9c535308 100644 --- a/doc/html/a00457.html +++ b/doc/html/a00457.html @@ -33,25 +33,30 @@
    -
    tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Member List
    +
    tbb::interface6::aggregator_operation Member List
    -

    This is the complete list of members for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::aggregator_operation, including all inherited members.

    - - - - + + + + + + + + +
    concurrent_lru_cache(value_function_type f, std::size_t number_of_lru_history_items) (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >inline
    handle typedef (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >
    operator[](key_type k) (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >inline
    tbb::internal::aggregating_functor< self_type, aggregated_operation_type > (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >friend
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_ext (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationfriend
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00458.html b/doc/html/a00458.html index bda7e42b..54d2785c 100644 --- a/doc/html/a00458.html +++ b/doc/html/a00458.html @@ -33,61 +33,24 @@
    -
    tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Member List
    +
    tbb::interface6::aggregator_ext< handler_type > Member List
    -

    This is the complete list of members for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::aggregator_ext< handler_type >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
    allocator_type typedeftbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    begin()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    begin() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    clear()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    combine(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    combine_each(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    const_iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    difference_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    empty() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    end()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    end() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >friend
    enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(Finit finit)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const T &exemplar)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(T &&exemplar) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(P1 &&arg1, P &&...args)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const enumerable_thread_specific< T, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(enumerable_thread_specific &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(enumerable_thread_specific< T, Alloc, Cachetype > &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    local()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    local(bool &exists)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(const enumerable_thread_specific< T, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(enumerable_thread_specific &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(enumerable_thread_specific< T, Alloc, Cachetype > &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    range(size_t grainsize=1)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    range(size_t grainsize=1) const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    size() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    size_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    value_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    ~enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    aggregator_ext(const handler_type &h) (defined in tbb::interface6::aggregator_ext< handler_type >)tbb::interface6::aggregator_ext< handler_type >inline
    execute_impl(aggregator_operation &op)tbb::interface6::aggregator_ext< handler_type >inlineprotected
    process(aggregator_operation *op)tbb::interface6::aggregator_ext< handler_type >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00459.html b/doc/html/a00459.html index ee3ff081..14c0b86d 100644 --- a/doc/html/a00459.html +++ b/doc/html/a00459.html @@ -33,38 +33,26 @@
    -
    tbb::interface6::flattened2d< Container > Member List
    +
    tbb::interface6::aggregator Member List
    -

    This is the complete list of members for tbb::interface6::flattened2d< Container >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::aggregator, including all inherited members.

    - - - - - - - - - - - - - - - - - + + + + +
    allocator_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    begin() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    begin() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    const_iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    const_pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    const_reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    difference_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    end() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    end() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    flattened2d(const Container &c, typename Container::const_iterator b, typename Container::const_iterator e) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    flattened2d(const Container &c) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    size() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    size_type typedeftbb::interface6::flattened2d< Container >
    value_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    aggregator() (defined in tbb::interface6::aggregator)tbb::interface6::aggregatorinline
    aggregator_ext(const internal::basic_handler &h) (defined in tbb::interface6::aggregator_ext< internal::basic_handler >)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
    execute(const Body &b)tbb::interface6::aggregatorinline
    execute_impl(aggregator_operation &op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate
    process(aggregator_operation *op)tbb::interface6::aggregator_ext< internal::basic_handler >inlineprivate

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00460.html b/doc/html/a00460.html index bbe5444d..1be409a1 100644 --- a/doc/html/a00460.html +++ b/doc/html/a00460.html @@ -33,45 +33,25 @@
    -
    tbb::interface6::memory_pool_allocator< T, P > Member List
    +
    tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Member List
    -

    This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - + + + +
    address(reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    address(const_reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    allocate(size_type n, const void *=0)tbb::interface6::memory_pool_allocator< T, P >inline
    const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    const_reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    construct(U *p, Args &&...args)tbb::interface6::memory_pool_allocator< T, P >inline
    construct(pointer p, value_type &&value) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    construct(pointer p, const value_type &value) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    deallocate(pointer p, size_type)tbb::interface6::memory_pool_allocator< T, P >inline
    destroy(pointer p)tbb::interface6::memory_pool_allocator< T, P >inline
    difference_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    max_size() const tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    my_pool (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
    operator!= (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    operator== (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    pool_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
    reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    size_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    value_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    concurrent_lru_cache(value_function_type f, std::size_t number_of_lru_history_items) (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >inline
    handle typedef (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >
    operator[](key_type k) (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >inline
    tbb::internal::aggregating_functor< self_type, aggregated_operation_type > (defined in tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >)tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >friend

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00461.html b/doc/html/a00461.html index 472faa67..579c933f 100644 --- a/doc/html/a00461.html +++ b/doc/html/a00461.html @@ -33,22 +33,61 @@
    -
    tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Member List
    +
    tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Member List
    -

    This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >, including all inherited members.

    - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    other typedef (defined in tbb::interface6::memory_pool_allocator< T, P >::rebind< U >)tbb::interface6::memory_pool_allocator< T, P >::rebind< U >
    allocator_type typedeftbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    begin()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    begin() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    clear()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    combine(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    combine_each(combine_func_t f_combine) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    const_iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    const_reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    difference_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    empty() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    end()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    end() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >friend
    enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(Finit finit)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const T &exemplar)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(T &&exemplar) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(P1 &&arg1, P &&...args)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(const enumerable_thread_specific< T, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(enumerable_thread_specific &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    enumerable_thread_specific(enumerable_thread_specific< T, Alloc, Cachetype > &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    iterator typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    local()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    local(bool &exists)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(const enumerable_thread_specific &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(const enumerable_thread_specific< T, Alloc, Cachetype > &other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(enumerable_thread_specific &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    operator=(enumerable_thread_specific< T, Alloc, Cachetype > &&other) (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    pointer typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    range(size_t grainsize=1)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    range(size_t grainsize=1) const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    range_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    reference typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    size() const tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline
    size_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    value_type typedef (defined in tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >)tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >
    ~enumerable_thread_specific()tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00462.html b/doc/html/a00462.html index 5ea3c4ac..b6e9949f 100644 --- a/doc/html/a00462.html +++ b/doc/html/a00462.html @@ -33,32 +33,38 @@
    -
    tbb::interface6::memory_pool_allocator< void, P > Member List
    +
    tbb::interface6::flattened2d< Container > Member List
    -

    This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::flattened2d< Container >, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + + + + + + + +
    const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    my_pool (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >protected
    operator!= (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    operator== (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    pool_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    value_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    allocator_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    begin() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    begin() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    const_iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    const_pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    const_reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    difference_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    end() (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    end() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    flattened2d(const Container &c, typename Container::const_iterator b, typename Container::const_iterator e) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    flattened2d(const Container &c) (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    iterator typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    pointer typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    reference typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >
    size() const (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >inline
    size_type typedeftbb::interface6::flattened2d< Container >
    value_type typedef (defined in tbb::interface6::flattened2d< Container >)tbb::interface6::flattened2d< Container >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00463.html b/doc/html/a00463.html index e270a2a0..fe871e5f 100644 --- a/doc/html/a00463.html +++ b/doc/html/a00463.html @@ -33,22 +33,45 @@
    -
    tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Member List
    +
    tbb::interface6::memory_pool_allocator< T, P > Member List
    -

    This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >::rebind< U >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >, including all inherited members.

    - + + + + + + + + + + + + + + + + + + + + + + + +
    other typedef (defined in tbb::interface6::memory_pool_allocator< void, P >::rebind< U >)tbb::interface6::memory_pool_allocator< void, P >::rebind< U >
    address(reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    address(const_reference x) const (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    allocate(size_type n, const void *=0)tbb::interface6::memory_pool_allocator< T, P >inline
    const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    const_reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    construct(U *p, Args &&...args)tbb::interface6::memory_pool_allocator< T, P >inline
    construct(pointer p, value_type &&value) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    construct(pointer p, const value_type &value) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    deallocate(pointer p, size_type)tbb::interface6::memory_pool_allocator< T, P >inline
    destroy(pointer p)tbb::interface6::memory_pool_allocator< T, P >inline
    difference_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    max_size() const tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >inline
    my_pool (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
    operator!= (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    operator== (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >friend
    pointer typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    pool_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >protected
    reference typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    size_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >
    value_type typedef (defined in tbb::interface6::memory_pool_allocator< T, P >)tbb::interface6::memory_pool_allocator< T, P >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00464.html b/doc/html/a00464.html index 409e5476..39aa0310 100644 --- a/doc/html/a00464.html +++ b/doc/html/a00464.html @@ -33,23 +33,22 @@
    -
    tbb::interface6::memory_pool< Alloc > Member List
    +
    tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Member List
    -

    This is the complete list of members for tbb::interface6::memory_pool< Alloc >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >::rebind< U >, including all inherited members.

    - - +
    memory_pool(const Alloc &src=Alloc())tbb::interface6::memory_pool< Alloc >
    ~memory_pool()tbb::interface6::memory_pool< Alloc >inline
    other typedef (defined in tbb::interface6::memory_pool_allocator< T, P >::rebind< U >)tbb::interface6::memory_pool_allocator< T, P >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00465.html b/doc/html/a00465.html index e12d3f4b..76c6fd90 100644 --- a/doc/html/a00465.html +++ b/doc/html/a00465.html @@ -33,23 +33,32 @@
    -
    tbb::interface6::fixed_pool Member List
    +
    tbb::interface6::memory_pool_allocator< void, P > Member List
    -

    This is the complete list of members for tbb::interface6::fixed_pool, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >, including all inherited members.

    - - + + + + + + + + + + +
    fixed_pool(void *buf, size_t size)tbb::interface6::fixed_poolinline
    ~fixed_pool()tbb::interface6::fixed_poolinline
    const_pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    memory_pool_allocator (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    memory_pool_allocator(pool_type &pool) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    memory_pool_allocator(const memory_pool_allocator &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    memory_pool_allocator(const memory_pool_allocator< U, P > &src) (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >inline
    my_pool (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >protected
    operator!= (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    operator== (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >friend
    pointer typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    pool_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >
    value_type typedef (defined in tbb::interface6::memory_pool_allocator< void, P >)tbb::interface6::memory_pool_allocator< void, P >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00466.html b/doc/html/a00466.html index 01dbb021..9111d0f5 100644 --- a/doc/html/a00466.html +++ b/doc/html/a00466.html @@ -33,23 +33,22 @@
    -
    tbb::interface6::flow_control Member List
    +
    tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Member List
    -

    This is the complete list of members for tbb::interface6::flow_control, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >::rebind< U >, including all inherited members.

    - - +
    internal::concrete_filter (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlfriend
    stop() (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlinline
    other typedef (defined in tbb::interface6::memory_pool_allocator< void, P >::rebind< U >)tbb::interface6::memory_pool_allocator< void, P >::rebind< U >

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00467.html b/doc/html/a00467.html index 06882fdb..dfbdf0e4 100644 --- a/doc/html/a00467.html +++ b/doc/html/a00467.html @@ -33,30 +33,23 @@
    -
    tbb::interface6::filter_t< T, U > Member List
    +
    tbb::interface6::memory_pool< Alloc > Member List
    -

    This is the complete list of members for tbb::interface6::filter_t< T, U >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::memory_pool< Alloc >, including all inherited members.

    - - - - - - - - - + +
    clear() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t(tbb::filter::mode mode, const Body &body) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    internal::pipeline_proxy (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
    make_filter(tbb::filter::mode, const Body &)tbb::interface6::filter_t< T, U >friend
    operator& (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
    operator=(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    ~filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    memory_pool(const Alloc &src=Alloc())tbb::interface6::memory_pool< Alloc >
    ~memory_pool()tbb::interface6::memory_pool< Alloc >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00468.html b/doc/html/a00468.html index eb26e870..374ddbcd 100644 --- a/doc/html/a00468.html +++ b/doc/html/a00468.html @@ -33,37 +33,23 @@
    -
    tbb::interface6::runtime_loader Member List
    +
    tbb::interface6::fixed_pool Member List
    -

    This is the complete list of members for tbb::interface6::runtime_loader, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::fixed_pool, including all inherited members.

    - - - - - - - - - - - - - - - - + +
    ec_bad_arg enum valuetbb::interface6::runtime_loader
    ec_bad_call enum valuetbb::interface6::runtime_loader
    ec_bad_lib enum valuetbb::interface6::runtime_loader
    ec_bad_ver enum valuetbb::interface6::runtime_loader
    ec_no_lib enum valuetbb::interface6::runtime_loader
    ec_ok enum valuetbb::interface6::runtime_loader
    em_abort enum valuetbb::interface6::runtime_loader
    em_status enum valuetbb::interface6::runtime_loader
    em_throw enum valuetbb::interface6::runtime_loader
    error_code enum nametbb::interface6::runtime_loader
    error_mode enum nametbb::interface6::runtime_loader
    load(char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)tbb::interface6::runtime_loader
    runtime_loader(error_mode mode=em_abort)tbb::interface6::runtime_loader
    runtime_loader(char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)tbb::interface6::runtime_loader
    status()tbb::interface6::runtime_loader
    ~runtime_loader()tbb::interface6::runtime_loader
    fixed_pool(void *buf, size_t size)tbb::interface6::fixed_poolinline
    ~fixed_pool()tbb::interface6::fixed_poolinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00469.html b/doc/html/a00469.html index d48f5db0..c3070e0c 100644 --- a/doc/html/a00469.html +++ b/doc/html/a00469.html @@ -33,36 +33,23 @@
    -
    tbb::interface6::task_scheduler_observer Member List
    +
    tbb::interface6::flow_control Member List
    -

    This is the complete list of members for tbb::interface6::task_scheduler_observer, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::flow_control, including all inherited members.

    - - - - - - - - - - - - - - - + +
    allow_sleep enum value (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observer
    internal::observer_list (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    internal::observer_proxy (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    internal::task_scheduler_observer_v3 (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    is_observing() const tbb::internal::task_scheduler_observer_v3inline
    keep_awake enum value (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observer
    may_sleep()tbb::interface6::task_scheduler_observerinlinevirtual
    observe(bool state=true)tbb::interface6::task_scheduler_observerinline
    on_scheduler_entry(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    on_scheduler_exit(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    task_scheduler_observer(bool local=false)tbb::interface6::task_scheduler_observerinline
    task_scheduler_observer(task_arena &a)tbb::interface6::task_scheduler_observerinline
    task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inline
    ~task_scheduler_observer()tbb::interface6::task_scheduler_observerinlinevirtual
    ~task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inlinevirtual
    internal::concrete_filter (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlfriend
    stop() (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00470.html b/doc/html/a00470.html index 39a5b000..04e338ba 100644 --- a/doc/html/a00470.html +++ b/doc/html/a00470.html @@ -33,32 +33,30 @@
    -
    tbb::interface6::internal::basic_operation_base Member List
    +
    tbb::interface6::filter_t< T, U > Member List
    -

    This is the complete list of members for tbb::interface6::internal::basic_operation_base, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::filter_t< T, U >, including all inherited members.

    - - - - - - - - - - - + + + + + + + + +
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    basic_handler (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_basefriend
    basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinline
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline
    ~basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinlinevirtual
    clear() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    filter_t(tbb::filter::mode mode, const Body &body) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    internal::pipeline_proxy (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
    make_filter(tbb::filter::mode, const Body &)tbb::interface6::filter_t< T, U >friend
    operator& (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >friend
    operator=(const filter_t< T, U > &rhs) (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline
    ~filter_t() (defined in tbb::interface6::filter_t< T, U >)tbb::interface6::filter_t< T, U >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00471.html b/doc/html/a00471.html index a8dfcef3..8c2d41e7 100644 --- a/doc/html/a00471.html +++ b/doc/html/a00471.html @@ -33,32 +33,37 @@
    -
    tbb::interface6::internal::basic_operation< Body > Member List
    +
    tbb::interface6::runtime_loader Member List
    -

    This is the complete list of members for tbb::interface6::internal::basic_operation< Body >, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::runtime_loader, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + + + + + + +
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    basic_operation(const Body &b) (defined in tbb::interface6::internal::basic_operation< Body >)tbb::interface6::internal::basic_operation< Body >inline
    basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinline
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline
    ~basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinlinevirtual
    ec_bad_arg enum valuetbb::interface6::runtime_loader
    ec_bad_call enum valuetbb::interface6::runtime_loader
    ec_bad_lib enum valuetbb::interface6::runtime_loader
    ec_bad_ver enum valuetbb::interface6::runtime_loader
    ec_no_lib enum valuetbb::interface6::runtime_loader
    ec_ok enum valuetbb::interface6::runtime_loader
    em_abort enum valuetbb::interface6::runtime_loader
    em_status enum valuetbb::interface6::runtime_loader
    em_throw enum valuetbb::interface6::runtime_loader
    error_code enum nametbb::interface6::runtime_loader
    error_mode enum nametbb::interface6::runtime_loader
    load(char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)tbb::interface6::runtime_loader
    runtime_loader(error_mode mode=em_abort)tbb::interface6::runtime_loader
    runtime_loader(char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)tbb::interface6::runtime_loader
    status()tbb::interface6::runtime_loader
    ~runtime_loader()tbb::interface6::runtime_loader

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00472.html b/doc/html/a00472.html index ad2b8a30..c11efdb9 100644 --- a/doc/html/a00472.html +++ b/doc/html/a00472.html @@ -33,23 +33,36 @@
    -
    tbb::interface6::internal::basic_handler Member List
    +
    tbb::interface6::task_scheduler_observer Member List
    -

    This is the complete list of members for tbb::interface6::internal::basic_handler, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::task_scheduler_observer, including all inherited members.

    - - + + + + + + + + + + + + + + +
    basic_handler() (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline
    operator()(aggregator_operation *op_list) const (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline
    allow_sleep enum value (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observer
    internal::observer_list (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    internal::observer_proxy (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    internal::task_scheduler_observer_v3 (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observerfriend
    is_observing() const tbb::internal::task_scheduler_observer_v3inline
    keep_awake enum value (defined in tbb::interface6::task_scheduler_observer)tbb::interface6::task_scheduler_observer
    may_sleep()tbb::interface6::task_scheduler_observerinlinevirtual
    observe(bool state=true)tbb::interface6::task_scheduler_observerinline
    on_scheduler_entry(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    on_scheduler_exit(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    task_scheduler_observer(bool local=false)tbb::interface6::task_scheduler_observerinline
    task_scheduler_observer(task_arena &a)tbb::interface6::task_scheduler_observerinline
    task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inline
    ~task_scheduler_observer()tbb::interface6::task_scheduler_observerinlinevirtual
    ~task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00473.html b/doc/html/a00473.html index 1bfffbee..07af89a9 100644 --- a/doc/html/a00473.html +++ b/doc/html/a00473.html @@ -33,36 +33,32 @@
    -
    tbb::interface7::task_arena Member List
    +
    tbb::interface6::internal::basic_operation_base Member List
    -

    This is the complete list of members for tbb::interface7::task_arena, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::internal::basic_operation_base, including all inherited members.

    - - - - - - - - - - - - - - - + + + + + + + + + + +
    current_thread_index()tbb::interface7::task_arenainlinestatic
    debug_wait_until_empty()tbb::interface7::task_arenainline
    enqueue(const F &f)tbb::interface7::task_arenainline
    enqueue(const F &f, priority_t p)tbb::interface7::task_arenainline
    execute(F &f)tbb::interface7::task_arenainline
    execute(const F &f)tbb::interface7::task_arenainline
    initialize()tbb::interface7::task_arenainline
    initialize(int max_concurrency, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
    is_active() const tbb::interface7::task_arenainline
    task_arena(int max_concurrency=automatic, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
    task_arena(const task_arena &s)tbb::interface7::task_arenainline
    task_arena(tbb::internal::attach)tbb::interface7::task_arenainline
    tbb::internal::task_scheduler_observer_v3 (defined in tbb::interface7::task_arena)tbb::interface7::task_arenafriend
    terminate()tbb::interface7::task_arenainline
    ~task_arena()tbb::interface7::task_arenainline
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    basic_handler (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_basefriend
    basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinline
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline
    ~basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00474.html b/doc/html/a00474.html index 906bddc8..e8ce1999 100644 --- a/doc/html/a00474.html +++ b/doc/html/a00474.html @@ -33,28 +33,32 @@
    -
    tbb::interface9::global_control Member List
    +
    tbb::interface6::internal::basic_operation< Body > Member List
    -

    This is the complete list of members for tbb::interface9::global_control, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::internal::basic_operation< Body >, including all inherited members.

    - - - - - - - + + + + + + + + + + +
    active_value(parameter p) (defined in tbb::interface9::global_control)tbb::interface9::global_controlinlinestatic
    global_control(parameter p, size_t value) (defined in tbb::interface9::global_control)tbb::interface9::global_controlinline
    max_allowed_parallelism enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    parameter enum name (defined in tbb::interface9::global_control)tbb::interface9::global_control
    parameter_max enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    thread_stack_size enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    ~global_control() (defined in tbb::interface9::global_control)tbb::interface9::global_controlinline
    agg_finished enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    agg_waiting enum value (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    aggregator_operation() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    aggregator_operation_status enum name (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operation
    basic_operation(const Body &b) (defined in tbb::interface6::internal::basic_operation< Body >)tbb::interface6::internal::basic_operation< Body >inline
    basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinline
    finish()tbb::interface6::aggregator_operationinline
    next() (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    set_next(aggregator_operation *n) (defined in tbb::interface6::aggregator_operation)tbb::interface6::aggregator_operationinline
    start()tbb::interface6::aggregator_operationinline
    ~basic_operation_base() (defined in tbb::interface6::internal::basic_operation_base)tbb::interface6::internal::basic_operation_baseinlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00475.html b/doc/html/a00475.html index 2a9e7793..ca09acae 100644 --- a/doc/html/a00475.html +++ b/doc/html/a00475.html @@ -33,30 +33,23 @@
    -
    tbb::internal::critical_section_v4 Member List
    +
    tbb::interface6::internal::basic_handler Member List
    -

    This is the complete list of members for tbb::internal::critical_section_v4, including all inherited members.

    +

    This is the complete list of members for tbb::interface6::internal::basic_handler, including all inherited members.

    - - - - - - - - - + +
    critical_section_v4() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    internal_construct() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4
    is_fair_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    is_recursive_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    is_rw_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    lock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    try_lock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    unlock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    ~critical_section_v4() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    basic_handler() (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline
    operator()(aggregator_operation *op_list) const (defined in tbb::interface6::internal::basic_handler)tbb::interface6::internal::basic_handlerinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00476.html b/doc/html/a00476.html index 556470ed..e4e4f3b2 100644 --- a/doc/html/a00476.html +++ b/doc/html/a00476.html @@ -33,23 +33,37 @@
    -
    tbb::internal::critical_section_v4::scoped_lock Member List
    +
    tbb::interface7::task_arena Member List
    -

    This is the complete list of members for tbb::internal::critical_section_v4::scoped_lock, including all inherited members.

    +

    This is the complete list of members for tbb::interface7::task_arena, including all inherited members.

    - - + + + + + + + + + + + + + + + +
    scoped_lock(critical_section_v4 &lock_me) (defined in tbb::internal::critical_section_v4::scoped_lock)tbb::internal::critical_section_v4::scoped_lockinline
    ~scoped_lock() (defined in tbb::internal::critical_section_v4::scoped_lock)tbb::internal::critical_section_v4::scoped_lockinline
    current_thread_index()tbb::interface7::task_arenainlinestatic
    debug_wait_until_empty()tbb::interface7::task_arenainline
    enqueue(const F &f)tbb::interface7::task_arenainline
    enqueue(const F &f, priority_t p)tbb::interface7::task_arenainline
    execute(F &f)tbb::interface7::task_arenainline
    execute(const F &f)tbb::interface7::task_arenainline
    initialize()tbb::interface7::task_arenainline
    initialize(int max_concurrency, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
    initialize(attach)tbb::interface7::task_arenainline
    is_active() const tbb::interface7::task_arenainline
    task_arena(int max_concurrency=automatic, unsigned reserved_for_masters=1)tbb::interface7::task_arenainline
    task_arena(const task_arena &s)tbb::interface7::task_arenainline
    task_arena(attach)tbb::interface7::task_arenainline
    tbb::internal::task_scheduler_observer_v3 (defined in tbb::interface7::task_arena)tbb::interface7::task_arenafriend
    terminate()tbb::interface7::task_arenainline
    ~task_arena()tbb::interface7::task_arenainline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00477.html b/doc/html/a00477.html index 40baa0fc..77927e22 100644 --- a/doc/html/a00477.html +++ b/doc/html/a00477.html @@ -33,22 +33,28 @@
    -
    tbb::internal::task_handle_task< F > Member List
    +
    tbb::interface9::global_control Member List
    -

    This is the complete list of members for tbb::internal::task_handle_task< F >, including all inherited members.

    +

    This is the complete list of members for tbb::interface9::global_control, including all inherited members.

    - + + + + + + +
    task_handle_task(task_handle< F > &h) (defined in tbb::internal::task_handle_task< F >)tbb::internal::task_handle_task< F >inline
    active_value(parameter p) (defined in tbb::interface9::global_control)tbb::interface9::global_controlinlinestatic
    global_control(parameter p, size_t value) (defined in tbb::interface9::global_control)tbb::interface9::global_controlinline
    max_allowed_parallelism enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    parameter enum name (defined in tbb::interface9::global_control)tbb::interface9::global_control
    parameter_max enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    thread_stack_size enum value (defined in tbb::interface9::global_control)tbb::interface9::global_control
    ~global_control() (defined in tbb::interface9::global_control)tbb::interface9::global_controlinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00478.html b/doc/html/a00478.html index 0749b2b8..7123061d 100644 --- a/doc/html/a00478.html +++ b/doc/html/a00478.html @@ -33,32 +33,30 @@
    -
    tbb::internal::task_group_base Member List
    +
    tbb::internal::critical_section_v4 Member List
    -

    This is the complete list of members for tbb::internal::task_group_base, including all inherited members.

    +

    This is the complete list of members for tbb::internal::critical_section_v4, including all inherited members.

    - - - - - - - - - - - + + + + + + + + +
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    critical_section_v4() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    internal_construct() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4
    is_fair_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    is_recursive_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    is_rw_mutex (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4static
    lock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    try_lock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    unlock() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline
    ~critical_section_v4() (defined in tbb::internal::critical_section_v4)tbb::internal::critical_section_v4inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00479.html b/doc/html/a00479.html index 3eef4e70..ebb6b621 100644 --- a/doc/html/a00479.html +++ b/doc/html/a00479.html @@ -33,30 +33,23 @@
    -
    tbb::internal::task_scheduler_observer_v3 Member List
    +
    tbb::internal::critical_section_v4::scoped_lock Member List

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00480.html b/doc/html/a00480.html index 010b2754..1f52ae85 100644 --- a/doc/html/a00480.html +++ b/doc/html/a00480.html @@ -33,26 +33,22 @@
    -
    tbb::internal::tbb_exception_ptr Member List
    +
    tbb::internal::task_handle_task< F > Member List
    -

    This is the complete list of members for tbb::internal::tbb_exception_ptr, including all inherited members.

    +

    This is the complete list of members for tbb::internal::task_handle_task< F >, including all inherited members.

    - - - - - +
    allocate() (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
    allocate(const tbb_exception &tag) (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
    allocate(captured_exception &src)tbb::internal::tbb_exception_ptrstatic
    destroy()tbb::internal::tbb_exception_ptr
    throw_self()tbb::internal::tbb_exception_ptrinline
    task_handle_task(task_handle< F > &h) (defined in tbb::internal::task_handle_task< F >)tbb::internal::task_handle_task< F >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00481.html b/doc/html/a00481.html index 56e6c01d..ac617e14 100644 --- a/doc/html/a00481.html +++ b/doc/html/a00481.html @@ -33,23 +33,32 @@
    -
    tbb::internal::thread_closure_base Member List
    +
    tbb::internal::task_group_base Member List
    -

    This is the complete list of members for tbb::internal::thread_closure_base, including all inherited members.

    +

    This is the complete list of members for tbb::internal::task_group_base, including all inherited members.

    - - + + + + + + + + + + +
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    cancel() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    internal_run(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    internal_run_and_wait(F &f) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    is_canceling() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    my_context (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    my_root (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseprotected
    owner() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinlineprotected
    run(task_handle< F > &h) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    task_group_base(uintptr_t traits=0) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    wait() (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline
    ~task_group_base() __TBB_NOEXCEPT(false) (defined in tbb::internal::task_group_base)tbb::internal::task_group_baseinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00482.html b/doc/html/a00482.html index 73e5c650..e3a19770 100644 --- a/doc/html/a00482.html +++ b/doc/html/a00482.html @@ -33,26 +33,30 @@
    -
    tbb::internal::thread_closure_0< F > Member List
    +
    tbb::internal::task_scheduler_observer_v3 Member List
    -

    This is the complete list of members for tbb::internal::thread_closure_0< F >, including all inherited members.

    +

    This is the complete list of members for tbb::internal::task_scheduler_observer_v3, including all inherited members.

    - - - - - + + + + + + + + +
    function (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inlinestatic
    thread_closure_0(const F &f) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inline
    interface6::task_scheduler_observer (defined in tbb::internal::task_scheduler_observer_v3)tbb::internal::task_scheduler_observer_v3friend
    is_observing() const tbb::internal::task_scheduler_observer_v3inline
    observe(bool state=true)tbb::internal::task_scheduler_observer_v3
    observer_list (defined in tbb::internal::task_scheduler_observer_v3)tbb::internal::task_scheduler_observer_v3friend
    observer_proxy (defined in tbb::internal::task_scheduler_observer_v3)tbb::internal::task_scheduler_observer_v3friend
    on_scheduler_entry(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    on_scheduler_exit(bool)tbb::internal::task_scheduler_observer_v3inlinevirtual
    task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inline
    ~task_scheduler_observer_v3()tbb::internal::task_scheduler_observer_v3inlinevirtual

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00483.html b/doc/html/a00483.html index 3af199bc..e023becf 100644 --- a/doc/html/a00483.html +++ b/doc/html/a00483.html @@ -33,27 +33,26 @@
    -
    tbb::internal::thread_closure_1< F, X > Member List
    +
    tbb::internal::tbb_exception_ptr Member List
    -

    This is the complete list of members for tbb::internal::thread_closure_1< F, X >, including all inherited members.

    +

    This is the complete list of members for tbb::internal::tbb_exception_ptr, including all inherited members.

    - - - - - - + + + + +
    arg1 (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >
    function (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c)tbb::internal::thread_closure_1< F, X >inlinestatic
    thread_closure_1(const F &f, const X &x) (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >inline
    allocate() (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
    allocate(const tbb_exception &tag) (defined in tbb::internal::tbb_exception_ptr)tbb::internal::tbb_exception_ptrstatic
    allocate(captured_exception &src)tbb::internal::tbb_exception_ptrstatic
    destroy()tbb::internal::tbb_exception_ptr
    throw_self()tbb::internal::tbb_exception_ptrinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00484.html b/doc/html/a00484.html index 7dffd7b5..19996e71 100644 --- a/doc/html/a00484.html +++ b/doc/html/a00484.html @@ -33,28 +33,23 @@
    -
    tbb::internal::thread_closure_2< F, X, Y > Member List
    +
    tbb::internal::thread_closure_base Member List
    -

    This is the complete list of members for tbb::internal::thread_closure_2< F, X, Y >, including all inherited members.

    +

    This is the complete list of members for tbb::internal::thread_closure_base, including all inherited members.

    - - - - - - - + +
    arg1 (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    arg2 (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    function (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c)tbb::internal::thread_closure_2< F, X, Y >inlinestatic
    thread_closure_2(const F &f, const X &x, const Y &y) (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >inline
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00485.html b/doc/html/a00485.html index a901bd47..2b1b2545 100644 --- a/doc/html/a00485.html +++ b/doc/html/a00485.html @@ -33,40 +33,26 @@
    -
    tbb::internal::tbb_thread_v3 Member List
    +
    tbb::internal::thread_closure_0< F > Member List
    -

    This is the complete list of members for tbb::internal::tbb_thread_v3, including all inherited members.

    +

    This is the complete list of members for tbb::internal::thread_closure_0< F >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - + + + + +
    detach()tbb::internal::tbb_thread_v3
    get_id() const __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    hardware_concurrency() __TBB_NOEXCEPT(true)tbb::internal::tbb_thread_v3static
    join()tbb::internal::tbb_thread_v3
    joinable() const __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    move_v3 (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3friend
    native_handle() (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    native_handle_type typedef (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    native_handle_type typedef (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    operator= (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    operator=(tbb_thread_v3 &x) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    swap(tbb_thread_v3 &t) __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    tbb::swap (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3friend
    tbb_thread_v3(const tbb_thread_v3 &) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    tbb_thread_v3() __TBB_NOEXCEPT(true)tbb::internal::tbb_thread_v3inline
    tbb_thread_v3(F f)tbb::internal::tbb_thread_v3inlineexplicit
    tbb_thread_v3(F f, X x)tbb::internal::tbb_thread_v3inline
    tbb_thread_v3(F f, X x, Y y)tbb::internal::tbb_thread_v3inline
    ~tbb_thread_v3() (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    function (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inlinestatic
    thread_closure_0(const F &f) (defined in tbb::internal::thread_closure_0< F >)tbb::internal::thread_closure_0< F >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00486.html b/doc/html/a00486.html index ab7a4d64..701cd6db 100644 --- a/doc/html/a00486.html +++ b/doc/html/a00486.html @@ -33,33 +33,27 @@
    -
    tbb::internal::tbb_thread_v3::id Member List
    +
    tbb::internal::thread_closure_1< F, X > Member List
    -

    This is the complete list of members for tbb::internal::tbb_thread_v3::id, including all inherited members.

    +

    This is the complete list of members for tbb::internal::thread_closure_1< F, X >, including all inherited members.

    - - - - - - - - - - - - + + + + + +
    atomic_compare_and_swap (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    id() __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idinline
    operator!= (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator< (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator<< (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator<= (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator== (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator> (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    operator>= (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    tbb_hasher (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    tbb_thread_v3 (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    thread_get_id_v3 (defined in tbb::internal::tbb_thread_v3::id)tbb::internal::tbb_thread_v3::idfriend
    arg1 (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >
    function (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c)tbb::internal::thread_closure_1< F, X >inlinestatic
    thread_closure_1(const F &f, const X &x) (defined in tbb::internal::thread_closure_1< F, X >)tbb::internal::thread_closure_1< F, X >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00487.html b/doc/html/a00487.html index 7cf8655c..1314f95c 100644 --- a/doc/html/a00487.html +++ b/doc/html/a00487.html @@ -33,48 +33,28 @@
    -
    tbb::strict_ppl::concurrent_queue< T, A > Member List
    +
    tbb::internal::thread_closure_2< F, X, Y > Member List
    -

    This is the complete list of members for tbb::strict_ppl::concurrent_queue< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::internal::thread_closure_2< F, X, Y >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + +
    allocator_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    clear()tbb::strict_ppl::concurrent_queue< T, A >
    concurrent_queue(const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inlineexplicit
    concurrent_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(const concurrent_queue &src, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(concurrent_queue &&src)tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(concurrent_queue &&src, const allocator_type &a) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    const_iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
    const_reference typedeftbb::strict_ppl::concurrent_queue< T, A >
    difference_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    emplace(Arguments &&...args) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    empty() const tbb::strict_ppl::concurrent_queue< T, A >inline
    get_allocator() const tbb::strict_ppl::concurrent_queue< T, A >inline
    internal::concurrent_queue_iterator (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >friend
    iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
    push(const T &source)tbb::strict_ppl::concurrent_queue< T, A >inline
    push(T &&source) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    reference typedeftbb::strict_ppl::concurrent_queue< T, A >
    size_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    try_pop(T &result)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_begin() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_begin() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_end() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_end() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_size() const tbb::strict_ppl::concurrent_queue< T, A >inline
    value_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    ~concurrent_queue()tbb::strict_ppl::concurrent_queue< T, A >
    arg1 (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    arg2 (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    function (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >
    operator delete(void *ptr) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    operator new(size_t size) (defined in tbb::internal::thread_closure_base)tbb::internal::thread_closure_baseinline
    start_routine(void *c)tbb::internal::thread_closure_2< F, X, Y >inlinestatic
    thread_closure_2(const F &f, const X &x, const Y &y) (defined in tbb::internal::thread_closure_2< F, X, Y >)tbb::internal::thread_closure_2< F, X, Y >inline

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/a00488.html b/doc/html/a00488.html new file mode 100644 index 00000000..a4380191 --- /dev/null +++ b/doc/html/a00488.html @@ -0,0 +1,75 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::tbb_thread_v3 Member List
    +
    +
    + +

    This is the complete list of members for tbb::internal::tbb_thread_v3, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    detach()tbb::internal::tbb_thread_v3
    get_id() const __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    hardware_concurrency() __TBB_NOEXCEPT(true)tbb::internal::tbb_thread_v3static
    join()tbb::internal::tbb_thread_v3
    joinable() const __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    move_v3 (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3friend
    native_handle() (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    native_handle_type typedef (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    native_handle_type typedef (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    operator= (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    operator=(tbb_thread_v3 &x) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    swap(tbb_thread_v3 &t) __TBB_NOEXCEPT(true) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    tbb::swap (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3friend
    tbb_thread_v3(const tbb_thread_v3 &) (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3
    tbb_thread_v3() __TBB_NOEXCEPT(true)tbb::internal::tbb_thread_v3inline
    tbb_thread_v3(F f)tbb::internal::tbb_thread_v3inlineexplicit
    tbb_thread_v3(F f, X x)tbb::internal::tbb_thread_v3inline
    tbb_thread_v3(F f, X x, Y y)tbb::internal::tbb_thread_v3inline
    ~tbb_thread_v3() (defined in tbb::internal::tbb_thread_v3)tbb::internal::tbb_thread_v3inline
    +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00489.html b/doc/html/a00489.html new file mode 100644 index 00000000..44e64b85 --- /dev/null +++ b/doc/html/a00489.html @@ -0,0 +1,68 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::tbb_thread_v3::id Member List
    +
    + +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/a00490.html b/doc/html/a00490.html new file mode 100644 index 00000000..5874c643 --- /dev/null +++ b/doc/html/a00490.html @@ -0,0 +1,83 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::strict_ppl::concurrent_queue< T, A > Member List
    +
    +
    + +

    This is the complete list of members for tbb::strict_ppl::concurrent_queue< T, A >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    clear()tbb::strict_ppl::concurrent_queue< T, A >
    concurrent_queue(const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inlineexplicit
    concurrent_queue(InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(const concurrent_queue &src, const allocator_type &a=allocator_type())tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(concurrent_queue &&src)tbb::strict_ppl::concurrent_queue< T, A >inline
    concurrent_queue(concurrent_queue &&src, const allocator_type &a) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    const_iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
    const_reference typedeftbb::strict_ppl::concurrent_queue< T, A >
    difference_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    emplace(Arguments &&...args) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    empty() const tbb::strict_ppl::concurrent_queue< T, A >inline
    get_allocator() const tbb::strict_ppl::concurrent_queue< T, A >inline
    internal::concurrent_queue_iterator (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >friend
    iterator typedef (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >
    push(const T &source)tbb::strict_ppl::concurrent_queue< T, A >inline
    push(T &&source) (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    reference typedeftbb::strict_ppl::concurrent_queue< T, A >
    size_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    try_pop(T &result)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_begin() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_begin() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_end() (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_end() const (defined in tbb::strict_ppl::concurrent_queue< T, A >)tbb::strict_ppl::concurrent_queue< T, A >inline
    unsafe_size() const tbb::strict_ppl::concurrent_queue< T, A >inline
    value_type typedeftbb::strict_ppl::concurrent_queue< T, A >
    ~concurrent_queue()tbb::strict_ppl::concurrent_queue< T, A >
    +
    +

    +Copyright © 2005-2016 Intel Corporation. All Rights Reserved. +

    +Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are +registered trademarks or trademarks of Intel Corporation or its +subsidiaries in the United States and other countries. +

    +* Other names and brands may be claimed as the property of others. diff --git a/doc/html/annotated.html b/doc/html/annotated.html index 6e75e755..60775b96 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -39,227 +39,229 @@
    Here are the classes, structs, unions and interfaces with brief descriptions:
    [detail level 12345]
    - - - + + + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + + - + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    oNrmlThe namespace rml contains components of low-level memory pool interface
    |\CMemPoolPolicy
    oNtbbThe namespace tbb contains all components of the library
    oNrmlThe namespace rml contains components of low-level memory pool interface
    |\CMemPoolPolicy
    oNtbbThe namespace tbb contains all components of the library
    |oNflow
    |oNinterface5
    |oNinterface6
    |oNinterface7
    |oNinterface9
    |oNinternal
    |oNstrict_ppl
    |oCaligned_spaceBlock of space aligned sufficiently to construct an array T with N elements
    |oCatomicPrimary template for atomic
    |oCatomic< void * >Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->
    |oCblocked_rangeA range over which to iterate
    |oCblocked_range2dA 2-dimensional range that models the Range concept
    |oCblocked_range3dA 3-dimensional range that models the Range concept
    |oCcache_aligned_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCcache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCcombinableThread-local storage with optional reduction
    |oCconcurrent_bounded_queueA high-performance thread-safe blocking concurrent bounded queue
    |oCconcurrent_vectorConcurrent vector container
    |oCvector_iterator
    |oCmutexWrapper around the platform's native reader-writer lock
    |oCnull_mutexA mutex which does nothing
    |oCnull_rw_mutexA rw mutex which does nothing
    |oCparallel_do_feederClass the user supplied algorithm body uses to add new tasks
    |oCtask_group_context
    |oCpre_scan_tagUsed to indicate that the initial scan is being performed
    |oCfinal_scan_tagUsed to indicate that the final scan is being performed
    |oCparallel_whileParallel iteration over a stream, with optional addition of more work
    |oCfilterA stage in a pipeline
    |oCthread_bound_filterA stage in a pipeline served by a user thread
    |oCpipelineA processing pipeline that applies filters to items
    |oCqueuing_mutexQueuing mutex with local-only spinning
    |oCqueuing_rw_mutexQueuing reader-writer mutex with local-only spinning
    |oCrecursive_mutex
    |oCscalable_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCscalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCspin_mutexA lock that occupies a single byte
    |oCspin_rw_mutex_v3Fast, unfair, spinning reader-writer lock with backoff and writer-preference
    |oCtask_handle
    |oCtask_group
    |oCstructured_task_group
    |oCtask_scheduler_initClass delimiting the scope of task scheduler activity
    |oCtbb_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCtbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCzero_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCzero_allocator< void, Allocator >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCbad_last_allocException for concurrent containers
    |oCimproper_lockException for PPL locks
    |oCuser_abortException for user-initiated abort
    |oCmissing_waitException for missing wait on structured_task_group
    |oCinvalid_multiple_schedulingException for repeated scheduling of the same task_handle
    |oCtbb_exceptionInterface to be implemented by all exceptions TBB recognizes and propagates across the threads
    |oCcaptured_exceptionThis class is used by TBB to propagate information about unhandled exceptions into the root thread
    |oCmovable_exceptionTemplate that can be used to implement exception that transfers arbitrary ExceptionData to the root thread
    |\Ctick_countAbsolute timestamp
    |oCblocked_rangeA range over which to iterate
    |oCblocked_range2dA 2-dimensional range that models the Range concept
    |oCblocked_range3dA 3-dimensional range that models the Range concept
    |oCcache_aligned_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCcache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCcombinableThread-local storage with optional reduction
    |oCconcurrent_bounded_queueA high-performance thread-safe blocking concurrent bounded queue
    |oCconcurrent_vectorConcurrent vector container
    |oCvector_iterator
    |oCmutexWrapper around the platform's native reader-writer lock
    |oCnull_mutexA mutex which does nothing
    |oCnull_rw_mutexA rw mutex which does nothing
    |oCparallel_do_feederClass the user supplied algorithm body uses to add new tasks
    |oCtask_group_context
    |oCpre_scan_tagUsed to indicate that the initial scan is being performed
    |oCfinal_scan_tagUsed to indicate that the final scan is being performed
    |oCparallel_whileParallel iteration over a stream, with optional addition of more work
    |oCfilterA stage in a pipeline
    |oCthread_bound_filterA stage in a pipeline served by a user thread
    |oCpipelineA processing pipeline that applies filters to items
    |oCqueuing_mutexQueuing mutex with local-only spinning
    |oCqueuing_rw_mutexQueuing reader-writer mutex with local-only spinning
    |oCrecursive_mutex
    |oCscalable_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCscalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCspin_mutexA lock that occupies a single byte
    |oCspin_rw_mutex_v3Fast, unfair, spinning reader-writer lock with backoff and writer-preference
    |oCtask_handle
    |oCtask_group
    |oCstructured_task_group
    |oCtask_scheduler_initClass delimiting the scope of task scheduler activity
    |oCtbb_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCtbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCzero_allocatorMeets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    |oCzero_allocator< void, Allocator >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    |oCbad_last_allocException for concurrent containers
    |oCimproper_lockException for PPL locks
    |oCuser_abortException for user-initiated abort
    |oCmissing_waitException for missing wait on structured_task_group
    |oCinvalid_multiple_schedulingException for repeated scheduling of the same task_handle
    |oCtbb_exceptionInterface to be implemented by all exceptions TBB recognizes and propagates across the threads
    |oCcaptured_exceptionThis class is used by TBB to propagate information about unhandled exceptions into the root thread
    |oCmovable_exceptionTemplate that can be used to implement exception that transfers arbitrary ExceptionData to the root thread
    |\Ctick_countAbsolute timestamp
    \C__TBB_malloc_proxy_caller

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/classes.html b/doc/html/classes.html index 5e48dc37..c7c7354c 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -40,89 +40,87 @@
    A | B | C | D | E | F | G | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _
    - - - + + + + + + + - - - - - - - - + + + + + + + - - - + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + + + + - - - - + + + - - - + + - - - - + + + - - - - - - - - - - + + + +
      A  
    -
    concurrent_unordered_multiset (tbb::interface5)   join_node< OutputTuple, key_matching< K, KHash > > (tbb::flow::interface8)   pipeline (tbb)   split_node (tbb::flow::interface8)   
    concurrent_unordered_set (tbb::interface5)   join_node< OutputTuple, queueing > (tbb::flow::interface8)   port_ref_impl (tbb::flow::interface8)   structured_task_group (tbb)   
    concurrent_hash_map::accessor (tbb::interface5)   concurrent_unordered_set_traits (tbb::interface5)   join_node< OutputTuple, reserving > (tbb::flow::interface8)   pre_scan_tag (tbb)   successor_cache (tbb::flow::interface8::internal)   
    concurrent_hash_map::accessor_not_used (tbb::interface5)   concurrent_vector (tbb)   
      K  
    -
    priority_queue_node (tbb::flow::interface8)   
      T  
    +
    concurrent_unordered_multimap (tbb::interface5)   
      J  
    +
      P  
    +
    sequencer_node (tbb::flow::interface8)   
    concurrent_unordered_multiset (tbb::interface5)   source_node (tbb::flow::interface8)   
    concurrent_hash_map::accessor (tbb::interface5)   concurrent_unordered_set (tbb::interface5)   join_node (tbb::flow::interface8)   parallel_do_feeder (tbb)   spin_mutex (tbb)   
    concurrent_hash_map::accessor_not_used (tbb::interface5)   concurrent_unordered_set_traits (tbb::interface5)   join_node< OutputTuple, key_matching< K, KHash > > (tbb::flow::interface8)   parallel_while (tbb)   spin_rw_mutex_v3 (tbb)   
    aggregator (tbb::interface6)   concurrent_vector (tbb)   join_node< OutputTuple, queueing > (tbb::flow::interface8)   pipeline (tbb)   split_node (tbb::flow::interface8)   
    aggregator_ext (tbb::interface6)   concurrent_hash_map::const_accessor (tbb::interface5)   join_node< OutputTuple, reserving > (tbb::flow::interface8)   port_ref_impl (tbb::flow::interface8)   structured_task_group (tbb)   
    aggregator_operation (tbb::interface6)   continue_msg (tbb::flow::interface8)   
      K  
    +
    pre_scan_tag (tbb)   successor_cache (tbb::flow::interface8::internal)   
    aligned_space (tbb)   continue_node (tbb::flow::interface8)   priority_queue_node (tbb::flow::interface8)   
      T  
    aggregator (tbb::interface6)   concurrent_hash_map::const_accessor (tbb::interface5)   proxy_dependency_receiver (tbb::flow::interface8)   
    aggregator_ext (tbb::interface6)   continue_msg (tbb::flow::interface8)   key_from_policy (tbb::flow::interface8)   proxy_dependency_sender (tbb::flow::interface8)   task_arena (tbb::interface7)   
    aggregator_operation (tbb::interface6)   continue_node (tbb::flow::interface8)   key_from_policy< key_matching< Key & > > (tbb::flow::interface8)   
      Q  
    -
    task_group (tbb)   
    aligned_space (tbb)   continue_receiver (tbb::flow::interface8)   key_from_policy< key_matching< Key > > (tbb::flow::interface8)   task_group_base (tbb::internal)   
    allocate_buffer (tbb::flow::interface8)   critical_section_v4 (tbb::internal)   
      L  
    -
    queue_node (tbb::flow::interface8)   task_group_context (tbb)   
    allocate_buffer< queueing > (tbb::flow::interface8)   
      D  
    -
    queuing_mutex (tbb)   task_handle (tbb)   
    async_body (tbb::flow::interface8::internal)   limiter_node (tbb::flow::interface8)   queuing_rw_mutex (tbb)   task_handle_task (tbb::internal)   
    async_gateway (tbb::flow::interface8::internal)   default_opencl_factory (tbb::flow::interface8)   
      M  
    +
    allocate_buffer (tbb::flow::interface8)   continue_receiver (tbb::flow::interface8)   key_from_policy (tbb::flow::interface8)   proxy_dependency_receiver (tbb::flow::interface8)   
    allocate_buffer< queueing > (tbb::flow::interface8)   critical_section_v4 (tbb::internal)   key_from_policy< key_matching< Key & > > (tbb::flow::interface8)   proxy_dependency_sender (tbb::flow::interface8)   task_arena (tbb::interface7)   
    async_body (tbb::flow::interface8::internal)   
      D  
    +
    key_from_policy< key_matching< Key > > (tbb::flow::interface8)   
      Q  
    +
    task_group (tbb)   
    async_gateway (tbb::flow::interface8::internal)   
      L  
    +
    task_group_base (tbb::internal)   
    async_node (tbb::flow::interface8)   default_opencl_factory (tbb::flow::interface8)   queue_node (tbb::flow::interface8)   task_group_context (tbb)   
    atomic (tbb)   default_opencl_factory_device_filter (tbb::flow::interface8)   limiter_node (tbb::flow::interface8)   queuing_mutex (tbb)   task_handle (tbb)   
    atomic< void * > (tbb)   dependency_msg (tbb::flow::interface8)   
      M  
    +
    queuing_rw_mutex (tbb)   task_handle_task (tbb::internal)   
    task_arena::attach (tbb::interface7)   
      E  
      R  
    -
    task_scheduler_init (tbb)   
    async_node (tbb::flow::interface8)   default_opencl_factory_device_filter (tbb::flow::interface8)   task_scheduler_observer (tbb::interface6)   
    atomic (tbb)   dependency_msg (tbb::flow::interface8)   memory_pool (tbb::interface6)   reader_writer_lock (tbb::interface5)   task_scheduler_observer_v3 (tbb::internal)   
    atomic< void * > (tbb)   
      E  
    -
    memory_pool_allocator (tbb::interface6)   zero_allocator::rebind (tbb)   tbb_allocator (tbb)   
    task_scheduler_init (tbb)   
      B  
    -
    memory_pool_allocator< void, P > (tbb::interface6)   tbb_allocator< void >::rebind (tbb)   tbb_allocator< void > (tbb)   
    edge_container (tbb::flow::interface8::internal)   MemPoolPolicy (rml)   tbb_allocator::rebind (tbb)   tbb_exception (tbb)   
    bad_last_alloc (tbb)   concurrent_vector::push_back_helper::element_construction_guard (tbb)   missing_wait (tbb)   scalable_allocator< void >::rebind (tbb)   tbb_exception_ptr (tbb::internal)   
    basic_handler (tbb::interface6::internal)   enumerable_thread_specific (tbb::interface6)   movable_exception (tbb)   scalable_allocator::rebind (tbb)   tbb_thread_v3 (tbb::internal)   
    basic_operation (tbb::interface6::internal)   
      F  
    -
    multifunction_node (tbb::flow::interface8)   cache_aligned_allocator< void >::rebind (tbb)   thread_bound_filter (tbb)   
    basic_operation_base (tbb::interface6::internal)   mutex (tbb)   cache_aligned_allocator::rebind (tbb)   thread_closure_0 (tbb::internal)   
    blocked_range (tbb)   filter (tbb)   
      N  
    -
    memory_pool_allocator::rebind (tbb::interface6)   thread_closure_1 (tbb::internal)   
    blocked_range2d (tbb)   filter_t (tbb::interface6)   memory_pool_allocator< void, P >::rebind (tbb::interface6)   thread_closure_2 (tbb::internal)   
    blocked_range3d (tbb)   final_scan_tag (tbb)   concurrent_hash_map::node (tbb::interface5)   zero_allocator< void, Allocator >::rebind (tbb)   thread_closure_base (tbb::internal)   
    broadcast_cache (tbb::flow::interface8::internal)   fixed_pool (tbb::interface6)   null_mutex (tbb)   receiver (tbb::flow::interface8)   tick_count (tbb)   
    broadcast_node (tbb::flow::interface8)   flattened2d (tbb::interface6)   null_rw_mutex (tbb)   receiver< dependency_msg< T, Factory > > (tbb::flow::interface8)   async_node::try_put_functor (tbb::flow::interface8)   
    concurrent_hash_map::bucket_accessor (tbb::interface5)   flow_control (tbb::interface6)   null_type (tbb::flow::interface8)   recursive_mutex (tbb)   
      U  
    -
    buffer_node (tbb::flow::interface8)   function_node (tbb::flow::interface8)   num_arguments (tbb::flow::interface8)   round_robin_cache (tbb::flow::interface8::internal)   
    buffer_node::buffer_operation (tbb::flow::interface8)   
      G  
    -
    num_arguments< port_ref_impl< N1, N2 > > (tbb::flow::interface8)   run_and_put_task (tbb::flow::interface8)   use_element_copy_constructor (tbb::interface5::internal)   
    memory_pool (tbb::interface6)   task_scheduler_observer (tbb::interface6)   
    edge_container (tbb::flow::interface8::internal)   memory_pool_allocator (tbb::interface6)   reader_writer_lock (tbb::interface5)   task_scheduler_observer_v3 (tbb::internal)   
    bad_last_alloc (tbb)   concurrent_vector::push_back_helper::element_construction_guard (tbb)   memory_pool_allocator< void, P > (tbb::interface6)   tbb_allocator< void >::rebind (tbb)   tbb_allocator (tbb)   
    basic_handler (tbb::interface6::internal)   enumerable_thread_specific (tbb::interface6)   MemPoolPolicy (rml)   tbb_allocator::rebind (tbb)   tbb_allocator< void > (tbb)   
    basic_operation (tbb::interface6::internal)   
      F  
    +
    missing_wait (tbb)   scalable_allocator< void >::rebind (tbb)   tbb_exception (tbb)   
    basic_operation_base (tbb::interface6::internal)   movable_exception (tbb)   memory_pool_allocator< void, P >::rebind (tbb::interface6)   tbb_exception_ptr (tbb::internal)   
    blocked_range (tbb)   filter (tbb)   multifunction_node (tbb::flow::interface8)   memory_pool_allocator::rebind (tbb::interface6)   tbb_thread_v3 (tbb::internal)   
    blocked_range2d (tbb)   filter_t (tbb::interface6)   mutex (tbb)   scalable_allocator::rebind (tbb)   thread_bound_filter (tbb)   
    blocked_range3d (tbb)   final_scan_tag (tbb)   
      N  
    +
    cache_aligned_allocator::rebind (tbb)   thread_closure_0 (tbb::internal)   
    broadcast_cache (tbb::flow::interface8::internal)   fixed_pool (tbb::interface6)   zero_allocator::rebind (tbb)   thread_closure_1 (tbb::internal)   
    broadcast_node (tbb::flow::interface8)   flattened2d (tbb::interface6)   concurrent_hash_map::node (tbb::interface5)   zero_allocator< void, Allocator >::rebind (tbb)   thread_closure_2 (tbb::internal)   
    concurrent_hash_map::bucket_accessor (tbb::interface5)   flow_control (tbb::interface6)   null_mutex (tbb)   cache_aligned_allocator< void >::rebind (tbb)   thread_closure_base (tbb::internal)   
    buffer_node (tbb::flow::interface8)   function_node (tbb::flow::interface8)   null_rw_mutex (tbb)   receiver (tbb::flow::interface8)   tick_count (tbb)   
    buffer_node::buffer_operation (tbb::flow::interface8)   
      G  
    +
    null_type (tbb::flow::interface8)   receiver< dependency_msg< T, Factory > > (tbb::flow::interface8)   async_node::try_put_functor (tbb::flow::interface8)   
      C  
    -
    num_arguments< port_ref_impl< N1, N2 >(*)()> (tbb::flow::interface8)   runtime_loader (tbb::interface6)   use_element_copy_constructor< T, false > (tbb::interface5::internal)   
    global_control (tbb::interface9)   
      O  
    -
      S  
    -
    user_abort (tbb)   
    cache_aligned_allocator (tbb)   graph (tbb::flow::interface8)   
      V  
    +
    num_arguments (tbb::flow::interface8)   recursive_mutex (tbb)   
      U  
    +
    global_control (tbb::interface9)   num_arguments< port_ref_impl< N1, N2 > > (tbb::flow::interface8)   round_robin_cache (tbb::flow::interface8::internal)   
    cache_aligned_allocator (tbb)   graph (tbb::flow::interface8)   num_arguments< port_ref_impl< N1, N2 >(*)()> (tbb::flow::interface8)   run_and_put_task (tbb::flow::interface8)   use_element_copy_constructor (tbb::interface5::internal)   
    cache_aligned_allocator< void > (tbb)   graph_iterator (tbb::flow::interface8)   
      O  
    +
    runtime_loader (tbb::interface6)   use_element_copy_constructor< T, false > (tbb::interface5::internal)   
    concurrent_hash_map::call_clear_on_leave (tbb::interface5)   graph_node (tbb::flow::interface8)   
      S  
    +
    user_abort (tbb)   
    callback (tbb::flow::interface8)   
      I  
    +
    opencl_buffer (tbb::flow::interface8)   
      V  
    cache_aligned_allocator< void > (tbb)   graph_iterator (tbb::flow::interface8)   opencl_buffer (tbb::flow::interface8)   scalable_allocator (tbb)   
    concurrent_hash_map::call_clear_on_leave (tbb::interface5)   graph_node (tbb::flow::interface8)   opencl_buffer_impl (tbb::flow::interface8)   scalable_allocator< void > (tbb)   concurrent_unordered_map_traits::value_compare (tbb::interface5)   
    callback (tbb::flow::interface8)   
      I  
    -
    opencl_device (tbb::flow::interface8)   mutex::scoped_lock (tbb)   vector_iterator (tbb)   
    callback_base (tbb::flow::interface8)   opencl_device_list (tbb::flow::interface8)   critical_section_v4::scoped_lock (tbb::internal)   
      W  
    +
    callback_base (tbb::flow::interface8)   opencl_buffer_impl (tbb::flow::interface8)   scalable_allocator (tbb)   
    captured_exception (tbb)   tbb_thread_v3::id (tbb::internal)   opencl_device (tbb::flow::interface8)   scalable_allocator< void > (tbb)   concurrent_unordered_map_traits::value_compare (tbb::interface5)   
    combinable (tbb)   improper_lock (tbb)   opencl_device_list (tbb::flow::interface8)   null_mutex::scoped_lock (tbb)   vector_iterator (tbb)   
    composite_node (tbb::flow::interface8)   indexer_node (tbb::flow::interface8)   opencl_device_with_key (tbb::flow::interface8)   null_rw_mutex::scoped_lock (tbb)   
      W  
    captured_exception (tbb)   tbb_thread_v3::id (tbb::internal)   opencl_device_with_key (tbb::flow::interface8)   null_rw_mutex::scoped_lock (tbb)   
    combinable (tbb)   improper_lock (tbb)   opencl_factory (tbb::flow::interface8)   reader_writer_lock::scoped_lock (tbb::interface5)   write_once_node (tbb::flow::interface8)   
    composite_node (tbb::flow::interface8)   indexer_node (tbb::flow::interface8)   opencl_foundation (tbb::flow::interface8)   null_mutex::scoped_lock (tbb)   
      Z  
    +
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   indexer_node< T0 > (tbb::flow::interface8)   opencl_factory (tbb::flow::interface8)   spin_mutex::scoped_lock (tbb)   
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > (tbb::flow::interface8)   indexer_node< T0, T1 > (tbb::flow::interface8)   opencl_foundation (tbb::flow::interface8)   mutex::scoped_lock (tbb)   write_once_node (tbb::flow::interface8)   
    composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   indexer_node< T0, T1, T2 > (tbb::flow::interface8)   opencl_graph (tbb::flow::interface8)   recursive_mutex::scoped_lock (tbb)   
      Z  
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   indexer_node< T0 > (tbb::flow::interface8)   opencl_graph (tbb::flow::interface8)   queuing_rw_mutex::scoped_lock (tbb)   
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > (tbb::flow::interface8)   indexer_node< T0, T1 > (tbb::flow::interface8)   opencl_memory (tbb::flow::interface8)   recursive_mutex::scoped_lock (tbb)   zero_allocator (tbb)   
    composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   indexer_node< T0, T1, T2 > (tbb::flow::interface8)   opencl_node (tbb::flow::interface8)   spin_rw_mutex_v3::scoped_lock (tbb)   zero_allocator< void, Allocator > (tbb)   
    concrete_filter (tbb::interface6::internal)   indexer_node< T0, T1, T2, T3 > (tbb::flow::interface8)   opencl_node< tuple< Ports...> > (tbb::flow::interface8)   queuing_mutex::scoped_lock (tbb)   
      _  
    +
    concrete_filter (tbb::interface6::internal)   indexer_node< T0, T1, T2, T3 > (tbb::flow::interface8)   opencl_memory (tbb::flow::interface8)   queuing_rw_mutex::scoped_lock (tbb)   
    concurrent_bounded_queue (tbb)   indexer_node< T0, T1, T2, T3, T4 > (tbb::flow::interface8)   opencl_node (tbb::flow::interface8)   critical_section_v4::scoped_lock (tbb::internal)   zero_allocator (tbb)   
    concurrent_hash_map (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5 > (tbb::flow::interface8)   opencl_node< tuple< Ports...> > (tbb::flow::interface8)   reader_writer_lock::scoped_lock (tbb::interface5)   zero_allocator< void, Allocator > (tbb)   
    concurrent_lru_cache (tbb::interface6)   indexer_node< T0, T1, T2, T3, T4, T5, T6 > (tbb::flow::interface8)   opencl_node< tuple< Ports...>, JP > (tbb::flow::interface8)   spin_rw_mutex_v3::scoped_lock (tbb)   
      _  
    concurrent_bounded_queue (tbb)   indexer_node< T0, T1, T2, T3, T4 > (tbb::flow::interface8)   opencl_node< tuple< Ports...>, JP > (tbb::flow::interface8)   spin_mutex::scoped_lock (tbb)   
    concurrent_hash_map (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5 > (tbb::flow::interface8)   opencl_node< tuple< Ports...>, JP, Factory > (tbb::flow::interface8)   reader_writer_lock::scoped_lock_read (tbb::interface5)   __TBB_malloc_proxy_caller   
    concurrent_lru_cache (tbb::interface6)   indexer_node< T0, T1, T2, T3, T4, T5, T6 > (tbb::flow::interface8)   opencl_program (tbb::flow::interface8)   sender (tbb::flow::interface8)   
    concurrent_priority_queue (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > (tbb::flow::interface8)   overwrite_node (tbb::flow::interface8)   sender< dependency_msg< T, Factory > > (tbb::flow::interface8)   
    concurrent_queue (tbb::strict_ppl)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > (tbb::flow::interface8)   
      P  
    -
    sequencer_node (tbb::flow::interface8)   
    concurrent_unordered_map (tbb::interface5)   tick_count::interval_t (tbb)   source_node (tbb::flow::interface8)   
    concurrent_unordered_map_traits (tbb::interface5)   invalid_multiple_scheduling (tbb)   parallel_do_feeder (tbb)   spin_mutex (tbb)   
    concurrent_unordered_multimap (tbb::interface5)   
      J  
    -
    parallel_while (tbb)   spin_rw_mutex_v3 (tbb)   
    join_node (tbb::flow::interface8)   
    concurrent_priority_queue (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > (tbb::flow::interface8)   opencl_node< tuple< Ports...>, JP, Factory > (tbb::flow::interface8)   queuing_mutex::scoped_lock (tbb)   
    concurrent_queue (tbb::strict_ppl)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > (tbb::flow::interface8)   opencl_program (tbb::flow::interface8)   reader_writer_lock::scoped_lock_read (tbb::interface5)   __TBB_malloc_proxy_caller   
    concurrent_unordered_map (tbb::interface5)   tick_count::interval_t (tbb)   opencl_subbuffer (tbb::flow::interface8)   sender (tbb::flow::interface8)   
    concurrent_unordered_map_traits (tbb::interface5)   invalid_multiple_scheduling (tbb)   overwrite_node (tbb::flow::interface8)   sender< dependency_msg< T, Factory > > (tbb::flow::interface8)   
    A | B | C | D | E | F | G | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html b/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html index 7a81a723..bdfbcaa0 100644 --- a/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html +++ b/doc/html/dir_525f2cc589630bacbdc3bb450847427e.html @@ -43,7 +43,7 @@ Directories
    - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +

    Files

    file  aggregator.h
    file  aggregator.h
     
    file  aligned_space.h
    file  aligned_space.h
     
    file  atomic.h
    file  atomic.h
     
    file  blocked_range.h
    file  blocked_range.h
     
    file  blocked_range2d.h
    file  blocked_range2d.h
     
    file  blocked_range3d.h
    file  blocked_range3d.h
     
    file  cache_aligned_allocator.h
    file  cache_aligned_allocator.h
     
    file  combinable.h
    file  combinable.h
     
    file  concurrent_hash_map.h
    file  concurrent_hash_map.h
     
    file  concurrent_lru_cache.h
    file  concurrent_lru_cache.h
     
    file  concurrent_priority_queue.h
    file  concurrent_priority_queue.h
     
    file  concurrent_queue.h
    file  concurrent_queue.h
     
    file  concurrent_unordered_map.h
    file  concurrent_unordered_map.h
     
    file  concurrent_unordered_set.h
    file  concurrent_unordered_set.h
     
    file  concurrent_vector.h
    file  concurrent_vector.h
     
    file  critical_section.h
    file  critical_section.h
     
    file  enumerable_thread_specific.h
    file  enumerable_thread_specific.h
     
    file  flow_graph.h
     The graph related classes and functions.
    file  flow_graph.h
     The graph related classes and functions.
     
    file  flow_graph_opencl_node.h
    file  flow_graph_opencl_node.h
     
    file  global_control.h
    file  global_control.h
     
    file  memory_pool.h
    file  memory_pool.h
     
    file  mutex.h
    file  mutex.h
     
    file  null_mutex.h
    file  null_mutex.h
     
    file  null_rw_mutex.h
    file  null_rw_mutex.h
     
    file  parallel_do.h
    file  parallel_do.h
     
    file  parallel_for.h
    file  parallel_for.h
     
    file  parallel_for_each.h
    file  parallel_for_each.h
     
    file  parallel_invoke.h
    file  parallel_invoke.h
     
    file  parallel_reduce.h
    file  parallel_reduce.h
     
    file  parallel_scan.h
    file  parallel_scan.h
     
    file  parallel_sort.h
    file  parallel_sort.h
     
    file  parallel_while.h
    file  parallel_while.h
     
    file  partitioner.h
    file  partitioner.h
     
    file  pipeline.h
    file  pipeline.h
     
    file  queuing_mutex.h
    file  queuing_mutex.h
     
    file  queuing_rw_mutex.h
    file  queuing_rw_mutex.h
     
    file  reader_writer_lock.h
    file  reader_writer_lock.h
     
    file  recursive_mutex.h
    file  recursive_mutex.h
     
    file  runtime_loader.h
    file  runtime_loader.h
     
    file  scalable_allocator.h
    file  scalable_allocator.h
     
    file  spin_mutex.h
    file  spin_mutex.h
     
    file  spin_rw_mutex.h
    file  spin_rw_mutex.h
     
    file  task.h
    file  task.h
     
    file  task_arena.h
    file  task_arena.h
     
    file  task_group.h
    file  task_group.h
     
    file  task_scheduler_init.h
    file  task_scheduler_init.h
     
    file  task_scheduler_observer.h
    file  task_scheduler_observer.h
     
    file  tbb.h
    file  tbb.h
     
    file  tbb_allocator.h
    file  tbb_allocator.h
     
    file  tbb_config.h
    file  tbb_config.h
     
    file  tbb_exception.h
    file  tbb_exception.h
     
    file  tbb_machine.h
    file  tbb_machine.h
     
    file  tbb_profiling.h
    file  tbb_profiling.h
     
    file  tbb_stddef.h
    file  tbb_stddef.h
     
    file  tbb_thread.h
    file  tbb_thread.h
     
    file  tbbmalloc_proxy.h
    file  tbbmalloc_proxy.h
     
    file  tick_count.h
    file  tick_count.h
     

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html b/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html index b2e1fe0d..b9d30e1c 100644 --- a/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html +++ b/doc/html/dir_b9976680b2be72d2d0b8fca1c31202a2.html @@ -43,7 +43,7 @@ Directories
    - - - + + +
    o*flow_graph.hThe graph related classes and functions
    o*memory_pool.h
    \*scalable_allocator.h
    o*flow_graph.hThe graph related classes and functions
    o*memory_pool.h
    \*scalable_allocator.h

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/functions.html b/doc/html/functions.html index 3d9ae901..08281f88 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -75,46 +75,46 @@

    - a -


    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html index 3af043bc..29cb7a1b 100644 --- a/doc/html/functions_0x62.html +++ b/doc/html/functions_0x62.html @@ -75,36 +75,36 @@

    - b -


    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html index 25064b2d..7911ebd5 100644 --- a/doc/html/functions_0x63.html +++ b/doc/html/functions_0x63.html @@ -75,96 +75,96 @@

    - c -


    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html index 77266444..d966c5bf 100644 --- a/doc/html/functions_0x64.html +++ b/doc/html/functions_0x64.html @@ -75,58 +75,52 @@

    - d -


    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html index c28155ba..88de4948 100644 --- a/doc/html/functions_0x65.html +++ b/doc/html/functions_0x65.html @@ -75,84 +75,84 @@

    - e -

  • Press <ctrl-F5> to build and run the example.
  • -
  • If you copied an example to another place separately from libraries you need to +
  • If you copied an example to another place separately from libraries you need to set %TBBROOT% variable pointing to <installdir> folder.
  • @@ -87,11 +89,11 @@ Perform the following steps: Perform the following steps:
    1. Open a shell window. For Windows* systems, make sure this shell window has the proper environment - defined for use with Microsoft* Visual Studio* (2005, 2008, 2010 or 2012); such a shell can be invoked + defined for use with Microsoft* Visual Studio* (2010, 2012, 2013 or 2015); such a shell can be invoked from the Start menu, under Visual Studio, Visual Studio Tools, Visual Studio Command Prompt.
    2. Set up the environment in this shell window for use with Intel TBB.
      See below for how to set up the environment for Windows*, Linux* or OS X* systems. -
    3. Unless you installed Intel TBB yourself, you may not have write permissions to the directory +
    4. Unless you installed Intel TBB yourself, you may not have write permissions to the directory containing the example. In this case, make a copy of the example, and use the copy for the following steps.
    5. In the shell window, navigate to the directory for the example (or to the directory for the copy of the example if you made one in the previous step). @@ -117,6 +119,43 @@ Perform the following steps:
    +

    To build by using a Eclipse* IDE project (Windows* systems only):

    +Perform the following steps: +
      +
    1. Launch Eclipse* IDE. Create a new Eclipse* workspace located in the Intel TBB root directory.
    2. +
    3. Perform the following steps to open a project you wish to build and run: +
        +
      1. Go to the "File -> Import" dialog and choose "Android -> Existing Android Code Into Workspace".
      2. +
      3. Fill in the "Root directory" field with the project folder path. +
        Note: To be built and run correctly, Intel TBB example project for Eclipse* IDE has to be located in %TBBROOT%\examples\<feature_name>\<example_name>\android folder.
      4. +
      5. Make sure the "Copy projects into workspace" option is unchecked.
      6. +
      7. Click "Finish".
      8. +
      +
    4. +
    5. Press <Ctrl-B> or use "Project -> Build All" or "Project -> Build Project" to build the example. +
      Note: Do not forget to set the "NDK location" in "Window -> Preferences -> Android -> NDK".
    6. +
    7. Use "Run -> Run Configurations" to create a new deployment configuration for your project. Choose "Android Application" configuration type and "Always prompt to pick device" target selection mode.
    8. +
    9. To run the example, press <Ctrl-F11> or use "Run -> Run" and select any compatible Android device.
    10. +
    + +

    To build by using a Android* Studio* project (Windows* systems only):

    +Perform the following steps: +
      +
    1. Launch Android* Studio* and open a project you wish to build and run by using one of the following methods: +
        +
      • In the "Welcome to Android Studio" window choose "Open an existing Android* Studio* Project" and navigate to the project folder;
      • +
      • In the IDE window use "File -> Open" dialog to navigate to and open the project.
      • +
      + Note: To be built and run correctly, Intel TBB example project for Android* Studio* has to be located in %TBBROOT%\examples\<feature_name>\<example_name>\android_as folder; +
      Also note that source files for Intel TBB example project for Android* Studio* are located in %TBBROOT%\examples\<feature_name>\<example_name>\android folder. +
    2. +
    3. Use "Tools -> Android -> Sync Project with Gradle Files" to synchronize your project with Gradle* build scripts. +
    4. Press <Shift-F9>, or use "Build -> Make project" to build the example. +
    5. Start any compatible Android* Virtual Device or plug in a real Android* device with the appropriate architecture. +
    6. Press <Shift-F10>, or use "Run -> Run 'app'" to run the example. +
    7. +
    +

    To set up the environment (Windows* systems):

    It is strongly recommended that the environment be set up when installing Intel TBB. Do this by selecting the appropriate check-box during the install. However, if the environment is not set up @@ -127,36 +166,40 @@ it may be set up, for a given type of shell window, by using one of the followin
    <installdir>\bin\tbbvars.bat (arch) (vs)
         where (arch) must be is one of the following
    -       ia32         : Set up for IA-32  architecture
    -       intel64      : Set up for Intel® 64  architecture
    -   (vs) should be one of the following
    -       vs2010      : Set to use with Microsoft Visual Studio 2010 runtime DLLs
    -       vs2012      : Set to use with Microsoft Visual Studio 2012 runtime DLLs
    -       vs2013      : Set to use with Microsoft Visual Studio 2013 runtime DLLs
    -       all         : Set to use TBB statically linked with Microsoft Visual C++ runtime
    -   if (vs) is not set TBB statically linked with Microsoft Visual C++ runtime will be used.
    +        ia32         : Set up for IA-32  architecture
    +        intel64      : Set up for Intel® 64  architecture
    +    (vs) should be one of the following
    +        vs2010       : Set to use with Microsoft Visual Studio 2010 runtime DLLs
    +        vs2012       : Set to use with Microsoft Visual Studio 2012 runtime DLLs
    +        vs2013       : Set to use with Microsoft Visual Studio 2013 runtime DLLs
    +        vs2015       : Set to use with Microsoft Visual Studio 2015 runtime DLLs
    +        all          : Set to use TBB statically linked with Microsoft Visual C++ runtime
    +    if (vs) is not set TBB statically linked with Microsoft Visual C++ runtime will be used.
     

    To set up the environment (Linux* or OS X* systems):

    The environment may be set up, for a given type of shell window, by using one of the following commands:
    -
    For sh, bash, ksh (or compatibles): -
    . <installdir>/bin/tbbvars.sh (arch) +
    For sh, bash, ksh, dash (or compatibles): +
    . <installdir>/bin/tbbvars.sh (arch) [platform [TBBROOT_detection_mode]]
    For csh (or compatibles): -
    source <installdir>/bin/tbbvars.csh (arch) +
    source <installdir>/bin/tbbvars.csh (arch) [platform [TBBROOT_detection_mode]]
    Notes:
    -
  • Choose one of {ia32,intel64} depending on the architecture to be used. +
  • (arch) argument represents target architecture. Its possible values are 'ia32' or 'intel64'. +
  • [platform] argument represents target platform. Its possible values are 'linux' or 'android'. +
  • [TBBROOT_detection_mode] argument represents TBBROOT path detection method. Its only possible value is 'auto_tbbroot'. In this case the environment variable TBBROOT is detected automatically by using the tbbvars script directory path.
  • Environment setup need only be performed once per shell window to be used.
  • Always source tbbvars.sh or tbbvars.csh rather than executing them directly. +
  • If the arguments to the sourced script are ignored (consult docs for your shell) the alternative way to specify target is environment variables COMPILERVARS_ARCHITECTURE to pass to the script and COMPILERVARS_PLATFORM to pass .

  • Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_do/index.html b/examples/parallel_do/index.html index ef1c3b54..f1179e1a 100644 --- a/examples/parallel_do/index.html +++ b/examples/parallel_do/index.html @@ -13,7 +13,7 @@ This directory has examples of the template parallel_do.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_do/parallel_preorder/Graph.cpp b/examples/parallel_do/parallel_preorder/Graph.cpp index 8729a1c3..35c6955c 100644 --- a/examples/parallel_do/parallel_preorder/Graph.cpp +++ b/examples/parallel_do/parallel_preorder/Graph.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_do/parallel_preorder/Graph.h b/examples/parallel_do/parallel_preorder/Graph.h index 1369c333..d9b38551 100644 --- a/examples/parallel_do/parallel_preorder/Graph.h +++ b/examples/parallel_do/parallel_preorder/Graph.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_do/parallel_preorder/Makefile b/examples/parallel_do/parallel_preorder/Makefile index b76ece9a..b5142969 100644 --- a/examples/parallel_do/parallel_preorder/Makefile +++ b/examples/parallel_do/parallel_preorder/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -35,6 +35,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/parallel_do/parallel_preorder/Makefile.windows b/examples/parallel_do/parallel_preorder/Makefile.windows index e0cb7ab4..a038368b 100644 --- a/examples/parallel_do/parallel_preorder/Makefile.windows +++ b/examples/parallel_do/parallel_preorder/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_do/parallel_preorder/Matrix.h b/examples/parallel_do/parallel_preorder/Matrix.h index 9576512a..8538e9b3 100644 --- a/examples/parallel_do/parallel_preorder/Matrix.h +++ b/examples/parallel_do/parallel_preorder/Matrix.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_do/parallel_preorder/index.html b/examples/parallel_do/parallel_preorder/index.html index e94f16f6..ee849878 100644 --- a/examples/parallel_do/parallel_preorder/index.html +++ b/examples/parallel_do/parallel_preorder/index.html @@ -88,7 +88,7 @@ General build directions can be found here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_do/parallel_preorder/main.cpp b/examples/parallel_do/parallel_preorder/main.cpp index 0fe20b28..9fe983dd 100644 --- a/examples/parallel_do/parallel_preorder/main.cpp +++ b/examples/parallel_do/parallel_preorder/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_do/parallel_preorder/parallel_preorder.cpp b/examples/parallel_do/parallel_preorder/parallel_preorder.cpp index 197e691f..edeb3d78 100644 --- a/examples/parallel_do/parallel_preorder/parallel_preorder.cpp +++ b/examples/parallel_do/parallel_preorder/parallel_preorder.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/Makefile b/examples/parallel_for/game_of_life/Makefile index df52391f..7cc387a3 100644 --- a/examples/parallel_for/game_of_life/Makefile +++ b/examples/parallel_for/game_of_life/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,6 +32,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/parallel_for/game_of_life/Makefile.windows b/examples/parallel_for/game_of_life/Makefile.windows index d22cb6fd..431f5a67 100644 --- a/examples/parallel_for/game_of_life/Makefile.windows +++ b/examples/parallel_for/game_of_life/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/index.html b/examples/parallel_for/game_of_life/index.html index 7fb36bdd..33cb733e 100644 --- a/examples/parallel_for/game_of_life/index.html +++ b/examples/parallel_for/game_of_life/index.html @@ -43,7 +43,7 @@ For Windows* systems, Microsoft* Visual Studio* projects are provided for each o
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp b/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp index 7f3c9606..beb99f7a 100644 --- a/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp +++ b/examples/parallel_for/game_of_life/src/AssemblyInfo.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Board.h b/examples/parallel_for/game_of_life/src/Board.h index aff6b562..4d2c19f2 100644 --- a/examples/parallel_for/game_of_life/src/Board.h +++ b/examples/parallel_for/game_of_life/src/Board.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Evolution.cpp b/examples/parallel_for/game_of_life/src/Evolution.cpp index 603dceae..1e3b2c18 100644 --- a/examples/parallel_for/game_of_life/src/Evolution.cpp +++ b/examples/parallel_for/game_of_life/src/Evolution.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Evolution.h b/examples/parallel_for/game_of_life/src/Evolution.h index 99280b8d..d03cc163 100644 --- a/examples/parallel_for/game_of_life/src/Evolution.h +++ b/examples/parallel_for/game_of_life/src/Evolution.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Form1.h b/examples/parallel_for/game_of_life/src/Form1.h index 976b0533..4add8dba 100644 --- a/examples/parallel_for/game_of_life/src/Form1.h +++ b/examples/parallel_for/game_of_life/src/Form1.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Game_of_life.cpp b/examples/parallel_for/game_of_life/src/Game_of_life.cpp index 80b86ed8..296f5771 100644 --- a/examples/parallel_for/game_of_life/src/Game_of_life.cpp +++ b/examples/parallel_for/game_of_life/src/Game_of_life.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/game_of_life/src/Update_state.cpp b/examples/parallel_for/game_of_life/src/Update_state.cpp index e6405671..9b10e15c 100644 --- a/examples/parallel_for/game_of_life/src/Update_state.cpp +++ b/examples/parallel_for/game_of_life/src/Update_state.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/index.html b/examples/parallel_for/index.html index 8df0cd14..ee842ddd 100644 --- a/examples/parallel_for/index.html +++ b/examples/parallel_for/index.html @@ -19,7 +19,7 @@ This directory has examples of the template parallel_for.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_for/polygon_overlay/Makefile b/examples/parallel_for/polygon_overlay/Makefile index 76ada47d..549a723b 100644 --- a/examples/parallel_for/polygon_overlay/Makefile +++ b/examples/parallel_for/polygon_overlay/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -38,6 +38,8 @@ SRCFILES = ../../common/gui/$(UI)video.cpp pover_video.cpp polymain.cpp polyover ifeq ($(shell uname), Linux) LIBS+= -lrt +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test @@ -45,7 +47,7 @@ all: release test resources: ifeq ($(UI),mac) mkdir -p $(APPRES)/en.lproj $(NAME).app/Contents/MacOS - cp ../../common/gui/xcode/tbbExample/Info.plist $(NAME).app/Contents + cp ../../common/gui/xcode/tbbExample/tbbExample-Info.plist $(NAME).app/Contents/Info.plist cp ../../common/gui/xcode/tbbExample/PkgInfo $(NAME).app/Contents cp ../../common/gui/xcode/tbbExample/en.lproj/* $(APPRES)/en.lproj endif # OS X* diff --git a/examples/parallel_for/polygon_overlay/Makefile.windows b/examples/parallel_for/polygon_overlay/Makefile.windows index 972d9c1f..a77f4624 100644 --- a/examples/parallel_for/polygon_overlay/Makefile.windows +++ b/examples/parallel_for/polygon_overlay/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/index.html b/examples/parallel_for/polygon_overlay/index.html index 262eaa10..c1b2b665 100644 --- a/examples/parallel_for/polygon_overlay/index.html +++ b/examples/parallel_for/polygon_overlay/index.html @@ -111,7 +111,7 @@ named pover.exe. To run these executables directly, use one or more of the foll
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_for/polygon_overlay/polymain.cpp b/examples/parallel_for/polygon_overlay/polymain.cpp index 60f8ec44..75a9f624 100644 --- a/examples/parallel_for/polygon_overlay/polymain.cpp +++ b/examples/parallel_for/polygon_overlay/polymain.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/polymain.h b/examples/parallel_for/polygon_overlay/polymain.h index 86e4b50b..aad9285a 100644 --- a/examples/parallel_for/polygon_overlay/polymain.h +++ b/examples/parallel_for/polygon_overlay/polymain.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/polyover.cpp b/examples/parallel_for/polygon_overlay/polyover.cpp index 8f9c6dd7..71232ad8 100644 --- a/examples/parallel_for/polygon_overlay/polyover.cpp +++ b/examples/parallel_for/polygon_overlay/polyover.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/polyover.h b/examples/parallel_for/polygon_overlay/polyover.h index 477f141e..12feba71 100644 --- a/examples/parallel_for/polygon_overlay/polyover.h +++ b/examples/parallel_for/polygon_overlay/polyover.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/pover_global.h b/examples/parallel_for/polygon_overlay/pover_global.h index bbf30ffc..ad72e739 100644 --- a/examples/parallel_for/polygon_overlay/pover_global.h +++ b/examples/parallel_for/polygon_overlay/pover_global.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/pover_video.cpp b/examples/parallel_for/polygon_overlay/pover_video.cpp index fb1d2050..d306f713 100644 --- a/examples/parallel_for/polygon_overlay/pover_video.cpp +++ b/examples/parallel_for/polygon_overlay/pover_video.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/pover_video.h b/examples/parallel_for/polygon_overlay/pover_video.h index 7906359f..587d4be0 100644 --- a/examples/parallel_for/polygon_overlay/pover_video.h +++ b/examples/parallel_for/polygon_overlay/pover_video.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/rpolygon.h b/examples/parallel_for/polygon_overlay/rpolygon.h index f34ab7d1..2d62c211 100644 --- a/examples/parallel_for/polygon_overlay/rpolygon.h +++ b/examples/parallel_for/polygon_overlay/rpolygon.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj index 4ada9996..1b4eca95 100644 --- a/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj +++ b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 84011603152CB4AD00B07E4D /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */; }; - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; @@ -21,11 +19,23 @@ 84B8DAAE152CB05200D59B95 /* pover_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA9152CB05200D59B95 /* pover_video.cpp */; }; 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; + D31F32621C11DEE000A77D54 /* polymain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA4152CB05200D59B95 /* polymain.cpp */; }; + D31F32631C11DEE300A77D54 /* polyover.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA6152CB05200D59B95 /* polyover.cpp */; }; + D31F32641C11DEE700A77D54 /* pover_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DAA9152CB05200D59B95 /* pover_video.cpp */; }; + D31F32651C11DEEC00A77D54 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; + D31F32661C11DEF000A77D54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; + D31F32671C11DEF300A77D54 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; + D31F32681C11DEF600A77D54 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; + D31F326B1C11DF6000A77D54 /* iOS.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D31F32691C11DF1600A77D54 /* iOS.storyboard */; }; + D31F32881C12DFFA00A77D54 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F326C1C11DF7C00A77D54 /* libtbb.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F32891C12E00100A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F326D1C11DF7C00A77D54 /* libtbbmalloc.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F328A1C12E07100A77D54 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32821C12DFDD00A77D54 /* libtbb.dylib */; }; + D31F328B1C12E07100A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32831C12DFDD00A77D54 /* libtbbmalloc.dylib */; }; + D31F328C1C12E08200A77D54 /* libtbb.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32821C12DFDD00A77D54 /* libtbb.dylib */; }; + D31F328D1C12E08900A77D54 /* libtbbmalloc.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32831C12DFDD00A77D54 /* libtbbmalloc.dylib */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = ""; }; - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; @@ -49,6 +59,12 @@ 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + D31F324B1C11DEC100A77D54 /* tbbExample.ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.ios.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D31F32691C11DF1600A77D54 /* iOS.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = iOS.storyboard; path = ../iOS.storyboard; sourceTree = ""; }; + D31F326C1C11DF7C00A77D54 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; + D31F326D1C11DF7C00A77D54 /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = ""; }; + D31F32821C12DFDD00A77D54 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/ios/libtbb.dylib; sourceTree = ""; }; + D31F32831C12DFDD00A77D54 /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/ios/libtbbmalloc.dylib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,9 +73,18 @@ buildActionMask = 2147483647; files = ( 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, + D31F32891C12E00100A77D54 /* libtbbmalloc.dylib in Frameworks */, 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, - 84011603152CB4AD00B07E4D /* libtbbmalloc.dylib in Frameworks */, + D31F32881C12DFFA00A77D54 /* libtbb.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D31F32481C11DEC100A77D54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F328A1C12E07100A77D54 /* libtbb.dylib in Frameworks */, + D31F328B1C12E07100A77D54 /* libtbbmalloc.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -86,6 +111,7 @@ 84B8DA7B152CA97B00D59B95 /* Resources */ = { isa = PBXGroup; children = ( + D31F32691C11DF1600A77D54 /* iOS.storyboard */, 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, ); @@ -120,6 +146,7 @@ isa = PBXGroup; children = ( 84D017511527431F0008A4E0 /* tbbExample.app */, + D31F324B1C11DEC100A77D54 /* tbbExample.ios.app */, ); name = Products; sourceTree = ""; @@ -127,6 +154,10 @@ 84D017541527431F0008A4E0 /* Frameworks */ = { isa = PBXGroup; children = ( + D31F326C1C11DF7C00A77D54 /* libtbb.dylib */, + D31F326D1C11DF7C00A77D54 /* libtbbmalloc.dylib */, + D31F32821C12DFDD00A77D54 /* libtbb.dylib */, + D31F32831C12DFDD00A77D54 /* libtbbmalloc.dylib */, 84D01775152744BD0008A4E0 /* OpenGL.framework */, 84D017551527431F0008A4E0 /* Cocoa.framework */, 84D017571527431F0008A4E0 /* Other Frameworks */, @@ -137,8 +168,6 @@ 84D017571527431F0008A4E0 /* Other Frameworks */ = { isa = PBXGroup; children = ( - 84011602152CB4AD00B07E4D /* libtbbmalloc.dylib */, - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, 84D017581527431F0008A4E0 /* AppKit.framework */, 84D017591527431F0008A4E0 /* CoreData.framework */, 84D0175A1527431F0008A4E0 /* Foundation.framework */, @@ -166,6 +195,23 @@ productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; productType = "com.apple.product-type.application"; }; + D31F324A1C11DEC100A77D54 /* tbbExample.ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = D31F325F1C11DEC100A77D54 /* Build configuration list for PBXNativeTarget "tbbExample.ios" */; + buildPhases = ( + D31F32471C11DEC100A77D54 /* Sources */, + D31F32481C11DEC100A77D54 /* Frameworks */, + D31F32491C11DEC100A77D54 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tbbExample.ios; + productName = tbbExample.ios; + productReference = D31F324B1C11DEC100A77D54 /* tbbExample.ios.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -173,7 +219,13 @@ isa = PBXProject; attributes = { CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0710; + TargetAttributes = { + D31F324A1C11DEC100A77D54 = { + CreatedOnToolsVersion = 7.1.1; + DevelopmentTeam = 7J8M3RM94C; + }; + }; }; buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "polygon_overlay" */; compatibilityVersion = "Xcode 3.2"; @@ -181,6 +233,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 84D017461527431F0008A4E0; productRefGroup = 84D017521527431F0008A4E0 /* Products */; @@ -188,6 +241,7 @@ projectRoot = ""; targets = ( 84D017501527431F0008A4E0 /* tbbExample */, + D31F324A1C11DEC100A77D54 /* tbbExample.ios */, ); }; /* End PBXProject section */ @@ -203,6 +257,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31F32491C11DEC100A77D54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F328D1C12E08900A77D54 /* libtbbmalloc.dylib in Resources */, + D31F328C1C12E08200A77D54 /* libtbb.dylib in Resources */, + D31F326B1C11DF6000A77D54 /* iOS.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -220,6 +284,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31F32471C11DEC100A77D54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F32641C11DEE700A77D54 /* pover_video.cpp in Sources */, + D31F32631C11DEE300A77D54 /* polyover.cpp in Sources */, + D31F32651C11DEEC00A77D54 /* macvideo.cpp in Sources */, + D31F32681C11DEF600A77D54 /* tbbAppDelegate.m in Sources */, + D31F32621C11DEE000A77D54 /* polymain.cpp in Sources */, + D31F32661C11DEF000A77D54 /* main.m in Sources */, + D31F32671C11DEF300A77D54 /* OpenGLView.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -246,12 +324,21 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -261,9 +348,10 @@ GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -273,18 +361,27 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; SDKROOT = macosx; }; name = Release; @@ -293,6 +390,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; + COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -311,6 +410,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; + COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -328,6 +429,68 @@ }; name = Release; }; + D31F32601C11DEC100A77D54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "__TBB_IOS=1", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + D31F32611C11DEC100A77D54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + GCC_PREPROCESSOR_DEFINITIONS = "__TBB_IOS=1"; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 1; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -349,6 +512,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D31F325F1C11DEC100A77D54 /* Build configuration list for PBXNativeTarget "tbbExample.ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D31F32601C11DEC100A77D54 /* Debug */, + D31F32611C11DEC100A77D54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 84D017481527431F0008A4E0 /* Project object */; diff --git a/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme new file mode 100644 index 00000000..5516b613 --- /dev/null +++ b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme index 37d4ac6b..5c1312f4 100644 --- a/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme +++ b/examples/parallel_for/polygon_overlay/xcode/polygon_overlay.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme @@ -1,5 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -37,18 +38,22 @@ ReferencedContainer = "container:polygon_overlay.xcodeproj"> + + - + - + Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_for/seismic/main.cpp b/examples/parallel_for/seismic/main.cpp index f776a6df..fe032411 100644 --- a/examples/parallel_for/seismic/main.cpp +++ b/examples/parallel_for/seismic/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/seismic/seismic_video.cpp b/examples/parallel_for/seismic/seismic_video.cpp index 50c978f9..d22c0bc1 100644 --- a/examples/parallel_for/seismic/seismic_video.cpp +++ b/examples/parallel_for/seismic/seismic_video.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/seismic/seismic_video.h b/examples/parallel_for/seismic/seismic_video.h index 4197cd71..68499766 100644 --- a/examples/parallel_for/seismic/seismic_video.h +++ b/examples/parallel_for/seismic/seismic_video.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/seismic/universe.cpp b/examples/parallel_for/seismic/universe.cpp index dc5e27ac..e08b5f06 100644 --- a/examples/parallel_for/seismic/universe.cpp +++ b/examples/parallel_for/seismic/universe.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/seismic/universe.h b/examples/parallel_for/seismic/universe.h index ff1a79ac..3a8ec3fa 100644 --- a/examples/parallel_for/seismic/universe.h +++ b/examples/parallel_for/seismic/universe.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj index ff394654..c0ba5eb9 100644 --- a/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj +++ b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/project.pbxproj @@ -7,8 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; - 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; + 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; 84B8DA7A152CA90100D59B95 /* (null) in Resources */ = {isa = PBXBuildFile; }; @@ -17,14 +16,29 @@ 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; }; 84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */; }; 84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA85152CA99C00D59B95 /* universe.cpp */; }; - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; + D31F32771C12DEA300A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D3BD96991C0DDB8700163D8B /* libtbbmalloc.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F327E1C12DF3D00A77D54 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32781C12DEE000A77D54 /* libtbb.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F327F1C12DF3D00A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32791C12DEE000A77D54 /* libtbbmalloc.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F32801C12DF5200A77D54 /* libtbb.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32781C12DEE000A77D54 /* libtbb.dylib */; }; + D31F32811C12DF5900A77D54 /* libtbbmalloc.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32791C12DEE000A77D54 /* libtbbmalloc.dylib */; }; + D3BD96921C0DD55E00163D8B /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; }; + D3BD96931C0DD56900163D8B /* seismic_video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */; }; + D3BD96941C0DD57600163D8B /* universe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA85152CA99C00D59B95 /* universe.cpp */; }; + D3BD96951C0DD59200163D8B /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; + D3BD96961C0DD5A000163D8B /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; + D3BD96971C0DD5A900163D8B /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; + D3BD96A31C0DE2BB00163D8B /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; + D3BD96A61C0DE3DE00163D8B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D3BD96A51C0DE3DE00163D8B /* main.m */; }; + D3BD96AB1C0E08E500163D8B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D3BD96A51C0DE3DE00163D8B /* main.m */; }; + D3BD96B31C0E0AFE00163D8B /* tbbExample-Info.ios.plist in Resources */ = {isa = PBXBuildFile; fileRef = D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */; }; + D3BD96B51C0E0B2200163D8B /* tbbExample-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */; }; + D3BD96B81C0E11CE00163D8B /* iOS.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D3BD96B61C0E11C600163D8B /* iOS.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 84B8DA13152C9AC600D59B95 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; - 84B8DA6F152CA90100D59B95 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; 84B8DA70152CA90100D59B95 /* OpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenGLView.h; path = ../../../common/gui/xcode/tbbExample/OpenGLView.h; sourceTree = ""; }; 84B8DA71152CA90100D59B95 /* OpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OpenGLView.m; path = ../../../common/gui/xcode/tbbExample/OpenGLView.m; sourceTree = ""; }; 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tbbAppDelegate.h; path = ../../../common/gui/xcode/tbbExample/tbbAppDelegate.h; sourceTree = ""; }; @@ -44,6 +58,14 @@ 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + D31F32781C12DEE000A77D54 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/ios/libtbb.dylib; sourceTree = ""; }; + D31F32791C12DEE000A77D54 /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/ios/libtbbmalloc.dylib; sourceTree = ""; }; + D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "tbbExample-Info.ios.plist"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; sourceTree = ""; }; + D3BD96991C0DDB8700163D8B /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = ""; }; + D3BD96A51C0DE3DE00163D8B /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../../../common/gui/xcode/tbbExample/main.m; sourceTree = ""; }; + D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "tbbExample-Info.plist"; path = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; sourceTree = ""; }; + D3BD96B61C0E11C600163D8B /* iOS.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = iOS.storyboard; path = ../iOS.storyboard; sourceTree = ""; }; + D3BD96BB1C0E19E700163D8B /* tbbExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,29 +76,40 @@ 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, + D31F32771C12DEA300A77D54 /* libtbbmalloc.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D3BD96571C0DD00400163D8B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F327E1C12DF3D00A77D54 /* libtbb.dylib in Frameworks */, + D31F327F1C12DF3D00A77D54 /* libtbbmalloc.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 84B8DA6C152CA8D900D59B95 /* tbbExample */ = { + 84B8DA6C152CA8D900D59B95 /* tbbExample Sources */ = { isa = PBXGroup; children = ( - 84B8DA98152CAD8600D59B95 /* Gui layer */, 84B8DA7B152CA97B00D59B95 /* Resources */, 84B8DA82152CA99C00D59B95 /* main.cpp */, + D3BD96A51C0DE3DE00163D8B /* main.m */, 84B8DA83152CA99C00D59B95 /* seismic_video.cpp */, 84B8DA84152CA99C00D59B95 /* seismic_video.h */, 84B8DA85152CA99C00D59B95 /* universe.cpp */, 84B8DA86152CA99C00D59B95 /* universe.h */, ); - name = tbbExample; + name = "tbbExample Sources"; sourceTree = ""; }; 84B8DA7B152CA97B00D59B95 /* Resources */ = { isa = PBXGroup; children = ( + D3BD96B61C0E11C600163D8B /* iOS.storyboard */, 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, ); @@ -88,7 +121,6 @@ isa = PBXGroup; children = ( 84B8DA99152CADF400D59B95 /* macvideo.cpp */, - 84B8DA6F152CA90100D59B95 /* main.m */, 84B8DA70152CA90100D59B95 /* OpenGLView.h */, 84B8DA71152CA90100D59B95 /* OpenGLView.m */, 84B8DA72152CA90100D59B95 /* tbbAppDelegate.h */, @@ -101,7 +133,10 @@ 84D017461527431F0008A4E0 = { isa = PBXGroup; children = ( - 84B8DA6C152CA8D900D59B95 /* tbbExample */, + D3BD96B41C0E0B2200163D8B /* tbbExample-Info.plist */, + D3BD966D1C0DD00400163D8B /* tbbExample-Info.ios.plist */, + 84B8DA98152CAD8600D59B95 /* Gui layer */, + 84B8DA6C152CA8D900D59B95 /* tbbExample Sources */, 84D017541527431F0008A4E0 /* Frameworks */, 84D017521527431F0008A4E0 /* Products */, ); @@ -111,6 +146,7 @@ isa = PBXGroup; children = ( 84D017511527431F0008A4E0 /* tbbExample.app */, + D3BD96BB1C0E19E700163D8B /* tbbExample.app */, ); name = Products; sourceTree = ""; @@ -118,24 +154,19 @@ 84D017541527431F0008A4E0 /* Frameworks */ = { isa = PBXGroup; children = ( + 84D017591527431F0008A4E0 /* CoreData.framework */, + 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, + D3BD96991C0DDB8700163D8B /* libtbbmalloc.dylib */, + D31F32781C12DEE000A77D54 /* libtbb.dylib */, + D31F32791C12DEE000A77D54 /* libtbbmalloc.dylib */, + 84D0175A1527431F0008A4E0 /* Foundation.framework */, + 84D017581527431F0008A4E0 /* AppKit.framework */, 84D01775152744BD0008A4E0 /* OpenGL.framework */, 84D017551527431F0008A4E0 /* Cocoa.framework */, - 84D017571527431F0008A4E0 /* Other Frameworks */, ); name = Frameworks; sourceTree = ""; }; - 84D017571527431F0008A4E0 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 84B8DA13152C9AC600D59B95 /* libtbb.dylib */, - 84D017581527431F0008A4E0 /* AppKit.framework */, - 84D017591527431F0008A4E0 /* CoreData.framework */, - 84D0175A1527431F0008A4E0 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -156,6 +187,23 @@ productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; productType = "com.apple.product-type.application"; }; + D3BD96591C0DD00400163D8B /* tbbExample_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = D3BD96841C0DD00500163D8B /* Build configuration list for PBXNativeTarget "tbbExample_ios" */; + buildPhases = ( + D3BD96561C0DD00400163D8B /* Sources */, + D3BD96571C0DD00400163D8B /* Frameworks */, + D3BD96581C0DD00400163D8B /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tbbExample_ios; + productName = tbbExample_ios; + productReference = D3BD96BB1C0E19E700163D8B /* tbbExample.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -163,14 +211,21 @@ isa = PBXProject; attributes = { CLASSPREFIX = tbb; - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0710; + TargetAttributes = { + D3BD96591C0DD00400163D8B = { + CreatedOnToolsVersion = 7.1.1; + DevelopmentTeam = 7J8M3RM94C; + }; + }; }; - buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tbbExample" */; + buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "seismic" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 84D017461527431F0008A4E0; productRefGroup = 84D017521527431F0008A4E0 /* Products */; @@ -178,6 +233,7 @@ projectRoot = ""; targets = ( 84D017501527431F0008A4E0 /* tbbExample */, + D3BD96591C0DD00400163D8B /* tbbExample_ios */, ); }; /* End PBXProject section */ @@ -187,12 +243,24 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + D3BD96B51C0E0B2200163D8B /* tbbExample-Info.plist in Resources */, 84B8DA7A152CA90100D59B95 /* (null) in Resources */, 84B8DA80152CA97B00D59B95 /* InfoPlist.strings in Resources */, 84B8DA81152CA97B00D59B95 /* MainMenu.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; + D3BD96581C0DD00400163D8B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F32811C12DF5900A77D54 /* libtbbmalloc.dylib in Resources */, + D31F32801C12DF5200A77D54 /* libtbb.dylib in Resources */, + D3BD96B81C0E11CE00163D8B /* iOS.storyboard in Resources */, + D3BD96B31C0E0AFE00163D8B /* tbbExample-Info.ios.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -200,13 +268,27 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 84B8DA77152CA90100D59B95 /* main.m in Sources */, 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */, 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */, 84B8DA87152CA99C00D59B95 /* main.cpp in Sources */, + D3BD96A31C0DE2BB00163D8B /* macvideo.cpp in Sources */, 84B8DA88152CA99C00D59B95 /* seismic_video.cpp in Sources */, + D3BD96A61C0DE3DE00163D8B /* main.m in Sources */, 84B8DA89152CA99C00D59B95 /* universe.cpp in Sources */, - 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D3BD96561C0DD00400163D8B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D3BD96941C0DD57600163D8B /* universe.cpp in Sources */, + D3BD96921C0DD55E00163D8B /* main.cpp in Sources */, + D3BD96951C0DD59200163D8B /* macvideo.cpp in Sources */, + D3BD96931C0DD56900163D8B /* seismic_video.cpp in Sources */, + D3BD96971C0DD5A900163D8B /* tbbAppDelegate.m in Sources */, + D3BD96AB1C0E08E500163D8B /* main.m in Sources */, + D3BD96961C0DD5A000163D8B /* OpenGLView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -235,13 +317,23 @@ 84D01770152743200008A4E0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -251,9 +343,12 @@ GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -262,19 +357,31 @@ 84D01771152743200008A4E0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_INCREASE_PRECOMPILED_HEADER_SHARING = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.7; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; SDKROOT = macosx; }; name = Release; @@ -283,12 +390,15 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; + COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.plist"; LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib\""; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = "Intel.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; RUN_CLANG_STATIC_ANALYZER = YES; USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -301,6 +411,8 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; + COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -309,7 +421,8 @@ "\"$(SRCROOT)/../../../../lib\"", "\"$(SRCROOT)\"", ); - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACOSX_DEPLOYMENT_TARGET = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = "Intel.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; RUN_CLANG_STATIC_ANALYZER = YES; USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -318,10 +431,91 @@ }; name = Release; }; + D3BD96851C0DD00500163D8B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "__TBB_IOS=1", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = tbbExample; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + D3BD96861C0DD00500163D8B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = "__TBB_IOS=1"; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = tbbExample; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = 1; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "tbbExample" */ = { + 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "seismic" */ = { isa = XCConfigurationList; buildConfigurations = ( 84D01770152743200008A4E0 /* Debug */, @@ -339,6 +533,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D3BD96841C0DD00500163D8B /* Build configuration list for PBXNativeTarget "tbbExample_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D3BD96851C0DD00500163D8B /* Debug */, + D3BD96861C0DD00500163D8B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 84D017481527431F0008A4E0 /* Project object */; diff --git a/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme new file mode 100644 index 00000000..9975c8e3 --- /dev/null +++ b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme index 1dd33ab3..21b8d648 100644 --- a/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme +++ b/examples/parallel_for/seismic/xcode/seismic.xcodeproj/xcshareddata/xcschemes/tbbExample.xcscheme @@ -1,5 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -37,18 +38,22 @@ ReferencedContainer = "container:seismic.xcodeproj">
    + + - + - + - + \ No newline at end of file diff --git a/examples/parallel_for/tachyon/android/jni/Android.mk b/examples/parallel_for/tachyon/android/jni/Android.mk index 660c0d4b..748fccf8 100644 --- a/examples/parallel_for/tachyon/android/jni/Android.mk +++ b/examples/parallel_for/tachyon/android/jni/Android.mk @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # The source code contained or described herein and all documents related # to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/android/jni/Application.mk b/examples/parallel_for/tachyon/android/jni/Application.mk index 0e24355d..e697b2d5 100644 --- a/examples/parallel_for/tachyon/android/jni/Application.mk +++ b/examples/parallel_for/tachyon/android/jni/Application.mk @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # The source code contained or described herein and all documents related # to the source code ("Material") are owned by Intel Corporation or its @@ -19,5 +19,5 @@ APP_ABI:= all APP_STL:=gnustl_shared APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti -APP_PLATFORM:=android-15 -NDK_TOOLCHAIN_VERSION:=4.6 +APP_PLATFORM:=android-19 +NDK_TOOLCHAIN_VERSION:=4.9 diff --git a/examples/parallel_for/tachyon/android/jni/jni-engine.cpp b/examples/parallel_for/tachyon/android/jni/jni-engine.cpp index 8a5df560..ce55c736 100644 --- a/examples/parallel_for/tachyon/android/jni/jni-engine.cpp +++ b/examples/parallel_for/tachyon/android/jni/jni-engine.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/android/project.properties b/examples/parallel_for/tachyon/android/project.properties index a3ee5ab6..4ab12569 100644 --- a/examples/parallel_for/tachyon/android/project.properties +++ b/examples/parallel_for/tachyon/android/project.properties @@ -11,4 +11,4 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-17 +target=android-19 diff --git a/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java b/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java index 9a3db525..df6850bb 100644 --- a/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java +++ b/examples/parallel_for/tachyon/android/src/com/intel/tbb/example/tachyon/tachyon.java @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/android_as/app/build.gradle b/examples/parallel_for/tachyon/android_as/app/build.gradle new file mode 100644 index 00000000..f64a2c96 --- /dev/null +++ b/examples/parallel_for/tachyon/android_as/app/build.gradle @@ -0,0 +1,67 @@ +/* + Copyright 2005-2016 Intel Corporation. All Rights Reserved. + + This file is part of Threading Building Blocks. Threading Building Blocks is free software; + you can redistribute it and/or modify it under the terms of the GNU General Public License + version 2 as published by the Free Software Foundation. Threading Building Blocks is + distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. You should have received a copy of + the GNU General Public License along with Threading Building Blocks; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + As a special exception, you may use this file as part of a free software library without + restriction. Specifically, if other files instantiate templates or use macros or inline + functions from this file, or you compile this file and link it with other files to produce + an executable, this file does not by itself cause the resulting executable to be covered + by the GNU General Public License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General Public License. +*/ + +apply plugin: 'com.android.model.application' + +model { + android { + compileSdkVersion = 23 + buildToolsVersion = "23.0.2" + + defaultConfig.with { + applicationId = "com.intel.tbb.example.tachyon" + minSdkVersion.apiLevel = 19 + targetSdkVersion.apiLevel = 23 + } + } + + android.sources { + main { + java { source { srcDir "../../android/src" } } + jniLibs { source { srcDir "../../android/libs" } } + assets { source { srcDir '../../android/assets' } } + res { source { srcDir "../../android/res" } } + manifest { source { srcDir "../../android" } } + } + } + + android.productFlavors { + create("x86") { + ndk.abiFilters.add("x86") + } + create("x86_64") { + ndk.abiFilters.add("x86_64") + } + } +} + +// to build native part of the project with a custom Android.mk call ndk-build.cmd +task ndkBuild(type: Exec) { + commandLine 'ndk-build.cmd', '-C', file('../../android').absolutePath +} + +// to automatically execute ndkBuild task add it to a common Java build task +tasks.withType(JavaCompile) { + compileTask -> compileTask.dependsOn ndkBuild +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) +} diff --git a/examples/parallel_for/tachyon/android_as/build.gradle b/examples/parallel_for/tachyon/android_as/build.gradle new file mode 100644 index 00000000..c3a8a868 --- /dev/null +++ b/examples/parallel_for/tachyon/android_as/build.gradle @@ -0,0 +1,43 @@ +/* + Copyright 2005-2016 Intel Corporation. All Rights Reserved. + + This file is part of Threading Building Blocks. Threading Building Blocks is free software; + you can redistribute it and/or modify it under the terms of the GNU General Public License + version 2 as published by the Free Software Foundation. Threading Building Blocks is + distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. You should have received a copy of + the GNU General Public License along with Threading Building Blocks; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + As a special exception, you may use this file as part of a free software library without + restriction. Specifically, if other files instantiate templates or use macros or inline + functions from this file, or you compile this file and link it with other files to produce + an executable, this file does not by itself cause the resulting executable to be covered + by the GNU General Public License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General Public License. +*/ + +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle-experimental:0.4.0' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/examples/parallel_for/tachyon/android_as/settings.gradle b/examples/parallel_for/tachyon/android_as/settings.gradle new file mode 100644 index 00000000..6a157ca4 --- /dev/null +++ b/examples/parallel_for/tachyon/android_as/settings.gradle @@ -0,0 +1,21 @@ +/* + Copyright 2005-2016 Intel Corporation. All Rights Reserved. + + This file is part of Threading Building Blocks. Threading Building Blocks is free software; + you can redistribute it and/or modify it under the terms of the GNU General Public License + version 2 as published by the Free Software Foundation. Threading Building Blocks is + distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. You should have received a copy of + the GNU General Public License along with Threading Building Blocks; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + As a special exception, you may use this file as part of a free software library without + restriction. Specifically, if other files instantiate templates or use macros or inline + functions from this file, or you compile this file and link it with other files to produce + an executable, this file does not by itself cause the resulting executable to be covered + by the GNU General Public License. This exception does not however invalidate any other + reasons why the executable file might be covered by the GNU General Public License. +*/ + +include ':app' diff --git a/examples/parallel_for/tachyon/index.html b/examples/parallel_for/tachyon/index.html index b693f907..c16648d7 100644 --- a/examples/parallel_for/tachyon/index.html +++ b/examples/parallel_for/tachyon/index.html @@ -5,7 +5,7 @@ Parallel raytracer / renderer that demonstrates the use of parallel_for.

    -This example includes software developed by John E. Stone. See +This example includes software developed by John E. Stone. See here for copyright information.

    @@ -27,11 +27,11 @@ The following versions of the example are provided:
    Parallel version that uses Intel® Threading Building Blocks (Intel® TBB) and blocked_range to parallelize over tasks that are groups of scan-lines.
      -
    • By default, this version uses one thread per available processor. To change this +
    • By default, this version uses one thread per available processor. To change this default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running.
    • This version uses the preview feature: auto_range_partitioner. No grain size is provided to blocked_range. - The blocked_range class uses a default grain size of 1 when none is provided. However, the auto_range_partitioner - controls the amount of range splitting dynamically at runtime, resulting in sub-ranges of varying sizes. + The blocked_range class uses a default grain size of 1 when none is provided. However, the auto_range_partitioner + controls the amount of range splitting dynamically at runtime, resulting in sub-ranges of varying sizes.
    tbb
    Parallel version that uses Intel TBB and blocked_range2d to parallelize @@ -74,19 +74,21 @@ The following versions of the example are provided:
    dat
    Contains data sets for running the example.
    msvs -
    Contains Microsoft* Visual Studio* 2010 workspace for building and running the +
    Contains Microsoft* Visual Studio* 2010 workspace for building and running the example (Windows* systems only).
    xcode -
    Contains Xcode* IDE workspace for building and running the example (OS X* +
    Contains Xcode* IDE workspace for building and running the example (OS X* systems only). -android -
    Contains Eclipse* IDE workspace for building and running the example on Android* system. JNI part needs to be compiled by Android NDK. - +
    android +
    Contains Eclipse* IDE workspace for building and running the example on Android* system. JNI part needs to be compiled by Android NDK. +
    android_as +
    Contains project for building and running the example using Android* Studio* 1.5 and higher + with Android* NDK bundle and experimental Gradle* plugin 0.4.0.

    To Build

    General build directions can be found here.

    -For Windows* systems Microsoft* Visual Studio* projects are provided for each of the above +For Windows* systems Microsoft* Visual Studio* projects are provided for each of the above example versions.

    @@ -132,7 +134,7 @@ named tachyon.<version>.exe. To run these executables dir
    tachyon.<version> -h
    Prints the help for command line options
    tachyon.<version> [dataset=value] [boundthresh=value] [no-display-updating] [nobounding] [silent] -
    tachyon.<version> [dataset [boundthresh]] [no-display-updating] [nobounding] [silent] +
    tachyon.<version> [dataset [boundthresh]] [no-display-updating] [nobounding] [silent]
    dataset is the path/name of one of the *.dat files in the dat directory for the example.
    boundthresh is a bounding threshold value.
    no-display-updating - disable run-time display updating.
    @@ -172,7 +174,7 @@ While running with the GUI display turned on the following keyboard keys can be
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp b/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp index c07773aa..0450c3c4 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp +++ b/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h b/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h index 3cafe318..0d1352de 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h +++ b/examples/parallel_for/tachyon/msvs/win8ui/App.xaml.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp b/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp index b97f3baf..619db14d 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp +++ b/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h b/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h index 26807ca5..6cb07764 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h +++ b/examples/parallel_for/tachyon/msvs/win8ui/DirectXBase.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp b/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp index 2729d693..3c08ffa6 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp +++ b/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h b/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h index 2c425814..d16f1642 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h +++ b/examples/parallel_for/tachyon/msvs/win8ui/DirectXPage.xaml.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat b/examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat index ef2aa7c8..dc904119 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat +++ b/examples/parallel_for/tachyon/msvs/win8ui/copy_libraries_and_assets.bat @@ -1,6 +1,6 @@ @echo on REM -REM Copyright 2005-2015 Intel Corporation. All Rights Reserved. +REM Copyright 2005-2016 Intel Corporation. All Rights Reserved. REM REM The source code contained or described herein and all documents related REM to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/pch.h b/examples/parallel_for/tachyon/msvs/win8ui/pch.h index 9140a8f6..59cde674 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/pch.h +++ b/examples/parallel_for/tachyon/msvs/win8ui/pch.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp b/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp index 0949ea69..4c2093c9 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp +++ b/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.cpp @@ -1,5 +1,5 @@ /* -Copyright 2005-2015 Intel Corporation. All Rights Reserved. +Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h b/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h index 443138e1..58663bc7 100644 --- a/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h +++ b/examples/parallel_for/tachyon/msvs/win8ui/tbbTachyonRenderer.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its diff --git a/examples/parallel_for/tachyon/src/api.cpp b/examples/parallel_for/tachyon/src/api.cpp index ea2f57cc..1adb7c16 100644 --- a/examples/parallel_for/tachyon/src/api.cpp +++ b/examples/parallel_for/tachyon/src/api.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/api.h b/examples/parallel_for/tachyon/src/api.h index b27ead22..70f9aab2 100644 --- a/examples/parallel_for/tachyon/src/api.h +++ b/examples/parallel_for/tachyon/src/api.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/apigeom.cpp b/examples/parallel_for/tachyon/src/apigeom.cpp index 12fd8c37..db183924 100644 --- a/examples/parallel_for/tachyon/src/apigeom.cpp +++ b/examples/parallel_for/tachyon/src/apigeom.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/apitrigeom.cpp b/examples/parallel_for/tachyon/src/apitrigeom.cpp index 1d79ec03..62b0e7bc 100644 --- a/examples/parallel_for/tachyon/src/apitrigeom.cpp +++ b/examples/parallel_for/tachyon/src/apitrigeom.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/apitrigeom.h b/examples/parallel_for/tachyon/src/apitrigeom.h index 48f0fd6e..68148c89 100644 --- a/examples/parallel_for/tachyon/src/apitrigeom.h +++ b/examples/parallel_for/tachyon/src/apitrigeom.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/bndbox.cpp b/examples/parallel_for/tachyon/src/bndbox.cpp index 2ef12ba1..3529e5a5 100644 --- a/examples/parallel_for/tachyon/src/bndbox.cpp +++ b/examples/parallel_for/tachyon/src/bndbox.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/bndbox.h b/examples/parallel_for/tachyon/src/bndbox.h index 488e9bbf..b48d7011 100644 --- a/examples/parallel_for/tachyon/src/bndbox.h +++ b/examples/parallel_for/tachyon/src/bndbox.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/box.cpp b/examples/parallel_for/tachyon/src/box.cpp index 70e28c32..e116067f 100644 --- a/examples/parallel_for/tachyon/src/box.cpp +++ b/examples/parallel_for/tachyon/src/box.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/box.h b/examples/parallel_for/tachyon/src/box.h index 60747906..35f8650a 100644 --- a/examples/parallel_for/tachyon/src/box.h +++ b/examples/parallel_for/tachyon/src/box.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/camera.cpp b/examples/parallel_for/tachyon/src/camera.cpp index 60dcbc4c..053175a6 100644 --- a/examples/parallel_for/tachyon/src/camera.cpp +++ b/examples/parallel_for/tachyon/src/camera.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/camera.h b/examples/parallel_for/tachyon/src/camera.h index 6b235bce..dfb8a94e 100644 --- a/examples/parallel_for/tachyon/src/camera.h +++ b/examples/parallel_for/tachyon/src/camera.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/coordsys.cpp b/examples/parallel_for/tachyon/src/coordsys.cpp index 537288b0..c7e514e3 100644 --- a/examples/parallel_for/tachyon/src/coordsys.cpp +++ b/examples/parallel_for/tachyon/src/coordsys.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/coordsys.h b/examples/parallel_for/tachyon/src/coordsys.h index 3668d12a..0fb5f09d 100644 --- a/examples/parallel_for/tachyon/src/coordsys.h +++ b/examples/parallel_for/tachyon/src/coordsys.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/cylinder.cpp b/examples/parallel_for/tachyon/src/cylinder.cpp index 3590ee08..5423d97c 100644 --- a/examples/parallel_for/tachyon/src/cylinder.cpp +++ b/examples/parallel_for/tachyon/src/cylinder.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/cylinder.h b/examples/parallel_for/tachyon/src/cylinder.h index 4120ce58..a3eba298 100644 --- a/examples/parallel_for/tachyon/src/cylinder.h +++ b/examples/parallel_for/tachyon/src/cylinder.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/extvol.cpp b/examples/parallel_for/tachyon/src/extvol.cpp index f9effd32..3e484e83 100644 --- a/examples/parallel_for/tachyon/src/extvol.cpp +++ b/examples/parallel_for/tachyon/src/extvol.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/extvol.h b/examples/parallel_for/tachyon/src/extvol.h index 66f83c0c..459c083a 100644 --- a/examples/parallel_for/tachyon/src/extvol.h +++ b/examples/parallel_for/tachyon/src/extvol.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/global.cpp b/examples/parallel_for/tachyon/src/global.cpp index 6ce462d3..d7f5908c 100644 --- a/examples/parallel_for/tachyon/src/global.cpp +++ b/examples/parallel_for/tachyon/src/global.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/global.h b/examples/parallel_for/tachyon/src/global.h index 847fb1d4..6337dc88 100644 --- a/examples/parallel_for/tachyon/src/global.h +++ b/examples/parallel_for/tachyon/src/global.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/grid.cpp b/examples/parallel_for/tachyon/src/grid.cpp index 1810caa5..2d28ed7f 100644 --- a/examples/parallel_for/tachyon/src/grid.cpp +++ b/examples/parallel_for/tachyon/src/grid.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/grid.h b/examples/parallel_for/tachyon/src/grid.h index edc295bf..dfb71a10 100644 --- a/examples/parallel_for/tachyon/src/grid.h +++ b/examples/parallel_for/tachyon/src/grid.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/imageio.cpp b/examples/parallel_for/tachyon/src/imageio.cpp index 8b07372c..c5ec5e1c 100644 --- a/examples/parallel_for/tachyon/src/imageio.cpp +++ b/examples/parallel_for/tachyon/src/imageio.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/imageio.h b/examples/parallel_for/tachyon/src/imageio.h index b47b8e90..120b8f9b 100644 --- a/examples/parallel_for/tachyon/src/imageio.h +++ b/examples/parallel_for/tachyon/src/imageio.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/imap.cpp b/examples/parallel_for/tachyon/src/imap.cpp index b27f9bdb..a275ad62 100644 --- a/examples/parallel_for/tachyon/src/imap.cpp +++ b/examples/parallel_for/tachyon/src/imap.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/imap.h b/examples/parallel_for/tachyon/src/imap.h index 4f31acc4..c072afc0 100644 --- a/examples/parallel_for/tachyon/src/imap.h +++ b/examples/parallel_for/tachyon/src/imap.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/intersect.cpp b/examples/parallel_for/tachyon/src/intersect.cpp index 6545d64b..a6fb9ec4 100644 --- a/examples/parallel_for/tachyon/src/intersect.cpp +++ b/examples/parallel_for/tachyon/src/intersect.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/intersect.h b/examples/parallel_for/tachyon/src/intersect.h index 0ec3e1ef..377105e1 100644 --- a/examples/parallel_for/tachyon/src/intersect.h +++ b/examples/parallel_for/tachyon/src/intersect.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/jpeg.cpp b/examples/parallel_for/tachyon/src/jpeg.cpp index 0c635c43..8044bb99 100644 --- a/examples/parallel_for/tachyon/src/jpeg.cpp +++ b/examples/parallel_for/tachyon/src/jpeg.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/jpeg.h b/examples/parallel_for/tachyon/src/jpeg.h index b4f2a6a8..665c2301 100644 --- a/examples/parallel_for/tachyon/src/jpeg.h +++ b/examples/parallel_for/tachyon/src/jpeg.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/light.cpp b/examples/parallel_for/tachyon/src/light.cpp index 39fb164c..252b1021 100644 --- a/examples/parallel_for/tachyon/src/light.cpp +++ b/examples/parallel_for/tachyon/src/light.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/light.h b/examples/parallel_for/tachyon/src/light.h index 5e7e61a7..3d164302 100644 --- a/examples/parallel_for/tachyon/src/light.h +++ b/examples/parallel_for/tachyon/src/light.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/machine.h b/examples/parallel_for/tachyon/src/machine.h index 976a4617..92166bad 100644 --- a/examples/parallel_for/tachyon/src/machine.h +++ b/examples/parallel_for/tachyon/src/machine.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/macros.h b/examples/parallel_for/tachyon/src/macros.h index 47792b51..9c1c7963 100644 --- a/examples/parallel_for/tachyon/src/macros.h +++ b/examples/parallel_for/tachyon/src/macros.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_for/tachyon/src/main.cpp b/examples/parallel_for/tachyon/src/main.cpp index fe029149..b6f16403 100644 --- a/examples/parallel_for/tachyon/src/main.cpp +++ b/examples/parallel_for/tachyon/src/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -172,6 +172,64 @@ unsigned int __stdcall example_main(void *) } } +#elif __TBB_IOS + +#include "tbb/tbb.h" +#include "CoreFoundation/CoreFoundation.h" +extern "C" void get_screen_resolution(int *x, int *y); + +int CreateScene() { + + CFURLRef balls_dat_url = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("balls"), CFSTR("dat"),NULL); + char filename[1024]; + CFURLGetFileSystemRepresentation(balls_dat_url, true, (UInt8*)filename, (CFIndex)sizeof(filename)); + CFRelease(balls_dat_url); + + global_scene = rt_newscene(); + rt_initialize(); + + if ( readmodel(filename, global_scene) != 0 ) { + rt_finalize(); + return -1; + } + + // need these early for create_graphics_window() so grab these here... + scenedef *scene = (scenedef *) global_scene; + + get_screen_resolution(&global_xsize, &global_ysize); + + // scene->hres and scene->vres should be equal to screen resolution + scene->hres = global_xwinsize = global_xsize; + scene->vres = global_ywinsize = global_ysize; + return 0; +} + +int main (int argc, char *argv[]) { + try { + + if ( CreateScene() != 0 ) return -1; + + tachyon_video tachyon; + tachyon.threaded = true; + tachyon.init_console(); + + global_usegraphics = tachyon.init_window(global_xwinsize, global_ywinsize); + if(!tachyon.running) return -1; + + //TODO: add a demo loop. + video = &tachyon; + if (video)video->running = true; + memset(g_pImg, 0, sizeof(unsigned int) * global_xsize * global_ysize); + tachyon.main_loop(); + video->running=false; + return NULL; + + } catch ( std::exception& e ) { + std::cerr<<"error occurred. error text is :\"" < + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -37,17 +38,21 @@ ReferencedContainer = "container:tachyon.xcodeproj"> + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme b/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme index ccd129c9..35c5eab8 100644 --- a/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme +++ b/examples/parallel_for/tachyon/xcode/tachyon.xcodeproj/xcshareddata/xcschemes/tachyon.tbb.xcscheme @@ -1,5 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -37,18 +38,22 @@ ReferencedContainer = "container:tachyon.xcodeproj"> + + - + - + + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -37,18 +38,22 @@ ReferencedContainer = "container:tachyon.xcodeproj"> + + - + - + here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_reduce/index.html b/examples/parallel_reduce/index.html index 06eb06d2..01236fa8 100644 --- a/examples/parallel_reduce/index.html +++ b/examples/parallel_reduce/index.html @@ -15,7 +15,7 @@ This directory has examples of the template parallel_reduce.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_reduce/primes/Makefile b/examples/parallel_reduce/primes/Makefile index 04b4b54c..6dc7efe3 100644 --- a/examples/parallel_reduce/primes/Makefile +++ b/examples/parallel_reduce/primes/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -44,6 +44,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/parallel_reduce/primes/Makefile.windows b/examples/parallel_reduce/primes/Makefile.windows index bd6328fe..302b0610 100644 --- a/examples/parallel_reduce/primes/Makefile.windows +++ b/examples/parallel_reduce/primes/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_reduce/primes/index.html b/examples/parallel_reduce/primes/index.html index 40cb2560..34093ec3 100644 --- a/examples/parallel_reduce/primes/index.html +++ b/examples/parallel_reduce/primes/index.html @@ -52,7 +52,7 @@ General build directions can be found here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/parallel_reduce/primes/main.cpp b/examples/parallel_reduce/primes/main.cpp index d400cbb1..f5933b01 100644 --- a/examples/parallel_reduce/primes/main.cpp +++ b/examples/parallel_reduce/primes/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_reduce/primes/primes.cpp b/examples/parallel_reduce/primes/primes.cpp index d5595091..c8f87cfb 100644 --- a/examples/parallel_reduce/primes/primes.cpp +++ b/examples/parallel_reduce/primes/primes.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/parallel_reduce/primes/primes.h b/examples/parallel_reduce/primes/primes.h index 901923b3..cb63f8af 100644 --- a/examples/parallel_reduce/primes/primes.h +++ b/examples/parallel_reduce/primes/primes.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/pipeline/index.html b/examples/pipeline/index.html index 30e8e88f..1be823c8 100644 --- a/examples/pipeline/index.html +++ b/examples/pipeline/index.html @@ -13,7 +13,7 @@ This directory has examples of the template pipeline.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/pipeline/square/Makefile b/examples/pipeline/square/Makefile index 744297aa..3c873203 100644 --- a/examples/pipeline/square/Makefile +++ b/examples/pipeline/square/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -36,6 +36,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/pipeline/square/Makefile.windows b/examples/pipeline/square/Makefile.windows index 2914ce78..dc790bad 100644 --- a/examples/pipeline/square/Makefile.windows +++ b/examples/pipeline/square/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/pipeline/square/gen_input.cpp b/examples/pipeline/square/gen_input.cpp index 122cf2ee..0fd971ce 100644 --- a/examples/pipeline/square/gen_input.cpp +++ b/examples/pipeline/square/gen_input.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/pipeline/square/index.html b/examples/pipeline/square/index.html index 021ccff5..01026760 100644 --- a/examples/pipeline/square/index.html +++ b/examples/pipeline/square/index.html @@ -61,7 +61,7 @@ Two additional targets for this example:
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/pipeline/square/square.cpp b/examples/pipeline/square/square.cpp index 016ffcef..615c5864 100644 --- a/examples/pipeline/square/square.cpp +++ b/examples/pipeline/square/square.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/index.html b/examples/task/index.html index 7562e9ff..34fbc31f 100644 --- a/examples/task/index.html +++ b/examples/task/index.html @@ -13,7 +13,7 @@ This directory has examples of how to use the raw task scheduler.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task/tree_sum/Makefile b/examples/task/tree_sum/Makefile index 88a4744c..49733a18 100644 --- a/examples/task/tree_sum/Makefile +++ b/examples/task/tree_sum/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,6 +34,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/task/tree_sum/Makefile.windows b/examples/task/tree_sum/Makefile.windows index 9e551333..18fbd970 100644 --- a/examples/task/tree_sum/Makefile.windows +++ b/examples/task/tree_sum/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/OptimizedParallelSumTree.cpp b/examples/task/tree_sum/OptimizedParallelSumTree.cpp index f9baa73d..dc3fdc85 100644 --- a/examples/task/tree_sum/OptimizedParallelSumTree.cpp +++ b/examples/task/tree_sum/OptimizedParallelSumTree.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/SerialSumTree.cpp b/examples/task/tree_sum/SerialSumTree.cpp index 6988d7a9..1ab32804 100644 --- a/examples/task/tree_sum/SerialSumTree.cpp +++ b/examples/task/tree_sum/SerialSumTree.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/SimpleParallelSumTree.cpp b/examples/task/tree_sum/SimpleParallelSumTree.cpp index 2de4f56a..b029a7c9 100644 --- a/examples/task/tree_sum/SimpleParallelSumTree.cpp +++ b/examples/task/tree_sum/SimpleParallelSumTree.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/TreeMaker.h b/examples/task/tree_sum/TreeMaker.h index 46bd0ced..921e0a00 100644 --- a/examples/task/tree_sum/TreeMaker.h +++ b/examples/task/tree_sum/TreeMaker.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/common.h b/examples/task/tree_sum/common.h index da23bb1b..671d0b5c 100644 --- a/examples/task/tree_sum/common.h +++ b/examples/task/tree_sum/common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task/tree_sum/index.html b/examples/task/tree_sum/index.html index ea356637..b3e5bdba 100644 --- a/examples/task/tree_sum/index.html +++ b/examples/task/tree_sum/index.html @@ -65,7 +65,7 @@ General build directions can be found here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task/tree_sum/main.cpp b/examples/task/tree_sum/main.cpp index 513f9240..35082528 100644 --- a/examples/task/tree_sum/main.cpp +++ b/examples/task/tree_sum/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/Makefile b/examples/task_arena/fractal/Makefile index b4fdf48a..9500929d 100644 --- a/examples/task_arena/fractal/Makefile +++ b/examples/task_arena/fractal/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -29,6 +29,8 @@ endif # icc ifeq ($(shell uname), Linux) LIBS+= -lrt +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif include ../../common/gui/Makefile.gmake @@ -42,7 +44,7 @@ all: release test resources: ifeq ($(UI),mac) mkdir -p $(NAME).app/Contents/{MacOS,Resources/en.lproj} - cat ../../common/gui/xcode/tbbExample/Info.plist | sed -e "s/tbbExample/$(NAME)/" > $(NAME).app/Contents/Info.plist + cat ../../common/gui/xcode/tbbExample/tbbExample-Info.plist | sed -e "s/tbbExample/$(NAME)/" > $(NAME).app/Contents/Info.plist cat ../../common/gui/xcode/tbbExample/launcher.sh | sed -e "s/tbbExample/$(NAME)/" > $(NAME).app/Contents/MacOS/launcher.sh chmod +x $(NAME).app/Contents/MacOS/launcher.sh cp ../../common/gui/xcode/tbbExample/PkgInfo $(NAME).app/Contents diff --git a/examples/task_arena/fractal/Makefile.windows b/examples/task_arena/fractal/Makefile.windows index a443920c..c17938a7 100644 --- a/examples/task_arena/fractal/Makefile.windows +++ b/examples/task_arena/fractal/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/fractal.cpp b/examples/task_arena/fractal/fractal.cpp index 03f02987..c66fd561 100644 --- a/examples/task_arena/fractal/fractal.cpp +++ b/examples/task_arena/fractal/fractal.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/fractal.h b/examples/task_arena/fractal/fractal.h index 12f178ea..b0408e03 100644 --- a/examples/task_arena/fractal/fractal.h +++ b/examples/task_arena/fractal/fractal.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/fractal_video.h b/examples/task_arena/fractal/fractal_video.h index d56d03fc..09edea80 100644 --- a/examples/task_arena/fractal/fractal_video.h +++ b/examples/task_arena/fractal/fractal_video.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/index.html b/examples/task_arena/fractal/index.html index da804811..6ee37d7e 100644 --- a/examples/task_arena/fractal/index.html +++ b/examples/task_arena/fractal/index.html @@ -83,7 +83,7 @@ user interface:
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task_arena/fractal/main.cpp b/examples/task_arena/fractal/main.cpp index 7fa5881e..25abd621 100644 --- a/examples/task_arena/fractal/main.cpp +++ b/examples/task_arena/fractal/main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj b/examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj index df9408d1..09e43aa7 100644 --- a/examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj +++ b/examples/task_arena/fractal/xcode/fractal.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ 84011722152D687A00B07E4D /* fractal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84011720152D687A00B07E4D /* fractal.cpp */; }; - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8DA13152C9AC600D59B95 /* libtbb.dylib */; }; 84B8DA77152CA90100D59B95 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; 84B8DA78152CA90100D59B95 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; 84B8DA79152CA90100D59B95 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; @@ -19,6 +18,19 @@ 84B8DA9A152CADF400D59B95 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D017551527431F0008A4E0 /* Cocoa.framework */; }; 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84D01775152744BD0008A4E0 /* OpenGL.framework */; }; + D31F32341C11798900A77D54 /* macvideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA99152CADF400D59B95 /* macvideo.cpp */; }; + D31F32351C11798E00A77D54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA6F152CA90100D59B95 /* main.m */; }; + D31F32361C11799200A77D54 /* OpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA71152CA90100D59B95 /* OpenGLView.m */; }; + D31F32371C11799500A77D54 /* tbbAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA73152CA90100D59B95 /* tbbAppDelegate.m */; }; + D31F323A1C117A6200A77D54 /* iOS.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D31F32381C117A1700A77D54 /* iOS.storyboard */; }; + D31F323B1C117BE300A77D54 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B8DA82152CA99C00D59B95 /* main.cpp */; }; + D31F323C1C117BE700A77D54 /* fractal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84011720152D687A00B07E4D /* fractal.cpp */; }; + D31F328E1C12E65800A77D54 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F323F1C11B5C900A77D54 /* libtbb.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F328F1C12E65F00A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32401C11B5C900A77D54 /* libtbbmalloc.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F32961C12E6B500A77D54 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32901C12E67300A77D54 /* libtbb.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F32971C12E6B500A77D54 /* libtbbmalloc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D31F32911C12E67300A77D54 /* libtbbmalloc.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + D31F32981C12E6C500A77D54 /* libtbb.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32901C12E67300A77D54 /* libtbb.dylib */; }; + D31F32991C12E6CA00A77D54 /* libtbbmalloc.dylib in Resources */ = {isa = PBXBuildFile; fileRef = D31F32911C12E67300A77D54 /* libtbbmalloc.dylib */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -42,6 +54,12 @@ 84D017591527431F0008A4E0 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 84D0175A1527431F0008A4E0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 84D01775152744BD0008A4E0 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + D31F321D1C11796D00A77D54 /* tbbExample_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tbbExample_ios.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D31F32381C117A1700A77D54 /* iOS.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = iOS.storyboard; path = ../iOS.storyboard; sourceTree = ""; }; + D31F323F1C11B5C900A77D54 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = ""; }; + D31F32401C11B5C900A77D54 /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/libtbbmalloc.dylib; sourceTree = ""; }; + D31F32901C12E67300A77D54 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/ios/libtbb.dylib; sourceTree = ""; }; + D31F32911C12E67300A77D54 /* libtbbmalloc.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbbmalloc.dylib; path = ../../../../lib/ios/libtbbmalloc.dylib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,9 +67,19 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D31F328E1C12E65800A77D54 /* libtbb.dylib in Frameworks */, 84D01776152744BD0008A4E0 /* OpenGL.framework in Frameworks */, 84D017561527431F0008A4E0 /* Cocoa.framework in Frameworks */, - 84B8DA19152C9AC600D59B95 /* libtbb.dylib in Frameworks */, + D31F328F1C12E65F00A77D54 /* libtbbmalloc.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D31F321A1C11796D00A77D54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F32961C12E6B500A77D54 /* libtbb.dylib in Frameworks */, + D31F32971C12E6B500A77D54 /* libtbbmalloc.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -82,6 +110,7 @@ 84B8DA7B152CA97B00D59B95 /* Resources */ = { isa = PBXGroup; children = ( + D31F32381C117A1700A77D54 /* iOS.storyboard */, 84B8DA7C152CA97B00D59B95 /* InfoPlist.strings */, 84B8DA7E152CA97B00D59B95 /* MainMenu.xib */, ); @@ -116,6 +145,7 @@ isa = PBXGroup; children = ( 84D017511527431F0008A4E0 /* tbbExample.app */, + D31F321D1C11796D00A77D54 /* tbbExample_ios.app */, ); name = Products; sourceTree = ""; @@ -123,6 +153,10 @@ 84D017541527431F0008A4E0 /* Frameworks */ = { isa = PBXGroup; children = ( + D31F323F1C11B5C900A77D54 /* libtbb.dylib */, + D31F32401C11B5C900A77D54 /* libtbbmalloc.dylib */, + D31F32901C12E67300A77D54 /* libtbb.dylib */, + D31F32911C12E67300A77D54 /* libtbbmalloc.dylib */, 84D01775152744BD0008A4E0 /* OpenGL.framework */, 84D017551527431F0008A4E0 /* Cocoa.framework */, 84D017571527431F0008A4E0 /* Other Frameworks */, @@ -161,6 +195,23 @@ productReference = 84D017511527431F0008A4E0 /* tbbExample.app */; productType = "com.apple.product-type.application"; }; + D31F321C1C11796D00A77D54 /* tbbExample_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = D31F32331C11796D00A77D54 /* Build configuration list for PBXNativeTarget "tbbExample_ios" */; + buildPhases = ( + D31F32191C11796D00A77D54 /* Sources */, + D31F321A1C11796D00A77D54 /* Frameworks */, + D31F321B1C11796D00A77D54 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tbbExample_ios; + productName = tbbExample_ios; + productReference = D31F321D1C11796D00A77D54 /* tbbExample_ios.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -169,6 +220,12 @@ attributes = { CLASSPREFIX = tbb; LastUpgradeCheck = 0430; + TargetAttributes = { + D31F321C1C11796D00A77D54 = { + CreatedOnToolsVersion = 7.1.1; + DevelopmentTeam = 7J8M3RM94C; + }; + }; }; buildConfigurationList = 84D0174B1527431F0008A4E0 /* Build configuration list for PBXProject "fractal" */; compatibilityVersion = "Xcode 3.2"; @@ -176,6 +233,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 84D017461527431F0008A4E0; productRefGroup = 84D017521527431F0008A4E0 /* Products */; @@ -183,6 +241,7 @@ projectRoot = ""; targets = ( 84D017501527431F0008A4E0 /* tbbExample */, + D31F321C1C11796D00A77D54 /* tbbExample_ios */, ); }; /* End PBXProject section */ @@ -198,6 +257,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31F321B1C11796D00A77D54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F32991C12E6CA00A77D54 /* libtbbmalloc.dylib in Resources */, + D31F32981C12E6C500A77D54 /* libtbb.dylib in Resources */, + D31F323A1C117A6200A77D54 /* iOS.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -214,6 +283,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D31F32191C11796D00A77D54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D31F32351C11798E00A77D54 /* main.m in Sources */, + D31F323C1C117BE700A77D54 /* fractal.cpp in Sources */, + D31F32361C11799200A77D54 /* OpenGLView.m in Sources */, + D31F32371C11799500A77D54 /* tbbAppDelegate.m in Sources */, + D31F323B1C117BE300A77D54 /* main.cpp in Sources */, + D31F32341C11798900A77D54 /* macvideo.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ @@ -287,6 +369,7 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -305,6 +388,7 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_OBJC_ARC = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "../../../common/gui/xcode/tbbExample/tbbExample-Prefix.pch"; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; @@ -322,6 +406,93 @@ }; name = Release; }; + D31F32311C11796D00A77D54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + "__TBB_IOS=1", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D31F32321C11796D00A77D54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = "__TBB_IOS=1"; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../../../include\""; + INFOPLIST_FILE = "../../../common/gui/xcode/tbbExample/tbbExample-Info.ios.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../../lib/ios\""; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = com.tbb.example; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -343,6 +514,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D31F32331C11796D00A77D54 /* Build configuration list for PBXNativeTarget "tbbExample_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D31F32311C11796D00A77D54 /* Debug */, + D31F32321C11796D00A77D54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 84D017481527431F0008A4E0 /* Project object */; diff --git a/examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme b/examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme new file mode 100644 index 00000000..3ce0e58c --- /dev/null +++ b/examples/task_arena/fractal/xcode/fractal.xcodeproj/xcshareddata/xcschemes/tbbExample.ios.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/task_arena/index.html b/examples/task_arena/index.html index d2808135..993f6ed4 100644 --- a/examples/task_arena/index.html +++ b/examples/task_arena/index.html @@ -13,7 +13,7 @@ This directory has examples of how to use the task priority feature.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task_group/index.html b/examples/task_group/index.html index 63e4919a..515985b9 100644 --- a/examples/task_group/index.html +++ b/examples/task_group/index.html @@ -13,7 +13,7 @@ This directory has examples of how to use task_groups.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task_group/sudoku/Makefile b/examples/task_group/sudoku/Makefile index 34b38be6..162a4813 100644 --- a/examples/task_group/sudoku/Makefile +++ b/examples/task_group/sudoku/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -49,6 +49,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/task_group/sudoku/Makefile.windows b/examples/task_group/sudoku/Makefile.windows index a8990f6d..fa505c20 100644 --- a/examples/task_group/sudoku/Makefile.windows +++ b/examples/task_group/sudoku/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/task_group/sudoku/index.html b/examples/task_group/sudoku/index.html index c73852c0..855e0a8e 100644 --- a/examples/task_group/sudoku/index.html +++ b/examples/task_group/sudoku/index.html @@ -66,7 +66,7 @@ General build directions can be found here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/task_group/sudoku/sudoku.cpp b/examples/task_group/sudoku/sudoku.cpp index 0da8620b..42fec72b 100644 --- a/examples/task_group/sudoku/sudoku.cpp +++ b/examples/task_group/sudoku/sudoku.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/test_all/fibonacci/Fibonacci.cpp b/examples/test_all/fibonacci/Fibonacci.cpp index c554939e..f75ba6b9 100644 --- a/examples/test_all/fibonacci/Fibonacci.cpp +++ b/examples/test_all/fibonacci/Fibonacci.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/test_all/fibonacci/Makefile b/examples/test_all/fibonacci/Makefile index 17a3e579..813d3b91 100644 --- a/examples/test_all/fibonacci/Makefile +++ b/examples/test_all/fibonacci/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -33,6 +33,8 @@ run_cmd=../../common/android.linux.launcher.sh else LIBS+= -lrt endif +else ifeq ($(shell uname), Darwin) +override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib endif all: release test diff --git a/examples/test_all/fibonacci/Makefile.windows b/examples/test_all/fibonacci/Makefile.windows index 28387cf5..b2f32997 100644 --- a/examples/test_all/fibonacci/Makefile.windows +++ b/examples/test_all/fibonacci/Makefile.windows @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/examples/test_all/fibonacci/index.html b/examples/test_all/fibonacci/index.html index 9e8d71b3..70cfd79f 100644 --- a/examples/test_all/fibonacci/index.html +++ b/examples/test_all/fibonacci/index.html @@ -41,7 +41,7 @@ General build directions can be found here.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/examples/test_all/index.html b/examples/test_all/index.html index c03c1dc1..8400db38 100644 --- a/examples/test_all/index.html +++ b/examples/test_all/index.html @@ -13,7 +13,7 @@ This directory contains programs that exercise all the components of Intel®
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/include/index.html b/include/index.html index 1ae01678..c992bb6f 100644 --- a/include/index.html +++ b/include/index.html @@ -13,7 +13,7 @@ Include files for Intel® Threading Building Blocks (Intel® TBB).
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/include/serial/tbb/parallel_for.h b/include/serial/tbb/parallel_for.h index a0d5403c..3ef776d2 100644 --- a/include/serial/tbb/parallel_for.h +++ b/include/serial/tbb/parallel_for.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/serial/tbb/tbb_annotate.h b/include/serial/tbb/tbb_annotate.h index e4e321f9..f7de75cf 100644 --- a/include/serial/tbb/tbb_annotate.h +++ b/include/serial/tbb/tbb_annotate.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/aggregator.h b/include/tbb/aggregator.h index ed908c02..fc2ad211 100644 --- a/include/tbb/aggregator.h +++ b/include/tbb/aggregator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -70,13 +70,13 @@ public: class basic_handler { public: basic_handler() {} - void operator()(aggregator_operation* op_list) const { + void operator()(aggregator_operation* op_list) const { while (op_list) { // ITT note: &(op_list->status) tag is used to cover accesses to the operation data. // The executing thread "acquires" the tag (see start()) and then performs // the associated operation w/o triggering a race condition diagnostics. // A thread that created the operation is waiting for its status (see execute_impl()), - // so when this thread is done with the operation, it will "release" the tag + // so when this thread is done with the operation, it will "release" the tag // and update the status (see finish()) to give control back to the waiting thread. basic_operation_base& request = static_cast(*op_list); // IMPORTANT: need to advance op_list to op_list->next() before calling request.finish() @@ -103,7 +103,7 @@ public: void process(aggregator_operation *op) { execute_impl(*op); } protected: - /** Place operation in mailbox, then either handle mailbox or wait for the operation + /** Place operation in mailbox, then either handle mailbox or wait for the operation to be completed by a different thread. */ void execute_impl(aggregator_operation& op) { aggregator_operation* res; @@ -118,7 +118,7 @@ public: do { // ITT may flag the following line as a race; it is a false positive: // This is an atomic read; we don't provide itt_hide_load_word for atomics - op.my_next = res = mailbox; // NOT A RACE + op.my_next = res = mailbox; // NOT A RACE } while (mailbox.compare_and_swap(&op, res) != res); if (!res) { // first in the list; handle the operations // ITT note: &mailbox tag covers access to the handler_busy flag, which this @@ -162,8 +162,8 @@ public: // acquire fence not necessary here due to causality rule and surrounding atomics __TBB_store_with_release(handler_busy, uintptr_t(1)); - // ITT note: &mailbox tag covers access to the handler_busy flag itself. - // Capturing the state of the mailbox signifies that handler_busy has been + // ITT note: &mailbox tag covers access to the handler_busy flag itself. + // Capturing the state of the mailbox signifies that handler_busy has been // set and a new active handler will now process that list's operations. call_itt_notify(releasing, &mailbox); // grab pending_operations diff --git a/include/tbb/aligned_space.h b/include/tbb/aligned_space.h index 8ee62a01..07d49ab5 100644 --- a/include/tbb/aligned_space.h +++ b/include/tbb/aligned_space.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -42,6 +42,6 @@ public: T* end() {return begin()+N;} }; -} // namespace tbb +} // namespace tbb #endif /* __TBB_aligned_space_H */ diff --git a/include/tbb/atomic.h b/include/tbb/atomic.h index e3ffa6ec..b269ff20 100644 --- a/include/tbb/atomic.h +++ b/include/tbb/atomic.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/blocked_range.h b/include/tbb/blocked_range.h index 220e6954..52626692 100644 --- a/include/tbb/blocked_range.h +++ b/include/tbb/blocked_range.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/blocked_range2d.h b/include/tbb/blocked_range2d.h index 3a2f3837..00b809ce 100644 --- a/include/tbb/blocked_range2d.h +++ b/include/tbb/blocked_range2d.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/blocked_range3d.h b/include/tbb/blocked_range3d.h index 0e27bbad..9db8b498 100644 --- a/include/tbb/blocked_range3d.h +++ b/include/tbb/blocked_range3d.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/cache_aligned_allocator.h b/include/tbb/cache_aligned_allocator.h index 2a58dab8..14640ff7 100644 --- a/include/tbb/cache_aligned_allocator.h +++ b/include/tbb/cache_aligned_allocator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -76,7 +76,7 @@ public: pointer address(reference x) const {return &x;} const_pointer address(const_reference x) const {return &x;} - + //! Allocate space for n objects, starting on a cache/sector line. pointer allocate( size_type n, const void* hint=0 ) { // The "hint" argument is always ignored in NFS_Allocate thus const_cast shouldn't hurt @@ -115,7 +115,7 @@ public: //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ -template<> +template<> class cache_aligned_allocator { public: typedef void* pointer; diff --git a/include/tbb/combinable.h b/include/tbb/combinable.h index 57fd98c9..3a95397e 100644 --- a/include/tbb/combinable.h +++ b/include/tbb/combinable.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -36,8 +36,8 @@ namespace tbb { typedef typename tbb::cache_aligned_allocator my_alloc; typedef typename tbb::enumerable_thread_specific my_ets_type; - my_ets_type my_ets; - + my_ets_type my_ets; + public: combinable() { } @@ -46,7 +46,7 @@ namespace tbb { combinable( finit _finit) : my_ets(_finit) { } //! destructor - ~combinable() { + ~combinable() { } combinable(const combinable& other) : my_ets(other.my_ets) { } diff --git a/include/tbb/compat/condition_variable b/include/tbb/compat/condition_variable index ce9c2377..7a79225c 100644 --- a/include/tbb/compat/condition_variable +++ b/include/tbb/compat/condition_variable @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/compat/ppl.h b/include/tbb/compat/ppl.h index 156fd392..2cfc537d 100644 --- a/include/tbb/compat/ppl.h +++ b/include/tbb/compat/ppl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/compat/thread b/include/tbb/compat/thread index fc7c40b0..bc22ed53 100644 --- a/include/tbb/compat/thread +++ b/include/tbb/compat/thread @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/compat/tuple b/include/tbb/compat/tuple index 795b2fbd..1eafb7b0 100644 --- a/include/tbb/compat/tuple +++ b/include/tbb/compat/tuple @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/concurrent_hash_map.h b/include/tbb/concurrent_hash_map.h index c1f69d67..fb41de72 100644 --- a/include/tbb/concurrent_hash_map.h +++ b/include/tbb/concurrent_hash_map.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -791,7 +791,7 @@ public: swap(table); } - //! Move constructor + //! Move constructor concurrent_hash_map( concurrent_hash_map &&table, const allocator_type &a ) : internal::hash_map_base(), my_allocator(a) { @@ -1349,7 +1349,12 @@ void concurrent_hash_map::rehash(size_type sz) { if( !reported && buckets >= 512 && ( 2*empty_buckets > current_size || 2*overpopulated_buckets > current_size ) ) { tbb::internal::runtime_warning( "Performance is not optimal because the hash function produces bad randomness in lower bits in %s.\nSize: %d Empties: %d Overlaps: %d", - typeid(*this).name(), current_size, empty_buckets, overpopulated_buckets ); +#if __TBB_USE_OPTIONAL_RTTI + typeid(*this).name(), +#else + "concurrent_hash_map", +#endif + current_size, empty_buckets, overpopulated_buckets ); reported = true; } #endif @@ -1400,7 +1405,12 @@ void concurrent_hash_map::clear() { if( !reported && buckets >= 512 && ( 2*empty_buckets > current_size || 2*overpopulated_buckets > current_size ) ) { tbb::internal::runtime_warning( "Performance is not optimal because the hash function produces bad randomness in lower bits in %s.\nSize: %d Empties: %d Overlaps: %d", - typeid(*this).name(), current_size, empty_buckets, overpopulated_buckets ); +#if __TBB_USE_OPTIONAL_RTTI + typeid(*this).name(), +#else + "concurrent_hash_map", +#endif + current_size, empty_buckets, overpopulated_buckets ); reported = true; } #endif diff --git a/include/tbb/concurrent_lru_cache.h b/include/tbb/concurrent_lru_cache.h index db50e25d..20fbb7b4 100644 --- a/include/tbb/concurrent_lru_cache.h +++ b/include/tbb/concurrent_lru_cache.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/concurrent_priority_queue.h b/include/tbb/concurrent_priority_queue.h index 3a0ad6f8..d5871e59 100644 --- a/include/tbb/concurrent_priority_queue.h +++ b/include/tbb/concurrent_priority_queue.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/concurrent_queue.h b/include/tbb/concurrent_queue.h index 4cb05861..ee1187c4 100644 --- a/include/tbb/concurrent_queue.h +++ b/include/tbb/concurrent_queue.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -31,7 +31,7 @@ namespace strict_ppl { /** Multiple threads may each push and pop concurrently. Assignment construction is not allowed. @ingroup containers */ -template > +template > class concurrent_queue: public internal::concurrent_queue_base_v3 { template friend class internal::concurrent_queue_iterator; @@ -43,7 +43,7 @@ class concurrent_queue: public internal::concurrent_queue_base_v3 { /*override*/ virtual void *allocate_block( size_t n ) { void *b = reinterpret_cast(my_allocator.allocate( n )); if( !b ) - internal::throw_exception(internal::eid_bad_alloc); + internal::throw_exception(internal::eid_bad_alloc); return b; } @@ -292,7 +292,7 @@ public: typedef std::ptrdiff_t difference_type; //! Construct empty queue - explicit concurrent_bounded_queue(const allocator_type& a = allocator_type()) : + explicit concurrent_bounded_queue(const allocator_type& a = allocator_type()) : concurrent_queue_base_v8( sizeof(T) ), my_allocator( a ) { } @@ -402,8 +402,8 @@ public: } //! Return number of pushes minus number of pops. - /** Note that the result can be negative if there are pops waiting for the - corresponding pushes. The result can also exceed capacity() if there + /** Note that the result can be negative if there are pops waiting for the + corresponding pushes. The result can also exceed capacity() if there are push operations in flight. */ size_type size() const {return internal_size();} @@ -439,7 +439,7 @@ public: const_iterator unsafe_begin() const {return const_iterator(*this);} const_iterator unsafe_end() const {return const_iterator();} -}; +}; template concurrent_bounded_queue::~concurrent_bounded_queue() { diff --git a/include/tbb/concurrent_unordered_map.h b/include/tbb/concurrent_unordered_map.h index ab97b3e5..09a2a28c 100644 --- a/include/tbb/concurrent_unordered_map.h +++ b/include/tbb/concurrent_unordered_map.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/concurrent_unordered_set.h b/include/tbb/concurrent_unordered_set.h index 0d0df906..62d992b5 100644 --- a/include/tbb/concurrent_unordered_set.h +++ b/include/tbb/concurrent_unordered_set.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -223,7 +223,7 @@ public: { this->insert(il.begin(),il.end()); } -#endif //# __TBB_INITIALIZER_LISTS_PRESENT +#endif //# __TBB_INITIALIZER_LISTS_PRESENT #if __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN concurrent_unordered_multiset(const concurrent_unordered_multiset& table) diff --git a/include/tbb/concurrent_vector.h b/include/tbb/concurrent_vector.h index ec27013e..aeca3171 100644 --- a/include/tbb/concurrent_vector.h +++ b/include/tbb/concurrent_vector.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/critical_section.h b/include/tbb/critical_section.h index 973dd487..596f7fe7 100644 --- a/include/tbb/critical_section.h +++ b/include/tbb/critical_section.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -48,7 +48,7 @@ public: void __TBB_EXPORTED_METHOD internal_construct(); - critical_section_v4() { + critical_section_v4() { #if _WIN32||_WIN64 InitializeCriticalSectionEx( &my_impl, 4000, 0 ); #else @@ -60,7 +60,7 @@ public: ~critical_section_v4() { __TBB_ASSERT(my_tid == tbb_thread::id(), "Destroying a still-held critical section"); #if _WIN32||_WIN64 - DeleteCriticalSection(&my_impl); + DeleteCriticalSection(&my_impl); #else pthread_mutex_destroy(&my_impl); #endif @@ -79,7 +79,7 @@ public: } }; - void lock() { + void lock() { tbb_thread::id local_tid = this_tbb_thread::get_id(); if(local_tid == my_tid) throw_exception( eid_improper_lock ); #if _WIN32||_WIN64 diff --git a/include/tbb/enumerable_thread_specific.h b/include/tbb/enumerable_thread_specific.h index aee2e534..c457c03a 100644 --- a/include/tbb/enumerable_thread_specific.h +++ b/include/tbb/enumerable_thread_specific.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -636,7 +636,7 @@ namespace interface6 { } construct_by_args( P&& ... args ) : pack(std::forward

    (args)...) {} }; -#endif +#endif // storage for initialization function pointer // TODO: consider removing the template parameter T here and in callback_leaf @@ -708,7 +708,7 @@ namespace interface6 { ets_element() { is_built = false; } // not currently-built U* value() { return my_space.begin(); } U* value_committed() { is_built = true; return my_space.begin(); } - ~ets_element() { + ~ets_element() { if(is_built) { my_space.begin()->~U(); is_built = false; diff --git a/include/tbb/flow_graph.h b/include/tbb/flow_graph.h index f7d44c99..3c5f3059 100644 --- a/include/tbb/flow_graph.h +++ b/include/tbb/flow_graph.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -265,10 +265,10 @@ public: // methods remove the statement from all predecessors/successors liste in the edge // container. - template< typename S > void sender_extract( S &s ); - template< typename R > void receiver_extract( R &r ); - -private: + template< typename S > void sender_extract( S &s ); + template< typename R > void receiver_extract( R &r ); + +private: edge_list_type built_edges; }; // class edge_container } // namespace internal @@ -528,9 +528,15 @@ class graph : tbb::internal::no_copy { void operator()() const { graph_root_task->wait_for_all(); } }; - void prepare_task_arena() { - my_task_arena = new tbb::task_arena(tbb::internal::attach()); - if (!my_task_arena->is_active()) + void prepare_task_arena( bool reinit = false ) { + if (reinit) { + __TBB_ASSERT( my_task_arena, NULL ); + my_task_arena->terminate(); + my_task_arena->initialize(tbb::task_arena::attach()); + } else { + my_task_arena = new tbb::task_arena(tbb::task_arena::attach()); + } + if (!my_task_arena->is_active()) // failed to attach my_task_arena->initialize(); // create a new, default-initialized arena __TBB_ASSERT(my_task_arena->is_active(), NULL); } @@ -659,7 +665,7 @@ public: task * root_task() { return my_root_task; } - + void set_active(bool a = true) { my_is_active = a; } @@ -813,8 +819,7 @@ inline void graph::reset( reset_flags f ) { #if __TBB_PREVIEW_ASYNC_NODE // Reattach the arena. Might be useful to run the graph in a particular task_arena // while not limiting graph lifetime to a single task_arena::execute() call. - delete my_task_arena; - prepare_task_arena(); + prepare_task_arena( /*reinit=*/true ); #endif set_active(true); // now spawn the tasks necessary to start the graph @@ -1108,8 +1113,8 @@ public: typedef internal::function_input_queue input_queue_type; typedef internal::function_output fOutput_type; #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - using typename fInput_type::predecessor_list_type; - using typename fOutput_type::successor_list_type; + typedef typename fInput_type::predecessor_list_type predecessor_list_type; + typedef typename fOutput_type::successor_list_type successor_list_type; #endif using fInput_type::my_predecessors; @@ -1159,7 +1164,7 @@ protected: /*override*/void reset_node(reset_flags f) { fInput_type::reset_function_input(f); // TODO: use clear() instead. - if(f & rf_clear_edges) { + if(f & rf_clear_edges) { successors().clear(); my_predecessors.clear(); } @@ -1624,7 +1629,7 @@ public: typedef typename receiver::built_predecessors_type built_predecessors_type; - /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } /*override*/ void internal_add_built_predecessor( predecessor_type &p) { spin_mutex::scoped_lock l(pred_mutex); @@ -1844,7 +1849,7 @@ protected: typedef typename receiver::built_predecessors_type built_predecessors_type; - /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } + /*override receiver*/ built_predecessors_type &built_predecessors() { return my_built_predecessors; } virtual void internal_add_built_pred(buffer_operation *op) { my_built_predecessors.add_edge(*(op->p)); @@ -2822,7 +2827,7 @@ protected: return rtask; } - /*override*/void reset_receiver(reset_flags /*f*/) { + /*override*/void reset_receiver(reset_flags /*f*/) { __TBB_ASSERT(false,NULL); // should never be called } @@ -3457,7 +3462,7 @@ public: private: #if TBB_PREVIEW_FLOW_GRAPH_TRACE const char *my_type_name; -#endif +#endif input_ports_type *my_input_ports; static const size_t NUM_INPUTS = sizeof...(InputTypes); @@ -3613,12 +3618,12 @@ public: }; template -class async_body { +class async_body { public: typedef AsyncGateway async_gateway_type; async_body(const Body &body, async_gateway_type *gateway) : my_body(body), my_async_gateway(gateway) { } - + async_body(const async_body &other) : my_body(other.my_body), my_async_gateway(other.my_async_gateway) { } void operator()( const Input &v, Ports & ) { @@ -3735,7 +3740,7 @@ public: typedef internal::multifunction_body mfn_body_type; typedef internal::async_body async_body_type; mfn_body_type &body_ref = *this->my_body; - async_body_type ab = dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); + async_body_type ab = dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); return ab.get_body(); } @@ -3770,7 +3775,7 @@ protected: base_type::reset_node(f); } -}; +}; #endif // __TBB_PREVIEW_ASYNC_NODE diff --git a/include/tbb/flow_graph_opencl_node.h b/include/tbb/flow_graph_opencl_node.h index 9be3269e..c82d26ff 100644 --- a/include/tbb/flow_graph_opencl_node.h +++ b/include/tbb/flow_graph_opencl_node.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -90,7 +90,7 @@ template< typename T, typename Factory > class receiver> { public: //! The predecessor type for this node - typedef sender> dependency_predecessor_type; + typedef sender> predecessor_type; typedef proxy_dependency_receiver proxy; receiver() : my_ordinary_receiver( *this ) {} @@ -104,10 +104,10 @@ public: virtual task *try_put_task( const dependency_msg& ) = 0; //! Add a predecessor to the node - virtual bool register_predecessor( dependency_predecessor_type & ) { return false; } + virtual bool register_predecessor( predecessor_type & ) { return false; } //! Remove a predecessor from the node - virtual bool remove_predecessor( dependency_predecessor_type & ) { return false; } + virtual bool remove_predecessor( predecessor_type & ) { return false; } protected: //! put receiver back in initial state @@ -117,6 +117,7 @@ private: class ordinary_receiver : public receiver < T >, tbb::internal::no_assign { //! The predecessor type for this node typedef sender predecessor_type; + typedef sender> dependency_predecessor_type; public: ordinary_receiver(receiver>& owner) : my_owner(owner) {} @@ -174,7 +175,7 @@ class proxy_dependency_sender; template< typename T, typename Factory > class proxy_dependency_receiver : public receiver < dependency_msg >, tbb::internal::no_assign { public: - typedef sender> dependency_predecessor_type; + typedef sender> predecessor_type; proxy_dependency_receiver( receiver& r ) : my_r( r ) {} @@ -190,11 +191,11 @@ public: } //! Add a predecessor to the node - /* override */ bool register_predecessor( dependency_predecessor_type &s ) { + /* override */ bool register_predecessor( predecessor_type &s ) { return my_r.register_predecessor( s.ordinary_sender() ); } //! Remove a predecessor from the node - /* override */ bool remove_predecessor( dependency_predecessor_type &s ) { + /* override */ bool remove_predecessor( predecessor_type &s ) { return my_r.remove_predecessor( s.ordinary_sender() ); } protected: @@ -216,14 +217,14 @@ public: sender() : my_ordinary_sender( *this ) {} //! The successor type for this sender - typedef receiver> dependency_successor_type; + typedef receiver> successor_type; typedef proxy_dependency_sender proxy; //! Add a new successor to this node - virtual bool register_successor( dependency_successor_type &r ) = 0; + virtual bool register_successor( successor_type &r ) = 0; //! Removes a successor from this node - virtual bool remove_successor( dependency_successor_type &r ) = 0; + virtual bool remove_successor( successor_type &r ) = 0; //! Request an item from the sender virtual bool try_get( dependency_msg & ) { return false; } @@ -234,6 +235,7 @@ private: class ordinary_sender : public sender < T >, tbb::internal::no_assign { //! The successor type for this sender typedef receiver successor_type; + typedef receiver> dependency_successor_type; public: ordinary_sender(sender>& owner) : my_owner(owner) {} @@ -301,17 +303,17 @@ public: template< typename T, typename Factory > class proxy_dependency_sender : public sender < dependency_msg >, tbb::internal::no_assign { public: - typedef receiver> dependency_successor_type; + typedef receiver> successor_type; proxy_dependency_sender( sender& s ) : my_s( s ) {} //! Add a new successor to this node - /* override */ bool register_successor( dependency_successor_type &r ) { + /* override */ bool register_successor( successor_type &r ) { return my_s.register_successor( r.ordinary_receiver() ); } //! Removes a successor from this node - /* override */ bool remove_successor( dependency_successor_type &r ) { + /* override */ bool remove_successor( successor_type &r ) { return my_s.remove_successor( r.ordinary_receiver() ); } @@ -407,14 +409,17 @@ std::string platform_info( cl_platform_id p, cl_platform_info i ) class opencl_device { +public: typedef size_t device_id_type; enum : device_id_type { unknown = device_id_type( -2 ), host = device_id_type( -1 ) }; -public: + opencl_device() : my_device_id( unknown ) {} + opencl_device( cl_device_id cl_d_id, device_id_type device_id ) : my_device_id( device_id ), my_cl_device_id( cl_d_id ) {} + std::string platform_profile() const { return platform_info( platform(), CL_PLATFORM_PROFILE ); } @@ -512,6 +517,18 @@ public: return device_info( my_cl_device_id, CL_DEVICE_ADDRESS_BITS ); } + cl_device_id device_id() const { + return my_cl_device_id; + } + + cl_command_queue command_queue() const { + return my_cl_command_queue; + } + + void set_command_queue( cl_command_queue cmd_queue ) { + my_cl_command_queue = cmd_queue; + } + private: opencl_device( cl_device_id d_id ) : my_device_id( unknown ), my_cl_device_id( d_id ) {} @@ -724,6 +741,8 @@ public: return my_host_ptr; } + Factory *factory() const { return my_factory; } + dependency_msg send( opencl_device d, const cl_event *e ); dependency_msg receive( const cl_event *e ); virtual void map_memory( opencl_device, dependency_msg & ) = 0; @@ -748,6 +767,14 @@ public: enforce_cl_retcode( err, "Failed to create an OpenCL buffer" ); } + // The constructor for subbuffers. + opencl_buffer_impl( cl_mem m, size_t index, size_t size, Factory& f ) : opencl_memory( f ), my_size( size ) { + cl_int err; + cl_buffer_region region = { index, size }; + this->my_cl_mem = clCreateSubBuffer( m, 0, CL_BUFFER_CREATE_TYPE_REGION, ®ion, &err ); + enforce_cl_retcode( err, "Failed to create an OpenCL subbuffer" ); + } + size_t size() const { return my_size; } @@ -768,6 +795,9 @@ enum access_type { read_only }; +template +class opencl_subbuffer; + template class opencl_buffer { public: @@ -823,7 +853,11 @@ public: else dependency.clear_event(); } + opencl_subbuffer subbuffer( size_t index, size_t size ) const; private: + // The constructor for subbuffers. + opencl_buffer( Factory &f, cl_mem m, size_t index, size_t size ) : my_impl( std::make_shared( m, index*sizeof(T), size*sizeof(T), f ) ) {} + typedef opencl_buffer_impl impl_type; std::shared_ptr my_impl; @@ -834,8 +868,24 @@ private: template friend class opencl_factory; + template + friend class opencl_subbuffer; +}; + +template +class opencl_subbuffer : public opencl_buffer { + opencl_buffer my_owner; +public: + opencl_subbuffer() {} + opencl_subbuffer( const opencl_buffer &owner, size_t index, size_t size ) : + opencl_buffer( *owner.my_impl->factory(), owner.native_object(), index, size ), my_owner( owner ) {} }; +template +opencl_subbuffer opencl_buffer::subbuffer( size_t index, size_t size ) const { + return opencl_subbuffer( *this, index, size ); +} + template class opencl_factory { @@ -918,7 +968,7 @@ private: bool is_same_context( opencl_device::device_id_type d1, opencl_device::device_id_type d2 ) { __TBB_ASSERT( d1 != opencl_device::unknown && d2 != opencl_device::unknown, NULL ); - // Currently, factory supports only one context so if the both devices are not host it means the are in the same context. + // Currently, factory supports only one context so if the both devices are not host it means the are in the same context. if ( d1 != opencl_device::host && d2 != opencl_device::host ) return true; return d1 == d2; @@ -1014,7 +1064,7 @@ private: class opencl_foundation : tbb::internal::no_assign { struct default_device_selector_type { - opencl_device operator()( const opencl_device_list& devices ) { + opencl_device operator()( const opencl_device_list& devices ) { return *devices.begin(); } }; @@ -1653,20 +1703,20 @@ class opencl_node< tuple, JP, Factory > : public composite_node < tupl template NDRange ndrange_value( NDRange&& r, const kernel_input_tuple& ) const { return r; } template - typename tuple_element::type::value_type ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { + typename tuple_element::type::value_type ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { // "+1" since get<0>(ip) is opencl_device. return get(ip).data(false); } template - void ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { + void ndrange_value( port_ref_impl, const kernel_input_tuple& ip ) const { __TBB_STATIC_ASSERT( N1==N2, "Do not use a port_ref range (e.g. port_ref<0,2>) as an argument for the set_ndranges routine" ); } template - typename tuple_element::type::value_type ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { + typename tuple_element::type::value_type ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { return ndrange_value(port_ref(), ip); } template - void ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { + void ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { return ndrange_value(port_ref(), ip); } // ------------------------------------------- // @@ -1788,7 +1838,7 @@ class opencl_node< tuple, JP, Factory > : public composite_node < tupl set_args_func( opencl_kernel &k, const kernel_input_tuple &ip ) : my_opencl_kernel( k ), my_ip( ip ) {} // It is immpossible to use Args... because a function pointer cannot be casted to a function reference implicitly. // Allow the compiler to deduce types for function pointers automatically. - template + template void operator()( A&&... a ) { my_opencl_kernel.set_args<0>( my_ip, std::forward( a )... ); } @@ -1801,7 +1851,7 @@ class opencl_node< tuple, JP, Factory > : public composite_node < tupl public: send_func( opencl_device d ) : my_device( d ) {} void operator()() {} - template + template void operator()( T &&t, Rest&&... rest ) { send_if_memory_object( my_device, std::forward( t ) ); (*this)( std::forward( rest )... ); @@ -2067,6 +2117,7 @@ using interface8::read_only; using interface8::read_write; using interface8::write_only; using interface8::opencl_buffer; +using interface8::opencl_subbuffer; using interface8::opencl_device; using interface8::opencl_device_list; using interface8::opencl_program; diff --git a/include/tbb/global_control.h b/include/tbb/global_control.h index 9b773d31..d43ff5a4 100644 --- a/include/tbb/global_control.h +++ b/include/tbb/global_control.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -50,8 +50,7 @@ public: __TBB_ASSERT_RELEASE((unsigned)value == value, "Stack size is limited to unsigned int range"); #endif if (my_param==max_allowed_parallelism) - // TODO: support for serialization via max_allowed_parallelism==1 - __TBB_ASSERT_RELEASE(my_value>1, "Values of 1 and 0 are not supported for max_allowed_parallelism."); + __TBB_ASSERT_RELEASE(my_value>0, "max_allowed_parallelism cannot be 0."); internal_create(); } diff --git a/include/tbb/index.html b/include/tbb/index.html index a403e1fa..f0702e27 100644 --- a/include/tbb/index.html +++ b/include/tbb/index.html @@ -19,7 +19,7 @@ Include files for Intel® Threading Building Blocks classes and functions.


    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/include/tbb/internal/_aggregator_impl.h b/include/tbb/internal/_aggregator_impl.h index 6782b6ad..111a6c36 100644 --- a/include/tbb/internal/_aggregator_impl.h +++ b/include/tbb/internal/_aggregator_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_concurrent_queue_impl.h b/include/tbb/internal/_concurrent_queue_impl.h index 30b738fc..fc994090 100644 --- a/include/tbb/internal/_concurrent_queue_impl.h +++ b/include/tbb/internal/_concurrent_queue_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_concurrent_unordered_impl.h b/include/tbb/internal/_concurrent_unordered_impl.h index dffe4fcd..21f2ae69 100644 --- a/include/tbb/internal/_concurrent_unordered_impl.h +++ b/include/tbb/internal/_concurrent_unordered_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,7 +18,7 @@ reasons why the executable file might be covered by the GNU General Public License. */ -/* Container implementations in this header are based on PPL implementations +/* Container implementations in this header are based on PPL implementations provided by Microsoft. */ #ifndef __TBB__concurrent_unordered_impl_H @@ -840,7 +840,7 @@ public: return my_solist.max_size(); } - // Iterators + // Iterators iterator begin() { return my_solist.begin(); } @@ -887,7 +887,7 @@ public: return my_midpoint_node != my_end_node; } //! Split range. - const_range_type( const_range_type &r, split ) : + const_range_type( const_range_type &r, split ) : my_table(r.my_table), my_end_node(r.my_end_node) { r.my_end_node = my_begin_node = r.my_midpoint_node; @@ -897,7 +897,7 @@ public: r.set_midpoint(); } //! Init range with container and grainsize specified - const_range_type( const concurrent_unordered_base &a_table ) : + const_range_type( const concurrent_unordered_base &a_table ) : my_table(a_table), my_begin_node(a_table.my_solist.begin()), my_end_node(a_table.my_solist.end()) { @@ -1085,7 +1085,7 @@ public: return const_cast(this)->internal_equal_range(key); } - // Bucket interface - for debugging + // Bucket interface - for debugging size_type unsafe_bucket_count() const { return my_number_of_buckets; } @@ -1138,7 +1138,7 @@ public: return end(); raw_iterator it = get_bucket(bucket); - + // Find the end of the bucket, denoted by the dummy element do ++it; while(it != my_solist.raw_end() && !it.get_node_ptr()->is_dummy()); @@ -1155,7 +1155,7 @@ public: return end(); raw_const_iterator it = get_bucket(bucket); - + // Find the end of the bucket, denoted by the dummy element do ++it; while(it != my_solist.raw_end() && !it.get_node_ptr()->is_dummy()); @@ -1291,10 +1291,10 @@ private: { if (!pnode) pnode = my_solist.create_node(order_key, tbb::internal::forward(value)); - + // Try to insert 'pnode' between 'it' and 'where' std::pair result = my_solist.try_insert(it, where, pnode, &new_count); - + if (result.second) { // Insertion succeeded, adjust the table size, if needed @@ -1317,7 +1317,7 @@ private: my_hash_compare(get_key(*where), get_key(value)) == 0) { // Element already in the list, return it if (pnode) - my_solist.destroy_node(pnode); + my_solist.destroy_node(pnode); return std::pair(my_solist.get_iterator(where), false); } // Move the iterator forward diff --git a/include/tbb/internal/_flow_graph_impl.h b/include/tbb/internal/_flow_graph_impl.h index 8f72f127..665efc52 100644 --- a/include/tbb/internal/_flow_graph_impl.h +++ b/include/tbb/internal/_flow_graph_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -157,7 +157,7 @@ void set_async_gateway(T *body, void *g) { body->set_async_gateway(static_cast(g)); } -void set_async_gateway(...) { } +inline void set_async_gateway(...) { } #endif //! function_body that takes an Input and a set of output ports @@ -181,7 +181,7 @@ void set_async_gateway(...) { } body(input, oset); // body may explicitly put() to one or more of oset. } B get_body() { return body; } - + #if __TBB_PREVIEW_ASYNC_NODE /*override*/ void set_gateway(void *gateway) { set_async_gateway(&body, gateway); diff --git a/include/tbb/internal/_flow_graph_indexer_impl.h b/include/tbb/internal/_flow_graph_indexer_impl.h index a65590f0..ee2bef89 100644 --- a/include/tbb/internal/_flow_graph_indexer_impl.h +++ b/include/tbb/internal/_flow_graph_indexer_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,8 +32,8 @@ namespace internal { // Output of the indexer_node is a tbb::flow::tagged_msg, and will be of // the form tagged_msg // where the value of tag will indicate which result was put to the - // successor. - + // successor. + template task* do_try_put(const T &v, void *p) { typename IndexerNodeBaseType::output_type o(K, v); @@ -207,7 +207,7 @@ namespace internal { }; indexer_node_base_operation(const output_type* e, op_type t) : type(char(t)), my_arg(e) {} - indexer_node_base_operation(const successor_type &s, op_type t) : type(char(t)), + indexer_node_base_operation(const successor_type &s, op_type t) : type(char(t)), my_succ(const_cast(&s)) {} indexer_node_base_operation(op_type t) : type(char(t)) {} }; @@ -314,7 +314,7 @@ namespace internal { indexer_node_base_operation op_data(blt_succ_cpy); op_data.succv = &v; my_aggregator.execute(&op_data); - } + } void extract() { my_successors.built_successors().sender_extract(*this); indexer_helper::extract(this->my_inputs); @@ -355,7 +355,7 @@ namespace internal { typedef typename tuple_element<2, InputTuple>::type third_type; typedef typename internal::tagged_msg type; }; - + template struct input_types<4, InputTuple> { typedef typename tuple_element<0, InputTuple>::type first_type; @@ -365,7 +365,7 @@ namespace internal { typedef typename internal::tagged_msg type; }; - + template struct input_types<5, InputTuple> { typedef typename tuple_element<0, InputTuple>::type first_type; @@ -376,7 +376,7 @@ namespace internal { typedef typename internal::tagged_msg type; }; - + template struct input_types<6, InputTuple> { typedef typename tuple_element<0, InputTuple>::type first_type; @@ -388,7 +388,7 @@ namespace internal { typedef typename internal::tagged_msg type; }; - + template struct input_types<7, InputTuple> { typedef typename tuple_element<0, InputTuple>::type first_type; @@ -419,7 +419,7 @@ namespace internal { seventh_type, eighth_type> type; }; - + template struct input_types<9, InputTuple> { typedef typename tuple_element<0, InputTuple>::type first_type; diff --git a/include/tbb/internal/_flow_graph_item_buffer_impl.h b/include/tbb/internal/_flow_graph_item_buffer_impl.h index a6d8936d..08b2ffca 100644 --- a/include/tbb/internal/_flow_graph_item_buffer_impl.h +++ b/include/tbb/internal/_flow_graph_item_buffer_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -75,7 +75,7 @@ namespace internal { } // may be called with an empty slot or a slot that has already been constructed into. - void set_my_item(size_t i, const item_type &o) { + void set_my_item(size_t i, const item_type &o) { if(item(i).second != no_item) { destroy_item(i); } @@ -135,7 +135,7 @@ namespace internal { v = get_my_item(my_tail-1); } - // following methods are for reservation of the front of a bufffer. + // following methods are for reservation of the front of a bufffer. void reserve_item(size_type i) { __TBB_ASSERT(my_item_valid(i) && !my_item_reserved(i), "item cannot be reserved"); item(i).second = reserved_item; } void release_item(size_type i) { __TBB_ASSERT(my_item_reserved(i), "item is not reserved"); item(i).second = has_item; } @@ -146,7 +146,7 @@ namespace internal { // grow_array doesn't work if we change my_tail when the old array is too small size_type size(size_t new_tail = 0) { return (new_tail ? new_tail : my_tail) - my_head; } size_type capacity() { return my_array_size; } - // sequencer_node does not use this method, so we don't + // sequencer_node does not use this method, so we don't // need a version that passes in the new_tail value. bool buffer_full() { return size() >= capacity(); } @@ -213,7 +213,7 @@ namespace internal { if(my_item_valid(i)) destroy_item(i); } - allocator_type().deallocate(my_array,my_array_size); + allocator_type().deallocate(my_array,my_array_size); } my_array = NULL; if(reset_pointers) { @@ -237,7 +237,7 @@ namespace internal { }; //! item_buffer with reservable front-end. NOTE: if reserving, do not - //* complete operation with pop_front(); use consume_front(). + //* complete operation with pop_front(); use consume_front(). //* No synchronization built-in. template > class reservable_item_buffer : public item_buffer { diff --git a/include/tbb/internal/_flow_graph_join_impl.h b/include/tbb/internal/_flow_graph_join_impl.h index acb2cc61..da7495a6 100644 --- a/include/tbb/internal/_flow_graph_join_impl.h +++ b/include/tbb/internal/_flow_graph_join_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -605,14 +605,14 @@ namespace internal { } void extract_receiver() { - item_buffer::reset(); + item_buffer::reset(); my_built_predecessors.receiver_extract(*this); } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ - /*override*/void reset_receiver(reset_flags f) { + /*override*/void reset_receiver(reset_flags f) { tbb::internal::suppress_unused_warning(f); - item_buffer::reset(); + item_buffer::reset(); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES if (f & rf_clear_edges) my_built_predecessors.clear(); @@ -791,7 +791,7 @@ namespace internal { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES /*override*/built_predecessors_type &built_predecessors() { return my_built_predecessors; } - + /*override*/void internal_add_built_predecessor(sender &p) { key_matching_port_operation op_data(add_blt_pred); op_data.pred = &p; @@ -831,9 +831,9 @@ namespace internal { my_built_predecessors.receiver_extract(*this); } #endif - /*override*/void reset_receiver(reset_flags f ) { + /*override*/void reset_receiver(reset_flags f ) { tbb::internal::suppress_unused_warning(f); - buffer_type::reset(); + buffer_type::reset(); #if TBB_PREVIEW_FLOW_GRAPH_FEATURES if (f & rf_clear_edges) my_built_predecessors.clear(); diff --git a/include/tbb/internal/_flow_graph_node_impl.h b/include/tbb/internal/_flow_graph_node_impl.h index 6ca30193..0c441fa1 100644 --- a/include/tbb/internal/_flow_graph_node_impl.h +++ b/include/tbb/internal/_flow_graph_node_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -47,7 +47,7 @@ namespace internal { }; //! Input and scheduling for a function node that takes a type Input as input - // The only up-ref is apply_body_impl, which should implement the function + // The only up-ref is apply_body_impl, which should implement the function // call and any handling of the result. template< typename Input, typename A, typename ImplType > class function_input_base : public receiver, tbb::internal::no_assign { @@ -56,10 +56,10 @@ namespace internal { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES , add_blt_pred, del_blt_pred, blt_pred_cnt, blt_pred_cpy // create vector copies of preds and succs -#endif +#endif }; typedef function_input_base class_type; - + public: //! The input type of this receiver @@ -81,7 +81,7 @@ namespace internal { my_predecessors.set_owner(this); my_aggregator.initialize_handler(handler_type(this)); } - + //! Copy constructor function_input_base( const function_input_base& src, input_queue_type *q = NULL) : receiver(), tbb::internal::no_assign(), @@ -96,10 +96,10 @@ namespace internal { // The queue is allocated by the constructor for {multi}function_node. // TODO: pass the graph_buffer_policy to the base so it can allocate the queue instead. // This would be an interface-breaking change. - virtual ~function_input_base() { + virtual ~function_input_base() { if ( my_queue ) delete my_queue; } - + //! Put to the node, returning a task if available virtual task * try_put_task( const input_type &t ) { if ( my_max_concurrency == 0 ) { @@ -121,7 +121,7 @@ namespace internal { my_aggregator.execute(&op_data); return true; } - + //! Removes src from the list of cached predecessors. /* override */ bool remove_predecessor( predecessor_type &src ) { operation_type op_data(rem_pred); @@ -178,7 +178,7 @@ namespace internal { size_t my_concurrency; input_queue_type *my_queue; predecessor_cache my_predecessors; - + /*override*/void reset_receiver( reset_flags f) { if( f & rf_clear_edges) my_predecessors.clear(); else @@ -190,7 +190,7 @@ namespace internal { friend class apply_body_task_bypass< class_type, input_type >; friend class forward_task_bypass< class_type >; - + class operation_type : public aggregated_operation< operation_type > { public: char type; @@ -207,12 +207,12 @@ namespace internal { type(char(t)), elem(const_cast(&e)) {} operation_type(op_type t) : type(char(t)), r(NULL) {} }; - + bool forwarder_busy; typedef internal::aggregating_functor handler_type; friend class internal::aggregating_functor; aggregator< handler_type, operation_type > my_aggregator; - + void handle_operations(operation_type *op_list) { operation_type *tmp; while (op_list) { @@ -257,7 +257,7 @@ namespace internal { bool item_was_retrieved = false; if ( my_queue ) item_was_retrieved = my_queue->pop(i); - else + else item_was_retrieved = my_predecessors.get_item(i); if (item_was_retrieved) { ++my_concurrency; @@ -292,7 +292,7 @@ namespace internal { } } } - + //! Put to the node, but return the task instead of enqueueing it void internal_try_put_task(operation_type *op) { __TBB_ASSERT(my_max_concurrency != 0, NULL); @@ -301,7 +301,7 @@ namespace internal { task * new_task = create_body_task(*(op->elem)); op->bypass_t = new_task; __TBB_store_with_release(op->status, SUCCEEDED); - } else if ( my_queue && my_queue->push(*(op->elem)) ) { + } else if ( my_queue && my_queue->push(*(op->elem)) ) { op->bypass_t = SUCCESSFULLY_ENQUEUED; __TBB_store_with_release(op->status, SUCCEEDED); } else { @@ -309,7 +309,7 @@ namespace internal { __TBB_store_with_release(op->status, FAILED); } } - + //! Tries to spawn bodies if available and if concurrency allows void internal_forward(operation_type *op) { op->bypass_t = NULL; @@ -332,7 +332,7 @@ namespace internal { } //! Applies the body to the provided input - // then decides if more work is available + // then decides if more work is available task * apply_body_bypass( input_type &i ) { task * new_task = static_cast(this)->apply_body_impl_bypass(i); if ( my_max_concurrency != 0 ) { @@ -343,10 +343,10 @@ namespace internal { } return new_task; } - + //! allocates a task to apply a body inline task * create_body_task( const input_type &input ) { - + return (my_graph.is_active()) ? new(task::allocate_additional_child_of(*(my_graph.root_task()))) apply_body_task_bypass < class_type, input_type >(*this, input) : @@ -361,7 +361,7 @@ namespace internal { FLOW_SPAWN(*tp); } } - + //! This is executed by an enqueued task, the "forwarder" task *forward_task() { operation_type op_data(try_fwd); @@ -376,7 +376,7 @@ namespace internal { } while (op_data.status == SUCCEEDED); return rval; } - + inline task *create_forward_task() { return (my_graph.is_active()) ? new(task::allocate_additional_child_of(*(my_graph.root_task()))) forward_task_bypass< class_type >(*this) : @@ -413,7 +413,7 @@ namespace internal { } //! Copy constructor - function_input( const function_input& src, input_queue_type *q = NULL ) : + function_input( const function_input& src, input_queue_type *q = NULL ) : base_type(src, q), my_body( src.my_init_body->clone() ), my_init_body(src.my_init_body->clone() ) { @@ -427,8 +427,8 @@ namespace internal { template< typename Body > Body copy_function_object() { function_body_type &body_ref = *this->my_body; - return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); - } + return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); + } task * apply_body_impl_bypass( const input_type &i) { #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -438,7 +438,7 @@ namespace internal { output_type v = (*my_body)(i); tbb::internal::fgt_end_body( my_body ); task * new_task = successors().try_put_task( v ); -#else +#else task * new_task = successors().try_put_task( (*my_body)(i) ); #endif return new_task; @@ -469,7 +469,7 @@ namespace internal { clear_element::clear_this(p); } template static bool this_empty(P &p) { - if(tbb::flow::get(p).successors().empty()) + if(tbb::flow::get(p).successors().empty()) return clear_element::this_empty(p); return false; } @@ -501,7 +501,7 @@ namespace internal { #endif //! Implements methods for a function node that takes a type Input as input - // and has a tuple of output ports specified. + // and has a tuple of output ports specified. template< typename Input, typename OutputPortSet, typename A> class multifunction_input : public function_input_base > { public: @@ -526,7 +526,7 @@ namespace internal { } //! Copy constructor - multifunction_input( const multifunction_input& src, input_queue_type *q = NULL ) : + multifunction_input( const multifunction_input& src, input_queue_type *q = NULL ) : base_type(src, q), my_body( src.my_init_body->clone() ), my_init_body(src.my_init_body->clone() ) { @@ -540,8 +540,8 @@ namespace internal { template< typename Body > Body copy_function_object() { multifunction_body_type &body_ref = *this->my_body; - return dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); - } + return dynamic_cast< internal::multifunction_body_leaf & >(body_ref).get_body(); + } // for multifunction nodes we do not have a single successor as such. So we just tell // the task we were successful. @@ -562,7 +562,7 @@ namespace internal { } #endif - /*override*/void reset(reset_flags f) { + /*override*/void reset(reset_flags f) { base_type::reset_function_input_base(f); if(f & rf_clear_edges)clear_element::clear_this(my_output_ports); if(f & rf_reset_bodies) { @@ -582,7 +582,7 @@ namespace internal { // template to refer to an output port of a multifunction_node template typename tbb::flow::tuple_element::type &output_port(MOP &op) { - return tbb::flow::get(op.output_ports()); + return tbb::flow::get(op.output_ports()); } // helper structs for split_node @@ -607,28 +607,28 @@ namespace internal { template< typename Output > class continue_input : public continue_receiver { public: - + //! The input type of this receiver typedef continue_msg input_type; - + //! The output type of this receiver typedef Output output_type; typedef function_body function_body_type; - + template< typename Body > continue_input( graph &g, Body& body ) - : my_graph_ptr(&g), + : my_graph_ptr(&g), my_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ), my_init_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ) { } - + template< typename Body > continue_input( graph &g, int number_of_predecessors, Body& body ) - : continue_receiver( number_of_predecessors ), my_graph_ptr(&g), + : continue_receiver( number_of_predecessors ), my_graph_ptr(&g), my_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ), my_init_body( new internal::function_body_leaf< input_type, output_type, Body>(body) ) { } - continue_input( const continue_input& src ) : continue_receiver(src), + continue_input( const continue_input& src ) : continue_receiver(src), my_graph_ptr(src.my_graph_ptr), my_body( src.my_init_body->clone() ), my_init_body( src.my_init_body->clone() ) {} @@ -641,8 +641,8 @@ namespace internal { template< typename Body > Body copy_function_object() { function_body_type &body_ref = *my_body; - return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); - } + return dynamic_cast< internal::function_body_leaf & >(body_ref).get_body(); + } /*override*/void reset_receiver( reset_flags f) { continue_receiver::reset_receiver(f); @@ -654,15 +654,15 @@ namespace internal { } protected: - + graph* my_graph_ptr; function_body_type *my_body; function_body_type *my_init_body; - - virtual broadcast_cache &successors() = 0; - + + virtual broadcast_cache &successors() = 0; + friend class apply_body_task_bypass< continue_input< Output >, continue_msg >; - + //! Applies the body to the provided input task *apply_body_bypass( input_type ) { #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -672,15 +672,15 @@ namespace internal { output_type v = (*my_body)( continue_msg() ); tbb::internal::fgt_end_body( my_body ); return successors().try_put_task( v ); -#else +#else return successors().try_put_task( (*my_body)( continue_msg() ) ); #endif } - + //! Spawns a task that applies the body /* override */ task *execute( ) { return (my_graph_ptr->is_active()) ? - new ( task::allocate_additional_child_of( *(my_graph_ptr->root_task()) ) ) + new ( task::allocate_additional_child_of( *(my_graph_ptr->root_task()) ) ) apply_body_task_bypass< continue_input< Output >, continue_msg >( *this, continue_msg() ) : NULL; } @@ -691,7 +691,7 @@ namespace internal { template< typename Output > class function_output : public sender { public: - + template friend struct clear_element; typedef Output output_type; typedef receiver successor_type; @@ -700,18 +700,18 @@ namespace internal { typedef typename sender::built_successors_type built_successors_type; typedef typename sender::successor_list_type successor_list_type; #endif - + function_output() { my_successors.set_owner(this); } function_output(const function_output & /*other*/) : sender() { my_successors.set_owner(this); } - + //! Adds a new successor to this node /* override */ bool register_successor( receiver &r ) { successors().register_successor( r ); return true; } - + //! Removes a successor from this node /* override */ bool remove_successor( receiver &r ) { successors().remove_successor( r ); @@ -748,11 +748,11 @@ namespace internal { // if task pointer is returned will always spawn and return true, else // return value will be bool returned from successors.try_put. task *try_put_task(const output_type &i) { return my_successors.try_put_task(i); } - - broadcast_cache_type &successors() { return my_successors; } + + broadcast_cache_type &successors() { return my_successors; } protected: broadcast_cache_type my_successors; - + }; // function_output template< typename Output > @@ -761,7 +761,7 @@ namespace internal { typedef Output output_type; typedef function_output base_type; using base_type::my_successors; - + multifunction_output() : base_type() {my_successors.set_owner(this);} multifunction_output( const multifunction_output &/*other*/) : base_type() { my_successors.set_owner(this); } diff --git a/include/tbb/internal/_flow_graph_tagged_buffer_impl.h b/include/tbb/internal/_flow_graph_tagged_buffer_impl.h index 95bea242..c49e9c16 100644 --- a/include/tbb/internal/_flow_graph_tagged_buffer_impl.h +++ b/include/tbb/internal/_flow_graph_tagged_buffer_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_flow_graph_trace_impl.h b/include/tbb/internal/_flow_graph_trace_impl.h index 35485965..24dd3a9e 100644 --- a/include/tbb/internal/_flow_graph_trace_impl.h +++ b/include/tbb/internal/_flow_graph_trace_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -40,64 +40,64 @@ template void register_input_port(void *node, tbb::flow::receiver* port, string_index name_index) { //TODO: Make fgt_internal_create_input_port a function template? fgt_internal_create_input_port( node, port, name_index); -} +} template < typename PortsTuple, int N > struct fgt_internal_input_helper { static void register_port( void *node, PortsTuple &ports ) { register_input_port( node, &(tbb::flow::get(ports)), static_cast(FLOW_INPUT_PORT_0 + N - 1) ); fgt_internal_input_helper::register_port( node, ports ); - } + } }; template < typename PortsTuple > struct fgt_internal_input_helper { static void register_port( void *node, PortsTuple &ports ) { register_input_port( node, &(tbb::flow::get<0>(ports)), FLOW_INPUT_PORT_0 ); - } + } }; template void register_output_port(void *node, tbb::flow::sender* port, string_index name_index) { //TODO: Make fgt_internal_create_output_port a function template? fgt_internal_create_output_port( node, static_cast(port), name_index); -} +} template < typename PortsTuple, int N > struct fgt_internal_output_helper { static void register_port( void *node, PortsTuple &ports ) { - register_output_port( node, &(tbb::flow::get(ports)), static_cast(FLOW_OUTPUT_PORT_0 + N - 1) ); + register_output_port( node, &(tbb::flow::get(ports)), static_cast(FLOW_OUTPUT_PORT_0 + N - 1) ); fgt_internal_output_helper::register_port( node, ports ); - } + } }; template < typename PortsTuple > struct fgt_internal_output_helper { static void register_port( void *node, PortsTuple &ports ) { - register_output_port( node, &(tbb::flow::get<0>(ports)), FLOW_OUTPUT_PORT_0 ); - } + register_output_port( node, &(tbb::flow::get<0>(ports)), FLOW_OUTPUT_PORT_0 ); + } }; template< typename NodeType > void fgt_multioutput_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::receiver< typename NodeType::input_type > * >(const_cast< NodeType *>(node)) ); - itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); + void *addr = (void *)( static_cast< tbb::flow::receiver< typename NodeType::input_type > * >(const_cast< NodeType *>(node)) ); + itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); } template< typename NodeType > void fgt_multiinput_multioutput_node_desc( const NodeType *node, const char *desc ) { - void *addr = const_cast(node); - itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); + void *addr = const_cast(node); + itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); } template< typename NodeType > static inline void fgt_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::sender< typename NodeType::output_type > * >(const_cast< NodeType *>(node)) ); - itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); + void *addr = (void *)( static_cast< tbb::flow::sender< typename NodeType::output_type > * >(const_cast< NodeType *>(node)) ); + itt_metadata_str_add( ITT_DOMAIN_FLOW, addr, FLOW_NODE, FLOW_OBJECT_NAME, desc ); } static inline void fgt_graph_desc( void *g, const char *desc ) { - itt_metadata_str_add( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, FLOW_OBJECT_NAME, desc ); + itt_metadata_str_add( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, FLOW_OBJECT_NAME, desc ); } static inline void fgt_body( void *node, void *body ) { @@ -106,34 +106,34 @@ static inline void fgt_body( void *node, void *body ) { template< int N, typename PortsTuple > static inline void fgt_multioutput_node( string_index t, void *g, void *input_port, PortsTuple &ports ) { - itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); - fgt_internal_output_helper::register_port( input_port, ports ); + itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); + fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); + fgt_internal_output_helper::register_port( input_port, ports ); } template< int N, typename PortsTuple > static inline void fgt_multioutput_node_with_body( string_index t, void *g, void *input_port, PortsTuple &ports, void *body ) { - itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); - fgt_internal_output_helper::register_port( input_port, ports ); + itt_make_task_group( ITT_DOMAIN_FLOW, input_port, FLOW_NODE, g, FLOW_GRAPH, t ); + fgt_internal_create_input_port( input_port, input_port, FLOW_INPUT_PORT_0 ); + fgt_internal_output_helper::register_port( input_port, ports ); fgt_body( input_port, body ); } template< int N, typename PortsTuple > static inline void fgt_multiinput_node( string_index t, void *g, PortsTuple &ports, void *output_port) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); - fgt_internal_input_helper::register_port( output_port, ports ); + itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); + fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); + fgt_internal_input_helper::register_port( output_port, ports ); } static inline void fgt_node( string_index t, void *g, void *output_port ) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); + itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); + fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); } static inline void fgt_node_with_body( string_index t, void *g, void *output_port, void *body ) { - itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); - fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); + itt_make_task_group( ITT_DOMAIN_FLOW, output_port, FLOW_NODE, g, FLOW_GRAPH, t ); + fgt_internal_create_output_port( output_port, output_port, FLOW_OUTPUT_PORT_0 ); fgt_body( output_port, body ); } @@ -145,13 +145,13 @@ static inline void fgt_node( string_index t, void *g, void *input_port, void *ou static inline void fgt_node_with_body( string_index t, void *g, void *input_port, void *output_port, void *body ) { fgt_node_with_body( t, g, output_port, body ); - fgt_internal_create_input_port( output_port, input_port, FLOW_INPUT_PORT_0 ); + fgt_internal_create_input_port( output_port, input_port, FLOW_INPUT_PORT_0 ); } static inline void fgt_node( string_index t, void *g, void *input_port, void *decrement_port, void *output_port ) { fgt_node( t, g, input_port, output_port ); - fgt_internal_create_input_port( output_port, decrement_port, FLOW_INPUT_PORT_1 ); + fgt_internal_create_input_port( output_port, decrement_port, FLOW_INPUT_PORT_1 ); } static inline void fgt_make_edge( void *output_port, void *input_port ) { @@ -163,7 +163,7 @@ static inline void fgt_remove_edge( void *output_port, void *input_port ) { } static inline void fgt_graph( void *g ) { - itt_make_task_group( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, NULL, FLOW_NULL, FLOW_GRAPH ); + itt_make_task_group( ITT_DOMAIN_FLOW, g, FLOW_GRAPH, NULL, FLOW_NULL, FLOW_GRAPH ); } static inline void fgt_begin_body( void *body ) { @@ -204,7 +204,7 @@ static inline void fgt_graph_desc( void * /*g*/, const char * /*desc*/ ) { } static inline void fgt_body( void * /*node*/, void * /*body*/ ) { } -template< int N, typename PortsTuple > +template< int N, typename PortsTuple > static inline void fgt_multioutput_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, PortsTuple & /*ports*/ ) { } template< int N, typename PortsTuple > @@ -213,8 +213,8 @@ static inline void fgt_multioutput_node_with_body( string_index /*t*/, void * /* template< int N, typename PortsTuple > static inline void fgt_multiinput_node( string_index /*t*/, void * /*g*/, PortsTuple & /*ports*/, void * /*output_port*/ ) { } -static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*output_port*/ ) { } -static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*output_port*/ ) { } +static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*output_port*/ ) { } +static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*output_port*/ ) { } static inline void fgt_node( string_index /*t*/, void * /*g*/, void * /*input_port*/, void * /*decrement_port*/, void * /*output_port*/ ) { } static inline void fgt_node_with_body( string_index /*t*/, void * /*g*/, void * /*output_port*/, void * /*body*/ ) { } diff --git a/include/tbb/internal/_flow_graph_types_impl.h b/include/tbb/internal/_flow_graph_types_impl.h index d85af08e..cb182706 100644 --- a/include/tbb/internal/_flow_graph_types_impl.h +++ b/include/tbb/internal/_flow_graph_types_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -361,7 +361,7 @@ namespace internal { #endif /* __TBB_CPP11_RVALUE_REF_PRESENT */ ~initializer_list_wrapper() { - if ( my_begin ) + if ( my_begin ) free( my_begin ); } diff --git a/include/tbb/internal/_mutex_padding.h b/include/tbb/internal/_mutex_padding.h index 53d164fb..9dc7a187 100644 --- a/include/tbb/internal/_mutex_padding.h +++ b/include/tbb/internal/_mutex_padding.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_range_iterator.h b/include/tbb/internal/_range_iterator.h index 37cd6162..030f5bf4 100644 --- a/include/tbb/internal/_range_iterator.h +++ b/include/tbb/internal/_range_iterator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_tbb_hash_compare_impl.h b/include/tbb/internal/_tbb_hash_compare_impl.h index f9b9cb7d..748ec659 100644 --- a/include/tbb/internal/_tbb_hash_compare_impl.h +++ b/include/tbb/internal/_tbb_hash_compare_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -26,7 +26,7 @@ namespace tbb { namespace interface5 { -namespace internal { +namespace internal { // Template class for hash compare template diff --git a/include/tbb/internal/_tbb_strings.h b/include/tbb/internal/_tbb_strings.h index 101a5216..f5469fb1 100644 --- a/include/tbb/internal/_tbb_strings.h +++ b/include/tbb/internal/_tbb_strings.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_tbb_windef.h b/include/tbb/internal/_tbb_windef.h index 2eddc528..6b80e0b1 100644 --- a/include/tbb/internal/_tbb_windef.h +++ b/include/tbb/internal/_tbb_windef.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -43,7 +43,7 @@ namespace std { // Default setting of TBB_USE_DEBUG #ifdef TBB_USE_DEBUG -# if TBB_USE_DEBUG +# if TBB_USE_DEBUG # if !defined(_DEBUG) # pragma message(__FILE__ "(" __TBB_STRING(__LINE__) ") : Warning: Recommend using /MDd if compiling with TBB_USE_DEBUG!=0") # endif diff --git a/include/tbb/internal/_template_helpers.h b/include/tbb/internal/_template_helpers.h index 429c8b95..b55ebc6d 100644 --- a/include/tbb/internal/_template_helpers.h +++ b/include/tbb/internal/_template_helpers.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_x86_eliding_mutex_impl.h b/include/tbb/internal/_x86_eliding_mutex_impl.h index 4b549396..954248b3 100644 --- a/include/tbb/internal/_x86_eliding_mutex_impl.h +++ b/include/tbb/internal/_x86_eliding_mutex_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/internal/_x86_rtm_rw_mutex_impl.h b/include/tbb/internal/_x86_rtm_rw_mutex_impl.h index 6b4fbff7..9274c9a6 100644 --- a/include/tbb/internal/_x86_rtm_rw_mutex_impl.h +++ b/include/tbb/internal/_x86_rtm_rw_mutex_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -58,7 +58,7 @@ public: private: #endif friend class interface7::internal::padded_mutex; - class scoped_lock; // should be private + class scoped_lock; // should be private friend class scoped_lock; private: //! @cond INTERNAL diff --git a/include/tbb/machine/gcc_armv7.h b/include/tbb/machine/gcc_armv7.h index 6fa8536f..dcd7c8aa 100644 --- a/include/tbb/machine/gcc_armv7.h +++ b/include/tbb/machine/gcc_armv7.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/gcc_generic.h b/include/tbb/machine/gcc_generic.h index 53b52817..bd698a44 100644 --- a/include/tbb/machine/gcc_generic.h +++ b/include/tbb/machine/gcc_generic.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,7 +34,7 @@ #endif /** FPU control setting not available for non-Intel architectures on Android **/ -#if __ANDROID__ && __TBB_generic_arch +#if __ANDROID__ && __TBB_generic_arch #define __TBB_CPU_CTL_ENV_PRESENT 0 #endif diff --git a/include/tbb/machine/gcc_ia32_common.h b/include/tbb/machine/gcc_ia32_common.h index e11ca11b..965593f0 100644 --- a/include/tbb/machine/gcc_ia32_common.h +++ b/include/tbb/machine/gcc_ia32_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/gcc_itsx.h b/include/tbb/machine/gcc_itsx.h index af1b5301..1583379c 100644 --- a/include/tbb/machine/gcc_itsx.h +++ b/include/tbb/machine/gcc_itsx.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -53,7 +53,7 @@ inline static void __TBB_machine_try_lock_elided_cancel() inline static void __TBB_machine_unlock_elided( volatile uint8_t* lk ) { - __asm__ volatile (".byte " __TBB_STRINGIZE(__TBB_OP_XRELEASE)"; movb $0, %0" + __asm__ volatile (".byte " __TBB_STRINGIZE(__TBB_OP_XRELEASE)"; movb $0, %0" : "=m"(*lk) : "m"(*lk) : "memory" ); } @@ -92,7 +92,7 @@ inline static uint32_t __TBB_machine_begin_transaction() { uint32_t res = ~uint32_t(0); // success value __asm__ volatile ("1: .byte 0xC7; .byte 0xF8;\n" // XBEGIN - " .long 2f-1b-6\n" // 2f-1b == difference in addresses of start + " .long 2f-1b-6\n" // 2f-1b == difference in addresses of start // of XBEGIN and the MOVL // 2f - 1b - 6 == that difference minus the size of the // XBEGIN instruction. This is the abort offset to @@ -105,7 +105,7 @@ inline static uint32_t __TBB_machine_begin_transaction() } /*! - * Attempt to commit/end transaction + * Attempt to commit/end transaction */ inline static void __TBB_machine_end_transaction() { diff --git a/include/tbb/machine/ibm_aix51.h b/include/tbb/machine/ibm_aix51.h index 65be8dc8..28dd0daa 100644 --- a/include/tbb/machine/ibm_aix51.h +++ b/include/tbb/machine/ibm_aix51.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/icc_generic.h b/include/tbb/machine/icc_generic.h index bd209188..7dae6e7b 100644 --- a/include/tbb/machine/icc_generic.h +++ b/include/tbb/machine/icc_generic.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -57,7 +57,7 @@ #endif #ifndef __TBB_full_memory_fence -#if _MSC_VER +#if _MSC_VER //TODO: any way to use same intrinsics on windows and linux? #pragma intrinsic(_mm_mfence) #define __TBB_full_memory_fence() _mm_mfence() diff --git a/include/tbb/machine/linux_common.h b/include/tbb/machine/linux_common.h index 7d64e3a3..20808135 100644 --- a/include/tbb/machine/linux_common.h +++ b/include/tbb/machine/linux_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/linux_ia32.h b/include/tbb/machine/linux_ia32.h index fecbe02f..f6440003 100644 --- a/include/tbb/machine/linux_ia32.h +++ b/include/tbb/machine/linux_ia32.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -73,7 +73,7 @@ static inline T __TBB_machine_fetchstore##S(volatile void *ptr, T value) : "memory"); \ return result; \ } \ - + __TBB_MACHINE_DEFINE_ATOMICS(1,int8_t,"","=q") __TBB_MACHINE_DEFINE_ATOMICS(2,int16_t,"","=r") __TBB_MACHINE_DEFINE_ATOMICS(4,int32_t,"l","=r") @@ -102,7 +102,7 @@ static inline __TBB_IA32_CAS8_NOINLINE int64_t __TBB_machine_cmpswp8 (volatile v int32_t i32[2]; }; i64 = value; -#if __PIC__ +#if __PIC__ /* compiling position-independent code */ // EBX register preserved for compliance with position-independent code rules on IA32 int32_t tmp; @@ -218,7 +218,7 @@ static inline void __TBB_machine_store8(volatile void *ptr, int64_t value) { } #endif } - + // Machine specific atomic operations #define __TBB_AtomicOR(P,V) __TBB_machine_or(P,V) #define __TBB_AtomicAND(P,V) __TBB_machine_and(P,V) diff --git a/include/tbb/machine/linux_ia64.h b/include/tbb/machine/linux_ia64.h index b7d2f1c3..60e83b47 100644 --- a/include/tbb/machine/linux_ia64.h +++ b/include/tbb/machine/linux_ia64.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -39,7 +39,7 @@ #else #define __TBB_compiler_fence() __asm__ __volatile__("": : :"memory") #define __TBB_control_consistency_helper() __TBB_compiler_fence() - // Even though GCC imbues volatile loads with acquire semantics, it sometimes moves + // Even though GCC imbues volatile loads with acquire semantics, it sometimes moves // loads over the acquire fence. The following helpers stop such incorrect code motion. #define __TBB_acquire_consistency_helper() __TBB_compiler_fence() #define __TBB_release_consistency_helper() __TBB_compiler_fence() @@ -82,21 +82,21 @@ extern "C" { int64_t __TBB_machine_fetchstore8acquire(volatile void *ptr, int64_t value); int64_t __TBB_machine_fetchstore8release(volatile void *ptr, int64_t value); - int8_t __TBB_machine_cmpswp1__TBB_full_fence (volatile void *ptr, int8_t value, int8_t comparand); - int8_t __TBB_machine_cmpswp1acquire(volatile void *ptr, int8_t value, int8_t comparand); - int8_t __TBB_machine_cmpswp1release(volatile void *ptr, int8_t value, int8_t comparand); + int8_t __TBB_machine_cmpswp1__TBB_full_fence (volatile void *ptr, int8_t value, int8_t comparand); + int8_t __TBB_machine_cmpswp1acquire(volatile void *ptr, int8_t value, int8_t comparand); + int8_t __TBB_machine_cmpswp1release(volatile void *ptr, int8_t value, int8_t comparand); int16_t __TBB_machine_cmpswp2__TBB_full_fence (volatile void *ptr, int16_t value, int16_t comparand); - int16_t __TBB_machine_cmpswp2acquire(volatile void *ptr, int16_t value, int16_t comparand); - int16_t __TBB_machine_cmpswp2release(volatile void *ptr, int16_t value, int16_t comparand); + int16_t __TBB_machine_cmpswp2acquire(volatile void *ptr, int16_t value, int16_t comparand); + int16_t __TBB_machine_cmpswp2release(volatile void *ptr, int16_t value, int16_t comparand); int32_t __TBB_machine_cmpswp4__TBB_full_fence (volatile void *ptr, int32_t value, int32_t comparand); - int32_t __TBB_machine_cmpswp4acquire(volatile void *ptr, int32_t value, int32_t comparand); - int32_t __TBB_machine_cmpswp4release(volatile void *ptr, int32_t value, int32_t comparand); + int32_t __TBB_machine_cmpswp4acquire(volatile void *ptr, int32_t value, int32_t comparand); + int32_t __TBB_machine_cmpswp4release(volatile void *ptr, int32_t value, int32_t comparand); int64_t __TBB_machine_cmpswp8__TBB_full_fence (volatile void *ptr, int64_t value, int64_t comparand); - int64_t __TBB_machine_cmpswp8acquire(volatile void *ptr, int64_t value, int64_t comparand); - int64_t __TBB_machine_cmpswp8release(volatile void *ptr, int64_t value, int64_t comparand); + int64_t __TBB_machine_cmpswp8acquire(volatile void *ptr, int64_t value, int64_t comparand); + int64_t __TBB_machine_cmpswp8release(volatile void *ptr, int64_t value, int64_t comparand); int64_t __TBB_machine_lg(uint64_t value); void __TBB_machine_pause(int32_t delay); @@ -127,7 +127,7 @@ extern "C" { #define __TBB_machine_fetchstore4full_fence __TBB_machine_fetchstore4__TBB_full_fence #define __TBB_machine_fetchstore8full_fence __TBB_machine_fetchstore8__TBB_full_fence #define __TBB_machine_cmpswp1full_fence __TBB_machine_cmpswp1__TBB_full_fence -#define __TBB_machine_cmpswp2full_fence __TBB_machine_cmpswp2__TBB_full_fence +#define __TBB_machine_cmpswp2full_fence __TBB_machine_cmpswp2__TBB_full_fence #define __TBB_machine_cmpswp4full_fence __TBB_machine_cmpswp4__TBB_full_fence #define __TBB_machine_cmpswp8full_fence __TBB_machine_cmpswp8__TBB_full_fence @@ -143,7 +143,7 @@ extern "C" { #define __TBB_machine_fetchstore4relaxed __TBB_machine_fetchstore4acquire #define __TBB_machine_fetchstore8relaxed __TBB_machine_fetchstore8acquire #define __TBB_machine_cmpswp1relaxed __TBB_machine_cmpswp1acquire -#define __TBB_machine_cmpswp2relaxed __TBB_machine_cmpswp2acquire +#define __TBB_machine_cmpswp2relaxed __TBB_machine_cmpswp2acquire #define __TBB_machine_cmpswp4relaxed __TBB_machine_cmpswp4acquire #define __TBB_machine_cmpswp8relaxed __TBB_machine_cmpswp8acquire diff --git a/include/tbb/machine/linux_intel64.h b/include/tbb/machine/linux_intel64.h index f63b9162..cc538ab0 100644 --- a/include/tbb/machine/linux_intel64.h +++ b/include/tbb/machine/linux_intel64.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/mac_ppc.h b/include/tbb/machine/mac_ppc.h index f1d8e679..7f5474ee 100644 --- a/include/tbb/machine/mac_ppc.h +++ b/include/tbb/machine/mac_ppc.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/macos_common.h b/include/tbb/machine/macos_common.h index 66896497..c2c86c38 100644 --- a/include/tbb/machine/macos_common.h +++ b/include/tbb/machine/macos_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/mic_common.h b/include/tbb/machine/mic_common.h index 1d4f71d9..606b3458 100644 --- a/include/tbb/machine/mic_common.h +++ b/include/tbb/machine/mic_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/msvc_armv7.h b/include/tbb/machine/msvc_armv7.h index de9b02e3..cc1c1bf2 100644 --- a/include/tbb/machine/msvc_armv7.h +++ b/include/tbb/machine/msvc_armv7.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/msvc_ia32_common.h b/include/tbb/machine/msvc_ia32_common.h index f8dd3ab9..9caaa2b1 100644 --- a/include/tbb/machine/msvc_ia32_common.h +++ b/include/tbb/machine/msvc_ia32_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -174,7 +174,7 @@ #endif namespace tbb { namespace internal { namespace msvc_inline_asm { static inline void lock_or( volatile void *operand, __int32 addend ) { - __asm + __asm { mov eax, addend mov edx, [operand] @@ -182,7 +182,7 @@ } } static inline void lock_and( volatile void *operand, __int32 addend ) { - __asm + __asm { mov eax, addend mov edx, [operand] diff --git a/include/tbb/machine/sunos_sparc.h b/include/tbb/machine/sunos_sparc.h index a6d8cbde..f28401f9 100644 --- a/include/tbb/machine/sunos_sparc.h +++ b/include/tbb/machine/sunos_sparc.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -30,7 +30,7 @@ #define __TBB_WORDSIZE 8 // Big endian is assumed for SPARC. -// While hardware may support page-specific bi-endianness, only big endian pages may be exposed to TBB +// While hardware may support page-specific bi-endianness, only big endian pages may be exposed to TBB #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG /** To those working on SPARC hardware. Consider relaxing acquire and release diff --git a/include/tbb/machine/windows_api.h b/include/tbb/machine/windows_api.h index 32386e5b..bafa1d1e 100644 --- a/include/tbb/machine/windows_api.h +++ b/include/tbb/machine/windows_api.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/windows_ia32.h b/include/tbb/machine/windows_ia32.h index f0d647b7..c1186727 100644 --- a/include/tbb/machine/windows_ia32.h +++ b/include/tbb/machine/windows_ia32.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/windows_intel64.h b/include/tbb/machine/windows_intel64.h index 8c04fe4c..3ddae49e 100644 --- a/include/tbb/machine/windows_intel64.h +++ b/include/tbb/machine/windows_intel64.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/machine/xbox360_ppc.h b/include/tbb/machine/xbox360_ppc.h index 48936278..962b4c13 100644 --- a/include/tbb/machine/xbox360_ppc.h +++ b/include/tbb/machine/xbox360_ppc.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ #define NONET #define NOD3D -#include "xtl.h" +#include "xtl.h" #include "ppcintrinsics.h" #if _MSC_VER >= 1300 @@ -46,7 +46,7 @@ extern "C" void _MemoryBarrier(); //todo: define __TBB_USE_FENCED_ATOMICS and define acquire/release primitives to maximize performance -inline __int32 __TBB_machine_cmpswp4(volatile void *ptr, __int32 value, __int32 comparand ) { +inline __int32 __TBB_machine_cmpswp4(volatile void *ptr, __int32 value, __int32 comparand ) { __sync(); __int32 result = InterlockedCompareExchange((volatile LONG*)ptr, value, comparand); __isync(); @@ -70,21 +70,21 @@ inline __int64 __TBB_machine_cmpswp8(volatile void *ptr, __int64 value, __int64 #define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 #pragma optimize( "", off ) -inline void __TBB_machine_pause (__int32 delay ) +inline void __TBB_machine_pause (__int32 delay ) { for (__int32 i=0; i>= 1; index++; } - return index; + return index; } #define __TBB_HardwareConcurrency() __TBB_XBOX360_DetectNumberOfWorkers() diff --git a/include/tbb/memory_pool.h b/include/tbb/memory_pool.h index 1ddec4f4..4bfc8181 100644 --- a/include/tbb/memory_pool.h +++ b/include/tbb/memory_pool.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -114,7 +114,7 @@ public: pointer address(reference x) const { return &x; } const_pointer address(const_reference x) const { return &x; } - + //! Allocate space for n objects. pointer allocate( size_type n, const void* /*hint*/ = 0) { pointer p = static_cast( my_pool->malloc( n*sizeof(value_type) ) ); @@ -154,7 +154,7 @@ public: //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ -template +template class memory_pool_allocator { public: typedef P pool_type; diff --git a/include/tbb/mutex.h b/include/tbb/mutex.h index df328fde..358809e0 100644 --- a/include/tbb/mutex.h +++ b/include/tbb/mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -61,7 +61,7 @@ public: #if _WIN32||_WIN64 DeleteCriticalSection(&impl); #else - pthread_mutex_destroy(&impl); + pthread_mutex_destroy(&impl); #endif /* _WIN32||_WIN64 */ #endif /* TBB_USE_ASSERT */ @@ -75,7 +75,7 @@ public: It also nicely provides the "node" for queuing locks. */ class scoped_lock : internal::no_copy { public: - //! Construct lock that has not acquired a mutex. + //! Construct lock that has not acquired a mutex. scoped_lock() : my_mutex(NULL) {}; //! Acquire lock on given mutex. @@ -85,7 +85,7 @@ public: //! Release lock (if lock is held). ~scoped_lock() { - if( my_mutex ) + if( my_mutex ) release(); } @@ -208,7 +208,7 @@ public: }; private: #if _WIN32||_WIN64 - CRITICAL_SECTION impl; + CRITICAL_SECTION impl; enum state_t state; #else pthread_mutex_t impl; @@ -229,6 +229,6 @@ public: __TBB_DEFINE_PROFILING_SET_NAME(mutex) -} // namespace tbb +} // namespace tbb #endif /* __TBB_mutex_H */ diff --git a/include/tbb/null_mutex.h b/include/tbb/null_mutex.h index 78a16b79..ca93ae3e 100644 --- a/include/tbb/null_mutex.h +++ b/include/tbb/null_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -24,30 +24,30 @@ #include "tbb_stddef.h" namespace tbb { - + //! A mutex which does nothing /** A null_mutex does no operation and simulates success. @ingroup synchronization */ class null_mutex : internal::mutex_copy_deprecated_and_disabled { -public: +public: //! Represents acquisition of a mutex. - class scoped_lock : internal::no_copy { - public: + class scoped_lock : internal::no_copy { + public: scoped_lock() {} - scoped_lock( null_mutex& ) {} + scoped_lock( null_mutex& ) {} ~scoped_lock() {} void acquire( null_mutex& ) {} bool try_acquire( null_mutex& ) { return true; } void release() {} }; - + null_mutex() {} - - // Mutex traits - static const bool is_rw_mutex = false; + + // Mutex traits + static const bool is_rw_mutex = false; static const bool is_recursive_mutex = true; static const bool is_fair_mutex = true; -}; +}; } diff --git a/include/tbb/null_rw_mutex.h b/include/tbb/null_rw_mutex.h index 390a85b2..7ec6b467 100644 --- a/include/tbb/null_rw_mutex.h +++ b/include/tbb/null_rw_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -24,15 +24,15 @@ #include "tbb_stddef.h" namespace tbb { - + //! A rw mutex which does nothing /** A null_rw_mutex is a rw mutex that does nothing and simulates successful operation. @ingroup synchronization */ class null_rw_mutex : internal::mutex_copy_deprecated_and_disabled { -public: +public: //! Represents acquisition of a mutex. - class scoped_lock : internal::no_copy { - public: + class scoped_lock : internal::no_copy { + public: scoped_lock() {} scoped_lock( null_rw_mutex& , bool = true ) {} ~scoped_lock() {} @@ -42,14 +42,14 @@ public: bool try_acquire( null_rw_mutex& , bool = true ) { return true; } void release() {} }; - + null_rw_mutex() {} - - // Mutex traits - static const bool is_rw_mutex = true; + + // Mutex traits + static const bool is_rw_mutex = true; static const bool is_recursive_mutex = true; static const bool is_fair_mutex = true; -}; +}; } diff --git a/include/tbb/parallel_do.h b/include/tbb/parallel_do.h index 6a2d8dd2..5c6e5d75 100644 --- a/include/tbb/parallel_do.h +++ b/include/tbb/parallel_do.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -88,11 +88,11 @@ namespace internal { Item my_value; feeder_type& my_feeder; - do_iteration_task( const Item& value, feeder_type& feeder ) : + do_iteration_task( const Item& value, feeder_type& feeder ) : my_value(value), my_feeder(feeder) {} - /*override*/ + /*override*/ task* execute() { // TODO: use move semantics for my_value @@ -111,11 +111,11 @@ namespace internal { Iterator my_iter; feeder_type& my_feeder; - do_iteration_task_iter( const Iterator& iter, feeder_type& feeder ) : + do_iteration_task_iter( const Iterator& iter, feeder_type& feeder ) : my_iter(iter), my_feeder(feeder) {} - /*override*/ + /*override*/ task* execute() { parallel_do_operator_selector::call(*my_feeder.my_body, *my_iter, my_feeder); @@ -133,7 +133,7 @@ namespace internal { template class parallel_do_feeder_impl : public parallel_do_feeder { - /*override*/ + /*override*/ void internal_add( const Item& item ) { typedef do_iteration_task iteration_type; @@ -182,7 +182,7 @@ namespace internal { Iterator my_first; size_t my_size; - do_group_task_forward( Iterator first, size_t size, feeder_type& feeder ) + do_group_task_forward( Iterator first, size_t size, feeder_type& feeder ) : my_feeder(feeder), my_first(first), my_size(size) {} @@ -191,8 +191,8 @@ namespace internal { typedef do_iteration_task_iter iteration_type; __TBB_ASSERT( my_size>0, NULL ); task_list list; - task* t; - size_t k=0; + task* t; + size_t k=0; for(;;) { t = new( allocate_child() ) iteration_type( my_first, my_feeder ); ++my_first; @@ -228,8 +228,8 @@ namespace internal { typedef do_iteration_task_iter iteration_type; __TBB_ASSERT( my_size>0, NULL ); task_list list; - task* t; - size_t k=0; + task* t; + size_t k=0; for(;;) { t = new( allocate_child() ) iteration_type( my_arg.begin() + k, my_feeder ); if( ++k==my_size ) break; @@ -258,7 +258,7 @@ namespace internal { typedef parallel_do_feeder_impl feeder_type; public: - do_task_iter( Iterator first, Iterator last , feeder_type& feeder ) : + do_task_iter( Iterator first, Iterator last , feeder_type& feeder ) : my_first(first), my_last(last), my_feeder(feeder) {} @@ -269,13 +269,13 @@ namespace internal { /* Do not merge run(xxx) and run_xxx() methods. They are separated in order to make sure that compilers will eliminate unused argument of type xxx - (that is will not put it on stack). The sole purpose of this argument + (that is will not put it on stack). The sole purpose of this argument is overload resolution. - An alternative could be using template functions, but explicit specialization - of member function templates is not supported for non specialized class - templates. Besides template functions would always fall back to the least - efficient variant (the one for input iterators) in case of iterators having + An alternative could be using template functions, but explicit specialization + of member function templates is not supported for non specialized class + templates. Besides template functions would always fall back to the least + efficient variant (the one for input iterators) in case of iterators having custom tags derived from basic ones. */ /*override*/ task* execute() { @@ -291,7 +291,7 @@ namespace internal { typedef do_group_task_input block_type; block_type& t = *new( allocate_additional_child_of(*my_feeder.my_barrier) ) block_type(my_feeder); - size_t k=0; + size_t k=0; while( !(my_first == my_last) ) { // TODO: move *my_first new (t.my_arg.begin() + k) Item(*my_first); @@ -317,7 +317,7 @@ namespace internal { typedef do_group_task_forward block_type; Iterator first = my_first; - size_t k=0; + size_t k=0; while( !(my_first==my_last) ) { ++my_first; if( ++k==block_type::max_arg_size ) { @@ -335,7 +335,7 @@ namespace internal { typedef do_group_task_forward block_type; typedef do_iteration_task_iter iteration_type; - size_t k = static_cast(my_last-my_first); + size_t k = static_cast(my_last-my_first); if( k > block_type::max_arg_size ) { Iterator middle = my_first + k/2; @@ -349,8 +349,8 @@ namespace internal { return this; }else if( k != 0 ) { task_list list; - task* t; - size_t k1=0; + task* t; + size_t k1=0; for(;;) { t = new( allocate_child() ) iteration_type(my_first, my_feeder); ++my_first; @@ -368,7 +368,7 @@ namespace internal { //! For internal use only. /** Implements parallel iteration over a range. @ingroup algorithms */ - template + template void run_parallel_do( Iterator first, Iterator last, const Body& body #if __TBB_TASK_GROUP_CONTEXT , task_group_context& context @@ -392,27 +392,27 @@ namespace internal { //! For internal use only. /** Detects types of Body's operator function arguments. @ingroup algorithms **/ - template + template void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item) const #if __TBB_TASK_GROUP_CONTEXT - , task_group_context& context -#endif // __TBB_TASK_GROUP_CONTEXT + , task_group_context& context +#endif // __TBB_TASK_GROUP_CONTEXT ) { run_parallel_do::type>( first, last, body #if __TBB_TASK_GROUP_CONTEXT , context -#endif // __TBB_TASK_GROUP_CONTEXT +#endif // __TBB_TASK_GROUP_CONTEXT ); } //! For internal use only. /** Detects types of Body's operator function arguments. @ingroup algorithms **/ - template + template void select_parallel_do( Iterator first, Iterator last, const Body& body, void (Body::*)(Item, parallel_do_feeder<_Item>&) const #if __TBB_TASK_GROUP_CONTEXT - , task_group_context& context + , task_group_context& context #endif // __TBB_TASK_GROUP_CONTEXT ) { @@ -429,8 +429,8 @@ namespace internal { /** \page parallel_do_body_req Requirements on parallel_do body Class \c Body implementing the concept of parallel_do body must define: - - \code - B::operator()( + - \code + B::operator()( cv_item_type item, parallel_do_feeder& feeder ) const @@ -438,10 +438,10 @@ namespace internal { OR B::operator()( cv_item_type& item ) const - \endcode Process item. + \endcode Process item. May be invoked concurrently for the same \c this but different \c item. - - \code item_type( const item_type& ) \endcode + - \code item_type( const item_type& ) \endcode Copy a work item. - \code ~item_type() \endcode Destroy a work item **/ @@ -451,7 +451,7 @@ namespace internal { //@{ //! Parallel iteration over a range, with optional addition of more work. /** @ingroup algorithms */ -template +template void parallel_do( Iterator first, Iterator last, const Body& body ) { if ( first == last ) @@ -479,7 +479,7 @@ void parallel_do(const Range& rng, const Body& body) { #if __TBB_TASK_GROUP_CONTEXT //! Parallel iteration over a range, with optional addition of more work and user-supplied context /** @ingroup algorithms */ -template +template void parallel_do( Iterator first, Iterator last, const Body& body, task_group_context& context ) { if ( first == last ) @@ -501,6 +501,6 @@ void parallel_do(const Range& rng, const Body& body, task_group_context& context //@} -} // namespace +} // namespace #endif /* __TBB_parallel_do_H */ diff --git a/include/tbb/parallel_for.h b/include/tbb/parallel_for.h index e8854ed4..bbba8538 100644 --- a/include/tbb/parallel_for.h +++ b/include/tbb/parallel_for.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/parallel_for_each.h b/include/tbb/parallel_for_each.h index f3d64d89..46f1e343 100644 --- a/include/tbb/parallel_for_each.h +++ b/include/tbb/parallel_for_each.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/parallel_invoke.h b/include/tbb/parallel_invoke.h index 14c07643..0c193bc9 100644 --- a/include/tbb/parallel_invoke.h +++ b/include/tbb/parallel_invoke.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/parallel_reduce.h b/include/tbb/parallel_reduce.h index 1041a832..d387c441 100644 --- a/include/tbb/parallel_reduce.h +++ b/include/tbb/parallel_reduce.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/parallel_scan.h b/include/tbb/parallel_scan.h index 716338ba..00c9b4c8 100644 --- a/include/tbb/parallel_scan.h +++ b/include/tbb/parallel_scan.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -43,7 +43,7 @@ struct final_scan_tag { //! @cond INTERNAL namespace internal { - //! Performs final scan for a leaf + //! Performs final scan for a leaf /** @ingroup algorithms */ template class final_sum: public task { @@ -61,7 +61,7 @@ namespace internal { } ~final_sum() { my_range.begin()->~Range(); - } + } void finish_construction( const Range& range_, Body* stuff_last_ ) { new( my_range.begin() ) Range(range_); my_stuff_last = stuff_last_; @@ -73,7 +73,7 @@ namespace internal { my_stuff_last->assign(my_body); return NULL; } - }; + }; //! Split work to be done in the scan. /** @ingroup algorithms */ @@ -81,20 +81,20 @@ namespace internal { class sum_node: public task { typedef final_sum final_sum_type; public: - final_sum_type *my_incoming; + final_sum_type *my_incoming; final_sum_type *my_body; Body *my_stuff_last; private: final_sum_type *my_left_sum; sum_node *my_left; - sum_node *my_right; + sum_node *my_right; bool my_left_is_final; Range my_range; - sum_node( const Range range_, bool left_is_final_ ) : - my_left_sum(NULL), - my_left(NULL), - my_right(NULL), - my_left_is_final(left_is_final_), + sum_node( const Range range_, bool left_is_final_ ) : + my_left_sum(NULL), + my_left(NULL), + my_right(NULL), + my_left_is_final(left_is_final_), my_range(range_) { // Poison fields that will be set by second pass. @@ -122,7 +122,7 @@ namespace internal { task* b = c.create_child(Range(my_range,split()),*my_left_sum,my_right,my_left_sum,my_stuff_last); task* a = my_left_is_final ? NULL : c.create_child(my_range,*my_body,my_left,my_incoming,NULL); set_ref_count( (a!=NULL)+(b!=NULL) ); - my_body = NULL; + my_body = NULL; if( a ) spawn(*b); else a = b; return a; @@ -153,7 +153,7 @@ namespace internal { __TBB_ASSERT( my_result.ref_count()==(my_result.my_left!=NULL)+(my_result.my_right!=NULL), NULL ); if( my_result.my_left ) my_result.my_left_is_final = false; - if( my_right_zombie && my_sum ) + if( my_right_zombie && my_sum ) ((*my_sum)->my_body).reverse_join(my_result.my_left_sum->my_body); __TBB_ASSERT( !my_return_slot, NULL ); if( my_right_zombie || my_result.my_right ) { @@ -168,9 +168,9 @@ namespace internal { return NULL; } - finish_scan( sum_node_type*& return_slot_, final_sum_type** sum_, sum_node_type& result_ ) : + finish_scan( sum_node_type*& return_slot_, final_sum_type** sum_, sum_node_type& result_ ) : my_sum(sum_), - my_return_slot(return_slot_), + my_return_slot(return_slot_), my_right_zombie(NULL), my_result(result_) { @@ -186,7 +186,7 @@ namespace internal { typedef final_sum final_sum_type; final_sum_type* my_body; /** Non-null if caller is requesting total. */ - final_sum_type** my_sum; + final_sum_type** my_sum; sum_node_type** my_return_slot; /** Null if computing root. */ sum_node_type* my_parent_sum; @@ -267,20 +267,20 @@ namespace internal { (my_body->my_body)( my_range, final_scan_tag() ); else if( my_sum ) (my_body->my_body)( my_range, pre_scan_tag() ); - if( my_sum ) + if( my_sum ) *my_sum = my_body; __TBB_ASSERT( !*my_return_slot, NULL ); } else { sum_node_type* result; - if( my_parent_sum ) + if( my_parent_sum ) result = new(allocate_additional_child_of(*my_parent_sum)) sum_node_type(my_range,/*my_left_is_final=*/my_is_final); else result = new(task::allocate_root()) sum_node_type(my_range,/*my_left_is_final=*/my_is_final); finish_pass1_type& c = *new( allocate_continuation()) finish_pass1_type(*my_return_slot,my_sum,*result); // Split off right child start_scan& b = *new( c.allocate_child() ) start_scan( /*my_return_slot=*/result->my_right, *this, result ); - b.my_is_right_child = true; - // Left child is recycling of *this. Must recycle this before spawning b, + b.my_is_right_child = true; + // Left child is recycling of *this. Must recycle this before spawning b, // otherwise b might complete and decrement c.ref_count() to zero, which // would cause c.execute() to run prematurely. recycle_as_child_of(c); @@ -290,11 +290,11 @@ namespace internal { my_return_slot = &result->my_left; my_is_right_child = false; next_task = this; - my_parent_sum = result; + my_parent_sum = result; __TBB_ASSERT( !*my_return_slot, NULL ); } return next_task; - } + } } // namespace internal //! @endcond @@ -307,10 +307,10 @@ namespace internal { - \code Body::~Body(); \endcode Destructor - \code void Body::operator()( const Range& r, pre_scan_tag ); \endcode Preprocess iterations for range \c r - - \code void Body::operator()( const Range& r, final_scan_tag ); \endcode + - \code void Body::operator()( const Range& r, final_scan_tag ); \endcode Do final processing for iterations of range \c r - \code void Body::reverse_join( Body& a ); \endcode - Merge preprocessing state of \c a into \c this, where \c a was + Merge preprocessing state of \c a into \c this, where \c a was created earlier from \c b by b's splitting constructor **/ diff --git a/include/tbb/parallel_sort.h b/include/tbb/parallel_sort.h index 34f373a7..a642969e 100644 --- a/include/tbb/parallel_sort.h +++ b/include/tbb/parallel_sort.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -30,49 +30,39 @@ namespace tbb { +namespace interface9 { //! @cond INTERNAL namespace internal { +using tbb::internal::no_assign; + //! Range used in quicksort to split elements into subranges based on a value. -/** The split operation selects a splitter and places all elements less than or equal +/** The split operation selects a splitter and places all elements less than or equal to the value in the first range and the remaining elements in the second range. @ingroup algorithms */ template class quick_sort_range: private no_assign { inline size_t median_of_three(const RandomAccessIterator &array, size_t l, size_t m, size_t r) const { - return comp(array[l], array[m]) ? ( comp(array[m], array[r]) ? m : ( comp( array[l], array[r]) ? r : l ) ) + return comp(array[l], array[m]) ? ( comp(array[m], array[r]) ? m : ( comp( array[l], array[r]) ? r : l ) ) : ( comp(array[r], array[m]) ? m : ( comp( array[r], array[l] ) ? r : l ) ); } inline size_t pseudo_median_of_nine( const RandomAccessIterator &array, const quick_sort_range &range ) const { size_t offset = range.size/8u; - return median_of_three(array, + return median_of_three(array, median_of_three(array, 0, offset, offset*2), median_of_three(array, offset*3, offset*4, offset*5), median_of_three(array, offset*6, offset*7, range.size - 1) ); } -public: - - static const size_t grainsize = 500; - const Compare ∁ - RandomAccessIterator begin; - size_t size; - - quick_sort_range( RandomAccessIterator begin_, size_t size_, const Compare &comp_ ) : - comp(comp_), begin(begin_), size(size_) {} - - bool empty() const {return size==0;} - bool is_divisible() const {return size>=grainsize;} - - quick_sort_range( quick_sort_range& range, split ) : comp(range.comp) { - using std::swap; + size_t split_range( quick_sort_range& range ) { + using std::iter_swap; RandomAccessIterator array = range.begin; - RandomAccessIterator key0 = range.begin; + RandomAccessIterator key0 = range.begin; size_t m = pseudo_median_of_nine(array, range); - if (m) swap ( array[0], array[m] ); + if (m) iter_swap ( array, array+m ); size_t i=0; size_t j=range.size; @@ -90,26 +80,46 @@ public: ++i; } while( comp( array[i],*key0 )); if( i==j ) goto partition; - swap( array[i], array[j] ); + iter_swap( array+i, array+j ); } partition: // Put the partition key were it belongs - swap( array[j], *key0 ); + iter_swap( array+j, key0 ); // array[l..j) is less or equal to key. // array(j..r) is greater or equal to key. // array[j] is equal to key i=j+1; - begin = array+i; - size = range.size-i; + size_t new_range_size = range.size-i; range.size = j; + return new_range_size; } + +public: + + static const size_t grainsize = 500; + const Compare ∁ + size_t size; + RandomAccessIterator begin; + + quick_sort_range( RandomAccessIterator begin_, size_t size_, const Compare &comp_ ) : + comp(comp_), size(size_), begin(begin_) {} + + bool empty() const {return size==0;} + bool is_divisible() const {return size>=grainsize;} + + quick_sort_range( quick_sort_range& range, split ) + : comp(range.comp) + , size(split_range(range)) + // +1 accounts for the pivot element, which is at its correct place + // already and, therefore, is not included into subranges. + , begin(range.begin+range.size+1) {} }; #if __TBB_TASK_GROUP_CONTEXT //! Body class used to test if elements in a range are presorted /** @ingroup algorithms */ template -class quick_sort_pretest_body : internal::no_assign { +class quick_sort_pretest_body : no_assign { const Compare ∁ public: @@ -122,7 +132,7 @@ public: int i = 0; for (RandomAccessIterator k = range.begin(); k != my_end; ++k, ++i) { if ( i%64 == 0 && my_task.is_cancelled() ) break; - + // The k-1 is never out-of-range because the first chunk starts at begin+serial_cutoff+1 if ( comp( *(k), *(k-1) ) ) { my_task.cancel_group_execution(); @@ -153,8 +163,8 @@ void parallel_quick_sort( RandomAccessIterator begin, RandomAccessIterator end, const int serial_cutoff = 9; __TBB_ASSERT( begin + serial_cutoff < end, "min_parallel_size is smaller than serial cutoff?" ); - RandomAccessIterator k; - for ( k = begin ; k != begin + serial_cutoff; ++k ) { + RandomAccessIterator k = begin; + for ( ; k != begin + serial_cutoff; ++k ) { if ( comp( *(k+1), *k ) ) { goto do_parallel_quick_sort; } @@ -168,37 +178,40 @@ void parallel_quick_sort( RandomAccessIterator begin, RandomAccessIterator end, if (my_context.is_group_execution_cancelled()) do_parallel_quick_sort: #endif /* __TBB_TASK_GROUP_CONTEXT */ - parallel_for( quick_sort_range(begin, end-begin, comp ), + parallel_for( quick_sort_range(begin, end-begin, comp ), quick_sort_body(), auto_partitioner() ); } } // namespace internal //! @endcond +} // namespace interfaceX /** \page parallel_sort_iter_req Requirements on iterators for parallel_sort - Requirements on value type \c T of \c RandomAccessIterator for \c parallel_sort: - - \code void swap( T& x, T& y ) \endcode Swaps \c x and \c y - - \code bool Compare::operator()( const T& x, const T& y ) \endcode - True if x comes before y; + Requirements on the iterator type \c It and its value type \c T for \c parallel_sort: + + - \code void iter_swap( It a, It b ) \endcode Swaps the values of the elements the given + iterators \c a and \c b are pointing to. \c It should be a random access iterator. + + - \code bool Compare::operator()( const T& x, const T& y ) \endcode True if x comes before y; **/ /** \name parallel_sort See also requirements on \ref parallel_sort_iter_req "iterators for parallel_sort". **/ //@{ -//! Sorts the data in [begin,end) using the given comparator +//! Sorts the data in [begin,end) using the given comparator /** The compare function object is used for all comparisons between elements during sorting. The compare object must define a bool operator() function. @ingroup algorithms **/ template -void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp) { - const int min_parallel_size = 500; +void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end, const Compare& comp) { + const int min_parallel_size = 500; if( end > begin ) { - if (end - begin < min_parallel_size) { + if (end - begin < min_parallel_size) { std::sort(begin, end, comp); } else { - internal::parallel_quick_sort(begin, end, comp); + interface9::internal::parallel_quick_sort(begin, end, comp); } } } @@ -206,7 +219,7 @@ void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end, const //! Sorts the data in [begin,end) with a default comparator \c std::less /** @ingroup algorithms **/ template -inline void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end ) { +inline void parallel_sort( RandomAccessIterator begin, RandomAccessIterator end ) { parallel_sort( begin, end, std::less< typename std::iterator_traits::value_type >() ); } @@ -243,7 +256,7 @@ void parallel_sort(const Range& rng) { template inline void parallel_sort( T * begin, T * end ) { parallel_sort( begin, end, std::less< T >() ); -} +} //@} diff --git a/include/tbb/parallel_while.h b/include/tbb/parallel_while.h index bf49953d..1f9ff379 100644 --- a/include/tbb/parallel_while.h +++ b/include/tbb/parallel_while.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -42,10 +42,10 @@ namespace internal { const Body& my_body; typename Body::argument_type my_value; /*override*/ task* execute() { - my_body(my_value); + my_body(my_value); return NULL; } - while_iteration_task( const typename Body::argument_type& value, const Body& body ) : + while_iteration_task( const typename Body::argument_type& value, const Body& body ) : my_body(body), my_value(value) {} template friend class while_group_task; @@ -57,19 +57,19 @@ namespace internal { @ingroup algorithms */ template class while_group_task: public task { - static const size_t max_arg_size = 4; + static const size_t max_arg_size = 4; const Body& my_body; size_t size; typename Body::argument_type my_arg[max_arg_size]; - while_group_task( const Body& body ) : my_body(body), size(0) {} + while_group_task( const Body& body ) : my_body(body), size(0) {} /*override*/ task* execute() { typedef while_iteration_task iteration_type; __TBB_ASSERT( size>0, NULL ); task_list list; - task* t; - size_t k=0; + task* t; + size_t k=0; for(;;) { - t = new( allocate_child() ) iteration_type(my_arg[k],my_body); + t = new( allocate_child() ) iteration_type(my_arg[k],my_body); if( ++k==size ) break; list.push_back(*t); } @@ -80,7 +80,7 @@ namespace internal { } template friend class while_task; }; - + //! For internal use only. /** Gets block of iterations from a stream and packages them into a while_group_task. @ingroup algorithms */ @@ -92,7 +92,7 @@ namespace internal { /*override*/ task* execute() { typedef while_group_task block_type; block_type& t = *new( allocate_additional_child_of(my_barrier) ) block_type(my_body); - size_t k=0; + size_t k=0; while( my_stream.pop_if_present(t.my_arg[k]) ) { if( ++k==block_type::max_arg_size ) { // There might be more iterations. @@ -108,11 +108,11 @@ namespace internal { return &t; } } - while_task( Stream& stream, const Body& body, empty_task& barrier ) : + while_task( Stream& stream, const Body& body, empty_task& barrier ) : my_stream(stream), my_body(body), my_barrier(barrier) - {} + {} friend class tbb::parallel_while; }; @@ -134,7 +134,7 @@ public: //! Destructor cleans up data members before returning. ~parallel_while() { if( my_barrier ) { - my_barrier->destroy(*my_barrier); + my_barrier->destroy(*my_barrier); my_barrier = NULL; } } @@ -181,6 +181,6 @@ void parallel_while::add( const value_type& item ) { task::self().spawn( i ); } -} // namespace +} // namespace #endif /* __TBB_parallel_while */ diff --git a/include/tbb/partitioner.h b/include/tbb/partitioner.h index c5c249bb..63219337 100644 --- a/include/tbb/partitioner.h +++ b/include/tbb/partitioner.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -405,7 +405,7 @@ struct balancing_partition_type : unbalancing_partition_type { if( !(self().my_divisor / Mode::my_partition::factor) ) { // if not from the top P tasks of binary tree self().my_divisor = 1; // TODO: replace by on-stack flag (partition_state's member)? if( t.is_stolen_task() && t.parent()->ref_count() >= 2 ) { // runs concurrently with the left task -#if TBB_USE_EXCEPTIONS +#if __TBB_USE_OPTIONAL_RTTI // RTTI is available, check whether the cast is valid __TBB_ASSERT(dynamic_cast(t.parent()), 0); // correctness of the cast relies on avoiding the root task for which: diff --git a/include/tbb/pipeline.h b/include/tbb/pipeline.h index 2d7c3855..a6026666 100644 --- a/include/tbb/pipeline.h +++ b/include/tbb/pipeline.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,8 +18,8 @@ reasons why the executable file might be covered by the GNU General Public License. */ -#ifndef __TBB_pipeline_H -#define __TBB_pipeline_H +#ifndef __TBB_pipeline_H +#define __TBB_pipeline_H #include "atomic.h" #include "task.h" @@ -66,17 +66,17 @@ class filter: internal::no_copy { private: //! Value used to mark "not in pipeline" static filter* not_in_pipeline() {return reinterpret_cast(intptr_t(-1));} -protected: +protected: //! The lowest bit 0 is for parallel vs. serial - static const unsigned char filter_is_serial = 0x1; + static const unsigned char filter_is_serial = 0x1; //! 4th bit distinguishes ordered vs unordered filters. /** The bit was not set for parallel filters in TBB 2.1 and earlier, but is_ordered() function always treats parallel filters as out of order. */ - static const unsigned char filter_is_out_of_order = 0x1<<4; + static const unsigned char filter_is_out_of_order = 0x1<<4; //! 5th bit distinguishes thread-bound and regular filters. - static const unsigned char filter_is_bound = 0x1<<5; + static const unsigned char filter_is_bound = 0x1<<5; //! 6th bit marks input filters emitting small objects static const unsigned char filter_may_emit_null = 0x1<<6; @@ -94,7 +94,7 @@ protected: public: enum mode { //! processes multiple items in parallel and in no particular order - parallel = current_version | filter_is_out_of_order, + parallel = current_version | filter_is_out_of_order, //! processes items one at a time; all such filters process items in the same order serial_in_order = current_version | filter_is_serial, //! processes items one at a time and in no particular order @@ -103,7 +103,7 @@ public: serial = serial_in_order }; protected: - filter( bool is_serial_ ) : + filter( bool is_serial_ ) : next_filter_in_pipeline(not_in_pipeline()), my_input_buffer(NULL), my_filter_mode(static_cast((is_serial_ ? serial : parallel) | exact_exception_propagation)), @@ -111,7 +111,7 @@ protected: my_pipeline(NULL), next_segment(NULL) {} - + filter( mode filter_mode ) : next_filter_in_pipeline(not_in_pipeline()), my_input_buffer(NULL), @@ -128,8 +128,8 @@ public: //! True if filter is serial. bool is_serial() const { return bool( my_filter_mode & filter_is_serial ); - } - + } + //! True if filter must receive stream in order. bool is_ordered() const { return (my_filter_mode & (filter_is_out_of_order|filter_is_serial))==filter_is_serial; @@ -141,7 +141,7 @@ public: } //! true if an input filter can emit null - bool object_may_be_null() { + bool object_may_be_null() { return ( my_filter_mode & filter_may_emit_null ) == filter_may_emit_null; } @@ -149,7 +149,7 @@ public: /** Returns NULL if filter is a sink. */ virtual void* operator()( void* item ) = 0; - //! Destroy filter. + //! Destroy filter. /** If the filter was added to a pipeline, the pipeline must be destroyed first. */ virtual __TBB_EXPORTED_METHOD ~filter(); @@ -164,7 +164,7 @@ private: //! Pointer to next filter in the pipeline. filter* next_filter_in_pipeline; - //! has the filter not yet processed all the tokens it will ever see? + //! has the filter not yet processed all the tokens it will ever see? // (pipeline has not yet reached end_of_input or this filter has not yet // seen the last token produced by input_filter) bool has_more_work(); @@ -205,19 +205,19 @@ public: end_of_stream }; protected: - thread_bound_filter(mode filter_mode): + thread_bound_filter(mode filter_mode): filter(static_cast(filter_mode | filter::filter_is_bound)) { __TBB_ASSERT(filter_mode & filter::filter_is_serial, "thread-bound filters must be serial"); } public: - //! If a data item is available, invoke operator() on that item. + //! If a data item is available, invoke operator() on that item. /** This interface is non-blocking. Returns 'success' if an item was processed. - Returns 'item_not_available' if no item can be processed now - but more may arrive in the future, or if token limit is reached. + Returns 'item_not_available' if no item can be processed now + but more may arrive in the future, or if token limit is reached. Returns 'end_of_stream' if there are no more items to process. */ - result_type __TBB_EXPORTED_METHOD try_process_item(); + result_type __TBB_EXPORTED_METHOD try_process_item(); //! Wait until a data item becomes available, and invoke operator() on that item. /** This interface is blocking. @@ -238,7 +238,7 @@ public: //! Construct empty pipeline. __TBB_EXPORTED_METHOD pipeline(); - /** Though the current implementation declares the destructor virtual, do not rely on this + /** Though the current implementation declares the destructor virtual, do not rely on this detail. The virtualness is deprecated and may disappear in future versions of TBB. */ virtual __TBB_EXPORTED_METHOD ~pipeline(); @@ -276,7 +276,7 @@ private: //! Number of idle tokens waiting for input stage. atomic input_tokens; - //! Global counter of tokens + //! Global counter of tokens atomic token_counter; //! False until fetch_input returns NULL. @@ -390,13 +390,13 @@ class token_helper { static pointer create_token(const value_type & source) { return source; } static value_type & token(pointer & t) { return t;} - static void * cast_to_void_ptr(pointer ref) { - type_to_void_ptr_map mymap; + static void * cast_to_void_ptr(pointer ref) { + type_to_void_ptr_map mymap; mymap.void_overlay = NULL; - mymap.actual_value = ref; - return mymap.void_overlay; + mymap.actual_value = ref; + return mymap.void_overlay; } - static pointer cast_from_void_ptr(void * ref) { + static pointer cast_from_void_ptr(void * ref) { type_to_void_ptr_map mymap; mymap.void_overlay = ref; return mymap.actual_value; @@ -428,7 +428,7 @@ public: concrete_filter(tbb::filter::mode filter_mode, const Body& body) : filter(filter_mode), my_body(body) {} }; -// input +// input template class concrete_filter: public filter { const Body& my_body; @@ -447,7 +447,7 @@ class concrete_filter: public filter { } public: - concrete_filter(tbb::filter::mode filter_mode, const Body& body) : + concrete_filter(tbb::filter::mode filter_mode, const Body& body) : filter(static_cast(filter_mode | filter_may_emit_null)), my_body(body) {} @@ -458,7 +458,7 @@ class concrete_filter: public filter { const Body& my_body; typedef token_helper::value > t_helper; typedef typename t_helper::pointer t_pointer; - + /*override*/ void* operator()(void* input) { t_pointer temp_input = t_helper::cast_from_void_ptr(input); my_body(t_helper::token(temp_input)); @@ -477,12 +477,12 @@ public: template class concrete_filter: public filter { const Body& my_body; - + /** Override privately because it is always called virtually */ /*override*/ void* operator()(void*) { flow_control control; my_body(control); - void* output = control.is_pipeline_stopped ? NULL : (void*)(intptr_t)-1; + void* output = control.is_pipeline_stopped ? NULL : (void*)(intptr_t)-1; return output; } public: @@ -496,7 +496,7 @@ class pipeline_proxy { public: pipeline_proxy( const filter_t& filter_chain ); ~pipeline_proxy() { - while( filter* f = my_pipe.filter_list ) + while( filter* f = my_pipe.filter_list ) delete f; // filter destructor removes it from the pipeline } tbb::pipeline* operator->() { return &my_pipe; } @@ -515,14 +515,14 @@ protected: #endif } public: - //! Add concrete_filter to pipeline + //! Add concrete_filter to pipeline virtual void add_to( pipeline& ) = 0; //! Increment reference count void add_ref() {++ref_count;} //! Decrement reference count and delete if it becomes zero. void remove_ref() { __TBB_ASSERT(ref_count>0,"ref_count underflow"); - if( --ref_count==0 ) + if( --ref_count==0 ) delete this; } virtual ~filter_node() { @@ -610,7 +610,7 @@ public: // Order of operations below carefully chosen so that reference counts remain correct // in unlikely event that remove_ref throws exception. filter_node* old = root; - root = rhs.root; + root = rhs.root; if( root ) root->add_ref(); if( old ) old->remove_ref(); } diff --git a/include/tbb/queuing_mutex.h b/include/tbb/queuing_mutex.h index 44bd306b..2de1a72b 100644 --- a/include/tbb/queuing_mutex.h +++ b/include/tbb/queuing_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/queuing_rw_mutex.h b/include/tbb/queuing_rw_mutex.h index de1fc0fd..9c15fd87 100644 --- a/include/tbb/queuing_rw_mutex.h +++ b/include/tbb/queuing_rw_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/reader_writer_lock.h b/include/tbb/reader_writer_lock.h index 86b1af4a..2925b052 100644 --- a/include/tbb/reader_writer_lock.h +++ b/include/tbb/reader_writer_lock.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/recursive_mutex.h b/include/tbb/recursive_mutex.h index f430a383..f8c345c4 100644 --- a/include/tbb/recursive_mutex.h +++ b/include/tbb/recursive_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -68,7 +68,7 @@ public: #if _WIN32||_WIN64 DeleteCriticalSection(&impl); #else - pthread_mutex_destroy(&impl); + pthread_mutex_destroy(&impl); #endif /* _WIN32||_WIN64 */ #endif /* TBB_USE_ASSERT */ @@ -82,20 +82,20 @@ public: It also nicely provides the "node" for queuing locks. */ class scoped_lock: internal::no_copy { public: - //! Construct lock that has not acquired a recursive_mutex. + //! Construct lock that has not acquired a recursive_mutex. scoped_lock() : my_mutex(NULL) {}; //! Acquire lock on given mutex. scoped_lock( recursive_mutex& mutex ) { #if TBB_USE_ASSERT - my_mutex = &mutex; + my_mutex = &mutex; #endif /* TBB_USE_ASSERT */ acquire( mutex ); } //! Release lock (if lock is held). ~scoped_lock() { - if( my_mutex ) + if( my_mutex ) release(); } @@ -153,7 +153,7 @@ public: static const bool is_fair_mutex = false; // C++0x compatibility interface - + //! Acquire lock void lock() { #if TBB_USE_ASSERT @@ -176,7 +176,7 @@ public: #if TBB_USE_ASSERT aligned_space tmp; return (new(tmp.begin()) scoped_lock)->internal_try_acquire(*this); -#else +#else #if _WIN32||_WIN64 return TryEnterCriticalSection(&impl)!=0; #else @@ -229,6 +229,6 @@ private: __TBB_DEFINE_PROFILING_SET_NAME(recursive_mutex) -} // namespace tbb +} // namespace tbb #endif /* __TBB_recursive_mutex_H */ diff --git a/include/tbb/runtime_loader.h b/include/tbb/runtime_loader.h index 5dc8bab7..a89faa85 100644 --- a/include/tbb/runtime_loader.h +++ b/include/tbb/runtime_loader.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/scalable_allocator.h b/include/tbb/scalable_allocator.h index 42472cee..26853b4d 100644 --- a/include/tbb/scalable_allocator.h +++ b/include/tbb/scalable_allocator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/spin_mutex.h b/include/tbb/spin_mutex.h index 70ddbd8a..1170997c 100644 --- a/include/tbb/spin_mutex.h +++ b/include/tbb/spin_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/spin_rw_mutex.h b/include/tbb/spin_rw_mutex.h index 593a4abe..31729cb9 100644 --- a/include/tbb/spin_rw_mutex.h +++ b/include/tbb/spin_rw_mutex.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -130,13 +130,13 @@ public: //! Release lock. void release() { __TBB_ASSERT( mutex, "lock is not acquired" ); - spin_rw_mutex *m = mutex; + spin_rw_mutex *m = mutex; mutex = NULL; #if TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT if( is_writer ) m->internal_release_writer(); else m->internal_release_reader(); #else - if( is_writer ) __TBB_AtomicAND( &m->state, READERS ); + if( is_writer ) __TBB_AtomicAND( &m->state, READERS ); else __TBB_FetchAndAddWrelease( &m->state, -(intptr_t)ONE_READER); #endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ } @@ -158,10 +158,10 @@ public: bool try_acquire( spin_rw_mutex& m, bool write = true ) { __TBB_ASSERT( !mutex, "holding mutex already" ); bool result; - is_writer = write; + is_writer = write; result = write? m.internal_try_acquire_writer() : m.internal_try_acquire_reader(); - if( result ) + if( result ) mutex = &m; return result; } @@ -196,7 +196,7 @@ public: if( state&WRITER ) internal_release_writer(); else internal_release_reader(); #else - if( state&WRITER ) __TBB_AtomicAND( &state, READERS ); + if( state&WRITER ) __TBB_AtomicAND( &state, READERS ); else __TBB_FetchAndAddWrelease( &state, -(intptr_t)ONE_READER); #endif /* TBB_USE_THREADING_TOOLS||TBB_USE_ASSERT */ } @@ -243,7 +243,7 @@ namespace interface8 { ensure atomicity of the critical sections. In particular, it uses Intel(R) Transactional Synchronization Extensions (Intel(R) TSX). Without such HW support, it behaves like a spin_rw_mutex. - It should be used for locking short critical sections where the lock is + It should be used for locking short critical sections where the lock is contended but the data it protects are not. @ingroup synchronization */ #if __TBB_TSX_AVAILABLE diff --git a/include/tbb/task.h b/include/tbb/task.h index 2da0559d..9c79317f 100644 --- a/include/tbb/task.h +++ b/include/tbb/task.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/task_arena.h b/include/tbb/task_arena.h index d811c9b4..75905d15 100644 --- a/include/tbb/task_arena.h +++ b/include/tbb/task_arena.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,9 +37,6 @@ namespace internal { /** @ingroup task_scheduling */ class arena; class task_scheduler_observer_v3; - - //! Tag class used to indicate the "attaching" constructor - struct attach {}; } // namespace internal //! @endcond @@ -125,6 +122,19 @@ public: class task_arena : public internal::task_arena_base { friend class tbb::internal::task_scheduler_observer_v3; bool my_initialized; + void mark_initialized() { + __TBB_ASSERT( my_arena, "task_arena initialization is incomplete" ); +#if __TBB_TASK_GROUP_CONTEXT + __TBB_ASSERT( my_context, "task_arena initialization is incomplete" ); +#endif +#if TBB_USE_THREADING_TOOLS + // Actual synchronization happens in internal_initialize & internal_attach. + // The race on setting my_initialized is benign, but should be hidden from Intel(R) Inspector + internal::as_atomic(my_initialized).fetch_and_store(true); +#else + my_initialized = true; +#endif + } public: //! Creates task_arena with certain concurrency limits @@ -144,8 +154,11 @@ public: , my_initialized(false) {} + //! Tag class used to indicate the "attaching" constructor + struct attach {}; + //! Creates an instance of task_arena attached to the current arena of the thread - task_arena( tbb::internal::attach ) + task_arena( attach ) : task_arena_base(automatic, 1) // use default settings if attach fails , my_initialized(false) { @@ -157,17 +170,13 @@ public: inline void initialize() { if( !my_initialized ) { internal_initialize(); -#if TBB_USE_THREADING_TOOLS - // Threading tools respect lock prefix but report false-positive data-race via plain store - internal::as_atomic(my_initialized).fetch_and_store(true); -#else - my_initialized = true; -#endif //TBB_USE_THREADING_TOOLS + mark_initialized(); } } //! Overrides concurrency level and forces initialization of internal representation inline void initialize(int max_concurrency, unsigned reserved_for_masters = 1) { + // TODO: decide if this call must be thread-safe __TBB_ASSERT( !my_arena, "Impossible to modify settings of an already initialized task_arena"); if( !my_initialized ) { my_max_concurrency = max_concurrency; @@ -176,6 +185,17 @@ public: } } + //! Attaches this instance to the current arena of the thread + inline void initialize(attach) { + // TODO: decide if this call must be thread-safe + __TBB_ASSERT( !my_arena, "Impossible to modify settings of an already initialized task_arena"); + if( !my_initialized ) { + internal_attach(); + if( !my_arena ) internal_initialize(); + mark_initialized(); + } + } + //! Removes the reference to the internal arena representation. //! Not thread safe wrt concurrent invocations of other methods. inline void terminate() { @@ -201,7 +221,6 @@ public: void enqueue( const F& f ) { initialize(); #if __TBB_TASK_GROUP_CONTEXT - __TBB_ASSERT(my_context, NULL); internal_enqueue( *new( task::allocate_root(*my_context) ) internal::function_task(f), 0 ); #else internal_enqueue( *new( task::allocate_root() ) internal::function_task(f), 0 ); diff --git a/include/tbb/task_group.h b/include/tbb/task_group.h index 21a298a4..54f38ac5 100644 --- a/include/tbb/task_group.h +++ b/include/tbb/task_group.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -111,7 +111,7 @@ public: ~task_group_base() __TBB_NOEXCEPT(false) { if( my_root->ref_count() > 1 ) { bool stack_unwinding_in_progress = std::uncaught_exception(); - // Always attempt to do proper cleanup to avoid inevitable memory corruption + // Always attempt to do proper cleanup to avoid inevitable memory corruption // in case of missing wait (for the sake of better testability & debuggability) if ( !is_canceling() ) cancel(); @@ -206,7 +206,7 @@ public: } }; // class structured_task_group -inline +inline bool is_current_task_group_canceling() { return task::self().is_cancelled(); } diff --git a/include/tbb/task_scheduler_init.h b/include/tbb/task_scheduler_init.h index e98abbfa..d4f91f37 100644 --- a/include/tbb/task_scheduler_init.h +++ b/include/tbb/task_scheduler_init.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -81,8 +81,8 @@ public: TBB based components run side-by-side or in a nested fashion inside the same process. - The number_of_threads is ignored if any other task_scheduler_inits - currently exist. A thread may construct multiple task_scheduler_inits. + The number_of_threads is ignored if any other task_scheduler_inits + currently exist. A thread may construct multiple task_scheduler_inits. Doing so does no harm because the underlying scheduler is reference counted. */ void __TBB_EXPORTED_METHOD initialize( int number_of_threads=automatic ); @@ -103,10 +103,10 @@ public: // Two lowest order bits of the stack size argument may be taken to communicate // default exception propagation mode of the client to be used when the // client manually creates tasks in the master thread and does not use - // explicit task group context object. This is necessary because newer - // TBB binaries with exact propagation enabled by default may be used + // explicit task group context object. This is necessary because newer + // TBB binaries with exact propagation enabled by default may be used // by older clients that expect tbb::captured_exception wrapper. - // All zeros mean old client - no preference. + // All zeros mean old client - no preference. __TBB_ASSERT( !(thread_stack_size & propagation_mode_mask), "Requested stack size is not aligned" ); #if TBB_USE_EXCEPTIONS thread_stack_size |= TBB_USE_CAPTURED_EXCEPTION ? propagation_mode_captured : propagation_mode_exact; @@ -120,25 +120,25 @@ public: //! Destroy scheduler for this thread if thread has no other live task_scheduler_inits. ~task_scheduler_init() { - if( my_scheduler ) + if( my_scheduler ) terminate(); internal::poison_pointer( my_scheduler ); } //! Returns the number of threads TBB scheduler would create if initialized by default. - /** Result returned by this method does not depend on whether the scheduler + /** Result returned by this method does not depend on whether the scheduler has already been initialized. - + Because tbb 2.0 does not support blocking tasks yet, you may use this method - to boost the number of threads in the tbb's internal pool, if your tasks are + to boost the number of threads in the tbb's internal pool, if your tasks are doing I/O operations. The optimal number of additional threads depends on how much time your tasks spend in the blocked state. - + Before TBB 3.0 U4 this method returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask. - - NOTE: The return value of this method never changes after its first invocation. + + NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool. */ diff --git a/include/tbb/task_scheduler_observer.h b/include/tbb/task_scheduler_observer.h index 4865dd37..ba5854f3 100644 --- a/include/tbb/task_scheduler_observer.h +++ b/include/tbb/task_scheduler_observer.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -65,14 +65,14 @@ public: task_scheduler_observer_v3() : my_proxy(NULL) { my_busy_count.store(0); } //! Entry notification - /** Invoked from inside observe(true) call and whenever a worker enters the arena + /** Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task. Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled. **/ - virtual void on_scheduler_entry( bool /*is_worker*/ ) {} + virtual void on_scheduler_entry( bool /*is_worker*/ ) {} //! Exit notification /** Invoked from inside observe(false) call and whenever a worker leaves the diff --git a/include/tbb/tbb.h b/include/tbb/tbb.h index f5ce0400..d6c9d75a 100644 --- a/include/tbb/tbb.h +++ b/include/tbb/tbb.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -21,9 +21,9 @@ #ifndef __TBB_tbb_H #define __TBB_tbb_H -/** - This header bulk-includes declarations or definitions of all the functionality - provided by TBB (save for malloc dependent headers). +/** + This header bulk-includes declarations or definitions of all the functionality + provided by TBB (save for malloc dependent headers). If you use only a few TBB constructs, consider including specific headers only. Any header listed below can be included independently of others. diff --git a/include/tbb/tbb_allocator.h b/include/tbb/tbb_allocator.h index 33d09de7..3707ef61 100644 --- a/include/tbb/tbb_allocator.h +++ b/include/tbb/tbb_allocator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -64,7 +64,7 @@ namespace internal { #endif //! Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5 -/** The class selects the best memory allocation mechanism available +/** The class selects the best memory allocation mechanism available from scalable_malloc and standard malloc. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard. @@ -85,7 +85,7 @@ public: //! Specifies current allocator enum malloc_type { - scalable, + scalable, standard }; @@ -95,7 +95,7 @@ public: pointer address(reference x) const {return &x;} const_pointer address(const_reference x) const {return &x;} - + //! Allocate space for n objects. pointer allocate( size_type n, const void* /*hint*/ = 0) { return pointer(internal::allocate_via_handler_v3( n * sizeof(value_type) )); @@ -103,7 +103,7 @@ public: //! Free previously allocated block of memory. void deallocate( pointer p, size_type ) { - internal::deallocate_via_handler_v3(p); + internal::deallocate_via_handler_v3(p); } //! Largest value for which method allocate might succeed. @@ -111,7 +111,7 @@ public: size_type max = static_cast(-1) / sizeof (value_type); return (max > 0 ? max : 1); } - + //! Copy-construct value at location pointed to by p. #if __TBB_ALLOCATOR_CONSTRUCT_VARIADIC template @@ -139,7 +139,7 @@ public: //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ -template<> +template<> class tbb_allocator { public: typedef void* pointer; @@ -192,7 +192,7 @@ public: //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ -template class Allocator> +template class Allocator> class zero_allocator : public Allocator { public: typedef Allocator base_allocator_type; @@ -213,6 +213,6 @@ inline bool operator!=( const zero_allocator &a, const zero_allocator >(a) != static_cast< B2 >(b); } -} // namespace tbb +} // namespace tbb #endif /* __TBB_tbb_allocator_H */ diff --git a/include/tbb/tbb_config.h b/include/tbb/tbb_config.h index 58937e61..caade259 100644 --- a/include/tbb/tbb_config.h +++ b/include/tbb/tbb_config.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -48,6 +48,11 @@ #define __TBB_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) #endif +/** Target OS is either iOS* or iOS* simulator **/ +#if __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ + #define __TBB_IOS 1 +#endif + /** Preprocessor symbols to determine HW architecture **/ #if _WIN32||_WIN64 @@ -64,7 +69,9 @@ # if !__linux__ && !__APPLE__ # define __TBB_generic_os 1 # endif -# if __x86_64__ +# if __TBB_IOS +# define __TBB_generic_arch 1 +# elif __x86_64__ # define __TBB_x86_64 1 # elif __ia64__ # define __TBB_ipf 1 @@ -146,7 +153,7 @@ #else #define __TBB_INITIALIZER_LISTS_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 && (_MSC_VER >= 1800 || __TBB_GCC_VERSION >= 40400 || _LIBCPP_VERSION) #endif - + #define __TBB_CONSTEXPR_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1400 #define __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT __INTEL_CXX11_MODE__ && __INTEL_COMPILER >= 1200 /** ICC seems to disable support of noexcept event in c++11 when compiling in compatibility mode for gcc <4.6 **/ @@ -183,8 +190,8 @@ #elif __GNUC__ #define __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT __GXX_EXPERIMENTAL_CXX0X__ #define __TBB_CPP11_RVALUE_REF_PRESENT __GXX_EXPERIMENTAL_CXX0X__ - /** __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 here is a substitution for _GLIBCXX_ATOMIC_BUILTINS_4, which is a prerequisite - for exception_ptr but cannot be used in this file because it is defined in a header, not by the compiler. + /** __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 here is a substitution for _GLIBCXX_ATOMIC_BUILTINS_4, which is a prerequisite + for exception_ptr but cannot be used in this file because it is defined in a header, not by the compiler. If the compiler has no atomic intrinsics, the C++ library should not expect those as well. **/ #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) #define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300) @@ -304,27 +311,35 @@ #endif /* TBB_PEFORMANCE_WARNINGS */ #endif /* TBB_USE_PERFORMANCE_WARNINGS */ -#if !defined(__EXCEPTIONS) && !defined(_CPPUNWIND) && !defined(__SUNPRO_CC) || defined(_XBOX) +#if __TBB_DEFINE_MIC || defined(_XBOX) + #if TBB_USE_EXCEPTIONS + #error The platform does not properly support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. + #elif !defined(TBB_USE_EXCEPTIONS) + #define TBB_USE_EXCEPTIONS 0 + #endif +#elif !(__EXCEPTIONS || defined(_CPPUNWIND) || __SUNPRO_CC) #if TBB_USE_EXCEPTIONS #error Compilation settings do not support exception handling. Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. #elif !defined(TBB_USE_EXCEPTIONS) #define TBB_USE_EXCEPTIONS 0 #endif #elif !defined(TBB_USE_EXCEPTIONS) - #if __TBB_DEFINE_MIC - #define TBB_USE_EXCEPTIONS 0 - #else #define TBB_USE_EXCEPTIONS 1 - #endif -#elif TBB_USE_EXCEPTIONS && __TBB_DEFINE_MIC - #error Please do not set TBB_USE_EXCEPTIONS macro or set it to 0. +#endif + +#if __clang__ && !__INTEL_COMPILER +#define __TBB_USE_OPTIONAL_RTTI __has_feature(cxx_rtti) +#elif defined(_CPPRTTI) +#define __TBB_USE_OPTIONAL_RTTI 1 +#else +#define __TBB_USE_OPTIONAL_RTTI (__GXX_RTTI || __RTTI || __INTEL_RTTI__) #endif #ifndef TBB_IMPLEMENT_CPP0X /** By default, use C++11 classes if available **/ #if __clang__ - /* Old versions of Intel Compiler do not have __has_include */ - #if (__INTEL_COMPILER && __INTEL_COMPILER <= 1400) + /* Old versions of Intel Compiler do not have __has_include or cannot use it in #define */ + #if (__INTEL_COMPILER && (__INTEL_COMPILER < 1500 || __INTEL_COMPILER == 1500 && __INTEL_COMPILER_UPDATE <= 1)) #define TBB_IMPLEMENT_CPP0X !(_LIBCPP_VERSION && (__cplusplus >= 201103L)) #else #define TBB_IMPLEMENT_CPP0X (__cplusplus < 201103L || (!__has_include() && !__has_include())) @@ -444,6 +459,10 @@ #define __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE 1 #endif +#ifndef __TBB_ENQUEUE_ENFORCED_CONCURRENCY + #define __TBB_ENQUEUE_ENFORCED_CONCURRENCY 1 +#endif + #if !defined(__TBB_SURVIVE_THREAD_SWITCH) && \ (_WIN32 || _WIN64 || __APPLE__ || (__linux__ && !__ANDROID__)) #define __TBB_SURVIVE_THREAD_SWITCH 1 @@ -475,7 +494,7 @@ #elif _MSC_VER == 1600 #define __TBB_VARIADIC_MAX 10 // VS10 setting #else - #define __TBB_VARIADIC_MAX 15 + #define __TBB_VARIADIC_MAX 15 #endif #endif @@ -642,18 +661,18 @@ // A compiler bug: a disabled copy constructor prevents use of the moving constructor #define __TBB_IF_NO_COPY_CTOR_MOVE_SEMANTICS_BROKEN (_MSC_VER && (__INTEL_COMPILER >= 1300 && __INTEL_COMPILER <= 1310) && !__INTEL_CXX11_MODE__) -// MSVC 2013 and ICC 15 seems do not generate implicit move constructor for empty derived class while should +// MSVC 2013 and ICC do not generate implicit move constructor for empty derived class #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_FOR_DERIVED_BROKEN (__TBB_CPP11_RVALUE_REF_PRESENT && \ - ( !__INTEL_COMPILER && _MSC_VER && _MSC_VER <= 1800 || __INTEL_COMPILER && __INTEL_COMPILER <= 1500 )) + ( !__INTEL_COMPILER && _MSC_VER && _MSC_VER <= 1800 || __INTEL_COMPILER && __INTEL_COMPILER <= 1600 )) #define __TBB_CPP11_DECLVAL_BROKEN (_MSC_VER == 1600 || (__GNUC__ && __TBB_GCC_VERSION < 40500) ) // Intel C++ compiler has difficulties with copying std::pair with VC11 std::reference_wrapper being a const member #define __TBB_COPY_FROM_NON_CONST_REF_BROKEN (_MSC_VER == 1700 && __INTEL_COMPILER && __INTEL_COMPILER < 1600) -//The implicit upcasting of the tuple of a reference of a derived class to a base class fails on icc 13.X +//The implicit upcasting of the tuple of a reference of a derived class to a base class fails on icc 13.X //if the system's gcc environment is 4.8 #if (__INTEL_COMPILER >=1300 && __INTEL_COMPILER <=1310) && __TBB_GCC_VERSION>=40700 && __GXX_EXPERIMENTAL_CXX0X__ - #define __TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 1 + #define __TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN 1 #endif /** End of __TBB_XXX_BROKEN macro section **/ @@ -665,6 +684,13 @@ #define __TBB_ATOMIC_CTORS (__TBB_CONSTEXPR_PRESENT && __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT && (!__TBB_ZERO_INIT_WITH_DEFAULTED_CTOR_BROKEN)) +// Many OS versions (Android 4.0.[0-3] for example) need workaround for dlopen to avoid non-recursive loader lock hang +// Setting the workaround for all compile targets ($APP_PLATFORM) below Android 4.4 (android-19) +#if __ANDROID__ +#include +#define __TBB_USE_DLOPEN_REENTRANCY_WORKAROUND (__ANDROID_API__ < 19) +#endif + #define __TBB_ALLOCATOR_CONSTRUCT_VARIADIC (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) #define __TBB_VARIADIC_PARALLEL_INVOKE (TBB_PREVIEW_VARIADIC_PARALLEL_INVOKE && __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT && __TBB_CPP11_RVALUE_REF_PRESENT) diff --git a/include/tbb/tbb_exception.h b/include/tbb/tbb_exception.h index 75423d0f..73948c3c 100644 --- a/include/tbb/tbb_exception.h +++ b/include/tbb/tbb_exception.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/include/tbb/tbb_machine.h b/include/tbb/tbb_machine.h index e82a35af..5fe13bc5 100644 --- a/include/tbb/tbb_machine.h +++ b/include/tbb/tbb_machine.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -102,7 +102,7 @@ data-dependent, and will then make subsequent code behave as if the original data dependency were acquired. It needs only a compiler fence where implied by the architecture - either specifically (like IA-64 architecture) or because generally stronger + either specifically (like IA-64 architecture) or because generally stronger "acquire" semantics are enforced (like x86). It is always valid, though potentially suboptimal, to replace control with acquire on the load and then remove the helper. @@ -254,9 +254,9 @@ template<> struct atomic_selector<8> { //TODO: TBB_USE_GCC_BUILTINS is not used for Mac, Sun, Aix #if (TBB_USE_ICC_BUILTINS && __TBB_ICC_BUILTIN_ATOMICS_PRESENT) #include "machine/icc_generic.h" - #elif __i386__ + #elif __TBB_x86_32 #include "machine/linux_ia32.h" - #elif __x86_64__ + #elif __TBB_x86_64 #include "machine/linux_intel64.h" #elif __POWERPC__ #include "machine/mac_ppc.h" @@ -850,9 +850,9 @@ inline intptr_t __TBB_Log2( uintptr_t x ) { if( x==0 ) return -1; intptr_t result = 0; -#if !defined(_M_ARM) - uintptr_t tmp; - if( sizeof(x)>4 && (tmp = ((uint64_t)x)>>32) ) { x=tmp; result += 32; } +#if !defined(_M_ARM) + uintptr_t tmp_; + if( sizeof(x)>4 && (tmp_ = ((uint64_t)x)>>32) ) { x=tmp_; result += 32; } #endif if( uintptr_t tmp = x>>16 ) { x=tmp; result += 16; } if( uintptr_t tmp = x>>8 ) { x=tmp; result += 8; } diff --git a/include/tbb/tbb_profiling.h b/include/tbb/tbb_profiling.h index 9e604172..5ef8166b 100644 --- a/include/tbb/tbb_profiling.h +++ b/include/tbb/tbb_profiling.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -25,9 +25,9 @@ namespace tbb { namespace internal { // - // This is not under __TBB_ITT_STRUCTURE_API because these values are used directly in flow_graph.h. + // This is not under __TBB_ITT_STRUCTURE_API because these values are used directly in flow_graph.h. // - + // include list of index names #define TBB_STRING_RESOURCE(index_name,str) index_name, enum string_index { @@ -47,7 +47,7 @@ namespace tbb { __itt_relation_is_continued_by, /**< "A is continued by B" means that B assumes the dependencies of A (inverse of is_continuation_of) */ __itt_relation_is_predecessor_to /**< "A is predecessor to B" means that B cannot start until A completes (inverse of is_dependent_on) */ }; - + } } @@ -141,17 +141,17 @@ namespace tbb { #if __TBB_ITT_STRUCTURE_API enum itt_domain_enum { ITT_DOMAIN_FLOW=0 }; - void __TBB_EXPORTED_FUNC itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, - void *parent, unsigned long long parent_extra, string_index name_index ); - void __TBB_EXPORTED_FUNC itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, - string_index key, const char *value ); - void __TBB_EXPORTED_FUNC itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, + void __TBB_EXPORTED_FUNC itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, + void *parent, unsigned long long parent_extra, string_index name_index ); + void __TBB_EXPORTED_FUNC itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, + string_index key, const char *value ); + void __TBB_EXPORTED_FUNC itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, itt_relation relation, void *addr1, unsigned long long addr1_extra ); - void __TBB_EXPORTED_FUNC itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, + void __TBB_EXPORTED_FUNC itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, void *parent, unsigned long long parent_extra, string_index name_index ); void __TBB_EXPORTED_FUNC itt_task_end_v7( itt_domain_enum domain ); - void __TBB_EXPORTED_FUNC itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, + void __TBB_EXPORTED_FUNC itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, void *parent, unsigned long long parent_extra, string_index name_index ); void __TBB_EXPORTED_FUNC itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long region_extra ); #endif // __TBB_ITT_STRUCTURE_API @@ -195,7 +195,7 @@ namespace tbb { __TBB_ASSERT(sizeof(T) == sizeof(void *), "Type must be word-sized."); itt_store_pointer_with_release_v3(&dst, (void *)src); #else - __TBB_store_with_release(dst, src); + __TBB_store_with_release(dst, src); #endif // TBB_USE_THREADING_TOOLS } @@ -244,22 +244,22 @@ namespace tbb { #endif // TBB_USE_THREADING_TOOLS #if __TBB_ITT_STRUCTURE_API - inline void itt_make_task_group( itt_domain_enum domain, void *group, unsigned long long group_extra, + inline void itt_make_task_group( itt_domain_enum domain, void *group, unsigned long long group_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { - itt_make_task_group_v7( domain, group, group_extra, parent, parent_extra, name_index ); + itt_make_task_group_v7( domain, group, group_extra, parent, parent_extra, name_index ); } - inline void itt_metadata_str_add( itt_domain_enum domain, void *addr, unsigned long long addr_extra, + inline void itt_metadata_str_add( itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, const char *value ) { - itt_metadata_str_add_v7( domain, addr, addr_extra, key, value ); + itt_metadata_str_add_v7( domain, addr, addr_extra, key, value ); } - inline void itt_relation_add( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, + inline void itt_relation_add( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, itt_relation relation, void *addr1, unsigned long long addr1_extra ) { itt_relation_add_v7( domain, addr0, addr0_extra, relation, addr1, addr1_extra ); } - inline void itt_task_begin( itt_domain_enum domain, void *task, unsigned long long task_extra, + inline void itt_task_begin( itt_domain_enum domain, void *task, unsigned long long task_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { itt_task_begin_v7( domain, task, task_extra, parent, parent_extra, name_index ); } @@ -268,7 +268,7 @@ namespace tbb { itt_task_end_v7( domain ); } - inline void itt_region_begin( itt_domain_enum domain, void *region, unsigned long long region_extra, + inline void itt_region_begin( itt_domain_enum domain, void *region, unsigned long long region_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { itt_region_begin_v9( domain, region, region_extra, parent, parent_extra, name_index ); } diff --git a/include/tbb/tbb_stddef.h b/include/tbb/tbb_stddef.h index 579e0826..944a0d83 100644 --- a/include/tbb/tbb_stddef.h +++ b/include/tbb/tbb_stddef.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -26,7 +26,7 @@ #define TBB_VERSION_MINOR 4 // Engineering-focused interface version -#define TBB_INTERFACE_VERSION 9002 +#define TBB_INTERFACE_VERSION 9003 #define TBB_INTERFACE_VERSION_MAJOR TBB_INTERFACE_VERSION/1000 // The oldest major interface version still supported @@ -495,7 +495,7 @@ T& forward( T& x ) { return x; } #define __TBB_PARAMETER_PACK ... #define __TBB_PACK_EXPANSION(A) A... #else -#define __TBB_PARAMETER_PACK +#define __TBB_PARAMETER_PACK #define __TBB_PACK_EXPANSION(A) A #endif /* __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT */ diff --git a/include/tbb/tbb_thread.h b/include/tbb/tbb_thread.h index a28dd796..e25351c9 100644 --- a/include/tbb/tbb_thread.h +++ b/include/tbb/tbb_thread.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -74,7 +74,7 @@ namespace internal { void* __TBB_EXPORTED_FUNC allocate_closure_v3( size_t size ); //! Free a closure allocated by allocate_closure_v3 void __TBB_EXPORTED_FUNC free_closure_v3( void* ); - + struct thread_closure_base { void* operator new( size_t size ) {return allocate_closure_v3(size);} void operator delete( void* ptr ) {free_closure_v3(ptr);} @@ -91,7 +91,7 @@ namespace internal { } thread_closure_0( const F& f ) : function(f) {} }; - //! Structure used to pass user function with 1 argument to thread. + //! Structure used to pass user function with 1 argument to thread. template struct thread_closure_1: thread_closure_base { F function; X arg1; @@ -129,19 +129,19 @@ namespace internal { tbb_thread_v3(const tbb_thread_v3&); // = delete; // Deny access public: #if _WIN32||_WIN64 - typedef HANDLE native_handle_type; + typedef HANDLE native_handle_type; #else - typedef pthread_t native_handle_type; + typedef pthread_t native_handle_type; #endif // _WIN32||_WIN64 class id; - //! Constructs a thread object that does not represent a thread of execution. + //! Constructs a thread object that does not represent a thread of execution. tbb_thread_v3() __TBB_NOEXCEPT(true) : my_handle(0) #if _WIN32||_WIN64 , my_thread_id(0) #endif // _WIN32||_WIN64 {} - + //! Constructs an object and executes f() in a new thread template explicit tbb_thread_v3(F f) { typedef internal::thread_closure_0 closure_type; @@ -190,20 +190,20 @@ namespace internal { ~tbb_thread_v3() {if( joinable() ) detach();} inline id get_id() const __TBB_NOEXCEPT(true); native_handle_type native_handle() { return my_handle; } - + //! The number of hardware thread contexts. /** Before TBB 3.0 U4 this methods returned the number of logical CPU in the system. Currently on Windows, Linux and FreeBSD it returns the number of logical CPUs available to the current process in accordance with its affinity mask. - + NOTE: The return value of this method never changes after its first invocation. This means that changes in the process affinity mask that took place after this method was first invoked will not affect the number of worker threads in the TBB worker threads pool. **/ static unsigned __TBB_EXPORTED_FUNC hardware_concurrency() __TBB_NOEXCEPT(true); private: - native_handle_type my_handle; + native_handle_type my_handle; #if _WIN32||_WIN64 thread_id_type my_thread_id; #endif // _WIN32||_WIN64 @@ -224,13 +224,13 @@ namespace internal { } /** Runs start_routine(closure) on another thread and sets my_handle to the handle of the created thread. */ - void __TBB_EXPORTED_METHOD internal_start( __TBB_NATIVE_THREAD_ROUTINE_PTR(start_routine), + void __TBB_EXPORTED_METHOD internal_start( __TBB_NATIVE_THREAD_ROUTINE_PTR(start_routine), void* closure ); friend void __TBB_EXPORTED_FUNC move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 ); friend void tbb::swap( tbb_thread_v3& t1, tbb_thread_v3& t2 ) __TBB_NOEXCEPT(true); }; - - class tbb_thread_v3::id { + + class tbb_thread_v3::id { thread_id_type my_id; id( thread_id_type id_ ) : my_id(id_) {} @@ -244,10 +244,10 @@ namespace internal { friend bool operator<=( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true); friend bool operator>( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true); friend bool operator>=( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true); - + template friend std::basic_ostream& - operator<< (std::basic_ostream &out, + operator<< (std::basic_ostream &out, tbb_thread_v3::id id) { out << id.my_id; @@ -332,8 +332,8 @@ namespace this_tbb_thread { //! Offers the operating system the opportunity to schedule another thread. inline void yield() { internal::thread_yield_v3(); } //! The current thread blocks at least until the time specified. - inline void sleep(const tick_count::interval_t &i) { - internal::thread_sleep_v3(i); + inline void sleep(const tick_count::interval_t &i) { + internal::thread_sleep_v3(i); } } // namespace this_tbb_thread diff --git a/include/tbb/tbbmalloc_proxy.h b/include/tbb/tbbmalloc_proxy.h index 81d7a2b0..e33516c9 100644 --- a/include/tbb/tbbmalloc_proxy.h +++ b/include/tbb/tbbmalloc_proxy.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -19,15 +19,15 @@ */ /* -Replacing the standard memory allocation routines in Microsoft* C/C++ RTL -(malloc/free, global new/delete, etc.) with the TBB memory allocator. +Replacing the standard memory allocation routines in Microsoft* C/C++ RTL +(malloc/free, global new/delete, etc.) with the TBB memory allocator. -Include the following header to a source of any binary which is loaded during +Include the following header to a source of any binary which is loaded during application startup #include "tbb/tbbmalloc_proxy.h" -or add following parameters to the linker options for the binary which is +or add following parameters to the linker options for the binary which is loaded during application startup. It can be either exe-file or dll. For win32 diff --git a/include/tbb/tick_count.h b/include/tbb/tick_count.h index 10f53906..20ce722c 100644 --- a/include/tbb/tick_count.h +++ b/include/tbb/tick_count.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -85,13 +85,13 @@ public: #endif /* (choice of OS) */ } }; - + //! Construct an absolute timestamp initialized to zero. tick_count() : my_count(0) {}; //! Return current time. static tick_count now(); - + //! Subtract two timestamps to get the time interval between friend interval_t operator-( const tick_count& t1, const tick_count& t0 ); diff --git a/index.html b/index.html index d4692c78..4e952621 100644 --- a/index.html +++ b/index.html @@ -38,7 +38,7 @@ To port Intel TBB to a new platform, operating system or architecture, see the <

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/jni/Android.mk b/jni/Android.mk index b5e48b2e..51750301 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,9 +20,12 @@ export tbb_root?=$(NDK_PROJECT_PATH) ifeq (armeabi-v7a,$(APP_ABI)) export SYSROOT:=$(NDK_ROOT)/platforms/$(APP_PLATFORM)/arch-arm +else ifeq (arm64-v8a,$(APP_ABI)) + export SYSROOT:=$(NDK_ROOT)/platforms/$(APP_PLATFORM)/arch-arm64 else export SYSROOT:=$(NDK_ROOT)/platforms/$(APP_PLATFORM)/arch-$(APP_ABI) endif + ifeq (windows,$(tbb_os)) export CPATH_SEPARATOR :=; else diff --git a/jni/Application.mk b/jni/Application.mk index 11c18fc8..73a40610 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -23,23 +23,19 @@ export target?=android ifeq (ia32,$(arch)) APP_ABI:=x86 -else -ifeq (intel64,$(arch)) +else ifeq (intel64,$(arch)) APP_ABI:=x86_64 -else -ifeq (arm,$(arch)) +else ifeq (arm,$(arch)) APP_ABI:=armeabi-v7a -else +else ifeq (arm64,$(arch)) + APP_ABI:=arm64-v8a +else APP_ABI:=$(arch) endif -endif -endif APP_PLATFORM:=android-21 -NDK_TOOLCHAIN_VERSION:=4.9 - -# Intel(R) C++ Compiler does not support ndk r10 version yet. -ifeq (iccx86,$(compiler)$(APP_ABI)) - APP_PLATFORM:=android-9 - NDK_TOOLCHAIN_VERSION:=4.8 +ifneq ("","$(api_version)") + APP_PLATFORM:=$(api_version) endif + +NDK_TOOLCHAIN_VERSION:=4.9 diff --git a/src/Makefile b/src/Makefile index 5ea30639..d457e77c 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,4 +1,4 @@ -# Copyright 2005-2015 Intel Corporation. All Rights Reserved. +# Copyright 2005-2016 Intel Corporation. All Rights Reserved. # # This file is part of Threading Building Blocks. Threading Building Blocks is free software; # you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/index.html b/src/index.html index a7354ef1..30ebf793 100644 --- a/src/index.html +++ b/src/index.html @@ -63,7 +63,7 @@ This directory contains the source code and unit tests for Intel® Threading
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/old/concurrent_queue_v2.cpp b/src/old/concurrent_queue_v2.cpp index e0194946..42eec77d 100644 --- a/src/old/concurrent_queue_v2.cpp +++ b/src/old/concurrent_queue_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/concurrent_queue_v2.h b/src/old/concurrent_queue_v2.h index 662c066b..b0c782eb 100644 --- a/src/old/concurrent_queue_v2.h +++ b/src/old/concurrent_queue_v2.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/concurrent_vector_v2.cpp b/src/old/concurrent_vector_v2.cpp index e65f4f43..e2481b08 100644 --- a/src/old/concurrent_vector_v2.cpp +++ b/src/old/concurrent_vector_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/concurrent_vector_v2.h b/src/old/concurrent_vector_v2.h index 5ea35cdd..e96984bc 100644 --- a/src/old/concurrent_vector_v2.h +++ b/src/old/concurrent_vector_v2.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/spin_rw_mutex_v2.cpp b/src/old/spin_rw_mutex_v2.cpp index 4be6cfdc..1f870cf7 100644 --- a/src/old/spin_rw_mutex_v2.cpp +++ b/src/old/spin_rw_mutex_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/spin_rw_mutex_v2.h b/src/old/spin_rw_mutex_v2.h index ff0657c2..5ce5c96d 100644 --- a/src/old/spin_rw_mutex_v2.h +++ b/src/old/spin_rw_mutex_v2.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/task_v2.cpp b/src/old/task_v2.cpp index 92f8badd..b735e5a1 100644 --- a/src/old/task_v2.cpp +++ b/src/old/task_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/test_concurrent_queue_v2.cpp b/src/old/test_concurrent_queue_v2.cpp index 7e8cc961..3b589398 100644 --- a/src/old/test_concurrent_queue_v2.cpp +++ b/src/old/test_concurrent_queue_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/test_concurrent_vector_v2.cpp b/src/old/test_concurrent_vector_v2.cpp index a4738740..79f60e4c 100644 --- a/src/old/test_concurrent_vector_v2.cpp +++ b/src/old/test_concurrent_vector_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/test_mutex_v2.cpp b/src/old/test_mutex_v2.cpp index 3f6a010f..2fa68886 100644 --- a/src/old/test_mutex_v2.cpp +++ b/src/old/test_mutex_v2.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/old/test_task_scheduler_observer_v3.cpp b/src/old/test_task_scheduler_observer_v3.cpp index 7867d9ff..9d84938a 100644 --- a/src/old/test_task_scheduler_observer_v3.cpp +++ b/src/old/test_task_scheduler_observer_v3.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/perf/coarse_grained_raii_lru_cache.h b/src/perf/coarse_grained_raii_lru_cache.h index cce4d584..407b6a27 100644 --- a/src/perf/coarse_grained_raii_lru_cache.h +++ b/src/perf/coarse_grained_raii_lru_cache.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/perf/cpq_pdes.cpp b/src/perf/cpq_pdes.cpp index 2d84ce03..23e72d00 100644 --- a/src/perf/cpq_pdes.cpp +++ b/src/perf/cpq_pdes.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -73,13 +73,12 @@ unsigned int one_us_iters = 429; // default value // if user wants to calibrate to microseconds on particular machine, call this at beginning of program // sets one_us_iters to number of iters to busy_wait for approx. 1 us void calibrate_busy_wait() { - tbb::tick_count t0, t1; + const unsigned niter = 1000000; + tbb::tick_count t0 = tbb::tick_count::now(); + for (volatile unsigned int i=0; i >, 1000000/*ns*/> +#define BOX1TEST ValuePerSecond >, SECONDS_RATIO> #define BOX1HEADER "tbb/concurrent_hash_map.h" // enable/disable tests for: #define BOX2 "CUMap" -#define BOX2TEST ValuePerSecond >, 1000000/*ns*/> +#define BOX2TEST ValuePerSecond >, SECONDS_RATIO> #define BOX2HEADER "tbb/concurrent_unordered_map.h" // enable/disable tests for: //#define BOX3 "OLD" -#define BOX3TEST ValuePerSecond >, 1000000/*ns*/> +#define BOX3TEST ValuePerSecond >, SECONDS_RATIO> #define BOX3HEADER "tbb/concurrent_hash_map-5468.h" #define TBB_USE_THREADING_TOOLS 0 @@ -158,7 +160,7 @@ int main(int argc, char* argv[]) { test_sandbox the_test("time_hash_map_fill"/*, StatisticsCollector::ByThreads*/); srand(10101); UNIQUE_PERCENTS; // test the percents - the_test.report.SetTitle("Operations per nanosecond"); + the_test.report.SetTitle("Operations per microsecond"); the_test.report.SetRunInfo("Items", MAX_TABLE_SIZE); the_test.report.Print(StatisticsCollector::HTMLFile|StatisticsCollector::ExcelXML); // Write files return 0; diff --git a/src/perf/time_hash_map_fill.html b/src/perf/time_hash_map_fill.html index 477d7013..28525546 100644 --- a/src/perf/time_hash_map_fill.html +++ b/src/perf/time_hash_map_fill.html @@ -112,7 +112,7 @@ In addition, a size of the source array correlates with input rates in order to
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/perf/time_locked_work.cpp b/src/perf/time_locked_work.cpp index 42db2388..37964e28 100644 --- a/src/perf/time_locked_work.cpp +++ b/src/perf/time_locked_work.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/perf/time_lru_cache_throughput.cpp b/src/perf/time_lru_cache_throughput.cpp index c310ff90..75fd63a5 100644 --- a/src/perf/time_lru_cache_throughput.cpp +++ b/src/perf/time_lru_cache_throughput.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -54,11 +54,12 @@ namespace utils{ // this at beginning of program; sets one_us_iters to number of iters to // busy_wait for approx. 1 us void calibrate_busy_wait() { + const unsigned niter = 1000000; tbb::tick_count t0 = tbb::tick_count::now(); - for (volatile unsigned int i=0; i<1000000; ++i) continue; + for (volatile unsigned int i=0; i ); tbb::tick_count t1 = tbb::tick_count::now(); - times.push_back( (t1 - t0).seconds()*1000 ); + times.push_back( (t1 - t0).seconds()*1e+3 ); } std::sort( times.begin(), times.end() ); diff --git a/src/perf/time_sandbox.h b/src/perf/time_sandbox.h index 8e2cc767..b2a67fc2 100644 --- a/src/perf/time_sandbox.h +++ b/src/perf/time_sandbox.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/perf/time_vector.cpp b/src/perf/time_vector.cpp index 9642f782..a28740c6 100644 --- a/src/perf/time_vector.cpp +++ b/src/perf/time_vector.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -93,9 +93,9 @@ public: dv[len-i-1] = timer0.diff_time(tv[i]); tv[i].mark_time(); } - stat.AddStatisticValue( key[2], "1total, ms", "%.3f", timer2.get_time()*1000.0 ); - stat.AddStatisticValue( key[1], "1total, ms", "%.3f", timer1.diff_time(timer2)*1000.0 ); - stat.AddStatisticValue( key[0], "1total, ms", "%.3f", timer0.diff_time(timer1)*1000.0 ); + stat.AddStatisticValue( key[2], "1total, ms", "%.3f", timer2.get_time()*1e+3 ); + stat.AddStatisticValue( key[1], "1total, ms", "%.3f", timer1.diff_time(timer2)*1e+3 ); + stat.AddStatisticValue( key[0], "1total, ms", "%.3f", timer0.diff_time(timer1)*1e+3 ); //allocator statistics stat.AddStatisticValue( key[0], "2total allocations", "%d", int(timers_vector_t::allocator_type::allocations) ); stat.AddStatisticValue( key[1], "2total allocations", "%d", int(values_vector_t::allocator_type::allocations) ); @@ -104,13 +104,13 @@ public: stat.AddStatisticValue( key[1], "3total alloc#items", "%d", int(values_vector_t::allocator_type::items_allocated) ); stat.AddStatisticValue( key[2], "3total alloc#items", "%d", 0); //remarks - stat.AddStatisticValue( key[0], "9note", "segment creation time, ns:"); - stat.AddStatisticValue( key[2], "9note", "average op-time per item, ns:"); + stat.AddStatisticValue( key[0], "9note", "segment creation time, us:"); + stat.AddStatisticValue( key[2], "9note", "average op-time per item, us:"); Timer last_timer(timer2); double last_value = 0; for (size_t j = 0, i = 2; i < len; i *= 2, j++) { - stat.AddRoundResult( key[0], (dv[len-i-1]-last_value)*1000000.0 ); + stat.AddRoundResult( key[0], (dv[len-i-1]-last_value)*1e+6 ); last_value = dv[len-i-1]; - stat.AddRoundResult( key[2], last_timer.diff_time(tv[i])/double(i)*1000000.0 ); + stat.AddRoundResult( key[2], last_timer.diff_time(tv[i])/double(i)*1e+6 ); last_timer = tv[i]; stat.SetRoundTitle(j, i); } @@ -154,10 +154,10 @@ public: std::sort(v2.rbegin(), v2.rend()); std::set_intersection(v1.begin(), v1.end(), v2.rbegin(), v2.rend(), v1.begin()); Timer timer3; - stat.AddRoundResult( proc_key, timer2.diff_time(timer3)*1000.0 ); - stat.AddRoundResult( fill_key, timer1.diff_time(timer2)*1000.0 ); - stat.AddRoundResult( init_key, timer0.diff_time(timer1)*1000.0 ); - stat.AddRoundResult( full_key, timer0.diff_time(timer3)*1000.0 ); + stat.AddRoundResult( proc_key, timer2.diff_time(timer3)*1e+3 ); + stat.AddRoundResult( fill_key, timer1.diff_time(timer2)*1e+3 ); + stat.AddRoundResult( init_key, timer0.diff_time(timer1)*1e+3 ); + stat.AddRoundResult( full_key, timer0.diff_time(timer3)*1e+3 ); } stat.SetStatisticFormula("1Average", "=AVERAGE(ROUNDS)"); stat.SetStatisticFormula("2+/-", "=(MAX(ROUNDS)-MIN(ROUNDS))/2"); diff --git a/src/rml/client/index.html b/src/rml/client/index.html index 29d2c7bf..2b588918 100644 --- a/src/rml/client/index.html +++ b/src/rml/client/index.html @@ -31,7 +31,7 @@ This directory has source code that must be statically linked into an RML client
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/rml/client/library_assert.h b/src/rml/client/library_assert.h index b626bbe3..7c16fda4 100644 --- a/src/rml/client/library_assert.h +++ b/src/rml/client/library_assert.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/client/omp_dynamic_link.cpp b/src/rml/client/omp_dynamic_link.cpp index 2c0d7ca7..adcd0b12 100644 --- a/src/rml/client/omp_dynamic_link.cpp +++ b/src/rml/client/omp_dynamic_link.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/client/omp_dynamic_link.h b/src/rml/client/omp_dynamic_link.h index 0c491e79..eb65fea6 100644 --- a/src/rml/client/omp_dynamic_link.h +++ b/src/rml/client/omp_dynamic_link.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/client/rml_factory.h b/src/rml/client/rml_factory.h index 4dd421ce..6f5f4828 100644 --- a/src/rml/client/rml_factory.h +++ b/src/rml/client/rml_factory.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/client/rml_omp.cpp b/src/rml/client/rml_omp.cpp index e80afc71..f6dbe012 100644 --- a/src/rml/client/rml_omp.cpp +++ b/src/rml/client/rml_omp.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/client/rml_tbb.cpp b/src/rml/client/rml_tbb.cpp index fa71ff9f..ab95f81e 100644 --- a/src/rml/client/rml_tbb.cpp +++ b/src/rml/client/rml_tbb.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/include/index.html b/src/rml/include/index.html index f740c666..3e7653a7 100644 --- a/src/rml/include/index.html +++ b/src/rml/include/index.html @@ -18,7 +18,7 @@ This directory has the include files for the Resource Management Layer (RML).
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/rml/include/rml_base.h b/src/rml/include/rml_base.h index 7cee52e6..e4f28529 100644 --- a/src/rml/include/rml_base.h +++ b/src/rml/include/rml_base.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/include/rml_omp.h b/src/rml/include/rml_omp.h index 51757d7f..3ff393a3 100644 --- a/src/rml/include/rml_omp.h +++ b/src/rml/include/rml_omp.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/include/rml_tbb.h b/src/rml/include/rml_tbb.h index e1cac103..16dd1128 100644 --- a/src/rml/include/rml_tbb.h +++ b/src/rml/include/rml_tbb.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/index.html b/src/rml/index.html index 77aa70b9..07d80929 100644 --- a/src/rml/index.html +++ b/src/rml/index.html @@ -20,7 +20,7 @@ The subdirectories pertain to the Resource Management Layer (RML).
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/rml/perfor/omp_nested.cpp b/src/rml/perfor/omp_nested.cpp index 9d5cbc0c..07819529 100644 --- a/src/rml/perfor/omp_nested.cpp +++ b/src/rml/perfor/omp_nested.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/perfor/omp_simple.cpp b/src/rml/perfor/omp_simple.cpp index f28db5af..125d78e1 100644 --- a/src/rml/perfor/omp_simple.cpp +++ b/src/rml/perfor/omp_simple.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/perfor/tbb_multi_omp.cpp b/src/rml/perfor/tbb_multi_omp.cpp index 656c7bb4..0ec8d0f2 100644 --- a/src/rml/perfor/tbb_multi_omp.cpp +++ b/src/rml/perfor/tbb_multi_omp.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/perfor/tbb_simple.cpp b/src/rml/perfor/tbb_simple.cpp index 5a42df89..a53b2aff 100644 --- a/src/rml/perfor/tbb_simple.cpp +++ b/src/rml/perfor/tbb_simple.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/perfor/thread_level.h b/src/rml/perfor/thread_level.h index 333b03e5..b675d6d2 100644 --- a/src/rml/perfor/thread_level.h +++ b/src/rml/perfor/thread_level.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/index.html b/src/rml/server/index.html index 932974bb..784e3920 100644 --- a/src/rml/server/index.html +++ b/src/rml/server/index.html @@ -7,7 +7,7 @@ This directory has source code internal to the server.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/rml/server/irml.rc b/src/rml/server/irml.rc index 7b4a71fa..322fa65b 100644 --- a/src/rml/server/irml.rc +++ b/src/rml/server/irml.rc @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -81,7 +81,7 @@ BEGIN VALUE "CompanyName", "Intel Corporation\0" VALUE "FileDescription", "Intel(R) Threading Building Blocks resource manager library\0" VALUE "FileVersion", TBB_VERSION "\0" - VALUE "LegalCopyright", "Copyright 2005-2015 Intel Corporation. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright 2005-2016 Intel Corporation. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" #ifndef TBB_USE_DEBUG VALUE "OriginalFilename", "irml.dll\0" diff --git a/src/rml/server/job_automaton.h b/src/rml/server/job_automaton.h index f359c31a..31086e4f 100644 --- a/src/rml/server/job_automaton.h +++ b/src/rml/server/job_automaton.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/lin-rml-export.def b/src/rml/server/lin-rml-export.def index a493ca3c..c39b49cf 100644 --- a/src/rml/server/lin-rml-export.def +++ b/src/rml/server/lin-rml-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/rml_server.cpp b/src/rml/server/rml_server.cpp index b7eaf553..98e9a912 100644 --- a/src/rml/server/rml_server.cpp +++ b/src/rml/server/rml_server.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/thread_monitor.h b/src/rml/server/thread_monitor.h index 699f809c..6286ce99 100644 --- a/src/rml/server/thread_monitor.h +++ b/src/rml/server/thread_monitor.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/wait_counter.h b/src/rml/server/wait_counter.h index 7c700e9b..aeffc9d2 100644 --- a/src/rml/server/wait_counter.h +++ b/src/rml/server/wait_counter.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/win32-rml-export.def b/src/rml/server/win32-rml-export.def index 7fc36c47..2e6ae048 100644 --- a/src/rml/server/win32-rml-export.def +++ b/src/rml/server/win32-rml-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/server/win64-rml-export.def b/src/rml/server/win64-rml-export.def index 7fc36c47..2e6ae048 100644 --- a/src/rml/server/win64-rml-export.def +++ b/src/rml/server/win64-rml-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/rml_omp_stub.cpp b/src/rml/test/rml_omp_stub.cpp index c105e31d..bdf8ff6e 100644 --- a/src/rml/test/rml_omp_stub.cpp +++ b/src/rml/test/rml_omp_stub.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_job_automaton.cpp b/src/rml/test/test_job_automaton.cpp index 1cc38f08..0b4fd04c 100644 --- a/src/rml/test/test_job_automaton.cpp +++ b/src/rml/test/test_job_automaton.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_rml_mixed.cpp b/src/rml/test/test_rml_mixed.cpp index 3b2b06a4..b2b923f9 100644 --- a/src/rml/test/test_rml_mixed.cpp +++ b/src/rml/test/test_rml_mixed.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_rml_omp.cpp b/src/rml/test/test_rml_omp.cpp index 34c2e602..02b48b8d 100644 --- a/src/rml/test/test_rml_omp.cpp +++ b/src/rml/test/test_rml_omp.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_rml_omp_c_linkage.c b/src/rml/test/test_rml_omp_c_linkage.c index 26475a26..47bba19c 100644 --- a/src/rml/test/test_rml_omp_c_linkage.c +++ b/src/rml/test/test_rml_omp_c_linkage.c @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_rml_tbb.cpp b/src/rml/test/test_rml_tbb.cpp index 530c0fb4..0757cac2 100644 --- a/src/rml/test/test_rml_tbb.cpp +++ b/src/rml/test/test_rml_tbb.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_server.h b/src/rml/test/test_server.h index dc936c82..1348ab47 100644 --- a/src/rml/test/test_server.h +++ b/src/rml/test/test_server.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/rml/test/test_thread_monitor.cpp b/src/rml/test/test_thread_monitor.cpp index b7802649..af35562b 100644 --- a/src/rml/test/test_thread_monitor.cpp +++ b/src/rml/test/test_thread_monitor.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/arena.cpp b/src/tbb/arena.cpp index 17078613..e9e10ea5 100644 --- a/src/tbb/arena.cpp +++ b/src/tbb/arena.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -137,12 +137,16 @@ void arena::process( generic_scheduler& s ) { for ( ;; ) { __TBB_ASSERT( is_alive(my_guard), NULL ); - __TBB_ASSERT ( __TBB_load_relaxed(s.my_arena_slot->head) == __TBB_load_relaxed(s.my_arena_slot->tail), - "Worker cannot leave arena while its task pool is not empty" ); + __TBB_ASSERT( s.is_quiescent_local_task_pool_reset(), + "Worker cannot leave arena while its task pool is not reset" ); __TBB_ASSERT( s.my_arena_slot->task_pool == EmptyTaskPool, "Empty task pool is not marked appropriately" ); // This check prevents relinquishing more than necessary workers because // of the non-atomicity of the decision making procedure - if (num_workers_active() > my_num_workers_allotted) + if ( num_workers_active() > my_num_workers_allotted +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + || recall_by_mandatory_request() +#endif + ) break; // Try to steal a task. // Passing reference count is technically unnecessary in this context, @@ -220,7 +224,9 @@ arena::arena ( market& m, unsigned num_slots, unsigned num_reserved_slots ) { } my_task_stream.initialize(my_num_slots); ITT_SYNC_CREATE(&my_task_stream, SyncType_Scheduler, SyncObj_TaskStream); - my_mandatory_concurrency = false; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + my_mandatory_mode = no_mandatory; +#endif #if !__TBB_FP_CONTEXT my_cpu_ctl_env.get_env(); #endif @@ -242,6 +248,9 @@ void arena::free_arena () { __TBB_ASSERT( !my_references, "There are threads in the dying arena" ); __TBB_ASSERT( !my_num_workers_requested && !my_num_workers_allotted, "Dying arena requests workers" ); __TBB_ASSERT( my_pool_state == SNAPSHOT_EMPTY || !my_max_num_workers, "Inconsistent state of a dying arena" ); +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + __TBB_ASSERT( my_mandatory_mode != global_mandatory, NULL ); +#endif #if !__TBB_STATISTICS_EARLY_DUMP GATHER_STATISTIC( dump_arena_statistics() ); #endif @@ -362,6 +371,37 @@ void arena::orphan_offloaded_tasks(generic_scheduler& s) { } #endif /* __TBB_TASK_PRIORITY */ +void arena::restore_priorities_if_need() { + // Check for the presence of enqueued tasks "lost" on some of + // priority levels because updating arena priority and switching + // arena into "populated" (FULL) state happen non-atomically. + // Imposing atomicity would require task::enqueue() to use a lock, + // which is unacceptable. +#if __TBB_TASK_PRIORITY + bool switch_back = false; + for ( int p = 0; p < num_priority_levels; ++p ) { + if ( !my_task_stream.empty(p) ) { + switch_back = true; + break; + } + } +#else + bool switch_back = !my_task_stream.empty(0); +#endif /* __TBB_TASK_PRIORITY */ + if ( switch_back ) { + advertise_new_work(); +#if __TBB_TASK_PRIORITY + // update_arena_priority() expects non-zero arena::my_num_workers_requested, + // so must be called after advertise_new_work() + for ( int p = 0; p < num_priority_levels; ++p ) + if ( !my_task_stream.empty(p) ) { + if ( p < my_bottom_priority || p > my_top_priority ) + my_market->update_arena_priority(*this, p); + } +#endif + } +} + bool arena::is_out_of_work() { // TODO: rework it to return at least a hint about where a task was found; better if the task itself. for(;;) { @@ -465,26 +505,18 @@ bool arena::is_out_of_work() { // to avoid race with advertise_new_work. int current_demand = (int)my_max_num_workers; if( my_pool_state.compare_and_swap( SNAPSHOT_EMPTY, busy )==busy ) { - // This thread transitioned pool to empty state, and thus is - // responsible for telling RML that there is no other work to do. - my_market->adjust_demand( *this, -current_demand ); -#if __TBB_TASK_PRIORITY - // Check for the presence of enqueued tasks "lost" on some of - // priority levels because updating arena priority and switching - // arena into "populated" (FULL) state happen non-atomically. - // Imposing atomicity would require task::enqueue() to use a lock, - // which is unacceptable. - bool switch_back = false; - for ( int p = 0; p < num_priority_levels; ++p ) { - if ( !my_task_stream.empty(p) ) { - switch_back = true; - if ( p < my_bottom_priority || p > my_top_priority ) - my_market->update_arena_priority(*this, p); - } +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if( my_mandatory_mode==global_mandatory ) { + // adjust_demand() called inside, if needed + my_market->mandatory_concurrency_disable( this ); + } else +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ + { + // This thread transitioned pool to empty state, and thus is + // responsible for telling RML that there is no other work to do. + my_market->adjust_demand( *this, -current_demand ); } - if ( switch_back ) - advertise_new_work(); -#endif /* __TBB_TASK_PRIORITY */ + restore_priorities_if_need(); return true; } return false; @@ -548,7 +580,7 @@ void arena::enqueue_task( task& t, intptr_t prio, FastRandom &random ) __TBB_ASSERT_EX(prio == 0, "the library is not configured to respect the task priority"); my_task_stream.push( &t, 0, random ); #endif /* !__TBB_TASK_PRIORITY */ - advertise_new_work< /*Spawned=*/ false >(); + advertise_new_work(); #if __TBB_TASK_PRIORITY if ( p != my_top_priority ) my_market->update_arena_priority( *this, p ); @@ -654,15 +686,11 @@ namespace internal { void task_arena_base::internal_initialize( ) { governor::one_time_init(); - bool default_concurrency_requested = false; - if( my_max_concurrency < 1 ) { + if( my_max_concurrency < 1 ) my_max_concurrency = (int)governor::default_num_threads(); - default_concurrency_requested = true; - } __TBB_ASSERT( my_master_slots <= (unsigned)my_max_concurrency, "Number of slots reserved for master should not exceed arena concurrency"); arena* new_arena = market::create_arena( my_max_concurrency, my_master_slots, - global_control::active_value(global_control::thread_stack_size), - default_concurrency_requested ); + global_control::active_value(global_control::thread_stack_size) ); // add an internal market reference; a public reference was added in create_arena market &m = market::global_market( /*is_public=*/false ); // allocate default context for task_arena @@ -742,7 +770,7 @@ class delegated_task : public task { __TBB_ASSERT(s.worker_outermost_level() || s.master_outermost_level(), "expected to be enqueued and received on the outermost level"); // but this task can mimics outermost level, detect it if( s.master_outermost_level() && s.my_dummy_task->state() == task::executing ) { -#if TBB_USE_EXCEPTIONS +#if __TBB_USE_OPTIONAL_RTTI // RTTI is available, check whether the cast is valid __TBB_ASSERT(dynamic_cast(s.my_dummy_task), 0); #endif @@ -871,7 +899,7 @@ class wait_task : public task { s->local_wait_for_all( *s->my_dummy_task, NULL ); __TBB_ASSERT( !s->my_dispatching_task && !s->my_innermost_running_task, NULL ); s->my_innermost_running_task = this; - } else s->my_arena->is_out_of_work(); // avoids starvation of internal_wait: issuing this task makes arena full + } else s->my_arena->is_out_of_work(); // avoids starvation of internal_wait: issuing this task makes arena full my_signal.V(); return NULL; } diff --git a/src/tbb/arena.h b/src/tbb/arena.h index 8ffa0156..9654f017 100644 --- a/src/tbb/arena.h +++ b/src/tbb/arena.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -46,7 +46,7 @@ class allocate_root_with_context_proxy; namespace internal { //! arena data except the array of slots -/** Separated in order to simplify padding. +/** Separated in order to simplify padding. Intrusive list node base class is used by market to form a list of arenas. **/ struct arena_base : padded { //! Number of workers that have been marked out by the resource manager to service the arena @@ -84,9 +84,9 @@ struct arena_base : padded { unsigned my_max_num_workers; //! Current task pool state and estimate of available tasks amount. - /** The estimate is either 0 (SNAPSHOT_EMPTY) or infinity (SNAPSHOT_FULL). - Special state is "busy" (any other unsigned value). - Note that the implementation of arena::is_busy_or_empty() requires + /** The estimate is either 0 (SNAPSHOT_EMPTY) or infinity (SNAPSHOT_FULL). + Special state is "busy" (any other unsigned value). + Note that the implementation of arena::is_busy_or_empty() requires my_pool_state to be unsigned. */ tbb::atomic my_pool_state; @@ -143,8 +143,16 @@ struct arena_base : padded { //! Number of reserved slots (can be occupied only by masters) unsigned my_num_reserved_slots; - //! Indicates if there is an oversubscribing worker created to service enqueued tasks. - bool my_mandatory_concurrency; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + enum mandatory_mode { + no_mandatory, + local_mandatory, + global_mandatory + }; + + //! Is mandatory concurrency subject of per-arena set or global control? + mandatory_mode my_mandatory_mode; +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ #if __TBB_TASK_ARENA //! exit notifications after arena slot is released @@ -159,9 +167,18 @@ struct arena_base : padded { class arena: public padded { + //! Restore priorities of arenas and task presence status of the arena, if new enqueued tasks found + void restore_priorities_if_need(); public: typedef padded base_type; + //! type of work that advertised by advertise_new_work() + enum new_work_type { + work_spawned, + wakeup, + work_enqueued + }; + //! Constructor arena ( market&, unsigned max_num_workers, unsigned num_reserved_slots ); @@ -211,7 +228,7 @@ public: } //! If necessary, raise a flag that there is new job in arena. - template void advertise_new_work(); + template void advertise_new_work(); //! Check if there is job anywhere in arena. /** Return true if no job or if arena is being cleaned up. */ @@ -246,6 +263,18 @@ public: intptr_t workers_task_node_count(); #endif +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + //! Recall worker if global mandatory is enabled, but not for this arena + bool recall_by_mandatory_request() const { + return my_market->my_mandatory_num_requested && my_mandatory_mode==arena_base::no_mandatory; + } + + //! Mandatory parallelism requested by this arena + bool mandatory_requested() const { + return my_num_workers_requested && my_market->my_mandatory_num_requested + && my_mandatory_mode!=arena_base::no_mandatory; + } +#endif static const size_t out_of_arena = ~size_t(0); //! Tries to occupy a slot in the arena. On success, returns the slot index; if no slot is available, returns out_of_arena. template @@ -321,40 +350,76 @@ inline void arena::on_thread_leaving ( ) { // If just one, dump statistics. if ( modulo_power_of_two(my_references,ref_worker)==ref_param ) // may only be true with ref_external GATHER_STATISTIC( dump_arena_statistics() ); +#endif +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + // When there is no workers someone must free arena, as + // without workers, no one calls is_out_of_work(). + // Skip workerless arenas because they have no demand for workers. + // TODO: consider more strict conditions for the cleanup, + // because it can create the demand of workers, + // but the arena can be already empty (and so ready for destroying) + if( ref_param==ref_external && my_num_slots != my_num_reserved_slots + && 0 == m->my_num_workers_soft_limit && my_mandatory_mode==no_mandatory ) { + bool is_out = false; +#if !__TBB_TASK_PRIORITY + const int num_priority_levels = 1; +#endif + for (int i=0; itry_destroy_arena( this, aba_epoch ); } -template void arena::advertise_new_work() { - if( !Spawned ) { // i.e. the work was enqueued - if( my_max_num_workers==0 ) { +template void arena::advertise_new_work() { + if( work_type == work_enqueued ) { +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if( my_market->my_num_workers_soft_limit == 0 ) { + if( my_mandatory_mode!=global_mandatory ) { + if( my_market->mandatory_concurrency_enable( this ) ) { + my_pool_state = SNAPSHOT_FULL; + return; + } + } + } else if( my_max_num_workers==0 ) { my_max_num_workers = 1; - __TBB_ASSERT(!my_mandatory_concurrency, ""); - my_mandatory_concurrency = true; - __TBB_ASSERT(!num_workers_active(), ""); + __TBB_ASSERT(my_mandatory_mode==no_mandatory, ""); + my_mandatory_mode = local_mandatory; my_pool_state = SNAPSHOT_FULL; my_market->adjust_demand( *this, 1 ); return; } - // Local memory fence is required to avoid missed wakeups; see the comment below. +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ + // Local memory fence here and below is required to avoid missed wakeups; see the comment below. // Starvation resistant tasks require mandatory concurrency, so missed wakeups are unacceptable. - atomic_fence(); + atomic_fence(); + } + else if( work_type == wakeup ) { + __TBB_ASSERT(my_max_num_workers!=0, "Not expect mandatory concurrency request."); + atomic_fence(); } // Double-check idiom that, in case of spawning, is deliberately sloppy about memory fences. - // Technically, to avoid missed wakeups, there should be a full memory fence between the point we - // released the task pool (i.e. spawned task) and read the arena's state. However, adding such a - // fence might hurt overall performance more than it helps, because the fence would be executed - // on every task pool release, even when stealing does not occur. Since TBB allows parallelism, + // Technically, to avoid missed wakeups, there should be a full memory fence between the point we + // released the task pool (i.e. spawned task) and read the arena's state. However, adding such a + // fence might hurt overall performance more than it helps, because the fence would be executed + // on every task pool release, even when stealing does not occur. Since TBB allows parallelism, // but never promises parallelism, the missed wakeup is not a correctness problem. pool_state_t snapshot = my_pool_state; if( is_busy_or_empty(snapshot) ) { - // Attempt to mark as full. The compare_and_swap below is a little unusual because the + // Attempt to mark as full. The compare_and_swap below is a little unusual because the // result is compared to a value that can be different than the comparand argument. if( my_pool_state.compare_and_swap( SNAPSHOT_FULL, snapshot )==SNAPSHOT_EMPTY ) { if( snapshot!=SNAPSHOT_EMPTY ) { - // This thread read "busy" into snapshot, and then another thread transitioned - // my_pool_state to "empty" in the meantime, which caused the compare_and_swap above + // This thread read "busy" into snapshot, and then another thread transitioned + // my_pool_state to "empty" in the meantime, which caused the compare_and_swap above // to fail. Attempt to transition my_pool_state from "empty" to "full". if( my_pool_state.compare_and_swap( SNAPSHOT_FULL, SNAPSHOT_EMPTY )!=SNAPSHOT_EMPTY ) { // Some other thread transitioned my_pool_state from "empty", and hence became @@ -364,19 +429,31 @@ template void arena::advertise_new_work() { } // This thread transitioned pool from empty to full state, and thus is responsible for // telling RML that there is work to do. - if( Spawned ) { - if( my_mandatory_concurrency ) { - __TBB_ASSERT(my_max_num_workers==1, ""); - __TBB_ASSERT(!governor::local_scheduler()->is_worker(), ""); - // There was deliberate oversubscription on 1 core for sake of starvation-resistant tasks. - // Now a single active thread (must be the master) supposedly starts a new parallel region - // with relaxed sequential semantics, and oversubscription should be avoided. - // Demand for workers has been decreased to 0 during SNAPSHOT_EMPTY, so just keep it. - my_max_num_workers = 0; - my_mandatory_concurrency = false; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if( work_type == work_spawned ) { + if( my_mandatory_mode!=no_mandatory ) { + switch( my_mandatory_mode ) { + case local_mandatory: + __TBB_ASSERT(my_max_num_workers==1, ""); + __TBB_ASSERT(!governor::local_scheduler()->is_worker(), ""); + // There was deliberate oversubscription on 1 core for sake of starvation-resistant tasks. + // Now a single active thread (must be the master) supposedly starts a new parallel region + // with relaxed sequential semantics, and oversubscription should be avoided. + // Demand for workers has been decreased to 0 during SNAPSHOT_EMPTY, so just keep it. + my_max_num_workers = 0; + my_mandatory_mode = no_mandatory; + break; + case global_mandatory: + my_market->mandatory_concurrency_disable( this ); + restore_priorities_if_need(); + break; + default: + break; + } return; } } +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ my_market->adjust_demand( *this, my_max_num_workers ); } } diff --git a/src/tbb/cache_aligned_allocator.cpp b/src/tbb/cache_aligned_allocator.cpp index 79343f5e..148ed659 100644 --- a/src/tbb/cache_aligned_allocator.cpp +++ b/src/tbb/cache_aligned_allocator.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/cilk-tbb-interop.h b/src/tbb/cilk-tbb-interop.h index 5ac8453e..9c3f2112 100644 --- a/src/tbb/cilk-tbb-interop.h +++ b/src/tbb/cilk-tbb-interop.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,7 +18,7 @@ reasons why the executable file might be covered by the GNU General Public License. */ -/* The API to enable interoperability between Intel(R) Cilk(TM) Plus and +/* The API to enable interoperability between Intel(R) Cilk(TM) Plus and Intel(R) Threading Building Blocks. */ #ifndef CILK_TBB_INTEROP_H @@ -71,7 +71,7 @@ typedef __cilk_tbb_retcode (*__cilk_tbb_pfn_unwatch_stacks)(void *data); The thunk must be invoked on the thread doing the releasing, Must "happen before" the stack is used elsewhere. - When a non-empty stack is transferred between threads, the first thread must orphan it + When a non-empty stack is transferred between threads, the first thread must orphan it and the second thread must adopt it. An empty stack can be transferred similarly, or simply released by the first thread. @@ -85,7 +85,7 @@ typedef __cilk_tbb_retcode (*__cilk_tbb_pfn_unwatch_stacks)(void *data); | \ / \ / | | --<-- --<-- | ^ RELEASE or ADOPT V - \ unwatch / + \ unwatch / \ / --------------------------<--------------------------- RELEASE @@ -98,11 +98,11 @@ struct __cilk_tbb_stack_op_thunk { /* Thunk invoked by TBB when it is no longer interested in watching the stack bound to the current thread. */ struct __cilk_tbb_unwatch_thunk { __cilk_tbb_pfn_unwatch_stacks routine; - void* data; + void* data; }; /* Defined by cilkrts, called by TBB. - Requests that cilkrts invoke __cilk_tbb_stack_op_thunk when it orphans a stack. + Requests that cilkrts invoke __cilk_tbb_stack_op_thunk when it orphans a stack. cilkrts sets *u to a thunk that TBB should call when it is no longer interested in watching the stack. */ CILK_EXPORT __cilk_tbb_retcode __cilkrts_watch_stack(struct __cilk_tbb_unwatch_thunk* u, diff --git a/src/tbb/concurrent_hash_map.cpp b/src/tbb/concurrent_hash_map.cpp index 2ca88332..4b1edfa1 100644 --- a/src/tbb/concurrent_hash_map.cpp +++ b/src/tbb/concurrent_hash_map.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -45,7 +45,7 @@ struct hash_map_segment_base { }; bool hash_map_segment_base::internal_grow_predicate() const { - // Intel(R) Thread Checker considers the following reads to be races, so we hide them in the + // Intel(R) Thread Checker considers the following reads to be races, so we hide them in the // library so that Intel(R) Thread Checker will ignore them. The reads are used in a double-check // context, so the program is nonetheless correct despite the race. return my_logical_size >= my_physical_size && my_physical_size < max_physical_size; diff --git a/src/tbb/concurrent_monitor.cpp b/src/tbb/concurrent_monitor.cpp index f185d92e..42c6f51c 100644 --- a/src/tbb/concurrent_monitor.cpp +++ b/src/tbb/concurrent_monitor.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/concurrent_monitor.h b/src/tbb/concurrent_monitor.h index 32afe3d1..4937a0fc 100644 --- a/src/tbb/concurrent_monitor.h +++ b/src/tbb/concurrent_monitor.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -129,7 +129,7 @@ public: concurrent_monitor() {__TBB_store_relaxed(epoch, 0);} //! dtor - ~concurrent_monitor() ; + ~concurrent_monitor() ; //! prepare wait by inserting 'thr' into the wait queue void prepare_wait( thread_context& thr, uintptr_t ctx = 0 ); @@ -177,7 +177,7 @@ public: //! Abort any sleeping threads at the time of the call void abort_all() {atomic_fence(); abort_all_relaxed(); } - + //! Abort any sleeping threads at the time of the call; Relaxed version void abort_all_relaxed(); diff --git a/src/tbb/concurrent_queue.cpp b/src/tbb/concurrent_queue.cpp index a380d9f9..a2446146 100644 --- a/src/tbb/concurrent_queue.cpp +++ b/src/tbb/concurrent_queue.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -168,7 +168,7 @@ public: #pragma warning( disable: 4146 ) #endif -static void* invalid_page; +static void* static_invalid_page; //------------------------------------------------------------------------ // micro_queue @@ -328,15 +328,15 @@ void micro_queue::make_invalid( ticket k ) { static concurrent_queue_base::page dummy = {static_cast((void*)1), 0}; // mark it so that no more pushes are allowed. - invalid_page = &dummy; + static_invalid_page = &dummy; { spin_mutex::scoped_lock lock( page_mutex ); tail_counter = k+concurrent_queue_rep::n_queue+1; if( page* q = tail_page ) - q->next = static_cast(invalid_page); + q->next = static_cast(static_invalid_page); else - head_page = static_cast(invalid_page); - tail_page = static_cast(invalid_page); + head_page = static_cast(static_invalid_page); + tail_page = static_cast(static_invalid_page); } __TBB_RETHROW(); } @@ -540,7 +540,7 @@ void concurrent_queue_base_v3::internal_finish_clear() { page* tp = my_rep->array[i].tail_page; __TBB_ASSERT( my_rep->array[i].head_page==tp, "at most one page should remain" ); if( tp!=NULL) { - if( tp!=invalid_page ) deallocate_page( tp ); + if( tp!=static_invalid_page ) deallocate_page( tp ); my_rep->array[i].tail_page = NULL; } } diff --git a/src/tbb/concurrent_vector.cpp b/src/tbb/concurrent_vector.cpp index 4c03e781..09108e19 100644 --- a/src/tbb/concurrent_vector.cpp +++ b/src/tbb/concurrent_vector.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/condition_variable.cpp b/src/tbb/condition_variable.cpp index 70a0ec36..6b0599c4 100644 --- a/src/tbb/condition_variable.cpp +++ b/src/tbb/condition_variable.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/critical_section.cpp b/src/tbb/critical_section.cpp index 9d4fd915..88f82633 100644 --- a/src/tbb/critical_section.cpp +++ b/src/tbb/critical_section.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/custom_scheduler.h b/src/tbb/custom_scheduler.h index e6e65057..7e1b2414 100644 --- a/src/tbb/custom_scheduler.h +++ b/src/tbb/custom_scheduler.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -174,7 +174,11 @@ task* custom_scheduler::receive_or_steal_task( __TBB_atomic ref break; // exit stealing loop and return; } // Check if the resource manager requires our arena to relinquish some threads - if ( outermost_worker_level && my_arena->my_num_workers_allotted < my_arena->num_workers_active() ) { + if ( outermost_worker_level && (my_arena->my_num_workers_allotted < my_arena->num_workers_active() +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + || my_arena->recall_by_mandatory_request() +#endif + ) ) { #if !__TBB_TASK_ARENA __TBB_ASSERT( is_worker(), NULL ); #endif @@ -438,7 +442,7 @@ void custom_scheduler::local_wait_for_all( task& parent, task* else { // Mark arena as full to unlock arena priority level adjustment // by arena::is_out_of_work(), and ensure worker's presence. - my_arena->advertise_new_work(); + my_arena->advertise_new_work(); } goto stealing_ground; } diff --git a/src/tbb/dynamic_link.cpp b/src/tbb/dynamic_link.cpp index b979e9c2..edb7f170 100644 --- a/src/tbb/dynamic_link.cpp +++ b/src/tbb/dynamic_link.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/dynamic_link.h b/src/tbb/dynamic_link.h index 526e9233..23721381 100644 --- a/src/tbb/dynamic_link.h +++ b/src/tbb/dynamic_link.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -55,7 +55,7 @@ typedef void (*pointer_to_handler)(); // prevent warnings from some compilers (g++ 4.1) #if __TBB_WEAK_SYMBOLS_PRESENT #define DLD(s,h) {#s, (pointer_to_handler*)(void*)(&h), (pointer_to_handler)&s} -#else +#else #define DLD(s,h) {#s, (pointer_to_handler*)(void*)(&h)} #endif /* __TBB_WEAK_SYMBOLS_PRESENT */ //! Association between a handler name and location of pointer to it. diff --git a/src/tbb/governor.cpp b/src/tbb/governor.cpp index 50710a66..5ffcc174 100644 --- a/src/tbb/governor.cpp +++ b/src/tbb/governor.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -81,6 +81,7 @@ void governor::acquire_resources () { void governor::release_resources () { theRMLServerFactory.close(); + destroy_process_mask(); #if TBB_USE_ASSERT if( __TBB_InitOnce::initialization_done() && theTLS.get() ) runtime_warning( "TBB is unloaded while tbb::task_scheduler_init object is alive?" ); @@ -186,7 +187,7 @@ generic_scheduler* governor::init_scheduler( int num_threads, stack_size_type st __TBB_ASSERT( s->my_ref_count == 1, "weakly initialized scheduler must have refcount equal to 1" ); __TBB_ASSERT( !s->my_arena, "weakly initialized scheduler must have no arena" ); __TBB_ASSERT( s->my_auto_initialized, "weakly initialized scheduler is supposed to be auto-initialized" ); - s->attach_arena( market::create_arena( default_num_threads(), 1, 0, true ), 0, /*is_master*/true ); + s->attach_arena( market::create_arena( default_num_threads(), 1, 0 ), 0, /*is_master*/true ); __TBB_ASSERT( s->my_arena_index == 0, "Master thread must occupy the first slot in its arena" ); s->my_arena_slot->my_scheduler = s; s->my_arena->my_default_ctx = s->default_context(); // it also transfers implied ownership @@ -199,10 +200,9 @@ generic_scheduler* governor::init_scheduler( int num_threads, stack_size_type st return s; } // Create new scheduler instance with arena - bool default_concurrency_requested = num_threads == task_scheduler_init::automatic; - if( default_concurrency_requested ) + if( num_threads == task_scheduler_init::automatic ) num_threads = default_num_threads(); - arena *a = market::create_arena( num_threads, 1, stack_size, default_concurrency_requested ); + arena *a = market::create_arena( num_threads, 1, stack_size ); generic_scheduler* s = generic_scheduler::create_master( a ); __TBB_ASSERT(s, "Somehow a local scheduler creation for a master thread failed"); __TBB_ASSERT( is_set(s), NULL ); @@ -264,7 +264,7 @@ void governor::print_version_info () { } void governor::initialize_rml_factory () { - ::rml::factory::status_type res = theRMLServerFactory.open(); + ::rml::factory::status_type res = theRMLServerFactory.open(); UsePrivateRML = res != ::rml::factory::st_success; } @@ -285,10 +285,10 @@ __cilk_tbb_retcode governor::stack_op_handler( __cilk_tbb_stack_op op, void* dat default: __TBB_ASSERT( 0, "invalid op" ); case CILK_TBB_STACK_ADOPT: { - __TBB_ASSERT( !current && s->my_cilk_state==generic_scheduler::cs_limbo || + __TBB_ASSERT( !current && s->my_cilk_state==generic_scheduler::cs_limbo || current==s && s->my_cilk_state==generic_scheduler::cs_running, "invalid adoption" ); #if TBB_USE_ASSERT - if( current==s ) + if( current==s ) runtime_warning( "redundant adoption of %p by thread %p\n", s, (void*)thread_id ); s->my_cilk_state = generic_scheduler::cs_running; #endif /* TBB_USE_ASSERT */ @@ -296,7 +296,7 @@ __cilk_tbb_retcode governor::stack_op_handler( __cilk_tbb_stack_op op, void* dat break; } case CILK_TBB_STACK_ORPHAN: { - __TBB_ASSERT( current==s && s->my_cilk_state==generic_scheduler::cs_running, "invalid orphaning" ); + __TBB_ASSERT( current==s && s->my_cilk_state==generic_scheduler::cs_running, "invalid orphaning" ); #if TBB_USE_ASSERT s->my_cilk_state = generic_scheduler::cs_limbo; #endif /* TBB_USE_ASSERT */ @@ -304,14 +304,14 @@ __cilk_tbb_retcode governor::stack_op_handler( __cilk_tbb_stack_op op, void* dat break; } case CILK_TBB_STACK_RELEASE: { - __TBB_ASSERT( !current && s->my_cilk_state==generic_scheduler::cs_limbo || + __TBB_ASSERT( !current && s->my_cilk_state==generic_scheduler::cs_limbo || current==s && s->my_cilk_state==generic_scheduler::cs_running, "invalid release" ); #if TBB_USE_ASSERT s->my_cilk_state = generic_scheduler::cs_freed; #endif /* TBB_USE_ASSERT */ s->my_cilk_unwatch_thunk.routine = NULL; auto_terminate( s ); - } + } } return 0; } @@ -355,7 +355,7 @@ void task_scheduler_init::initialize( int number_of_threads, stack_size_type thr : new_mode & propagation_mode_captured ? vt & ~task_group_context::exact_exception : vt; // Use least significant bit of the scheduler pointer to store previous mode. // This is necessary when components compiled with different compilers and/or - // TBB versions initialize the + // TBB versions initialize the my_scheduler = static_cast((generic_scheduler*)((uintptr_t)s | prev_mode)); } else diff --git a/src/tbb/governor.h b/src/tbb/governor.h index e45805f0..728271e1 100644 --- a/src/tbb/governor.h +++ b/src/tbb/governor.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia32-masm/atomic_support.asm b/src/tbb/ia32-masm/atomic_support.asm index 5b2bcbac..cf3e2743 100644 --- a/src/tbb/ia32-masm/atomic_support.asm +++ b/src/tbb/ia32-masm/atomic_support.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia32-masm/itsx.asm b/src/tbb/ia32-masm/itsx.asm index 58c999bc..3841de3f 100644 --- a/src/tbb/ia32-masm/itsx.asm +++ b/src/tbb/ia32-masm/itsx.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia32-masm/lock_byte.asm b/src/tbb/ia32-masm/lock_byte.asm index c96fe5b5..bcccc92f 100644 --- a/src/tbb/ia32-masm/lock_byte.asm +++ b/src/tbb/ia32-masm/lock_byte.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia64-gas/atomic_support.s b/src/tbb/ia64-gas/atomic_support.s index 9b3af7d9..6b6dc661 100644 --- a/src/tbb/ia64-gas/atomic_support.s +++ b/src/tbb/ia64-gas/atomic_support.s @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia64-gas/ia64_misc.s b/src/tbb/ia64-gas/ia64_misc.s index 839536df..7623e88a 100644 --- a/src/tbb/ia64-gas/ia64_misc.s +++ b/src/tbb/ia64-gas/ia64_misc.s @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia64-gas/lock_byte.s b/src/tbb/ia64-gas/lock_byte.s index 19b22344..ac715b9f 100644 --- a/src/tbb/ia64-gas/lock_byte.s +++ b/src/tbb/ia64-gas/lock_byte.s @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia64-gas/log2.s b/src/tbb/ia64-gas/log2.s index 4acac8ed..c86c8341 100644 --- a/src/tbb/ia64-gas/log2.s +++ b/src/tbb/ia64-gas/log2.s @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ia64-gas/pause.s b/src/tbb/ia64-gas/pause.s index 5296d7f3..2312d39b 100644 --- a/src/tbb/ia64-gas/pause.s +++ b/src/tbb/ia64-gas/pause.s @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/ibm_aix51/atomic_support.c b/src/tbb/ibm_aix51/atomic_support.c index 10700e20..138b312e 100644 --- a/src/tbb/ibm_aix51/atomic_support.c +++ b/src/tbb/ibm_aix51/atomic_support.c @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/index.html b/src/tbb/index.html index c559d6ba..d85d1daa 100644 --- a/src/tbb/index.html +++ b/src/tbb/index.html @@ -21,7 +21,7 @@ This directory contains the source code of the TBB core components.
    Up to parent directory

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/tbb/intel64-masm/atomic_support.asm b/src/tbb/intel64-masm/atomic_support.asm index e19dafba..9e04310d 100644 --- a/src/tbb/intel64-masm/atomic_support.asm +++ b/src/tbb/intel64-masm/atomic_support.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/intel64-masm/intel64_misc.asm b/src/tbb/intel64-masm/intel64_misc.asm index 0712bfd5..94f65898 100644 --- a/src/tbb/intel64-masm/intel64_misc.asm +++ b/src/tbb/intel64-masm/intel64_misc.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/intel64-masm/itsx.asm b/src/tbb/intel64-masm/itsx.asm index c20cff25..b954f868 100644 --- a/src/tbb/intel64-masm/itsx.asm +++ b/src/tbb/intel64-masm/itsx.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/intrusive_list.h b/src/tbb/intrusive_list.h index f131c8e2..3a6c567a 100644 --- a/src/tbb/intrusive_list.h +++ b/src/tbb/intrusive_list.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ namespace internal { //! Data structure to be inherited by the types that can form intrusive lists. /** Intrusive list is formed by means of the member_intrusive_list template class. - Note that type T must derive from intrusive_list_node either publicly or + Note that type T must derive from intrusive_list_node either publicly or declare instantiation member_intrusive_list as a friend. This class implements a limited subset of std::list interface. **/ struct intrusive_list_node { @@ -112,7 +112,7 @@ class intrusive_list_base { }; // intrusive_list_base::iterator_impl void assert_ok () const { - __TBB_ASSERT( (my_head.my_prev_node == &my_head && !my_size) || + __TBB_ASSERT( (my_head.my_prev_node == &my_head && !my_size) || (my_head.my_next_node != &my_head && my_size >0), "intrusive_list_base corrupted" ); #if TBB_USE_ASSERT >= 2 size_t i = 0; @@ -167,9 +167,9 @@ public: const_iterator end () const { return const_iterator(&my_head); } void push_front ( T& val ) { - __TBB_ASSERT( node(val).my_prev_node == &node(val) && node(val).my_next_node == &node(val), + __TBB_ASSERT( node(val).my_prev_node == &node(val) && node(val).my_next_node == &node(val), "Object with intrusive list node can be part of only one intrusive list simultaneously" ); - // An object can be part of only one intrusive list at the given moment via the given node member + // An object can be part of only one intrusive list at the given moment via the given node member node(val).my_prev_node = &my_head; node(val).my_next_node = my_head.my_next_node; my_head.my_next_node->my_prev_node = &node(val); @@ -201,11 +201,11 @@ public: //! Double linked list of items of type T containing a member of type intrusive_list_node. -/** NodePtr is a member pointer to the node data field. Class U is either T or +/** NodePtr is a member pointer to the node data field. Class U is either T or a base class of T containing the node member. Default values exist for the sake of a partial specialization working with inheritance case. - The list does not have ownership of its items. Its purpose is to avoid dynamic + The list does not have ownership of its items. Its purpose is to avoid dynamic memory allocation when forming lists of existing objects. The class is not thread safe. **/ @@ -217,16 +217,16 @@ class memptr_intrusive_list : public intrusive_list_base" and "*" - // as member pointer dereferencing operator, and explicit usage of ## in + // as member pointer dereferencing operator, and explicit usage of ## in // __TBB_offsetof implementation breaks operations with normal member names. return *reinterpret_cast((char*)node - ((ptrdiff_t)&(reinterpret_cast(0x1000)->*NodePtr) - 0x1000)); } }; // intrusive_list //! Double linked list of items of type T that is derived from intrusive_list_node class. -/** The list does not have ownership of its items. Its purpose is to avoid dynamic +/** The list does not have ownership of its items. Its purpose is to avoid dynamic memory allocation when forming lists of existing objects. The class is not thread safe. **/ diff --git a/src/tbb/itt_notify.cpp b/src/tbb/itt_notify.cpp index ca34fe3f..82d05246 100644 --- a/src/tbb/itt_notify.cpp +++ b/src/tbb/itt_notify.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -69,11 +69,11 @@ int __TBB_load_ittnotify() { namespace tbb { #if DO_ITT_NOTIFY - const tchar + const tchar *SyncType_GlobalLock = _T("TbbGlobalLock"), *SyncType_Scheduler = _T("%Constant") ; - const tchar + const tchar *SyncObj_SchedulerInitialization = _T("TbbSchedulerInitialization"), *SyncObj_SchedulersList = _T("TbbSchedulersList"), *SyncObj_WorkerLifeCycleMgmt = _T("TBB Scheduler"), diff --git a/src/tbb/itt_notify.h b/src/tbb/itt_notify.h index ca843940..1d6a64e2 100644 --- a/src/tbb/itt_notify.h +++ b/src/tbb/itt_notify.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -58,7 +58,7 @@ namespace tbb { //! Unicode character type. Always wchar_t on Windows. /** We do not use typedefs from Windows TCHAR family to keep consistence of TBB coding style. **/ typedef wchar_t tchar; - //! Standard Windows macro to markup the string literals. + //! Standard Windows macro to markup the string literals. #define _T(string_literal) L ## string_literal #else /* !WIN */ typedef char tchar; @@ -70,11 +70,11 @@ namespace tbb { #if DO_ITT_NOTIFY namespace tbb { //! Display names of internal synchronization types - extern const tchar + extern const tchar *SyncType_GlobalLock, *SyncType_Scheduler; //! Display names of internal synchronization components/scenarios - extern const tchar + extern const tchar *SyncObj_SchedulerInitialization, *SyncObj_SchedulersList, *SyncObj_WorkerLifeCycleMgmt, @@ -89,7 +89,7 @@ namespace tbb { ; namespace internal { - void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void* obj, const tchar* name); + void __TBB_EXPORTED_FUNC itt_set_sync_name_v3( void* obj, const tchar* name); } // namespace internal diff --git a/src/tbb/lin32-tbb-export.def b/src/tbb/lin32-tbb-export.def index a083e304..5184b8b5 100644 --- a/src/tbb/lin32-tbb-export.def +++ b/src/tbb/lin32-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/lin32-tbb-export.lst b/src/tbb/lin32-tbb-export.lst index a8a07b3b..9bbc8ea1 100644 --- a/src/tbb/lin32-tbb-export.lst +++ b/src/tbb/lin32-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/lin64-tbb-export.def b/src/tbb/lin64-tbb-export.def index ea58c90d..2bcfbae6 100644 --- a/src/tbb/lin64-tbb-export.def +++ b/src/tbb/lin64-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/lin64-tbb-export.lst b/src/tbb/lin64-tbb-export.lst index 4a2a1ea6..7906d795 100644 --- a/src/tbb/lin64-tbb-export.lst +++ b/src/tbb/lin64-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/lin64ipf-tbb-export.def b/src/tbb/lin64ipf-tbb-export.def index 71441cd0..cdd7546f 100644 --- a/src/tbb/lin64ipf-tbb-export.def +++ b/src/tbb/lin64ipf-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/lin64ipf-tbb-export.lst b/src/tbb/lin64ipf-tbb-export.lst index 14145d1a..c30f169a 100644 --- a/src/tbb/lin64ipf-tbb-export.lst +++ b/src/tbb/lin64ipf-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/mac32-tbb-export.def b/src/tbb/mac32-tbb-export.def index ed53e795..01b3952e 100644 --- a/src/tbb/mac32-tbb-export.def +++ b/src/tbb/mac32-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/mac32-tbb-export.lst b/src/tbb/mac32-tbb-export.lst index a6980ba3..516e3147 100644 --- a/src/tbb/mac32-tbb-export.lst +++ b/src/tbb/mac32-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/mac64-tbb-export.def b/src/tbb/mac64-tbb-export.def index 71e8f5e5..9b36e048 100644 --- a/src/tbb/mac64-tbb-export.def +++ b/src/tbb/mac64-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/mac64-tbb-export.lst b/src/tbb/mac64-tbb-export.lst index 068cbc3b..baa31f54 100644 --- a/src/tbb/mac64-tbb-export.lst +++ b/src/tbb/mac64-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/mailbox.h b/src/tbb/mailbox.h index 47f40f50..89400560 100644 --- a/src/tbb/mailbox.h +++ b/src/tbb/mailbox.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -88,7 +88,7 @@ class unpadded_mail_outbox { protected: typedef task_proxy*__TBB_atomic proxy_ptr; - //! Pointer to first task_proxy in mailbox, or NULL if box is empty. + //! Pointer to first task_proxy in mailbox, or NULL if box is empty. proxy_ptr my_first; //! Pointer to pointer that will point to next item in the queue. Never NULL. @@ -135,9 +135,9 @@ public: /** Implementation is wait-free. */ void push( task_proxy& t ) { __TBB_ASSERT(&t, NULL); - t.next_in_mailbox = NULL; + t.next_in_mailbox = NULL; proxy_ptr * const link = (proxy_ptr *)__TBB_FetchAndStoreW(&my_last,(intptr_t)&t.next_in_mailbox); - // No release fence required for the next store, because there are no memory operations + // No release fence required for the next store, because there are no memory operations // between the previous fully fenced atomic operation and the store. __TBB_store_relaxed(*link, &t); } @@ -160,7 +160,7 @@ public: suppress_unused_warning(pad); } - //! Drain the mailbox + //! Drain the mailbox intptr_t drain() { intptr_t k = 0; // No fences here because other threads have already quit. @@ -168,7 +168,7 @@ public: my_first = t->next_in_mailbox; NFS_Free((char*)t - task_prefix_reservation_size); } - return k; + return k; } //! True if thread that owns this mailbox is looking for work. @@ -185,7 +185,7 @@ public: //! Construct unattached inbox mail_inbox() : my_putter(NULL) {} - //! Attach inbox to a corresponding outbox. + //! Attach inbox to a corresponding outbox. void attach( mail_outbox& putter ) { my_putter = &putter; } @@ -218,7 +218,7 @@ public: #if DO_ITT_NOTIFY //! Get pointer to corresponding outbox used for ITT_NOTIFY calls. void* outbox() const {return my_putter;} -#endif /* DO_ITT_NOTIFY */ +#endif /* DO_ITT_NOTIFY */ }; // class mail_inbox } // namespace internal diff --git a/src/tbb/market.cpp b/src/tbb/market.cpp index 4d77960e..7eadfefc 100644 --- a/src/tbb/market.cpp +++ b/src/tbb/market.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -74,13 +74,14 @@ market::market ( unsigned workers_soft_limit, unsigned workers_hard_limit, size_ #endif /* __TBB_TASK_PRIORITY */ , my_ref_count(1) , my_stack_size(stack_size) + , my_workers_soft_limit_to_report(workers_soft_limit) { #if __TBB_TASK_PRIORITY __TBB_ASSERT( my_global_reload_epoch == 0, NULL ); my_priority_levels[normalized_normal_priority].workers_available = my_num_workers_soft_limit; #endif /* __TBB_TASK_PRIORITY */ - // Once created RML server will start initializing workers that will need + // Once created RML server will start initializing workers that will need // global market instance to get worker stack size my_server = governor::create_rml_server( *this ); __TBB_ASSERT( my_server, "Failed to create RML server" ); @@ -91,30 +92,38 @@ static unsigned calc_workers_soft_limit(unsigned workers_soft_limit, unsigned wo workers_soft_limit = soft_limit-1; else // if user set no limits (yet), use market's parameter workers_soft_limit = max( governor::default_num_threads() - 1, workers_soft_limit ); - // at least 1 worker is required to support starvation resistant tasks - if( workers_soft_limit == 0 ) - workers_soft_limit = 1; - else if( workers_soft_limit >= workers_hard_limit ) + if( workers_soft_limit >= workers_hard_limit ) workers_soft_limit = workers_hard_limit-1; return workers_soft_limit; } -market& market::global_market ( bool is_public, unsigned workers_soft_limit, size_t stack_size, - bool default_concurrency_requested ) { +market& market::global_market ( bool is_public, unsigned workers_requested, size_t stack_size ) { global_market_mutex_type::scoped_lock lock( theMarketMutex ); market *m = theMarket; if( m ) { ++m->my_ref_count; const unsigned old_public_count = is_public? m->my_public_ref_count++ : /*any non-zero value*/1; lock.release(); - if( old_public_count==0 ) { - workers_soft_limit = calc_workers_soft_limit(workers_soft_limit, m->my_num_workers_hard_limit); - set_active_num_workers( workers_soft_limit ); + if( old_public_count==0 ) + set_active_num_workers( calc_workers_soft_limit(workers_requested, m->my_num_workers_hard_limit) ); + + // do not warn if default number of workers is requested + if( workers_requested != governor::default_num_threads()-1 ) { + __TBB_ASSERT( skip_soft_limit_warning > workers_requested, + "skip_soft_limit_warning must be larger than any valid workers_requested" ); + unsigned soft_limit_to_report = m->my_workers_soft_limit_to_report; + if( soft_limit_to_report < workers_requested ) { + runtime_warning( "The number of workers is currently limited to %u. " + "The request for %u workers is ignored. Further requests for more workers " + "will be silently ignored until the limit changes.\n", + soft_limit_to_report, workers_requested ); + // The race is possible when multiple threads report warnings. + // We are OK with that, as there are just multiple warnings. + internal::as_atomic(m->my_workers_soft_limit_to_report). + compare_and_swap(skip_soft_limit_warning, soft_limit_to_report); + } + } - if( m->my_num_workers_soft_limit < workers_soft_limit && !default_concurrency_requested ) - runtime_warning( "Max number of workers has been already set to %u. " - "The request for %u workers is ignored.\n", - m->my_num_workers_soft_limit, workers_soft_limit ); if( m->my_stack_size < stack_size ) runtime_warning( "Thread stack size has been already set to %u. " "The request for larger stack (%u) cannot be satisfied.\n", @@ -128,8 +137,8 @@ market& market::global_market ( bool is_public, unsigned workers_soft_limit, siz // Limit to 2P for large thread number. // TODO: ask RML for max concurrency and possibly correct hard_limit const unsigned factor = governor::default_num_threads()<=128? 4 : 2; - unsigned workers_hard_limit = max(factor*governor::default_num_threads(), app_parallelism_limit()); - workers_soft_limit = calc_workers_soft_limit(workers_soft_limit, workers_hard_limit); + const unsigned workers_hard_limit = max(factor*governor::default_num_threads(), app_parallelism_limit()); + const unsigned workers_soft_limit = calc_workers_soft_limit(workers_requested, workers_hard_limit); // Create the global market instance size_t size = sizeof(market); #if __TBB_TASK_GROUP_CONTEXT @@ -183,7 +192,7 @@ void market::release ( bool is_public ) { void market::wait_workers () { // usable for this kind of scheduler only - __TBB_ASSERT(join_workers, NULL); + __TBB_ASSERT(my_join_workers, NULL); // to guarantee that request_close_connection() is called by master, // wait till terminating last worker decresed my_ref_count while (__TBB_load_with_acquire(my_ref_count) > 1) @@ -192,11 +201,9 @@ void market::wait_workers () { } void market::set_active_num_workers ( unsigned soft_limit ) { - int old_requested, requested; + int old_requested=0, requested=0; + bool need_mandatory = false; market *m; - // at least 1 worker is required to support starvation resistant tasks - if( soft_limit == 0 ) - soft_limit = 1; { global_market_mutex_type::scoped_lock lock( theMarketMutex ); @@ -210,19 +217,61 @@ void market::set_active_num_workers ( unsigned soft_limit ) { arenas_list_mutex_type::scoped_lock lock(m->my_arenas_list_mutex); __TBB_ASSERT(soft_limit <= m->my_num_workers_hard_limit, NULL); m->my_num_workers_soft_limit = soft_limit; - requested = min(m->my_total_demand, (int)soft_limit); - old_requested = m->my_num_workers_requested; - m->my_num_workers_requested = requested; - m->my_priority_levels[m->my_global_top_priority].workers_available = soft_limit; - m->update_allotment( + // report only once after new soft limit value is set + m->my_workers_soft_limit_to_report = soft_limit; + +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + // updates soft_limit to zero must be postponed + // while mandatory parallelism is enabled + if( !(m->my_mandatory_num_requested && !soft_limit) ) +#endif + { + const int demand = +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + m->my_mandatory_num_requested? 0 : +#endif + m->my_total_demand; + requested = min(demand, (int)soft_limit); + old_requested = m->my_num_workers_requested; + m->my_num_workers_requested = requested; #if __TBB_TASK_PRIORITY - m->my_global_top_priority + m->my_priority_levels[m->my_global_top_priority].workers_available = soft_limit; + m->update_allotment(m->my_global_top_priority); +#else + m->update_allotment(); #endif - ); + } +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if( !m->my_mandatory_num_requested && !soft_limit ) { + // enable mandatory concurrency, if enqueued tasks are found + // and zero soft_limit requested +#if __TBB_TASK_PRIORITY + for ( int p = m->my_global_top_priority; + p >= m->my_global_bottom_priority; --p ) { + priority_level_info &pl = m->my_priority_levels[p]; + arena_list_type &arenas = pl.arenas; +#else + const int p = 0; + arena_list_type &arenas = m->my_arenas; +#endif /* __TBB_TASK_PRIORITY */ + for (arena_list_type::iterator it = arenas.begin(); + it != arenas.end(); ++it ) + if( !it->my_task_stream.empty(p) ) { + // switch local_mandatory to global_mandatory unconditionally + if( m->mandatory_concurrency_enable_impl( &*it ) ) + need_mandatory = true; + } +#if __TBB_TASK_PRIORITY + } +#endif /* __TBB_TASK_PRIORITY */ + } +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ } // Must be called outside of any locks if ( requested != old_requested ) m->my_server->adjust_job_count_estimate( requested - old_requested ); + if( need_mandatory ) + m->my_server->adjust_job_count_estimate( 1 ); // release internal market reference to match ++m->my_ref_count above m->release(); } @@ -231,12 +280,11 @@ bool governor::does_client_join_workers (const tbb::internal::rml::tbb_client &c return ((const market&)client).must_join_workers(); } -arena* market::create_arena ( int num_slots, int num_reserved_slots, size_t stack_size, bool default_concurrency_requested ) { +arena* market::create_arena ( int num_slots, int num_reserved_slots, size_t stack_size ) { __TBB_ASSERT( num_slots > 0, NULL ); __TBB_ASSERT( num_reserved_slots <= num_slots, NULL ); // Add public market reference for master thread/task_arena (that adds an internal reference in exchange). - market &m = global_market( /*is_public=*/true, num_slots-num_reserved_slots, stack_size, - default_concurrency_requested ); + market &m = global_market( /*is_public=*/true, num_slots-num_reserved_slots, stack_size ); arena& a = arena::allocate_arena( m, num_slots, num_reserved_slots ); // Add newly created arena into the existing market's list. @@ -255,13 +303,16 @@ void market::detach_arena ( arena& a ) { } void market::try_destroy_arena ( arena* a, uintptr_t aba_epoch ) { + bool locked = true; // master thread holds reference to the market, so it cannot be destroyed at any moment here __TBB_ASSERT( this == theMarket, NULL ); __TBB_ASSERT( a, NULL ); - arenas_list_mutex_type::scoped_lock lock(my_arenas_list_mutex); + my_arenas_list_mutex.lock(); assert_market_valid(); #if __TBB_TASK_PRIORITY - for ( int p = my_global_top_priority; p >= my_global_bottom_priority; --p ) { + // scan all priority levels, not only in [my_global_bottom_priority;my_global_top_priority] + // range, because arena to be destoyed can have no outstanding request for workers + for ( int p = num_priority_levels-1; p >= 0; --p ) { priority_level_info &pl = my_priority_levels[p]; arena_list_type &my_arenas = pl.arenas; #endif /* __TBB_TASK_PRIORITY */ @@ -274,16 +325,20 @@ void market::try_destroy_arena ( arena* a, uintptr_t aba_epoch ) { __TBB_ASSERT( !a->my_num_workers_allotted && (a->my_pool_state == arena::SNAPSHOT_EMPTY || !a->my_max_num_workers), "Inconsistent arena state" ); // Arena is abandoned. Destroy it. detach_arena( *a ); - lock.release(); + my_arenas_list_mutex.unlock(); + locked = false; a->free_arena(); } } + if (locked) + my_arenas_list_mutex.unlock(); return; } } #if __TBB_TASK_PRIORITY } #endif /* __TBB_TASK_PRIORITY */ + my_arenas_list_mutex.unlock(); } /** This method must be invoked under my_arenas_list_mutex. **/ @@ -296,7 +351,11 @@ arena* market::arena_in_need ( arena_list_type &arenas, arena *&next ) { arena& a = *it; if ( ++it == arenas.end() ) it = arenas.begin(); - if ( a.num_workers_active() < a.my_num_workers_allotted ) { + if( a.num_workers_active() < a.my_num_workers_allotted +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + && !a.recall_by_mandatory_request() +#endif + ) { a.my_references += arena::ref_worker; as_atomic(next) = &*it; // a subject for innocent data race under the reader lock // TODO: rework global round robin policy to local or random to avoid this write @@ -325,6 +384,10 @@ void market::update_allotment ( arena_list_type& arenas, int workers_demand, int carry = tmp % workers_demand; // a.my_num_workers_requested may temporarily exceed a.my_max_num_workers a.my_num_workers_allotted = min( allotted, (int)a.my_max_num_workers ); +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if ( !a.my_num_workers_allotted && a.mandatory_requested() ) + a.my_num_workers_allotted = 1; +#endif #if TBB_USE_ASSERT assigned += a.my_num_workers_allotted; #endif /* TBB_USE_ASSERT */ @@ -336,7 +399,11 @@ void market::update_allotment ( arena_list_type& arenas, int workers_demand, int inline void market::update_global_top_priority ( intptr_t newPriority ) { GATHER_STATISTIC( ++governor::local_scheduler_if_initialized()->my_counters.market_prio_switches ); my_global_top_priority = newPriority; - my_priority_levels[newPriority].workers_available = my_num_workers_soft_limit; + my_priority_levels[newPriority].workers_available = +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + my_mandatory_num_requested && !my_num_workers_soft_limit ? 1 : +#endif + my_num_workers_soft_limit; advance_global_reload_epoch(); } @@ -385,12 +452,107 @@ void market::update_allotment ( intptr_t highest_affected_priority ) { arena_list_type::iterator it = pl.arenas.begin(); for ( ; it != pl.arenas.end(); ++it ) { __TBB_ASSERT( it->my_num_workers_requested >= 0 || !it->my_num_workers_allotted, NULL ); - it->my_num_workers_allotted = 0; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + if ( it->mandatory_requested() ) + it->my_num_workers_allotted = 1; + else +#endif + it->my_num_workers_allotted = 0; } } } #endif /* __TBB_TASK_PRIORITY */ +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY +bool market::mandatory_concurrency_enable_impl ( arena *a, bool *enabled ) { + if( a->my_mandatory_mode==arena_base::global_mandatory ) { + if( enabled ) + *enabled = false; + return false; + } + if( enabled ) + *enabled = true; + a->my_max_num_workers = 1; + a->my_mandatory_mode = arena_base::global_mandatory; +#if __TBB_TASK_PRIORITY + priority_level_info &pl = my_priority_levels[a->my_top_priority]; + pl.workers_requested++; + if( my_global_top_priority < a->my_top_priority ) { + my_global_top_priority = a->my_top_priority; + advance_global_reload_epoch(); + } +#endif + a->my_num_workers_requested++; + a->my_num_workers_allotted++; + if( 1 == ++my_mandatory_num_requested ) { + my_total_demand++; + return true; + } + return false; +} + +bool market::mandatory_concurrency_enable ( arena *a ) { + bool add_thread; + bool enabled; + { + arenas_list_mutex_type::scoped_lock lock(my_arenas_list_mutex); + add_thread = mandatory_concurrency_enable_impl(a, &enabled); + } + if( add_thread ) + my_server->adjust_job_count_estimate( 1 ); + return enabled; +} + +void market::mandatory_concurrency_disable ( arena *a ) { + bool remove_thread = false; + int delta_adjust_demand = 0; + + { + arenas_list_mutex_type::scoped_lock lock(my_arenas_list_mutex); + + if( a->my_mandatory_mode!=arena_base::global_mandatory ) + return; + __TBB_ASSERT( a->my_max_num_workers==1, NULL ); + a->my_max_num_workers = 0; +#if __TBB_TASK_PRIORITY + if ( a->my_top_priority != normalized_normal_priority ) { + update_arena_top_priority( *a, normalized_normal_priority ); + } + a->my_bottom_priority = normalized_normal_priority; +#endif + + int val = --my_mandatory_num_requested; + __TBB_ASSERT_EX( val >= 0, NULL ); + if( val == 0 ) { + my_total_demand--; + remove_thread = true; + } + a->my_num_workers_requested--; + if (a->my_num_workers_requested > 0) + delta_adjust_demand = a->my_num_workers_requested; + else + a->my_num_workers_allotted = 0; + +#if __TBB_TASK_PRIORITY + priority_level_info &pl = my_priority_levels[a->my_top_priority]; + pl.workers_requested--; + intptr_t p = my_global_top_priority; + for (; !my_priority_levels[p].workers_requested && p>0; p--) + ; + if( !p ) + reset_global_priority(); + else if( p!= my_global_top_priority ) + update_global_top_priority(p); +#endif + a->my_mandatory_mode = arena::no_mandatory; + } + if( delta_adjust_demand ) + adjust_demand( *a, -delta_adjust_demand ); + if( remove_thread ) + my_server->adjust_job_count_estimate( -1 ); +} +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ + void market::adjust_demand ( arena& a, int delta ) { __TBB_ASSERT( theMarket, "market instance was destroyed prematurely?" ); if ( !delta ) @@ -399,7 +561,13 @@ void market::adjust_demand ( arena& a, int delta ) { int prev_req = a.my_num_workers_requested; a.my_num_workers_requested += delta; if ( a.my_num_workers_requested <= 0 ) { - a.my_num_workers_allotted = 0; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + // must not recall worker from arena with mandatory parallelism + if ( a.my_market->my_mandatory_num_requested && a.my_mandatory_mode!=arena_base::no_mandatory ) + a.my_num_workers_allotted = 1; + else +#endif + a.my_num_workers_allotted = 0; if ( prev_req <= 0 ) { my_arenas_list_mutex.unlock(); return; @@ -441,6 +609,12 @@ void market::adjust_demand ( arena& a, int delta ) { __TBB_ASSERT( a.my_num_workers_requested >= 0, NULL ); update_global_top_priority(p); a.my_num_workers_allotted = min( (int)my_num_workers_soft_limit, a.my_num_workers_requested ); +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + // must not recall worker from arena with mandatory parallelism + if ( !a.my_num_workers_allotted && a.my_num_workers_requested + && a.my_market->my_mandatory_num_requested && a.my_mandatory_mode!=arena_base::no_mandatory ) + a.my_num_workers_allotted = 1; +#endif my_priority_levels[p - 1].workers_available = my_num_workers_soft_limit - a.my_num_workers_allotted; update_allotment( p - 1 ); } @@ -457,7 +631,6 @@ void market::adjust_demand ( arena& a, int delta ) { update_allotment( p ); } else if ( p < my_global_bottom_priority ) { - __TBB_ASSERT( a.my_num_workers_requested > 0, NULL ); int prev_bottom = my_global_bottom_priority; my_global_bottom_priority = p; update_allotment( prev_bottom ); @@ -595,8 +768,7 @@ bool market::lower_arena_priority ( arena& a, intptr_t new_priority, uintptr_t o } if ( p == my_global_top_priority && !my_priority_levels[p].workers_requested ) { // Global top level became empty - for ( --p; !my_priority_levels[p].workers_requested; --p ) continue; - __TBB_ASSERT( p >= my_global_bottom_priority, NULL ); + for ( --p; p>my_global_bottom_priority && !my_priority_levels[p].workers_requested; --p ) continue; update_global_top_priority(p); } update_allotment( p ); @@ -651,12 +823,18 @@ bool market::update_arena_priority ( arena& a, intptr_t new_priority ) { } if ( p == my_global_bottom_priority ) { // Arena priority was increased from the global bottom level. - __TBB_ASSERT( p < new_priority, NULL ); // n + __TBB_ASSERT( p < new_priority, NULL ); __TBB_ASSERT( new_priority <= my_global_top_priority, NULL ); - while ( !my_priority_levels[my_global_bottom_priority].workers_requested ) + while ( my_global_bottom_priority < my_global_top_priority + && !my_priority_levels[my_global_bottom_priority].workers_requested ) ++my_global_bottom_priority; __TBB_ASSERT( my_global_bottom_priority <= new_priority, NULL ); - __TBB_ASSERT( my_priority_levels[my_global_bottom_priority].workers_requested > 0, NULL ); +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + const bool active_mandatory = my_mandatory_num_requested && a.my_mandatory_mode!=arena_base::no_mandatory; +#else + const bool active_mandatory = false; +#endif + __TBB_ASSERT_EX(active_mandatory || my_priority_levels[my_global_bottom_priority].workers_requested > 0, NULL ); } update_allotment( highest_affected_level ); diff --git a/src/tbb/market.h b/src/tbb/market.h index 14a5f6f8..5ab8fe52 100644 --- a/src/tbb/market.h +++ b/src/tbb/market.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -92,11 +92,16 @@ private: //! Number of workers that were requested by all arenas int my_total_demand; +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + //! How many times mandatory concurrency was requested from the market + int my_mandatory_num_requested; +#endif + #if __TBB_TASK_PRIORITY //! Highest priority among active arenas in the market. /** Arena priority level is its tasks highest priority (specified by arena's my_top_priority member). - Arena is active when it has outstanding request for workers. Note that + Arena is active when it has outstanding request for workers. Note that inactive arena may have workers lingering there for some time. **/ intptr_t my_global_top_priority; @@ -151,8 +156,13 @@ private: size_t my_stack_size; //! Shutdown mode - bool join_workers; + bool my_join_workers; + + //! The value indicating that the soft limit warning is unnecessary + static const unsigned skip_soft_limit_warning = ~0U; + //! Either workers soft limit to be reported via runtime_warning() or skip_soft_limit_warning + unsigned my_workers_soft_limit_to_report; #if __TBB_COUNT_TASK_NODES //! Net number of nodes that have been allocated from heap. /** Updated each time a scheduler or arena is destroyed. */ @@ -163,8 +173,7 @@ private: market ( unsigned workers_soft_limit, unsigned workers_hard_limit, size_t stack_size ); //! Factory method creating new market object - static market& global_market ( bool is_public, unsigned max_num_workers = 0, size_t stack_size = 0, - bool default_concurrency_requested = false); + static market& global_market ( bool is_public, unsigned max_num_workers = 0, size_t stack_size = 0 ); //! Destroys and deallocates market object created by market::create() void destroy (); @@ -174,7 +183,7 @@ private: arena* arena_in_need ( arena* prev_arena ); //! Recalculates the number of workers assigned to each arena at and below the specified priority. - /** The actual number of workers servicing a particular arena may temporarily + /** The actual number of workers servicing a particular arena may temporarily deviate from the calculated value. **/ void update_allotment ( intptr_t highest_affected_priority ); @@ -201,11 +210,11 @@ private: #else /* !__TBB_TASK_PRIORITY */ //! Recalculates the number of workers assigned to each arena in the list. - /** The actual number of workers servicing a particular arena may temporarily + /** The actual number of workers servicing a particular arena may temporarily deviate from the calculated value. **/ void update_allotment () { if ( my_total_demand ) - update_allotment( my_arenas, my_total_demand, (int)my_max_num_workers ); + update_allotment( my_arenas, my_total_demand, (int)my_num_workers_soft_limit ); } //! Returns next arena that needs more workers, or NULL. @@ -256,7 +265,7 @@ public: //! Creates an arena object /** If necessary, also creates global market instance, and boosts its ref count. Each call to create_arena() must be matched by the call to arena::free_arena(). **/ - static arena* create_arena ( int num_slots, int num_reserved_slots, size_t stack_size, bool default_concurrency_requested ); + static arena* create_arena ( int num_slots, int num_reserved_slots, size_t stack_size ); //! Removes the arena from the market's list void try_destroy_arena ( arena*, uintptr_t aba_epoch ); @@ -267,6 +276,17 @@ public: //! Decrements market's refcount and destroys it in the end void release ( bool is_public = false ); +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + //! Imlpementation of mandatory concurrency enabling + bool mandatory_concurrency_enable_impl ( arena *a, bool *enabled = NULL ); + + //! Inform the master that there is an arena with mandatory concurrency + bool mandatory_concurrency_enable ( arena *a ); + + //! Inform the master that the arena is no more interested in mandatory concurrency + void mandatory_concurrency_disable ( arena *a ); +#endif /* __TBB_ENQUEUE_ENFORCED_CONCURRENCY */ + //! Request that arena's need in workers should be adjusted. /** Concurrent invocations are possible only on behalf of different arenas. **/ void adjust_demand ( arena&, int delta ); @@ -274,7 +294,7 @@ public: //! Wait workers termination void wait_workers (); - bool must_join_workers () const { return join_workers; } + bool must_join_workers () const { return my_join_workers; } //! Returns the requested stack size of worker threads. size_t worker_stack_size () const { return my_stack_size; } @@ -310,11 +330,11 @@ public: #endif /* __TBB_TASK_GROUP_CONTEXT */ #if __TBB_TASK_PRIORITY - //! Lowers arena's priority is not higher than newPriority - /** Returns true if arena priority was actually elevated. **/ + //! Lowers arena's priority is not higher than newPriority + /** Returns true if arena priority was actually elevated. **/ bool lower_arena_priority ( arena& a, intptr_t new_priority, uintptr_t old_reload_epoch ); - //! Makes sure arena's priority is not lower than newPriority + //! Makes sure arena's priority is not lower than newPriority /** Returns true if arena priority was elevated. Also updates arena's bottom priority boundary if necessary. diff --git a/src/tbb/mutex.cpp b/src/tbb/mutex.cpp index 6b150722..2cbae1b6 100644 --- a/src/tbb/mutex.cpp +++ b/src/tbb/mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -29,7 +29,7 @@ namespace tbb { #if _WIN32||_WIN64 switch( m.state ) { - case INITIALIZED: + case INITIALIZED: case HELD: EnterCriticalSection( &m.impl ); // If a thread comes here, and another thread holds the lock, it will block @@ -57,19 +57,19 @@ namespace tbb { void mutex::scoped_lock::internal_release() { __TBB_ASSERT( my_mutex, "mutex::scoped_lock: not holding a mutex" ); -#if _WIN32||_WIN64 +#if _WIN32||_WIN64 switch( my_mutex->state ) { - case INITIALIZED: + case INITIALIZED: __TBB_ASSERT(false,"mutex::scoped_lock: try to release the lock without acquisition"); break; case HELD: my_mutex->state = INITIALIZED; LeaveCriticalSection(&my_mutex->impl); break; - case DESTROYED: - __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); + case DESTROYED: + __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); break; - default: + default: __TBB_ASSERT(false,"mutex::scoped_lock: illegal mutex state"); break; } @@ -83,13 +83,13 @@ void mutex::scoped_lock::internal_release() { bool mutex::scoped_lock::internal_try_acquire( mutex& m ) { #if _WIN32||_WIN64 switch( m.state ) { - case INITIALIZED: + case INITIALIZED: case HELD: break; - case DESTROYED: - __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); + case DESTROYED: + __TBB_ASSERT(false,"mutex::scoped_lock: mutex already destroyed"); break; - default: + default: __TBB_ASSERT(false,"mutex::scoped_lock: illegal mutex state"); break; } @@ -105,7 +105,7 @@ bool mutex::scoped_lock::internal_try_acquire( mutex& m ) { #else result = pthread_mutex_trylock(&m.impl)==0; #endif /* _WIN32||_WIN64 */ - if( result ) + if( result ) my_mutex = &m; return result; } @@ -113,12 +113,12 @@ bool mutex::scoped_lock::internal_try_acquire( mutex& m ) { void mutex::internal_construct() { #if _WIN32||_WIN64 InitializeCriticalSectionEx(&impl, 4000, 0); - state = INITIALIZED; + state = INITIALIZED; #else int error_code = pthread_mutex_init(&impl,NULL); if( error_code ) tbb::internal::handle_perror(error_code,"mutex: pthread_mutex_init failed"); -#endif /* _WIN32||_WIN64*/ +#endif /* _WIN32||_WIN64*/ ITT_SYNC_CREATE(&impl, _T("tbb::mutex"), _T("")); } @@ -128,16 +128,16 @@ void mutex::internal_destroy() { case INITIALIZED: DeleteCriticalSection(&impl); break; - case DESTROYED: + case DESTROYED: __TBB_ASSERT(false,"mutex: already destroyed"); break; - default: + default: __TBB_ASSERT(false,"mutex: illegal state for destruction"); break; } state = DESTROYED; #else - int error_code = pthread_mutex_destroy(&impl); + int error_code = pthread_mutex_destroy(&impl); __TBB_ASSERT_EX(!error_code,"mutex: pthread_mutex_destroy failed"); #endif /* _WIN32||_WIN64 */ } diff --git a/src/tbb/observer_proxy.cpp b/src/tbb/observer_proxy.cpp index 07544ec0..a905b6ca 100644 --- a/src/tbb/observer_proxy.cpp +++ b/src/tbb/observer_proxy.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/observer_proxy.h b/src/tbb/observer_proxy.h index 1855884d..e4665271 100644 --- a/src/tbb/observer_proxy.h +++ b/src/tbb/observer_proxy.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -106,7 +106,7 @@ class observer_proxy { friend class observer_list; //! Reference count used for garbage collection. /** 1 for reference from my task_scheduler_observer. - 1 for each task dispatcher's last observer pointer. + 1 for each task dispatcher's last observer pointer. No accounting for neighbors in the shared list. */ atomic my_ref_count; //! Reference to the list this observer belongs to. diff --git a/src/tbb/pipeline.cpp b/src/tbb/pipeline.cpp index d469029c..c985f80d 100644 --- a/src/tbb/pipeline.cpp +++ b/src/tbb/pipeline.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/private_server.cpp b/src/tbb/private_server.cpp index 5dc32bc5..bd827ac9 100644 --- a/src/tbb/private_server.cpp +++ b/src/tbb/private_server.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -56,12 +56,12 @@ private: st_quit }; atomic my_state; - + //! Associated server - private_server& my_server; + private_server& my_server; //! Associated client - tbb_client& my_client; + tbb_client& my_client; //! index used for avoiding the 64K aliasing problem const size_t my_index; @@ -79,7 +79,7 @@ private: friend class private_server; - //! Actions executed by the associated thread + //! Actions executed by the associated thread void run(); //! Wake up associated thread (or launch a thread if there is none) @@ -93,7 +93,7 @@ private: static void release_handle(thread_handle my_handle, bool join); protected: - private_worker( private_server& server, tbb_client& client, const size_t i ) : + private_worker( private_server& server, tbb_client& client, const size_t i ) : my_server(server), my_client(client), my_index(i) @@ -132,7 +132,7 @@ private: //! Number of jobs that could use their associated thread minus number of active threads. /** If negative, indicates oversubscription. - If positive, indicates that more threads should run. + If positive, indicates that more threads should run. Can be lowered asynchronously, but must be raised only while holding my_asleep_list_mutex, because raising it impacts the invariant for sleeping threads. */ atomic my_slack; @@ -158,7 +158,7 @@ private: which in turn each wake up two threads, etc. */ void propagate_chain_reaction() { // First test of a double-check idiom. Second test is inside wake_some(0). - if( my_asleep_list_root ) + if( my_asleep_list_root ) wake_some(0); } @@ -169,13 +169,13 @@ private: void wake_some( int additional_slack ); virtual ~private_server(); - + void remove_server_ref() { if( --my_ref_count==0 ) { my_client.acknowledge_close_connection(); this->~private_server(); tbb::cache_aligned_allocator().deallocate( this, 1 ); - } + } } friend class private_worker; @@ -184,7 +184,7 @@ public: /*override*/ version_type version() const { return 0; - } + } /*override*/ void request_close_connection( bool /*exiting*/ ) { for( size_t i=0; i().allocate( my_n_thread ); memset( my_thread_array, 0, sizeof(private_worker)*my_n_thread ); for( size_t i=0; imy_next = my_asleep_list_root; my_asleep_list_root = t; - } + } } private_server::~private_server() { __TBB_ASSERT( my_net_slack_requests==0, NULL ); - for( size_t i=my_n_thread; i--; ) + for( size_t i=my_n_thread; i--; ) my_thread_array[i].~padded_private_worker(); tbb::cache_aligned_allocator().deallocate( my_thread_array, my_n_thread ); tbb::internal::poison_pointer( my_thread_array ); @@ -396,7 +396,7 @@ void private_server::wake_some( int additional_slack ) { } } done: - while( w>wakee ) + while( w>wakee ) (*--w)->wake_or_launch(); } diff --git a/src/tbb/queuing_mutex.cpp b/src/tbb/queuing_mutex.cpp index 7650a79d..2bdff016 100644 --- a/src/tbb/queuing_mutex.cpp +++ b/src/tbb/queuing_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -75,7 +75,6 @@ bool queuing_mutex::scoped_lock::try_acquire( queuing_mutex& m ) // Force acquire so that user's critical section receives correct values // from processor that was previously in the user's critical section. - // try_acquire should always have acquire semantic, even if failed. __TBB_load_with_acquire(going); mutex = &m; ITT_NOTIFY(sync_acquired, mutex); diff --git a/src/tbb/queuing_rw_mutex.cpp b/src/tbb/queuing_rw_mutex.cpp index e693b048..b0a2ad92 100644 --- a/src/tbb/queuing_rw_mutex.cpp +++ b/src/tbb/queuing_rw_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -248,7 +248,6 @@ bool queuing_rw_mutex::scoped_lock::try_acquire( queuing_rw_mutex& m, bool write return false; // Someone already took the lock // Force acquire so that user's critical section receives correct values // from processor that was previously in the user's critical section. - // try_acquire should always have acquire semantic, even if failed. __TBB_load_with_acquire(my_going); my_mutex = &m; ITT_NOTIFY(sync_acquired, my_mutex); @@ -367,20 +366,18 @@ bool queuing_rw_mutex::scoped_lock::downgrade_to_reader() __TBB_ASSERT( my_state==STATE_WRITER, "no sense to downgrade a reader" ); ITT_NOTIFY(sync_releasing, my_mutex); - - if( ! __TBB_load_with_acquire(my_next) ) { - my_state = STATE_READER; - if( this==my_mutex->q_tail ) { + my_state = STATE_READER; + if( ! __TBB_load_relaxed(my_next) ) { + // the following load of q_tail must not be reordered with setting STATE_READER above + if( this==my_mutex->q_tail.load() ) { unsigned short old_state = my_state.compare_and_swap(STATE_ACTIVEREADER, STATE_READER); - if( old_state==STATE_READER ) { - // Downgrade completed - return true; - } + if( old_state==STATE_READER ) + return true; // Downgrade completed } /* wait for the next to register */ spin_wait_while_eq( my_next, (void*)NULL ); } - scoped_lock *const n = __TBB_load_relaxed(my_next); + scoped_lock *const n = __TBB_load_with_acquire(my_next); __TBB_ASSERT( n, "still no successor at this point!" ); if( n->my_state & STATE_COMBINED_WAITINGREADER ) __TBB_store_with_release(n->my_going,1); diff --git a/src/tbb/reader_writer_lock.cpp b/src/tbb/reader_writer_lock.cpp index 87ecbe44..21b88087 100644 --- a/src/tbb/reader_writer_lock.cpp +++ b/src/tbb/reader_writer_lock.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -307,7 +307,7 @@ void reader_writer_lock::scoped_lock::internal_construct (reader_writer_lock& lo } } -inline reader_writer_lock::scoped_lock::scoped_lock() : mutex(NULL), next(NULL) { +inline reader_writer_lock::scoped_lock::scoped_lock() : mutex(NULL), next(NULL) { status = waiting; } diff --git a/src/tbb/recursive_mutex.cpp b/src/tbb/recursive_mutex.cpp index ff5b5824..abae4b5f 100644 --- a/src/tbb/recursive_mutex.cpp +++ b/src/tbb/recursive_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -51,15 +51,15 @@ void recursive_mutex::scoped_lock::internal_acquire( recursive_mutex& m ) { void recursive_mutex::scoped_lock::internal_release() { __TBB_ASSERT( my_mutex, "recursive_mutex::scoped_lock: not holding a mutex" ); -#if _WIN32||_WIN64 +#if _WIN32||_WIN64 switch( my_mutex->state ) { - case INITIALIZED: + case INITIALIZED: LeaveCriticalSection( &my_mutex->impl ); break; - case DESTROYED: - __TBB_ASSERT(false,"recursive_mutex::scoped_lock: mutex already destroyed"); + case DESTROYED: + __TBB_ASSERT(false,"recursive_mutex::scoped_lock: mutex already destroyed"); break; - default: + default: __TBB_ASSERT(false,"recursive_mutex::scoped_lock: illegal mutex state"); break; } @@ -73,12 +73,12 @@ void recursive_mutex::scoped_lock::internal_release() { bool recursive_mutex::scoped_lock::internal_try_acquire( recursive_mutex& m ) { #if _WIN32||_WIN64 switch( m.state ) { - case INITIALIZED: + case INITIALIZED: break; - case DESTROYED: - __TBB_ASSERT(false,"recursive_mutex::scoped_lock: mutex already destroyed"); + case DESTROYED: + __TBB_ASSERT(false,"recursive_mutex::scoped_lock: mutex already destroyed"); break; - default: + default: __TBB_ASSERT(false,"recursive_mutex::scoped_lock: illegal mutex state"); break; } @@ -109,7 +109,7 @@ void recursive_mutex::internal_construct() { if( error_code ) tbb::internal::handle_perror(error_code,"recursive_mutex: pthread_mutex_init failed"); pthread_mutexattr_destroy( &mtx_attr ); -#endif /* _WIN32||_WIN64*/ +#endif /* _WIN32||_WIN64*/ ITT_SYNC_CREATE(&impl, _T("tbb::recursive_mutex"), _T("")); } @@ -119,16 +119,16 @@ void recursive_mutex::internal_destroy() { case INITIALIZED: DeleteCriticalSection(&impl); break; - case DESTROYED: + case DESTROYED: __TBB_ASSERT(false,"recursive_mutex: already destroyed"); break; - default: + default: __TBB_ASSERT(false,"recursive_mutex: illegal state for destruction"); break; } state = DESTROYED; #else - int error_code = pthread_mutex_destroy(&impl); + int error_code = pthread_mutex_destroy(&impl); __TBB_ASSERT_EX(!error_code,"recursive_mutex: pthread_mutex_destroy failed"); #endif /* _WIN32||_WIN64 */ } diff --git a/src/tbb/scheduler.cpp b/src/tbb/scheduler.cpp index 9a23e2e0..eef33878 100644 --- a/src/tbb/scheduler.cpp +++ b/src/tbb/scheduler.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -202,7 +202,7 @@ void generic_scheduler::init_stack_info () { // IA-64 architecture stack is split into RSE backup and memory parts my_rsb_stealing_threshold = (uintptr_t)((char*)rsb_base + stack_size/2); #endif /* __TBB_ipf */ - // Size of the stack free part + // Size of the stack free part stack_size = size_t((char*)stack_base - (char*)stack_limit); } pthread_attr_destroy(&np_attr_stack); @@ -582,10 +582,10 @@ void generic_scheduler::local_spawn( task& first, task*& next ) { if ( &first.prefix().next == &next ) { // Single task is being spawned #if __TBB_TODO - // TODO: + // TODO: // In the future we need to add overloaded spawn method for a single task, // and a method accepting an array of task pointers (we may also want to - // change the implementation of the task_list class). But since such changes + // change the implementation of the task_list class). But since such changes // may affect the binary compatibility, we postpone them for a while. #endif size_t T = prepare_task_pool( 1 ); @@ -624,7 +624,7 @@ void generic_scheduler::local_spawn( task& first, task*& next ) { } if ( !is_task_pool_published() ) publish_task_pool(); - my_arena->advertise_new_work(); + my_arena->advertise_new_work(); assert_task_pool_valid(); } @@ -686,9 +686,9 @@ task* generic_scheduler::winnow_task_pool () { // The purpose of the synchronization algorithm here is for the owner thread // to avoid locking task pool most of the time. #if __TBB_TODO - // Just locking the task pool unconditionally would produce simpler code, - // scalability of which should not suffer unless priority jitter takes place. - // Since priority jitter is nocuous by itself, we may want to evaluate + // Just locking the task pool unconditionally would produce simpler code, + // scalability of which should not suffer unless priority jitter takes place. + // Since priority jitter is nocuous by itself, we may want to evaluate // applicability of the simpler variant... // Non-blocking variant also prevent us from relocating remaining tasks to // the beginning of the task pool, not sure if it makes much sense. @@ -808,7 +808,7 @@ task* generic_scheduler::reload_tasks ( task*& offloaded_tasks, task**& offloade if ( --num_tasks ) { commit_spawned_tasks( T += num_tasks ); publish_task_pool(); - my_arena->advertise_new_work(); + my_arena->advertise_new_work(); } __TBB_ASSERT( T == __TBB_load_relaxed(my_arena_slot->tail), NULL ); __TBB_ASSERT( T < my_arena_slot->my_task_pool_size, NULL ); @@ -838,14 +838,14 @@ task* generic_scheduler::reload_tasks () { // are still present. This results in both bottom and top priority bounds // becoming 'normal', which makes offloaded low priority tasks unreachable. // Update arena's bottom priority to accommodate them. - // NOTE: If the number of priority levels is increased, we may want + // NOTE: If the number of priority levels is increased, we may want // to calculate minimum of priorities in my_offloaded_tasks. // First indicate the presence of lower-priority tasks my_market->update_arena_priority( *my_arena, priority(*my_offloaded_tasks) ); // Then mark arena as full to unlock arena priority level adjustment // by arena::is_out_of_work(), and ensure worker's presence - my_arena->advertise_new_work(); + my_arena->advertise_new_work(); } my_local_reload_epoch = reload_epoch; return t; @@ -972,7 +972,7 @@ retry: if( --skip_and_bump > 0 ) { // if both: task skipped and head&tail bumped // Synchronize with snapshot as we bumped head and tail which can falsely trigger EMPTY state atomic_fence(); - my_arena->advertise_new_work(); + my_arena->advertise_new_work(); } return result; } @@ -1125,7 +1125,7 @@ void generic_scheduler::cleanup_master( bool needs_wait_workers ) { my_arena_slot = NULL; // detached from slot free_scheduler(); // TODO: read global settings for the parameter at that point - m->join_workers = needs_wait_workers; + m->my_join_workers = needs_wait_workers; if( a ) a->on_thread_leaving(); if( needs_wait_workers ) @@ -1196,8 +1196,8 @@ void generic_scheduler::cleanup_master( bool needs_wait_workers ) { enough information for the main thread on IA-64 architecture (RSE spill area and memory stack are allocated as two separate discontinuous chunks of memory), and there is no portable way to discern the main and the secondary threads. - Thus for OS X* and IA-64 Linux architecture we use the TBB worker stack size for - all threads and use the current stack top as the stack base. This simplified + Thus for OS X* and IA-64 Linux architecture we use the TBB worker stack size for + all threads and use the current stack top as the stack base. This simplified approach is based on the following assumptions: 1) If the default stack size is insufficient for the user app needs, the required amount will be explicitly specified by the user at the point of the diff --git a/src/tbb/scheduler.h b/src/tbb/scheduler.h index 16685af1..084a079d 100644 --- a/src/tbb/scheduler.h +++ b/src/tbb/scheduler.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -222,15 +222,15 @@ public: // almost every class in TBB uses generic_scheduler //! Get a task from the local pool. /** Called only by the pool owner. - Returns the pointer to the task or NULL if the pool is empty. + Returns the pointer to the task or NULL if the pool is empty. In the latter case compacts the pool. **/ task* get_task(); //! Attempt to get a task from the mailbox. - /** Gets a task only if it has not been executed by its sender or a thief + /** Gets a task only if it has not been executed by its sender or a thief that has stolen it from the sender's task pool. Otherwise returns NULL. - This method is intended to be used only by the thread extracting the proxy + This method is intended to be used only by the thread extracting the proxy from its mailbox. (In contrast to local task pool, mailbox can be read only by its owner). **/ task* get_mailbox_task(); @@ -284,13 +284,13 @@ public: void wait_until_empty(); #endif - /*override*/ + /*override*/ void spawn( task& first, task*& next ); - /*override*/ + /*override*/ void spawn_root_and_wait( task& first, task*& next ); - /*override*/ + /*override*/ void enqueue( task&, void* reserved ); void local_spawn( task& first, task*& next ); @@ -302,7 +302,7 @@ public: //! Allocate task object, either from the heap or a free list. /** Returns uninitialized task object with initialized prefix. */ - task& allocate_task( size_t number_of_bytes, + task& allocate_task( size_t number_of_bytes, __TBB_CONTEXT_ARG(task* parent, task_group_context* context) ); //! Put task on free list. @@ -318,7 +318,7 @@ public: //! True if the scheduler is on the outermost dispatch level in a master thread. /** Returns true when this scheduler instance is associated with an application - thread, and is not executing any TBB task. This includes being in a TBB + thread, and is not executing any TBB task. This includes being in a TBB dispatch loop (one of wait_for_all methods) invoked directly from that thread. **/ inline bool master_outermost_level () const; @@ -335,7 +335,7 @@ public: //! Special value used to mark my_return_list as not taking any more entries. static task* plugged_return_list() {return (task*)(intptr_t)(-1);} - //! Number of small tasks that have been allocated by this scheduler. + //! Number of small tasks that have been allocated by this scheduler. __TBB_atomic intptr_t my_small_task_count; //! List of small tasks that have been returned to this scheduler by other schedulers. @@ -346,8 +346,8 @@ public: /** Returns obtained task or NULL if all attempts fail. */ virtual task* receive_or_steal_task( __TBB_atomic reference_count& completion_ref_count ) = 0; - //! Free a small task t that that was allocated by a different scheduler - void free_nonlocal_small_task( task& t ); + //! Free a small task t that that was allocated by a different scheduler + void free_nonlocal_small_task( task& t ); #if __TBB_TASK_GROUP_CONTEXT //! Returns task group context used by this scheduler instance. @@ -368,18 +368,18 @@ public: // TODO: check whether it can be deadly preempted and replace by spinning/sleeping mutex spin_mutex my_context_list_mutex; - //! Last state propagation epoch known to this thread + //! Last state propagation epoch known to this thread /** Together with the_context_state_propagation_epoch constitute synchronization protocol - that keeps hot path of task group context construction destruction mostly + that keeps hot path of task group context construction destruction mostly lock-free. When local epoch equals the global one, the state of task group contexts registered with this thread is consistent with that of the task group trees they belong to. **/ uintptr_t my_context_state_propagation_epoch; - //! Flag indicating that a context is being destructed by its owner thread + //! Flag indicating that a context is being destructed by its owner thread /** Together with my_nonlocal_ctx_list_update constitute synchronization protocol - that keeps hot path of context destruction (by the owner thread) mostly + that keeps hot path of context destruction (by the owner thread) mostly lock-free. **/ tbb::atomic my_local_ctx_list_update; @@ -554,7 +554,7 @@ inline void generic_scheduler::deallocate_task( task& t ) { #if TBB_USE_ASSERT task_prefix& p = t.prefix(); p.state = 0xFF; - p.extra_state = 0xFF; + p.extra_state = 0xFF; poison_pointer(p.next); #endif /* TBB_USE_ASSERT */ NFS_Free((char*)&t-task_prefix_reservation_size); @@ -591,7 +591,7 @@ void generic_scheduler::commit_relocated_tasks ( size_t new_tail ) { __TBB_ASSERT( is_local_task_pool_quiescent(), "Task pool must be locked when calling commit_relocated_tasks()" ); __TBB_store_relaxed( my_arena_slot->head, 0 ); - // Tail is updated last to minimize probability of a thread making arena + // Tail is updated last to minimize probability of a thread making arena // snapshot being misguided into thinking that this task pool is empty. __TBB_store_relaxed( my_arena_slot->tail, new_tail ); release_task_pool(); @@ -645,9 +645,12 @@ inline intptr_t generic_scheduler::effective_reference_priority () const { // a lower priority arena, they should use arena's priority as a reference, lest // be trapped in a futile spinning (because market's priority would prohibit // executing ANY tasks in this arena). - return !worker_outermost_level() || - my_arena->my_num_workers_allotted < my_arena->num_workers_active() - ? *my_ref_top_priority : my_arena->my_top_priority; + return !worker_outermost_level() || + (my_arena->my_num_workers_allotted < my_arena->num_workers_active() +#if __TBB_ENQUEUE_ENFORCED_CONCURRENCY + && my_arena->my_mandatory_mode!=arena_base::global_mandatory +#endif + ) ? *my_ref_top_priority : my_arena->my_top_priority; } inline void generic_scheduler::offload_task ( task& t, intptr_t /*priority*/ ) { diff --git a/src/tbb/scheduler_common.h b/src/tbb/scheduler_common.h index 3570e620..16848590 100644 --- a/src/tbb/scheduler_common.h +++ b/src/tbb/scheduler_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/scheduler_utility.h b/src/tbb/scheduler_utility.h index fc268a0f..f0ef95f1 100644 --- a/src/tbb/scheduler_utility.h +++ b/src/tbb/scheduler_utility.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -35,7 +35,7 @@ class auto_empty_task { task* my_task; generic_scheduler* my_scheduler; public: - auto_empty_task ( __TBB_CONTEXT_ARG(generic_scheduler *s, task_group_context* context) ) + auto_empty_task ( __TBB_CONTEXT_ARG(generic_scheduler *s, task_group_context* context) ) : my_task( new(&s->allocate_task(sizeof(empty_task), __TBB_CONTEXT_ARG(NULL, context))) empty_task ) , my_scheduler(s) {} @@ -54,7 +54,7 @@ public: //! Vector that grows without reallocations, and stores items in the reverse order. /** Requires to initialize its first segment with a preallocated memory chunk (usually it is static array or an array allocated on the stack). - The second template parameter specifies maximal number of segments. Each next + The second template parameter specifies maximal number of segments. Each next segment is twice as large as the previous one. **/ template class fast_reverse_vector @@ -91,7 +91,7 @@ public: m_cur_segment[--m_pos] = val; } - //! Copies the contents of the vector into the dst array. + //! Copies the contents of the vector into the dst array. /** Can only be used when T is a POD type, as copying does not invoke copy constructors. **/ void copy_memory ( T* dst ) const { @@ -118,7 +118,7 @@ protected: //! Array of segments (has fixed size specified by the second template parameter) T *m_segments[max_segments]; - + //! Number of segments (the size of m_segments) size_t m_num_segments; diff --git a/src/tbb/semaphore.cpp b/src/tbb/semaphore.cpp index 8c5a5316..691c01fa 100644 --- a/src/tbb/semaphore.cpp +++ b/src/tbb/semaphore.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -74,7 +74,7 @@ inline void init_concmon_module() binary_semaphore::binary_semaphore() { atomic_do_once( &init_concmon_module, concmon_module_inited ); - __TBB_init_binsem( &my_sem.lock ); + __TBB_init_binsem( &my_sem.lock ); if( (uintptr_t)__TBB_init_binsem!=(uintptr_t)&init_binsem_using_event ) P(); } diff --git a/src/tbb/semaphore.h b/src/tbb/semaphore.h index 57628aa1..2fed823c 100644 --- a/src/tbb/semaphore.h +++ b/src/tbb/semaphore.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -55,7 +55,7 @@ public: ~semaphore() {CloseHandle( sem );} //! wait/acquire void P() {WaitForSingleObjectEx( sem, INFINITE, FALSE );} - //! post/release + //! post/release void V() {ReleaseSemaphore( sem, 1, NULL );} private: HANDLE sem; @@ -75,14 +75,14 @@ public: __TBB_ASSERT_EX( ret==err_none, NULL ); } //! wait/acquire - void P() { + void P() { int ret; do { ret = semaphore_wait( sem ); } while( ret==KERN_ABORTED ); __TBB_ASSERT( ret==KERN_SUCCESS, "semaphore_wait() failed" ); } - //! post/release + //! post/release void V() { semaphore_signal( sem ); } private: semaphore_t sem; @@ -109,7 +109,7 @@ public: while( sem_wait( &sem )!=0 ) __TBB_ASSERT( errno==EINTR, NULL ); } - //! post/release + //! post/release void V() { sem_post( &sem ); } private: sem_t sem; @@ -133,7 +133,7 @@ public: ~binary_semaphore() { CloseHandle( my_sem ); } //! wait/acquire void P() { WaitForSingleObjectEx( my_sem, INFINITE, FALSE ); } - //! post/release + //! post/release void V() { SetEvent( my_sem ); } private: HANDLE my_sem; @@ -154,7 +154,7 @@ public: ~binary_semaphore(); //! wait/acquire void P(); - //! post/release + //! post/release void V(); private: srwl_or_handle my_sem; @@ -175,14 +175,14 @@ public: __TBB_ASSERT_EX( ret==err_none, NULL ); } //! wait/acquire - void P() { + void P() { int ret; do { ret = semaphore_wait( my_sem ); } while( ret==KERN_ABORTED ); __TBB_ASSERT( ret==KERN_SUCCESS, "semaphore_wait() failed" ); } - //! post/release + //! post/release void V() { semaphore_signal( my_sem ); } private: semaphore_t my_sem; @@ -208,8 +208,8 @@ public: } } } - //! post/release - void V() { + //! post/release + void V() { __TBB_ASSERT( my_sem>=1, "multiple V()'s in a row?" ); if( my_sem--!=1 ) { //if old value was 2 @@ -240,7 +240,7 @@ public: while( sem_wait( &my_sem )!=0 ) __TBB_ASSERT( errno==EINTR, NULL ); } - //! post/release + //! post/release void V() { sem_post( &my_sem ); } private: sem_t my_sem; diff --git a/src/tbb/spin_mutex.cpp b/src/tbb/spin_mutex.cpp index 759194d6..fb2c5c65 100644 --- a/src/tbb/spin_mutex.cpp +++ b/src/tbb/spin_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/spin_rw_mutex.cpp b/src/tbb/spin_rw_mutex.cpp index f21bb61e..c7a512ef 100644 --- a/src/tbb/spin_rw_mutex.cpp +++ b/src/tbb/spin_rw_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -70,7 +70,7 @@ void spin_rw_mutex_v3::internal_acquire_reader() state_t s = const_cast(state); // ensure reloading if( !(s & (WRITER|WRITER_PENDING)) ) { // no writer or write requests state_t t = (state_t)__TBB_FetchAndAddW( &state, (intptr_t) ONE_READER ); - if( !( t&WRITER )) + if( !( t&WRITER )) break; // successfully stored increased number of readers // writer got there first, undo the increment __TBB_FetchAndAddW( &state, -(intptr_t)ONE_READER ); diff --git a/src/tbb/task.cpp b/src/tbb/task.cpp index e42460bd..c9254d40 100644 --- a/src/tbb/task.cpp +++ b/src/tbb/task.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/task_group_context.cpp b/src/tbb/task_group_context.cpp index 83a009c7..9d3de7fa 100644 --- a/src/tbb/task_group_context.cpp +++ b/src/tbb/task_group_context.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/task_stream.h b/src/tbb/task_stream.h index 3eb9cee1..5f5b5e9c 100644 --- a/src/tbb/task_stream.h +++ b/src/tbb/task_stream.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tbb_assert_impl.h b/src/tbb/tbb_assert_impl.h index 224b15f2..b5b63282 100644 --- a/src/tbb/tbb_assert_impl.h +++ b/src/tbb/tbb_assert_impl.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tbb_main.cpp b/src/tbb/tbb_main.cpp index aa44dddd..e639c24f 100644 --- a/src/tbb/tbb_main.cpp +++ b/src/tbb/tbb_main.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -127,7 +127,7 @@ void __TBB_InitOnce::add_ref() { void __TBB_InitOnce::remove_ref() { int k = --count; - __TBB_ASSERT(k>=0,"removed __TBB_InitOnce ref that was not added?"); + __TBB_ASSERT(k>=0,"removed __TBB_InitOnce ref that was not added?"); if( k==0 ) { governor::release_resources(); ITT_FINI_ITTLIB(); @@ -161,7 +161,7 @@ struct resource_string { #define TBB_STRING_RESOURCE( index_name, str ) { str, NULL }, static resource_string strings_for_itt[] = { #include "tbb/internal/_tbb_strings.h" - { "num_resource_strings", NULL } + { "num_resource_strings", NULL } }; #undef TBB_STRING_RESOURCE @@ -276,7 +276,7 @@ void* itt_load_pointer_with_acquire_v3( const void* src ) { ITT_NOTIFY(sync_acquired, const_cast(src)); return result; } - + #if DO_ITT_NOTIFY void call_itt_notify_v5(int t, void *ptr) { switch (t) { @@ -308,7 +308,7 @@ static inline void itt_id_create(const __itt_domain *domain, __itt_id id) { ITTNOTIFY_VOID_D1(id_create, domain, id); } -void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, +void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { if ( __itt_domain *d = get_itt_domain( domain ) ) { __itt_id group_id = itt_null_id; @@ -323,7 +323,7 @@ void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long } } -void itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, +void itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, const char *value ) { if ( __itt_domain *d = get_itt_domain( domain ) ) { __itt_id id = itt_null_id; @@ -338,18 +338,18 @@ void itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long } } -void itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, +void itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, itt_relation relation, void *addr1, unsigned long long addr1_extra ) { if ( __itt_domain *d = get_itt_domain( domain ) ) { - __itt_id id0 = itt_null_id; + __itt_id id0 = itt_null_id; __itt_id id1 = itt_null_id; itt_id_make( &id0, addr0, addr0_extra ); itt_id_make( &id1, addr1, addr1_extra ); - ITTNOTIFY_VOID_D3(relation_add, d, id0, (__itt_relation)relation, id1); + ITTNOTIFY_VOID_D3(relation_add, d, id0, (__itt_relation)relation, id1); } } -void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, +void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { if ( __itt_domain *d = get_itt_domain( domain ) ) { __itt_id task_id = itt_null_id; @@ -369,7 +369,7 @@ void itt_task_end_v7( itt_domain_enum domain ) { } } -void itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, +void itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, void *parent, unsigned long long parent_extra, string_index /* name_index */ ) { if ( __itt_domain *d = get_itt_domain( domain ) ) { __itt_id region_id = itt_null_id; @@ -392,21 +392,21 @@ void itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long #else // DO_ITT_NOTIFY -void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, +void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, void *parent, unsigned long long parent_extra, string_index name_index ) { } -void itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, +void itt_metadata_str_add_v7( itt_domain_enum domain, void *addr, unsigned long long addr_extra, string_index key, const char *value ) { } -void itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, +void itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long long addr0_extra, itt_relation relation, void *addr1, unsigned long long addr1_extra ) { } -void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, +void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long task_extra, void * /*parent*/, unsigned long long /* parent_extra */, string_index /* name_index */ ) { } void itt_task_end_v7( itt_domain_enum domain ) { } -void itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, +void itt_region_begin_v9( itt_domain_enum domain, void *region, unsigned long long region_extra, void *parent, unsigned long long parent_extra, string_index /* name_index */ ) { } void itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long region_extra ) { } @@ -446,14 +446,13 @@ protected: class allowed_parallelism_control : public padded { virtual size_t default_value() const { - // current implementation can't have effective active value below 2 - return max(2U, governor::default_num_threads()); + return max(1U, governor::default_num_threads()); } virtual bool is_first_arg_preferred(size_t a, size_t b) const { return a=2, NULL ); + __TBB_ASSERT( my_active_value>=1, NULL ); // -1 to take master into account market::set_active_num_workers( my_active_value-1 ); } diff --git a/src/tbb/tbb_main.h b/src/tbb/tbb_main.h index e36ade88..7ae6bee4 100644 --- a/src/tbb/tbb_main.h +++ b/src/tbb/tbb_main.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -33,7 +33,7 @@ void DoOneTimeInitializations (); // __TBB_InitOnce //------------------------------------------------------------------------ -//! Class that supports TBB initialization. +//! Class that supports TBB initialization. /** It handles acquisition and release of global resources (e.g. TLS) during startup and shutdown, as well as synchronization for DoOneTimeInitializations. */ class __TBB_InitOnce { @@ -53,7 +53,7 @@ class __TBB_InitOnce { //! Global initialization lock /** Scenarios are possible when tools interop has to be initialized before the - TBB itself. This imposes a requirement that the global initialization lock + TBB itself. This imposes a requirement that the global initialization lock has to support valid static initialization, and does not issue any tool notifications in any build mode. **/ static __TBB_atomic_flag InitializationLock; @@ -65,8 +65,8 @@ public: static bool initialization_done() { return __TBB_load_with_acquire(InitializationDone); } - //! Add initial reference to resources. - /** We assume that dynamic loading of the library prevents any other threads + //! Add initial reference to resources. + /** We assume that dynamic loading of the library prevents any other threads from entering the library until this constructor has finished running. **/ __TBB_InitOnce() { add_ref(); } @@ -78,9 +78,9 @@ public: // start running, and thus no race on InitializationDone is possible. if( initialization_done() ) { // Remove an extra reference that was added in DoOneTimeInitializations. - remove_ref(); + remove_ref(); } - } + } //! Add reference to resources. If first reference added, acquire the resources. static void add_ref(); diff --git a/src/tbb/tbb_misc.cpp b/src/tbb/tbb_misc.cpp index f4f58d36..c78d2d3c 100644 --- a/src/tbb/tbb_misc.cpp +++ b/src/tbb/tbb_misc.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,7 +18,7 @@ reasons why the executable file might be covered by the GNU General Public License. */ -// Source file for miscellaneous entities that are infrequently referenced by +// Source file for miscellaneous entities that are infrequently referenced by // an executing program. #include "tbb/tbb_stddef.h" @@ -94,7 +94,7 @@ void handle_perror( int error_code, const char* what ) { #endif /* !TBB_USE_EXCEPTIONS */ } -#if _WIN32||_WIN64 +#if _WIN32||_WIN64 void handle_win_error( int error_code ) { char buf[512]; #if !__TBB_WIN8UI_SUPPORT @@ -210,7 +210,7 @@ bool cpu_has_speculation() { "cpuid\n" "movl %%ebx, %0\n" "movl %%esi, %%ebx\n" - : "=a"(reg_ebx) : "0" (reg_eax), "c" (reg_ecx) : "esi", + : "=a"(reg_ebx) : "0" (reg_eax), "c" (reg_ecx) : "esi", #if __TBB_x86_64 "ebx", #endif @@ -251,8 +251,8 @@ extern "C" void __TBB_machine_store8_slow_perf_warning( volatile void *ptr ) { const unsigned n = 4; static tbb::atomic cache[n]; static tbb::atomic k; - for( unsigned i=0; i(ptr); tbb::internal::runtime_warning( "atomic store on misaligned 8-byte location %p is slow", ptr ); @@ -263,7 +263,7 @@ done:; extern "C" void __TBB_machine_store8_slow( volatile void *ptr, int64_t value ) { for( tbb::internal::atomic_backoff b;;b.pause() ) { int64_t tmp = *(int64_t*)ptr; - if( __TBB_machine_cmpswp8(ptr,value,tmp)==tmp ) + if( __TBB_machine_cmpswp8(ptr,value,tmp)==tmp ) break; } } diff --git a/src/tbb/tbb_misc.h b/src/tbb/tbb_misc.h index c8085845..70350c4d 100644 --- a/src/tbb/tbb_misc.h +++ b/src/tbb/tbb_misc.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -255,12 +255,14 @@ inline void run_initializer( bool (*f)(), atomic& state ) { void protect_affinity_mask( bool restore_process_mask ); void dismiss(); }; + void destroy_process_mask(); #else class affinity_helper : no_copy { public: void protect_affinity_mask( bool ) {} void dismiss() {} }; + inline void destroy_process_mask(){} #endif /* __TBB_USE_OS_AFFINITY_SYSCALL */ extern bool cpu_has_speculation(); diff --git a/src/tbb/tbb_misc_ex.cpp b/src/tbb/tbb_misc_ex.cpp index 57c8ce1f..5a0373e9 100644 --- a/src/tbb/tbb_misc_ex.cpp +++ b/src/tbb/tbb_misc_ex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,7 +18,7 @@ reasons why the executable file might be covered by the GNU General Public License. */ -// Source file for miscellaneous entities that are infrequently referenced by +// Source file for miscellaneous entities that are infrequently referenced by // an executing program, and implementation of which requires dynamic linking. #include "tbb_misc.h" @@ -85,14 +85,12 @@ static void get_thread_affinity_mask( size_t maskSize, basic_mask_t* threadMask static basic_mask_t* process_mask; static int num_masks; -struct process_mask_cleanup_helper { - ~process_mask_cleanup_helper() { - if( process_mask ) { - delete [] process_mask; - } - } -}; -static process_mask_cleanup_helper process_mask_cleanup; + +void destroy_process_mask() { + if( process_mask ) { + delete [] process_mask; + } +} #define curMaskSize sizeof(basic_mask_t) * num_masks affinity_helper::~affinity_helper() { @@ -256,12 +254,12 @@ struct ProcessorGroupInfo { int numProcsRunningTotal; ///< Subtotal of processors in this and preceding groups //! Total number of processor groups in the system - static int NumGroups; + static int NumGroups; //! Index of the group with a slot reserved for the first master thread /** In the context of multiple processor groups support current implementation defines "the first master thread" as the first thread to invoke - AvailableHwConcurrency(). + AvailableHwConcurrency(). TODO: Implement a dynamic scheme remapping workers depending on the pending master threads affinity. **/ @@ -281,7 +279,7 @@ struct TBB_GROUP_AFFINITY { static DWORD (WINAPI *TBB_GetActiveProcessorCount)( WORD groupIndex ) = NULL; static WORD (WINAPI *TBB_GetActiveProcessorGroupCount)() = NULL; -static BOOL (WINAPI *TBB_SetThreadGroupAffinity)( HANDLE hThread, +static BOOL (WINAPI *TBB_SetThreadGroupAffinity)( HANDLE hThread, const TBB_GROUP_AFFINITY* newAff, TBB_GROUP_AFFINITY *prevAff ); static BOOL (WINAPI *TBB_GetThreadGroupAffinity)( HANDLE hThread, TBB_GROUP_AFFINITY* ); @@ -398,7 +396,7 @@ int AvailableHwConcurrency() { /* End of _WIN32||_WIN64 implementation */ #else - #error AvailableHwConcurrency is not implemented for this OS + #error AvailableHwConcurrency is not implemented for this OS #endif } // namespace internal diff --git a/src/tbb/tbb_resource.rc b/src/tbb/tbb_resource.rc index 0e584ad1..f2d6a2ee 100644 --- a/src/tbb/tbb_resource.rc +++ b/src/tbb/tbb_resource.rc @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -81,7 +81,7 @@ BEGIN VALUE "CompanyName", "Intel Corporation\0" VALUE "FileDescription", "Intel(R) Threading Building Blocks library\0" VALUE "FileVersion", TBB_VERSION "\0" - VALUE "LegalCopyright", "Copyright 2005-2015 Intel Corporation. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright 2005-2016 Intel Corporation. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" #ifndef TBB_USE_DEBUG VALUE "OriginalFilename", "tbb.dll\0" diff --git a/src/tbb/tbb_statistics.cpp b/src/tbb/tbb_statistics.cpp index fcf366d2..0e28c002 100644 --- a/src/tbb/tbb_statistics.cpp +++ b/src/tbb/tbb_statistics.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,14 +34,14 @@ namespace tbb { namespace internal { //! Human readable titles of statistics groups defined by statistics_groups enum. -/** The order of this vector elements must correspond to the statistics_counters +/** The order of this vector elements must correspond to the statistics_counters structure layout. **/ -const char* StatGroupTitles[] = { +const char* StatGroupTitles[] = { "task objects", "tasks executed", "stealing attempts", "task proxies", "arena", "market", "priority ops", "prio ops details" }; //! Human readable titles of statistics elements defined by statistics_counters struct. -/** The order of this vector elements must correspond to the statistics_counters +/** The order of this vector elements must correspond to the statistics_counters structure layout (with NULLs interspersed to separate groups). **/ const char* StatFieldTitles[] = { /*task objects*/ "active", "freed", "big", NULL, @@ -55,7 +55,7 @@ const char* StatFieldTitles[] = { }; //! Class for logging statistics -/** There should be only one instance of this class. +/** There should be only one instance of this class. Results are written to a file "statistics.txt" in tab-separated format. */ class statistics_logger { public: diff --git a/src/tbb/tbb_statistics.h b/src/tbb/tbb_statistics.h index 5427961c..9497b811 100644 --- a/src/tbb/tbb_statistics.h +++ b/src/tbb/tbb_statistics.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -24,25 +24,25 @@ /** This file defines parameters of the internal statistics collected by the TBB library (currently by the task scheduler only). - - Statistics is accumulated separately in each thread and is dumped when + + Statistics is accumulated separately in each thread and is dumped when the scheduler instance associated with the given thread is destroyed. For apps with multiple master threads or with the same master repeatedly initializing and then deinitializing task scheduler this results in TBB workers statistics getting inseparably mixed. - + Therefore statistics is accumulated in arena slots, and should be dumped when arena is destroyed. This separates statistics collected for each scheduler activity region in each master thread. - With the current RML implementation (TBB 2.2, 3.0) to avoid complete loss of - statistics data during app shutdown (because of lazy workers deinitialization - logic) set __TBB_STATISTICS_EARLY_DUMP macro to write the statistics at the - moment a master thread deinitializes its scheduler. This may happen a little + With the current RML implementation (TBB 2.2, 3.0) to avoid complete loss of + statistics data during app shutdown (because of lazy workers deinitialization + logic) set __TBB_STATISTICS_EARLY_DUMP macro to write the statistics at the + moment a master thread deinitializes its scheduler. This may happen a little earlier than the moment of arena destruction resulting in the following undesired (though usually tolerable) effects: - a few events related to unsuccessful stealing or thread pool activity may be lost, - - statistics may be substantially incomplete in case of FIFO tasks used in + - statistics may be substantially incomplete in case of FIFO tasks used in the FAF mode. Macro __TBB_STATISTICS_STDOUT and global variable __TBB_ActiveStatisticsGroups @@ -50,12 +50,12 @@ To add new counter: 1) Insert it into the appropriate group range in statistics_counters; - 2) Insert the corresponding field title into StatFieldTitles (preserving + 2) Insert the corresponding field title into StatFieldTitles (preserving relative order of the fields). To add new counters group: 1) Insert new group bit flag into statistics_groups; - 2) Insert the new group title into StatGroupTitles (preserving + 2) Insert the new group title into StatGroupTitles (preserving relative order of the groups). 3) Add counter belonging to the new group as described above **/ @@ -116,10 +116,10 @@ struct statistics_counters { typedef long counter_type; // Group: sg_task_allocation - // Counters in this group can have negative values as the tasks migrate across + // Counters in this group can have negative values as the tasks migrate across // threads while the associated counters are updated in the current thread only // to avoid data races - + //! Number of tasks allocated and not yet destroyed counter_type active_tasks; //! Number of task corpses stored for future reuse @@ -127,14 +127,14 @@ struct statistics_counters { //! Number of big tasks allocated during the run /** To find total number of tasks malloc'd, compute (big_tasks+my_small_task_count) */ counter_type big_tasks; - + // Group: sg_task_execution //! Number of tasks executed counter_type tasks_executed; //! Number of elided spawns counter_type spawns_bypassed; - + // Group: sg_stealing //! Number of tasks successfully stolen @@ -153,7 +153,7 @@ struct statistics_counters { //! Number of affinitized tasks executed by the owner /** Goes as "revoked" in statistics printout. **/ counter_type proxies_executed; - //! Number of affinitized tasks intercepted by thieves + //! Number of affinitized tasks intercepted by thieves counter_type proxies_stolen; //! Number of proxy bypasses by thieves during stealing counter_type proxies_bypassed; diff --git a/src/tbb/tbb_thread.cpp b/src/tbb/tbb_thread.cpp index 2b5f36fc..15ab20dc 100644 --- a/src/tbb/tbb_thread.cpp +++ b/src/tbb/tbb_thread.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -147,7 +147,7 @@ tbb_thread_v3::id thread_get_id_v3() { return tbb_thread_v3::id( pthread_self() ); #endif // _WIN32||_WIN64 } - + void move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 ) { if (t1.joinable()) diff --git a/src/tbb/tbb_version.h b/src/tbb/tbb_version.h index 1c30cfc8..9427cd51 100644 --- a/src/tbb/tbb_version.h +++ b/src/tbb/tbb_version.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tls.h b/src/tbb/tls.h index 685e855e..a1808870 100644 --- a/src/tbb/tls.h +++ b/src/tbb/tls.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tools_api/disable_warnings.h b/src/tbb/tools_api/disable_warnings.h index 62745a19..69004154 100644 --- a/src/tbb/tools_api/disable_warnings.h +++ b/src/tbb/tools_api/disable_warnings.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tools_api/internal/ittnotify.h b/src/tbb/tools_api/internal/ittnotify.h deleted file mode 100644 index 43317b2e..00000000 --- a/src/tbb/tools_api/internal/ittnotify.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. -*/ - -#ifndef _INTERNAL_ITTNOTIFY_H_ -#define _INTERNAL_ITTNOTIFY_H_ - -/** - * @file - * @brief Internal User API functions and types - */ - -/** @cond exclude_from_documentation */ -#ifndef ITT_OS_WIN -# define ITT_OS_WIN 1 -#endif /* ITT_OS_WIN */ - -#ifndef ITT_OS_LINUX -# define ITT_OS_LINUX 2 -#endif /* ITT_OS_LINUX */ - -#ifndef ITT_OS_MAC -# define ITT_OS_MAC 3 -#endif /* ITT_OS_MAC */ - -#ifndef ITT_OS -# if defined WIN32 || defined _WIN32 -# define ITT_OS ITT_OS_WIN -# elif defined( __APPLE__ ) && defined( __MACH__ ) -# define ITT_OS ITT_OS_MAC -# else -# define ITT_OS ITT_OS_LINUX -# endif -#endif /* ITT_OS */ - -#ifndef ITT_PLATFORM_WIN -# define ITT_PLATFORM_WIN 1 -#endif /* ITT_PLATFORM_WIN */ - -#ifndef ITT_PLATFORM_POSIX -# define ITT_PLATFORM_POSIX 2 -#endif /* ITT_PLATFORM_POSIX */ - -#ifndef ITT_PLATFORM_MAC -# define ITT_PLATFORM_MAC 3 -#endif /* ITT_PLATFORM_MAC */ - -#ifndef ITT_PLATFORM -# if ITT_OS==ITT_OS_WIN -# define ITT_PLATFORM ITT_PLATFORM_WIN -# elif ITT_OS==ITT_OS_MAC -# define ITT_PLATFORM ITT_PLATFORM_MAC -# else -# define ITT_PLATFORM ITT_PLATFORM_POSIX -# endif -#endif /* ITT_PLATFORM */ - -#if defined(_UNICODE) && !defined(UNICODE) -#define UNICODE -#endif - -#include -#if ITT_PLATFORM==ITT_PLATFORM_WIN -#include -#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#include -#if defined(UNICODE) || defined(_UNICODE) -#include -#endif /* UNICODE || _UNICODE */ -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ - -#ifndef CDECL -# if ITT_PLATFORM==ITT_PLATFORM_WIN -# define CDECL __cdecl -# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ -# define CDECL __attribute__ ((cdecl)) -# else /* _M_IX86 || __i386__ */ -# define CDECL /* actual only on x86 platform */ -# endif /* _M_IX86 || __i386__ */ -# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#endif /* CDECL */ - -#ifndef STDCALL -# if ITT_PLATFORM==ITT_PLATFORM_WIN -# define STDCALL __stdcall -# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ -# define STDCALL __attribute__ ((stdcall)) -# else /* _M_IX86 || __i386__ */ -# define STDCALL /* supported only on x86 platform */ -# endif /* _M_IX86 || __i386__ */ -# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#endif /* STDCALL */ - -#define ITTAPI CDECL -#define LIBITTAPI CDECL - -/* TODO: Temporary for compatibility! */ -#define ITTAPI_CALL CDECL -#define LIBITTAPI_CALL CDECL - -#if ITT_PLATFORM==ITT_PLATFORM_WIN -/* use __forceinline (VC++ specific) */ -#define ITT_INLINE __forceinline -#define ITT_INLINE_ATTRIBUTE /* nothing */ -#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -/* - * Generally, functions are not inlined unless optimization is specified. - * For functions declared inline, this attribute inlines the function even - * if no optimization level was specified. - */ -#ifdef __STRICT_ANSI__ -#define ITT_INLINE static -#else /* __STRICT_ANSI__ */ -#define ITT_INLINE static inline -#endif /* __STRICT_ANSI__ */ -#define ITT_INLINE_ATTRIBUTE __attribute__ ((always_inline, unused)) -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -/** @endcond */ - -/** @cond exclude_from_documentation */ -/* Helper macro for joining tokens */ -#define ITT_JOIN_AUX(p,n) p##n -#define ITT_JOIN(p,n) ITT_JOIN_AUX(p,n) - -#ifdef ITT_MAJOR -#undef ITT_MAJOR -#endif -#ifdef ITT_MINOR -#undef ITT_MINOR -#endif -#define ITT_MAJOR 3 -#define ITT_MINOR 0 - -/* Standard versioning of a token with major and minor version numbers */ -#define ITT_VERSIONIZE(x) \ - ITT_JOIN(x, \ - ITT_JOIN(_, \ - ITT_JOIN(ITT_MAJOR, \ - ITT_JOIN(_, ITT_MINOR)))) - -#ifndef INTEL_ITTNOTIFY_PREFIX -# define INTEL_ITTNOTIFY_PREFIX __itt_ -#endif /* INTEL_ITTNOTIFY_PREFIX */ -#ifndef INTEL_ITTNOTIFY_POSTFIX -# define INTEL_ITTNOTIFY_POSTFIX _ptr_ -#endif /* INTEL_ITTNOTIFY_POSTFIX */ - -#define ITTNOTIFY_NAME_AUX(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) -#define ITTNOTIFY_NAME(n) ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX))) - -#define ITTNOTIFY_VOID(n) (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n) -#define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n) - -#define ITTNOTIFY_VOID_D0(n,d) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d) -#define ITTNOTIFY_VOID_D1(n,d,x) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x) -#define ITTNOTIFY_VOID_D2(n,d,x,y) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y) -#define ITTNOTIFY_VOID_D3(n,d,x,y,z) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z) -#define ITTNOTIFY_VOID_D4(n,d,x,y,z,a) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a) -#define ITTNOTIFY_VOID_D5(n,d,x,y,z,a,b) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b) -#define ITTNOTIFY_VOID_D6(n,d,x,y,z,a,b,c) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b,c) -#define ITTNOTIFY_DATA_D0(n,d) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d) -#define ITTNOTIFY_DATA_D1(n,d,x) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x) -#define ITTNOTIFY_DATA_D2(n,d,x,y) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y) -#define ITTNOTIFY_DATA_D3(n,d,x,y,z) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z) -#define ITTNOTIFY_DATA_D4(n,d,x,y,z,a) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a) -#define ITTNOTIFY_DATA_D5(n,d,x,y,z,a,b) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b) -#define ITTNOTIFY_DATA_D6(n,d,x,y,z,a,b,c) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b,c) - -#ifdef ITT_STUB -#undef ITT_STUB -#endif -#ifdef ITT_STUBV -#undef ITT_STUBV -#endif -#define ITT_STUBV(api,type,name,args) \ - typedef type (api* ITT_JOIN(ITTNOTIFY_NAME(name),_t)) args; \ - extern ITT_JOIN(ITTNOTIFY_NAME(name),_t) ITTNOTIFY_NAME(name); -#define ITT_STUB ITT_STUBV -/** @endcond */ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define INTEL_ITTNOTIFY_API_PRIVATE -#include "../ittnotify.h" - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _INTERNAL_ITTNOTIFY_H_ */ diff --git a/src/tbb/tools_api/ittnotify.h b/src/tbb/tools_api/ittnotify.h index d6db08ff..f0da2a67 100644 --- a/src/tbb/tools_api/ittnotify.h +++ b/src/tbb/tools_api/ittnotify.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -29,8 +29,7 @@ The ITT API is used to annotate a user's program with additional information that can be used by correctness and performance tools. The user inserts calls in their program. Those calls generate information that is collected -at runtime, and used by tools such as Intel(R) Parallel Amplifier and -Intel(R) Parallel Inspector. +at runtime, and used by Intel(R) Threading Tools. @section API Concepts The following general concepts are used throughout the API. @@ -101,11 +100,17 @@ The same ID may not be reused for different instances, unless a previous # define ITT_OS_MAC 3 #endif /* ITT_OS_MAC */ +#ifndef ITT_OS_FREEBSD +# define ITT_OS_FREEBSD 4 +#endif /* ITT_OS_FREEBSD */ + #ifndef ITT_OS # if defined WIN32 || defined _WIN32 # define ITT_OS ITT_OS_WIN # elif defined( __APPLE__ ) && defined( __MACH__ ) # define ITT_OS ITT_OS_MAC +# elif defined( __FreeBSD__ ) +# define ITT_OS ITT_OS_FREEBSD # else # define ITT_OS ITT_OS_LINUX # endif @@ -123,11 +128,17 @@ The same ID may not be reused for different instances, unless a previous # define ITT_PLATFORM_MAC 3 #endif /* ITT_PLATFORM_MAC */ +#ifndef ITT_PLATFORM_FREEBSD +# define ITT_PLATFORM_FREEBSD 4 +#endif /* ITT_PLATFORM_FREEBSD */ + #ifndef ITT_PLATFORM # if ITT_OS==ITT_OS_WIN # define ITT_PLATFORM ITT_PLATFORM_WIN # elif ITT_OS==ITT_OS_MAC # define ITT_PLATFORM ITT_PLATFORM_MAC +# elif ITT_OS==ITT_OS_FREEBSD +# define ITT_PLATFORM ITT_PLATFORM_FREEBSD # else # define ITT_PLATFORM ITT_PLATFORM_POSIX # endif @@ -151,7 +162,7 @@ The same ID may not be reused for different instances, unless a previous # if ITT_PLATFORM==ITT_PLATFORM_WIN # define CDECL __cdecl # else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ +# if defined _M_IX86 || defined __i386__ # define CDECL __attribute__ ((cdecl)) # else /* _M_IX86 || __i386__ */ # define CDECL /* actual only on x86 platform */ @@ -164,7 +175,7 @@ The same ID may not be reused for different instances, unless a previous # define STDCALL __stdcall # else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ # if defined _M_IX86 || defined __i386__ -# define STDCALL __attribute__ ((stdcall)) +# define STDCALL __attribute__ ((stdcall)) # else /* _M_IX86 || __i386__ */ # define STDCALL /* supported only on x86 platform */ # endif /* _M_IX86 || __i386__ */ @@ -189,11 +200,12 @@ The same ID may not be reused for different instances, unless a previous * if no optimization level was specified. */ #ifdef __STRICT_ANSI__ -#define ITT_INLINE static inline +#define ITT_INLINE static +#define ITT_INLINE_ATTRIBUTE __attribute__((unused)) #else /* __STRICT_ANSI__ */ #define ITT_INLINE static inline +#define ITT_INLINE_ATTRIBUTE __attribute__((always_inline, unused)) #endif /* __STRICT_ANSI__ */ -#define ITT_INLINE_ATTRIBUTE __attribute__ ((always_inline, unused)) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ /** @endcond */ @@ -304,25 +316,33 @@ extern "C" { void ITTAPI __itt_pause(void); /** @brief Resume collection */ void ITTAPI __itt_resume(void); +/** @brief Detach collection */ +void ITTAPI __itt_detach(void); /** @cond exclude_from_documentation */ #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API ITT_STUBV(ITTAPI, void, pause, (void)) ITT_STUBV(ITTAPI, void, resume, (void)) +ITT_STUBV(ITTAPI, void, detach, (void)) #define __itt_pause ITTNOTIFY_VOID(pause) #define __itt_pause_ptr ITTNOTIFY_NAME(pause) #define __itt_resume ITTNOTIFY_VOID(resume) #define __itt_resume_ptr ITTNOTIFY_NAME(resume) +#define __itt_detach ITTNOTIFY_VOID(detach) +#define __itt_detach_ptr ITTNOTIFY_NAME(detach) #else /* INTEL_NO_ITTNOTIFY_API */ #define __itt_pause() #define __itt_pause_ptr 0 #define __itt_resume() #define __itt_resume_ptr 0 +#define __itt_detach() +#define __itt_detach_ptr 0 #endif /* INTEL_NO_ITTNOTIFY_API */ #else /* INTEL_NO_MACRO_BODY */ #define __itt_pause_ptr 0 #define __itt_resume_ptr 0 +#define __itt_detach_ptr 0 #endif /* INTEL_NO_MACRO_BODY */ /** @endcond */ /** @} control group */ @@ -427,19 +447,19 @@ ITT_STUBV(ITTAPI, void, thread_ignore, (void)) *********************************************************************/ /** @{ */ /** - * @hideinitializer + * @hideinitializer * @brief possible value for suppression mask */ #define __itt_suppress_all_errors 0x7fffffff /** - * @hideinitializer + * @hideinitializer * @brief possible value for suppression mask (suppresses errors from threading analysis) */ #define __itt_suppress_threading_errors 0x000000ff /** - * @hideinitializer + * @hideinitializer * @brief possible value for suppression mask (suppresses errors from memory analysis) */ #define __itt_suppress_memory_errors 0x0000ff00 @@ -465,7 +485,7 @@ ITT_STUBV(ITTAPI, void, suppress_push, (unsigned int mask)) /** @endcond */ /** - * @brief Undo the effects of the matching call to __itt_suppress_push + * @brief Undo the effects of the matching call to __itt_suppress_push */ void ITTAPI __itt_suppress_pop(void); @@ -1595,13 +1615,13 @@ ITT_STUBV(ITTAPI, void, heap_record_memory_growth_end, (void)) * @brief Specify the type of heap detection/reporting to modify. */ /** - * @hideinitializer + * @hideinitializer * @brief Report on memory leaks. */ #define __itt_heap_leaks 0x00000001 /** - * @hideinitializer + * @hideinitializer * @brief Report on memory growth. */ #define __itt_heap_growth 0x00000002 @@ -1678,7 +1698,7 @@ typedef struct ___itt_domain * @ingroup domains * @brief Create a domain. * Create domain using some domain name: the URI naming style is recommended. - * Because the set of domains is expected to be static over the application's + * Because the set of domains is expected to be static over the application's * execution time, there is no mechanism to destroy a domain. * Any domain can be accessed by any thread in the process, regardless of * which thread created the domain. This call is thread-safe. @@ -1762,7 +1782,7 @@ static const __itt_id __itt_null = { 0, 0, 0 }; * @ingroup ids * @brief A convenience function is provided to create an ID without domain control. * @brief This is a convenience function to initialize an __itt_id structure. This function - * does not affect the trace collector runtime in any way. After you make the ID with this + * does not affect the collector runtime in any way. After you make the ID with this * function, you still must create it with the __itt_id_create function before using the ID * to identify a named entity. * @param[in] addr The address of object; high QWORD of the ID value. @@ -1813,7 +1833,7 @@ ITT_STUBV(ITTAPI, void, id_create, (const __itt_domain *domain, __itt_id id)) * @brief Destroy an instance of identifier. * This ends the lifetime of the current instance of the given ID value in the trace. * Any relationships that are established after this lifetime ends are invalid. - * This call must be performed before the given ID value can be reused for a different + * This call must be performed before the given ID value can be reused for a different * named entity instance. * @param[in] domain The domain controlling the execution of this call. * @param[in] id The ID to destroy. @@ -1931,7 +1951,7 @@ ITT_STUB(ITTAPI, __itt_string_handle*, string_handle_create, (const char *na typedef unsigned long long __itt_timestamp; /** @endcond */ -static const __itt_timestamp __itt_timestamp_none = (__itt_timestamp)-1LL; +#define __itt_timestamp_none ((__itt_timestamp)-1LL) /** @cond exclude_from_gpa_documentation */ @@ -2170,18 +2190,42 @@ void ITTAPI __itt_task_begin_fn(const __itt_domain *domain, __itt_id taskid, __i */ void ITTAPI __itt_task_end(const __itt_domain *domain); +/** + * @ingroup tasks + * @brief Begin an overlapped task instance. + * @param[in] domain The domain for this task. + * @param[in] taskid The identifier for this task instance, *cannot* be __itt_null. + * @param[in] parentid The parent of this task, or __itt_null. + * @param[in] name The name of this task. + */ +void ITTAPI __itt_task_begin_overlapped(const __itt_domain* domain, __itt_id taskid, __itt_id parentid, __itt_string_handle* name); + +/** + * @ingroup tasks + * @brief End an overlapped task instance. + * @param[in] domain The domain for this task + * @param[in] taskid Explicit ID of finished task + */ +void ITTAPI __itt_task_end_overlapped(const __itt_domain *domain, __itt_id taskid); + /** @cond exclude_from_documentation */ #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API ITT_STUBV(ITTAPI, void, task_begin, (const __itt_domain *domain, __itt_id id, __itt_id parentid, __itt_string_handle *name)) ITT_STUBV(ITTAPI, void, task_begin_fn, (const __itt_domain *domain, __itt_id id, __itt_id parentid, void* fn)) ITT_STUBV(ITTAPI, void, task_end, (const __itt_domain *domain)) +ITT_STUBV(ITTAPI, void, task_begin_overlapped, (const __itt_domain *domain, __itt_id taskid, __itt_id parentid, __itt_string_handle *name)) +ITT_STUBV(ITTAPI, void, task_end_overlapped, (const __itt_domain *domain, __itt_id taskid)) #define __itt_task_begin(d,x,y,z) ITTNOTIFY_VOID_D3(task_begin,d,x,y,z) #define __itt_task_begin_ptr ITTNOTIFY_NAME(task_begin) #define __itt_task_begin_fn(d,x,y,z) ITTNOTIFY_VOID_D3(task_begin_fn,d,x,y,z) #define __itt_task_begin_fn_ptr ITTNOTIFY_NAME(task_begin_fn) #define __itt_task_end(d) ITTNOTIFY_VOID_D0(task_end,d) #define __itt_task_end_ptr ITTNOTIFY_NAME(task_end) +#define __itt_task_begin_overlapped(d,x,y,z) ITTNOTIFY_VOID_D3(task_begin_overlapped,d,x,y,z) +#define __itt_task_begin_overlapped_ptr ITTNOTIFY_NAME(task_begin_overlapped) +#define __itt_task_end_overlapped(d,x) ITTNOTIFY_VOID_D1(task_end_overlapped,d,x) +#define __itt_task_end_overlapped_ptr ITTNOTIFY_NAME(task_end_overlapped) #else /* INTEL_NO_ITTNOTIFY_API */ #define __itt_task_begin(domain,id,parentid,name) #define __itt_task_begin_ptr 0 @@ -2189,11 +2233,17 @@ ITT_STUBV(ITTAPI, void, task_end, (const __itt_domain *domain)) #define __itt_task_begin_fn_ptr 0 #define __itt_task_end(domain) #define __itt_task_end_ptr 0 +#define __itt_task_begin_overlapped(domain,taskid,parentid,name) +#define __itt_task_begin_overlapped_ptr 0 +#define __itt_task_end_overlapped(domain,taskid) +#define __itt_task_end_overlapped_ptr 0 #endif /* INTEL_NO_ITTNOTIFY_API */ #else /* INTEL_NO_MACRO_BODY */ #define __itt_task_begin_ptr 0 #define __itt_task_begin_fn_ptr 0 #define __itt_task_end_ptr 0 +#define __itt_task_begin_overlapped_ptr 0 +#define __itt_task_end_overlapped_ptr 0 #endif /* INTEL_NO_MACRO_BODY */ /** @endcond */ /** @} tasks group */ @@ -2372,7 +2422,7 @@ ITT_STUBV(ITTAPI, void, metadata_add, (const __itt_domain *domain, __itt_id id, * @param[in] id The identifier of the instance to which the metadata is to be added, or __itt_null to add to the current task * @param[in] key The name of the metadata * @param[in] data The metadata itself - * @param[in] length The number of characters in the string, or -1 if the length is unknown but the string is null-terminated + * @param[in] length The number of characters in the string, or -1 if the length is unknown but the string is null-terminated */ #if ITT_PLATFORM==ITT_PLATFORM_WIN void ITTAPI __itt_metadata_str_addA(const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const char *data, size_t length); @@ -2408,9 +2458,9 @@ ITT_STUBV(ITTAPI, void, metadata_str_add, (const __itt_domain *domain, __itt_id #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ #else /* INTEL_NO_ITTNOTIFY_API */ #if ITT_PLATFORM==ITT_PLATFORM_WIN -#define __itt_metadata_str_addA(d,x,y,z,a) +#define __itt_metadata_str_addA(d,x,y,z,a) #define __itt_metadata_str_addA_ptr 0 -#define __itt_metadata_str_addW(d,x,y,z,a) +#define __itt_metadata_str_addW(d,x,y,z,a) #define __itt_metadata_str_addW_ptr 0 #else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ #define __itt_metadata_str_add(d,x,y,z,a) @@ -2434,7 +2484,7 @@ ITT_STUBV(ITTAPI, void, metadata_str_add, (const __itt_domain *domain, __itt_id * @param[in] scope The scope of the instance to which the metadata is to be added * @param[in] id The identifier of the instance to which the metadata is to be added, or __itt_null to add to the current task - + * @param[in] key The name of the metadata * @param[in] type The type of the metadata * @param[in] count The number of elements of the given type. If count == 0, no metadata will be added. @@ -2467,7 +2517,7 @@ ITT_STUBV(ITTAPI, void, metadata_add_with_scope, (const __itt_domain *domain, __ * @param[in] key The name of the metadata * @param[in] data The metadata itself - * @param[in] length The number of characters in the string, or -1 if the length is unknown but the string is null-terminated + * @param[in] length The number of characters in the string, or -1 if the length is unknown but the string is null-terminated */ #if ITT_PLATFORM==ITT_PLATFORM_WIN void ITTAPI __itt_metadata_str_add_with_scopeA(const __itt_domain *domain, __itt_scope scope, __itt_string_handle *key, const char *data, size_t length); @@ -2503,9 +2553,9 @@ ITT_STUBV(ITTAPI, void, metadata_str_add_with_scope, (const __itt_domain *domain #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ #else /* INTEL_NO_ITTNOTIFY_API */ #if ITT_PLATFORM==ITT_PLATFORM_WIN -#define __itt_metadata_str_add_with_scopeA(d,x,y,z,a) +#define __itt_metadata_str_add_with_scopeA(d,x,y,z,a) #define __itt_metadata_str_add_with_scopeA_ptr 0 -#define __itt_metadata_str_add_with_scopeW(d,x,y,z,a) +#define __itt_metadata_str_add_with_scopeW(d,x,y,z,a) #define __itt_metadata_str_add_with_scopeW_ptr 0 #else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ #define __itt_metadata_str_add_with_scope(d,x,y,z,a) @@ -3091,9 +3141,9 @@ ITT_STUB(LIBITTAPI, int, event_end, (__itt_event event)) /** * @enum __itt_av_data_type - * @brief Defines types of arrays data (for C/C++ intrinsic types) + * @brief Defines types of arrays data (for C/C++ intrinsic types) */ -typedef enum +typedef enum { __itt_e_first = 0, __itt_e_char = 0, /* 1-byte integer */ @@ -3113,8 +3163,8 @@ typedef enum * @brief Save an array data to a file. * Output format is defined by the file extension. The csv and bmp formats are supported (bmp - for 2-dimensional array only). * @param[in] data - pointer to the array data - * @param[in] rank - the rank of the array - * @param[in] dimensions - pointer to an array of integers, which specifies the array dimensions. + * @param[in] rank - the rank of the array + * @param[in] dimensions - pointer to an array of integers, which specifies the array dimensions. * The size of dimensions must be equal to the rank * @param[in] type - the type of the array, specified as one of the __itt_av_data_type values (for intrinsic types) * @param[in] filePath - the file path; the output format is defined by the file extension @@ -3214,16 +3264,6 @@ ITT_STUBV(ITTAPI, void, enable_attach, (void)) extern "C" { #endif /* __cplusplus */ -/** - * @ingroup tasks - * @brief Begin an overlapped task instance. - * @param[in] domain The domain for this task. - * @param[in] taskid The identifier for this task instance, *cannot* be __itt_null. - * @param[in] parentid The parent of this task, or __itt_null. - * @param[in] name The name of this task. - */ -void ITTAPI __itt_task_begin_overlapped(const __itt_domain* domain, __itt_id taskid, __itt_id parentid, __itt_string_handle* name); - /** * @ingroup clockdomain * @brief Begin an overlapped task instance. @@ -3236,14 +3276,6 @@ void ITTAPI __itt_task_begin_overlapped(const __itt_domain* domain, __itt_id tas */ void ITTAPI __itt_task_begin_overlapped_ex(const __itt_domain* domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id taskid, __itt_id parentid, __itt_string_handle* name); -/** - * @ingroup tasks - * @brief End an overlapped task instance. - * @param[in] domain The domain for this task - * @param[in] taskid Explicit ID of finished task - */ -void ITTAPI __itt_task_end_overlapped(const __itt_domain *domain, __itt_id taskid); - /** * @ingroup clockdomain * @brief End an overlapped task instance. @@ -3257,30 +3289,19 @@ void ITTAPI __itt_task_end_overlapped_ex(const __itt_domain* domain, __itt_clock /** @cond exclude_from_documentation */ #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API -ITT_STUBV(ITTAPI, void, task_begin_overlapped, (const __itt_domain *domain, __itt_id taskid, __itt_id parentid, __itt_string_handle *name)) ITT_STUBV(ITTAPI, void, task_begin_overlapped_ex, (const __itt_domain* domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id taskid, __itt_id parentid, __itt_string_handle* name)) -ITT_STUBV(ITTAPI, void, task_end_overlapped, (const __itt_domain *domain, __itt_id taskid)) ITT_STUBV(ITTAPI, void, task_end_overlapped_ex, (const __itt_domain* domain, __itt_clock_domain* clock_domain, unsigned long long timestamp, __itt_id taskid)) -#define __itt_task_begin_overlapped(d,x,y,z) ITTNOTIFY_VOID_D3(task_begin_overlapped,d,x,y,z) -#define __itt_task_begin_overlapped_ptr ITTNOTIFY_NAME(task_begin_overlapped) #define __itt_task_begin_overlapped_ex(d,x,y,z,a,b) ITTNOTIFY_VOID_D5(task_begin_overlapped_ex,d,x,y,z,a,b) #define __itt_task_begin_overlapped_ex_ptr ITTNOTIFY_NAME(task_begin_overlapped_ex) -#define __itt_task_end_overlapped(d,x) ITTNOTIFY_VOID_D1(task_end_overlapped,d,x) -#define __itt_task_end_overlapped_ptr ITTNOTIFY_NAME(task_end_overlapped) #define __itt_task_end_overlapped_ex(d,x,y,z) ITTNOTIFY_VOID_D3(task_end_overlapped_ex,d,x,y,z) #define __itt_task_end_overlapped_ex_ptr ITTNOTIFY_NAME(task_end_overlapped_ex) #else /* INTEL_NO_ITTNOTIFY_API */ -#define __itt_task_begin_overlapped(domain,taskid,parentid,name) -#define __itt_task_begin_overlapped_ptr 0 #define __itt_task_begin_overlapped_ex(domain,clock_domain,timestamp,taskid,parentid,name) #define __itt_task_begin_overlapped_ex_ptr 0 -#define __itt_task_end_overlapped(domain,taskid) -#define __itt_task_end_overlapped_ptr 0 #define __itt_task_end_overlapped_ex(domain,clock_domain,timestamp,taskid) #define __itt_task_end_overlapped_ex_ptr 0 #endif /* INTEL_NO_ITTNOTIFY_API */ #else /* INTEL_NO_MACRO_BODY */ -#define __itt_task_begin_overlapped_ptr 0 #define __itt_task_begin_overlapped_ex_ptr 0 #define __itt_task_end_overlapped_ptr 0 #define __itt_task_end_overlapped_ex_ptr 0 diff --git a/src/tbb/tools_api/ittnotify_config.h b/src/tbb/tools_api/ittnotify_config.h index 3cdf4a66..88631255 100644 --- a/src/tbb/tools_api/ittnotify_config.h +++ b/src/tbb/tools_api/ittnotify_config.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,11 +34,17 @@ # define ITT_OS_MAC 3 #endif /* ITT_OS_MAC */ +#ifndef ITT_OS_FREEBSD +# define ITT_OS_FREEBSD 4 +#endif /* ITT_OS_FREEBSD */ + #ifndef ITT_OS # if defined WIN32 || defined _WIN32 # define ITT_OS ITT_OS_WIN # elif defined( __APPLE__ ) && defined( __MACH__ ) # define ITT_OS ITT_OS_MAC +# elif defined( __FreeBSD__ ) +# define ITT_OS ITT_OS_FREEBSD # else # define ITT_OS ITT_OS_LINUX # endif @@ -56,11 +62,17 @@ # define ITT_PLATFORM_MAC 3 #endif /* ITT_PLATFORM_MAC */ +#ifndef ITT_PLATFORM_FREEBSD +# define ITT_PLATFORM_FREEBSD 4 +#endif /* ITT_PLATFORM_FREEBSD */ + #ifndef ITT_PLATFORM # if ITT_OS==ITT_OS_WIN # define ITT_PLATFORM ITT_PLATFORM_WIN # elif ITT_OS==ITT_OS_MAC # define ITT_PLATFORM ITT_PLATFORM_MAC +# elif ITT_OS==ITT_OS_FREEBSD +# define ITT_PLATFORM ITT_PLATFORM_FREEBSD # else # define ITT_PLATFORM ITT_PLATFORM_POSIX # endif @@ -84,7 +96,7 @@ # if ITT_PLATFORM==ITT_PLATFORM_WIN # define CDECL __cdecl # else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ +# if defined _M_IX86 || defined __i386__ # define CDECL __attribute__ ((cdecl)) # else /* _M_IX86 || __i386__ */ # define CDECL /* actual only on x86 platform */ @@ -97,7 +109,7 @@ # define STDCALL __stdcall # else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ # if defined _M_IX86 || defined __i386__ -# define STDCALL __attribute__ ((stdcall)) +# define STDCALL __attribute__ ((stdcall)) # else /* _M_IX86 || __i386__ */ # define STDCALL /* supported only on x86 platform */ # endif /* _M_IX86 || __i386__ */ @@ -122,11 +134,12 @@ * if no optimization level was specified. */ #ifdef __STRICT_ANSI__ -#define ITT_INLINE static inline +#define ITT_INLINE static +#define ITT_INLINE_ATTRIBUTE __attribute__((unused)) #else /* __STRICT_ANSI__ */ #define ITT_INLINE static inline +#define ITT_INLINE_ATTRIBUTE __attribute__((always_inline, unused)) #endif /* __STRICT_ANSI__ */ -#define ITT_INLINE_ATTRIBUTE __attribute__ ((always_inline, unused)) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ /** @endcond */ @@ -142,6 +155,10 @@ # define ITT_ARCH_ARM 4 #endif /* ITT_ARCH_ARM */ +#ifndef ITT_ARCH_PPC64 +# define ITT_ARCH_PPC64 5 +#endif /* ITT_ARCH_PPC64 */ + #ifndef ITT_ARCH # if defined _M_IX86 || defined __i386__ # define ITT_ARCH ITT_ARCH_IA32 @@ -151,13 +168,19 @@ # define ITT_ARCH ITT_ARCH_IA64 # elif defined _M_ARM || __arm__ # define ITT_ARCH ITT_ARCH_ARM +# elif defined __powerpc64__ +# define ITT_ARCH ITT_ARCH_PPC64 # endif #endif #ifdef __cplusplus # define ITT_EXTERN_C extern "C" +# define ITT_EXTERN_C_BEGIN extern "C" { +# define ITT_EXTERN_C_END } #else # define ITT_EXTERN_C /* nothing */ +# define ITT_EXTERN_C_BEGIN /* nothing */ +# define ITT_EXTERN_C_END /* nothing */ #endif /* __cplusplus */ #define ITT_TO_STR_AUX(x) #x @@ -220,8 +243,8 @@ typedef pthread_mutex_t mutex_t; #define __itt_unload_lib(handle) FreeLibrary(handle) #define __itt_system_error() (int)GetLastError() #define __itt_fstrcmp(s1, s2) lstrcmpA(s1, s2) -#define __itt_fstrlen(s) lstrlenA(s) -#define __itt_fstrcpyn(s1, s2, l) lstrcpynA(s1, s2, l) +#define __itt_fstrnlen(s, l) strnlen_s(s, l) +#define __itt_fstrcpyn(s1, b, s2, l) strncpy_s(s1, b, s2, l) #define __itt_fstrdup(s) _strdup(s) #define __itt_thread_id() GetCurrentThreadId() #define __itt_thread_yield() SwitchToThread() @@ -261,8 +284,19 @@ ITT_INLINE long __itt_interlocked_increment(volatile long* ptr) #define __itt_unload_lib(handle) dlclose(handle) #define __itt_system_error() errno #define __itt_fstrcmp(s1, s2) strcmp(s1, s2) -#define __itt_fstrlen(s) strlen(s) -#define __itt_fstrcpyn(s1, s2, l) strncpy(s1, s2, l) + +/* makes customer code define safe APIs for SDL_STRNLEN_S and SDL_STRNCPY_S */ +#ifdef SDL_STRNLEN_S +#define __itt_fstrnlen(s, l) SDL_STRNLEN_S(s, l) +#else +#define __itt_fstrnlen(s, l) strlen(s) +#endif /* SDL_STRNLEN_S */ +#ifdef SDL_STRNCPY_S +#define __itt_fstrcpyn(s1, b, s2, l) SDL_STRNCPY_S(s1, b, s2, l) +#else +#define __itt_fstrcpyn(s1, b, s2, l) strncpy(s1, s2, l) +#endif /* SDL_STRNCPY_S */ + #define __itt_fstrdup(s) strdup(s) #define __itt_thread_id() pthread_self() #define __itt_thread_yield() sched_yield() @@ -284,7 +318,7 @@ ITT_INLINE long __TBB_machine_fetchadd4(volatile void* ptr, long addend) : "memory"); return result; } -#elif ITT_ARCH==ITT_ARCH_ARM +#elif ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_PPC64 #define __TBB_machine_fetchadd4(addr, val) __sync_fetch_and_add(addr, val) #endif /* ITT_ARCH==ITT_ARCH_IA64 */ #ifndef ITT_SIMPLE_INIT @@ -407,7 +441,7 @@ typedef struct ___itt_global #define NEW_DOMAIN_W(gptr,h,h_tail,name) { \ h = (__itt_domain*)malloc(sizeof(__itt_domain)); \ if (h != NULL) { \ - h->flags = 0; /* domain is disabled by default */ \ + h->flags = 1; /* domain is enabled by default */ \ h->nameA = NULL; \ h->nameW = name ? _wcsdup(name) : NULL; \ h->extra1 = 0; /* reserved */ \ @@ -423,7 +457,7 @@ typedef struct ___itt_global #define NEW_DOMAIN_A(gptr,h,h_tail,name) { \ h = (__itt_domain*)malloc(sizeof(__itt_domain)); \ if (h != NULL) { \ - h->flags = 0; /* domain is disabled by default */ \ + h->flags = 1; /* domain is enabled by default */ \ h->nameA = name ? __itt_fstrdup(name) : NULL; \ h->nameW = NULL; \ h->extra1 = 0; /* reserved */ \ diff --git a/src/tbb/tools_api/ittnotify_static.c b/src/tbb/tools_api/ittnotify_static.c index 1d1af20d..5a611491 100644 --- a/src/tbb/tools_api/ittnotify_static.c +++ b/src/tbb/tools_api/ittnotify_static.c @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -39,13 +39,13 @@ #include "disable_warnings.h" -static const char api_version[] = API_VERSION "\0\n@(#) $Revision: 336044 $\n"; +static const char api_version[] = API_VERSION "\0\n@(#) $Revision: 413915 $\n"; #define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) #if ITT_OS==ITT_OS_WIN static const char* ittnotify_lib_name = "libittnotify.dll"; -#elif ITT_OS==ITT_OS_LINUX +#elif ITT_OS==ITT_OS_LINUX || ITT_OS==ITT_OS_FREEBSD static const char* ittnotify_lib_name = "libittnotify.so"; #elif ITT_OS==ITT_OS_MAC static const char* ittnotify_lib_name = "libittnotify.dylib"; @@ -76,7 +76,15 @@ static const char* ittnotify_lib_name = "libittnotify.dylib"; #endif /* default location of userapi collector on Android */ -#define ANDROID_ITTNOTIFY_DEFAULT_PATH "/data/data/com.intel.vtune/intel/libittnotify.so" +#define ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(x) "/data/data/com.intel.vtune/perfrun/lib" \ + #x "/runtime/libittnotify.so" + +#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM +#define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(32) +#else +#define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(64) +#endif + #endif @@ -129,7 +137,7 @@ static __itt_fini_ittlib_t* __itt_fini_ittlib_ptr = _N_(fini_ittlib); #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ typedef type api ITT_JOIN(_N_(name),_t) args; \ -ITT_EXTERN_C { ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); } \ +ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ { \ __itt_init_ittlib_name(NULL, __itt_group_all); \ @@ -142,7 +150,7 @@ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ typedef type api ITT_JOIN(_N_(name),_t) args; \ -ITT_EXTERN_C { ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); } \ +ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ { \ __itt_init_ittlib_name(NULL, __itt_group_all); \ @@ -160,12 +168,12 @@ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ typedef type api ITT_JOIN(_N_(name),_t) args; \ -ITT_EXTERN_C { ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); } +ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ typedef type api ITT_JOIN(_N_(name),_t) args; \ -ITT_EXTERN_C { ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); } +ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END #define __ITT_INTERNAL_INIT #include "ittnotify_static.h" @@ -217,48 +225,6 @@ static __itt_api_info api_list[] = { #pragma warning(pop) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -/* private, init thread info item. used for internal purposes */ -static __itt_thread_info init_thread_info = { - (const char*)NULL, /* nameA */ -#if defined(UNICODE) || defined(_UNICODE) - (const wchar_t*)NULL, /* nameW */ -#else - (void*)NULL, /* nameW */ -#endif - 0, /* tid */ - __itt_thread_normal, /* state */ - 0, /* extra1 */ - (void*)NULL, /* extra2 */ - (__itt_thread_info*)NULL /* next */ -}; - -/* private, NULL domain item. used for internal purposes */ -static __itt_domain null_domain = { - 0, /* flags: disabled by default */ - (const char*)NULL, /* nameA */ -#if defined(UNICODE) || defined(_UNICODE) - (const wchar_t*)NULL, /* nameW */ -#else - (void*)NULL, /* nameW */ -#endif - 0, /* extra1 */ - (void*)NULL, /* extra2 */ - (__itt_domain*)NULL /* next */ -}; - -/* private, NULL string handle item. used for internal purposes */ -static __itt_string_handle null_string_handle = { - (const char*)NULL, /* strA */ -#if defined(UNICODE) || defined(_UNICODE) - (const wchar_t*)NULL, /* strW */ -#else - (void*)NULL, /* strW */ -#endif - 0, /* extra1 */ - (void*)NULL, /* extra2 */ - (__itt_string_handle*)NULL /* next */ -}; - static const char dll_path[PATH_MAX] = { 0 }; /* static part descriptor which handles. all notification api attributes. */ @@ -274,9 +240,9 @@ __itt_global _N_(_ittapi_global) = { (const char**)&dll_path, /* dll_path_ptr */ (__itt_api_info*)&api_list, /* api_list_ptr */ NULL, /* next __itt_global */ - (__itt_thread_info*)&init_thread_info, /* thread_list */ - (__itt_domain*)&null_domain, /* domain_list */ - (__itt_string_handle*)&null_string_handle, /* string_list */ + NULL, /* thread_list */ + NULL, /* domain_list */ + NULL, /* string_list */ __itt_collection_normal /* collection state */ }; @@ -316,23 +282,28 @@ static void __itt_report_error(__itt_error_code code, ...) #if ITT_PLATFORM==ITT_PLATFORM_WIN static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))(const wchar_t* name) { - __itt_domain *h_tail, *h; + __itt_domain *h_tail = NULL, *h = NULL; - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (name == NULL) { - __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(domain_createW) && ITTNOTIFY_NAME(domain_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))) - return ITTNOTIFY_NAME(domain_createW)(name); + return NULL; } - if (name == NULL) - return _N_(_ittapi_global).domain_list; - ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + if (_N_(_ittapi_global).api_initialized) + { + if (ITTNOTIFY_NAME(domain_createW) && ITTNOTIFY_NAME(domain_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); + return ITTNOTIFY_NAME(domain_createW)(name); + } + } for (h_tail = NULL, h = _N_(_ittapi_global).domain_list; h != NULL; h_tail = h, h = h->next) - if (h->nameW != NULL && !wcscmp(h->nameW, name)) - break; - if (h == NULL) { + { + if (h->nameW != NULL && !wcscmp(h->nameW, name)) break; + } + if (h == NULL) + { NEW_DOMAIN_W(&_N_(_ittapi_global),h,h_tail,name); } __itt_mutex_unlock(&_N_(_ittapi_global).mutex); @@ -344,28 +315,36 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createA),_init))( static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init))(const char* name) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ { - __itt_domain *h_tail, *h; + __itt_domain *h_tail = NULL, *h = NULL; - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (name == NULL) + { + return NULL; + } + + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + if (_N_(_ittapi_global).api_initialized) { - __itt_init_ittlib_name(NULL, __itt_group_all); #if ITT_PLATFORM==ITT_PLATFORM_WIN if (ITTNOTIFY_NAME(domain_createA) && ITTNOTIFY_NAME(domain_createA) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createA),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return ITTNOTIFY_NAME(domain_createA)(name); + } #else if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return ITTNOTIFY_NAME(domain_create)(name); + } #endif } - - if (name == NULL) - return _N_(_ittapi_global).domain_list; - - ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); for (h_tail = NULL, h = _N_(_ittapi_global).domain_list; h != NULL; h_tail = h, h = h->next) - if (h->nameA != NULL && !__itt_fstrcmp(h->nameA, name)) - break; - if (h == NULL) { + { + if (h->nameA != NULL && !__itt_fstrcmp(h->nameA, name)) break; + } + if (h == NULL) + { NEW_DOMAIN_A(&_N_(_ittapi_global),h,h_tail,name); } __itt_mutex_unlock(&_N_(_ittapi_global).mutex); @@ -375,23 +354,28 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init))(c #if ITT_PLATFORM==ITT_PLATFORM_WIN static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createW),_init))(const wchar_t* name) { - __itt_string_handle *h_tail, *h; + __itt_string_handle *h_tail = NULL, *h = NULL; - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (name == NULL) { - __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(string_handle_createW) && ITTNOTIFY_NAME(string_handle_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createW),_init))) - return ITTNOTIFY_NAME(string_handle_createW)(name); + return NULL; } - if (name == NULL) - return _N_(_ittapi_global).string_list; - ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + if (_N_(_ittapi_global).api_initialized) + { + if (ITTNOTIFY_NAME(string_handle_createW) && ITTNOTIFY_NAME(string_handle_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createW),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); + return ITTNOTIFY_NAME(string_handle_createW)(name); + } + } for (h_tail = NULL, h = _N_(_ittapi_global).string_list; h != NULL; h_tail = h, h = h->next) - if (h->strW != NULL && !wcscmp(h->strW, name)) - break; - if (h == NULL) { + { + if (h->strW != NULL && !wcscmp(h->strW, name)) break; + } + if (h == NULL) + { NEW_STRING_HANDLE_W(&_N_(_ittapi_global),h,h_tail,name); } __itt_mutex_unlock(&_N_(_ittapi_global).mutex); @@ -403,28 +387,36 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_create),_init))(const char* name) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ { - __itt_string_handle *h_tail, *h; + __itt_string_handle *h_tail = NULL, *h = NULL; - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (name == NULL) + { + return NULL; + } + + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + if (_N_(_ittapi_global).api_initialized) { - __itt_init_ittlib_name(NULL, __itt_group_all); #if ITT_PLATFORM==ITT_PLATFORM_WIN if (ITTNOTIFY_NAME(string_handle_createA) && ITTNOTIFY_NAME(string_handle_createA) != ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createA),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return ITTNOTIFY_NAME(string_handle_createA)(name); + } #else if (ITTNOTIFY_NAME(string_handle_create) && ITTNOTIFY_NAME(string_handle_create) != ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_create),_init))) + { + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return ITTNOTIFY_NAME(string_handle_create)(name); + } #endif } - - if (name == NULL) - return _N_(_ittapi_global).string_list; - - ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); for (h_tail = NULL, h = _N_(_ittapi_global).string_list; h != NULL; h_tail = h, h = h->next) - if (h->strA != NULL && !__itt_fstrcmp(h->strA, name)) - break; - if (h == NULL) { + { + if (h->strA != NULL && !__itt_fstrcmp(h->strA, name)) break; + } + if (h == NULL) + { NEW_STRING_HANDLE_A(&_N_(_ittapi_global),h,h_tail,name); } __itt_mutex_unlock(&_N_(_ittapi_global).mutex); @@ -435,65 +427,52 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))(void) { - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) { __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(pause) && ITTNOTIFY_NAME(pause) != ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))) - { - ITTNOTIFY_NAME(pause)(); - return; - } } - _N_(_ittapi_global).state = __itt_collection_paused; + if (ITTNOTIFY_NAME(pause) && ITTNOTIFY_NAME(pause) != ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))) + { + ITTNOTIFY_NAME(pause)(); + } + else + { + _N_(_ittapi_global).state = __itt_collection_paused; + } } static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))(void) { - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) { __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(resume) && ITTNOTIFY_NAME(resume) != ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))) - { - ITTNOTIFY_NAME(resume)(); - return; - } } - _N_(_ittapi_global).state = __itt_collection_normal; + if (ITTNOTIFY_NAME(resume) && ITTNOTIFY_NAME(resume) != ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))) + { + ITTNOTIFY_NAME(resume)(); + } + else + { + _N_(_ittapi_global).state = __itt_collection_normal; + } } #if ITT_PLATFORM==ITT_PLATFORM_WIN static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))(const wchar_t* name) { - TIDT tid = __itt_thread_id(); - __itt_thread_info *h_tail, *h; - - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) { __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(thread_set_nameW) && ITTNOTIFY_NAME(thread_set_nameW) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))) - { - ITTNOTIFY_NAME(thread_set_nameW)(name); - return; - } - } - - __itt_mutex_lock(&_N_(_ittapi_global).mutex); - for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) - if (h->tid == tid) - break; - if (h == NULL) { - NEW_THREAD_INFO_W(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_normal, name); } - else + if (ITTNOTIFY_NAME(thread_set_nameW) && ITTNOTIFY_NAME(thread_set_nameW) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))) { - h->nameW = name ? _wcsdup(name) : NULL; + ITTNOTIFY_NAME(thread_set_nameW)(name); } - __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_setW),_init))(const wchar_t* name, int namelen) { - namelen = namelen; + (void)namelen; ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))(name); return 0; } @@ -503,51 +482,34 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA),_init))(const c static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))(const char* name) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ { - TIDT tid = __itt_thread_id(); - __itt_thread_info *h_tail, *h; - - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) { __itt_init_ittlib_name(NULL, __itt_group_all); -#if ITT_PLATFORM==ITT_PLATFORM_WIN - if (ITTNOTIFY_NAME(thread_set_nameA) && ITTNOTIFY_NAME(thread_set_nameA) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA),_init))) - { - ITTNOTIFY_NAME(thread_set_nameA)(name); - return; - } -#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ - if (ITTNOTIFY_NAME(thread_set_name) && ITTNOTIFY_NAME(thread_set_name) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))) - { - ITTNOTIFY_NAME(thread_set_name)(name); - return; - } -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ } - - __itt_mutex_lock(&_N_(_ittapi_global).mutex); - for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) - if (h->tid == tid) - break; - if (h == NULL) { - NEW_THREAD_INFO_A(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_normal, name); +#if ITT_PLATFORM==ITT_PLATFORM_WIN + if (ITTNOTIFY_NAME(thread_set_nameA) && ITTNOTIFY_NAME(thread_set_nameA) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA),_init))) + { + ITTNOTIFY_NAME(thread_set_nameA)(name); } - else +#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ + if (ITTNOTIFY_NAME(thread_set_name) && ITTNOTIFY_NAME(thread_set_name) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))) { - h->nameA = name ? __itt_fstrdup(name) : NULL; + ITTNOTIFY_NAME(thread_set_name)(name); } - __itt_mutex_unlock(&_N_(_ittapi_global).mutex); +#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ } #if ITT_PLATFORM==ITT_PLATFORM_WIN static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_setA),_init))(const char* name, int namelen) { - namelen = namelen; + (void)namelen; ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA),_init))(name); return 0; } #else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_set),_init))(const char* name, int namelen) { + (void)namelen; ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))(name); return 0; } @@ -555,32 +517,14 @@ static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_set),_init))(const char* static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))(void) { - TIDT tid = __itt_thread_id(); - __itt_thread_info *h_tail, *h; - - if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL) { __itt_init_ittlib_name(NULL, __itt_group_all); - if (ITTNOTIFY_NAME(thread_ignore) && ITTNOTIFY_NAME(thread_ignore) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))) - { - ITTNOTIFY_NAME(thread_ignore)(); - return; - } } - - __itt_mutex_lock(&_N_(_ittapi_global).mutex); - for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) - if (h->tid == tid) - break; - if (h == NULL) { - static const char* name = "unknown"; - NEW_THREAD_INFO_A(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_ignored, name); - } - else + if (ITTNOTIFY_NAME(thread_ignore) && ITTNOTIFY_NAME(thread_ignore) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))) { - h->state = __itt_thread_ignored; + ITTNOTIFY_NAME(thread_ignore)(); } - __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_ignore),_init))(void) @@ -697,12 +641,12 @@ static const char* __itt_get_env_var(const char* name) char* env = getenv(name); if (env != NULL) { - size_t len = strlen(env); + size_t len = __itt_fstrnlen(env, MAX_ENV_VALUE_SIZE); size_t max_len = MAX_ENV_VALUE_SIZE - (size_t)(env_value - env_buff); if (len < max_len) { const char* ret = (const char*)env_value; - strncpy(env_value, env, len + 1); + __itt_fstrcpyn(env_value, max_len, env, len + 1); env_value += len + 1; return ret; } else @@ -720,10 +664,25 @@ static const char* __itt_get_lib_name(void) #ifdef __ANDROID__ if (lib_name == NULL) { - const char* const system_wide_marker_filename = "/data/local/tmp/com.intel.itt.collector_lib"; - int itt_marker_file_fd = open(system_wide_marker_filename, O_RDONLY); + +#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM + const char* const marker_filename = "com.intel.itt.collector_lib_32"; +#else + const char* const marker_filename = "com.intel.itt.collector_lib_64"; +#endif + + char system_wide_marker_filename[PATH_MAX] = {0}; + int itt_marker_file_fd = -1; ssize_t res = 0; + res = snprintf(system_wide_marker_filename, PATH_MAX - 1, "%s%s", "/data/local/tmp/", marker_filename); + if (res < 0) + { + ITT_ANDROID_LOGE("Unable to concatenate marker file string."); + return lib_name; + } + itt_marker_file_fd = open(system_wide_marker_filename, O_RDONLY); + if (itt_marker_file_fd == -1) { const pid_t my_pid = getpid(); @@ -733,7 +692,13 @@ static const char* __itt_get_lib_name(void) int cmdline_fd = 0; ITT_ANDROID_LOGI("Unable to open system-wide marker file."); - snprintf(cmdline_path, PATH_MAX - 1, "/proc/%d/cmdline", my_pid); + res = snprintf(cmdline_path, PATH_MAX - 1, "/proc/%d/cmdline", my_pid); + if (res < 0) + { + ITT_ANDROID_LOGE("Unable to get cmdline path string."); + return lib_name; + } + ITT_ANDROID_LOGI("CMD file: %s\n", cmdline_path); cmdline_fd = open(cmdline_path, O_RDONLY); if (cmdline_fd == -1) @@ -759,7 +724,13 @@ static const char* __itt_get_lib_name(void) return lib_name; } ITT_ANDROID_LOGI("Package name: %s\n", package_name); - snprintf(app_sandbox_file, PATH_MAX - 1, "/data/data/%s/com.intel.itt.collector_lib", package_name); + res = snprintf(app_sandbox_file, PATH_MAX - 1, "/data/data/%s/%s", package_name, marker_filename); + if (res < 0) + { + ITT_ANDROID_LOGE("Unable to concatenate marker file string."); + return lib_name; + } + ITT_ANDROID_LOGI("Lib marker file name: %s\n", app_sandbox_file); itt_marker_file_fd = open(app_sandbox_file, O_RDONLY); if (itt_marker_file_fd == -1) @@ -790,7 +761,7 @@ static const char* __itt_get_lib_name(void) ITT_ANDROID_LOGE("Unable to close %s file!", itt_marker_file_fd); return lib_name; } - ITT_ANDROID_LOGI("Set env"); + ITT_ANDROID_LOGI("Set env %s to %s", ITT_TO_STR(LIB_VAR_NAME), itt_lib_name); res = setenv(ITT_TO_STR(LIB_VAR_NAME), itt_lib_name, 0); if (res == -1) { @@ -798,7 +769,7 @@ static const char* __itt_get_lib_name(void) return lib_name; } lib_name = __itt_get_env_var(ITT_TO_STR(LIB_VAR_NAME)); - ITT_ANDROID_LOGI("ITT Lib path from env: %s", itt_lib_name); + ITT_ANDROID_LOGI("ITT Lib path from env: %s", lib_name); } } #endif @@ -806,12 +777,13 @@ static const char* __itt_get_lib_name(void) return lib_name; } -/* Avoid clashes with std::min */ -#define __itt_min(a,b) (a) < (b) ? (a) : (b) +#ifndef min +#define min(a,b) (a) < (b) ? (a) : (b) +#endif /* min */ static __itt_group_id __itt_get_groups(void) { - int i; + register int i; __itt_group_id res = __itt_group_none; const char* var_name = "INTEL_ITTNOTIFY_GROUPS"; const char* group_str = __itt_get_env_var(var_name); @@ -823,8 +795,8 @@ static __itt_group_id __itt_get_groups(void) const char* chunk; while ((group_str = __itt_fsplit(group_str, ",; ", &chunk, &len)) != NULL) { - __itt_fstrcpyn(gr, chunk, sizeof(gr) - 1); - gr[__itt_min(len, (int)(sizeof(gr) - 1))] = 0; + __itt_fstrcpyn(gr, sizeof(gr) - 1, chunk, len + 1); + gr[min(len, (int)(sizeof(gr) - 1))] = 0; for (i = 0; group_list[i].name != NULL; i++) { @@ -878,7 +850,7 @@ static void __itt_reinit_all_pointers(void) static void __itt_nullify_all_pointers(void) { - int i; + register int i; /* Nulify all pointers except domain_create and string_handle_create */ for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func; @@ -892,7 +864,7 @@ static void __itt_nullify_all_pointers(void) ITT_EXTERN_C void _N_(fini_ittlib)(void) { - __itt_api_fini_t* __itt_api_fini_ptr; + __itt_api_fini_t* __itt_api_fini_ptr = NULL; static volatile TIDT current_thread = 0; if (_N_(_ittapi_global).api_initialized) @@ -903,13 +875,16 @@ ITT_EXTERN_C void _N_(fini_ittlib)(void) if (current_thread == 0) { current_thread = __itt_thread_id(); - if (_N_(_ittapi_global).lib) { + if (_N_(_ittapi_global).lib != NULL) + { __itt_api_fini_ptr = (__itt_api_fini_t*)(size_t)__itt_get_proc(_N_(_ittapi_global).lib, "__itt_api_fini"); - if (__itt_api_fini_ptr) - __itt_api_fini_ptr(&_N_(_ittapi_global)); - - __itt_nullify_all_pointers(); } + if (__itt_api_fini_ptr) + { + __itt_api_fini_ptr(&_N_(_ittapi_global)); + } + + __itt_nullify_all_pointers(); /* TODO: !!! not safe !!! don't support unload so far. * if (_N_(_ittapi_global).lib != NULL) @@ -926,7 +901,7 @@ ITT_EXTERN_C void _N_(fini_ittlib)(void) ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_groups) { - int i; + register int i; __itt_group_id groups; #ifdef ITT_COMPLETE_GROUP __itt_group_id zero_group = __itt_group_none; @@ -944,9 +919,10 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou if (current_thread == 0) { current_thread = __itt_thread_id(); - _N_(_ittapi_global).thread_list->tid = current_thread; if (lib_name == NULL) + { lib_name = __itt_get_lib_name(); + } groups = __itt_get_groups(); if (groups != __itt_group_none || lib_name != NULL) { @@ -1041,9 +1017,13 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou /* Evaluating if any function ptr is non empty and it's in init_groups */ for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) + { if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr != _N_(_ittapi_global).api_list_ptr[i].null_func && _N_(_ittapi_global).api_list_ptr[i].group & init_groups) + { return 1; + } + } return 0; } diff --git a/src/tbb/tools_api/ittnotify_static.h b/src/tbb/tools_api/ittnotify_static.h index c46e45ae..7728240b 100644 --- a/src/tbb/tools_api/ittnotify_static.h +++ b/src/tbb/tools_api/ittnotify_static.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -74,6 +74,8 @@ ITT_STUBV(ITTAPI, void, enable_attach, (void), (ITT_NO_PARAMS), enable_attach, _ #else /* __ITT_INTERNAL_INIT */ +ITT_STUBV(ITTAPI, void, detach, (void), (ITT_NO_PARAMS), detach, __itt_group_control | __itt_group_legacy, "no args") + #if ITT_PLATFORM==ITT_PLATFORM_WIN ITT_STUBV(ITTAPI, void, sync_createA, (void *addr, const char *objtype, const char *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_createA, __itt_group_sync | __itt_group_fsync, "%p, \"%s\", \"%s\", %x") ITT_STUBV(ITTAPI, void, sync_createW, (void *addr, const wchar_t *objtype, const wchar_t *objname, int attribute), (ITT_FORMAT addr, objtype, objname, attribute), sync_createW, __itt_group_sync | __itt_group_fsync, "%p, \"%S\", \"%S\", %x") diff --git a/src/tbb/tools_api/ittnotify_types.h b/src/tbb/tools_api/ittnotify_types.h index b9a04c21..b04d1c92 100644 --- a/src/tbb/tools_api/ittnotify_types.h +++ b/src/tbb/tools_api/ittnotify_types.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/tools_api/legacy/ittnotify.h b/src/tbb/tools_api/legacy/ittnotify.h index 115f086b..a6659fdf 100644 --- a/src/tbb/tools_api/legacy/ittnotify.h +++ b/src/tbb/tools_api/legacy/ittnotify.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -39,11 +39,17 @@ # define ITT_OS_MAC 3 #endif /* ITT_OS_MAC */ +#ifndef ITT_OS_FREEBSD +# define ITT_OS_FREEBSD 4 +#endif /* ITT_OS_FREEBSD */ + #ifndef ITT_OS # if defined WIN32 || defined _WIN32 # define ITT_OS ITT_OS_WIN # elif defined( __APPLE__ ) && defined( __MACH__ ) # define ITT_OS ITT_OS_MAC +# elif defined( __FreeBSD__ ) +# define ITT_OS ITT_OS_FREEBSD # else # define ITT_OS ITT_OS_LINUX # endif @@ -61,11 +67,17 @@ # define ITT_PLATFORM_MAC 3 #endif /* ITT_PLATFORM_MAC */ +#ifndef ITT_PLATFORM_FREEBSD +# define ITT_PLATFORM_FREEBSD 4 +#endif /* ITT_PLATFORM_FREEBSD */ + #ifndef ITT_PLATFORM # if ITT_OS==ITT_OS_WIN # define ITT_PLATFORM ITT_PLATFORM_WIN # elif ITT_OS==ITT_OS_MAC # define ITT_PLATFORM ITT_PLATFORM_MAC +# elif ITT_OS==ITT_OS_FREEBSD +# define ITT_PLATFORM ITT_PLATFORM_FREEBSD # else # define ITT_PLATFORM ITT_PLATFORM_POSIX # endif @@ -127,11 +139,12 @@ * if no optimization level was specified. */ #ifdef __STRICT_ANSI__ -#define ITT_INLINE static inline +#define ITT_INLINE static +#define ITT_INLINE_ATTRIBUTE __attribute__((unused)) #else /* __STRICT_ANSI__ */ #define ITT_INLINE static inline +#define ITT_INLINE_ATTRIBUTE __attribute__((always_inline, unused)) #endif /* __STRICT_ANSI__ */ -#define ITT_INLINE_ATTRIBUTE __attribute__ ((always_inline, unused)) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ /** @endcond */ @@ -232,25 +245,33 @@ extern "C" { void ITTAPI __itt_pause(void); /** @brief Resume collection */ void ITTAPI __itt_resume(void); +/** @brief Detach collection */ +void ITTAPI __itt_detach(void); /** @cond exclude_from_documentation */ #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API ITT_STUBV(ITTAPI, void, pause, (void)) ITT_STUBV(ITTAPI, void, resume, (void)) +ITT_STUBV(ITTAPI, void, detach, (void)) #define __itt_pause ITTNOTIFY_VOID(pause) #define __itt_pause_ptr ITTNOTIFY_NAME(pause) #define __itt_resume ITTNOTIFY_VOID(resume) #define __itt_resume_ptr ITTNOTIFY_NAME(resume) +#define __itt_detach ITTNOTIFY_VOID(detach) +#define __itt_detach_ptr ITTNOTIFY_NAME(detach) #else /* INTEL_NO_ITTNOTIFY_API */ #define __itt_pause() #define __itt_pause_ptr 0 #define __itt_resume() #define __itt_resume_ptr 0 +#define __itt_detach() +#define __itt_detach_ptr 0 #endif /* INTEL_NO_ITTNOTIFY_API */ #else /* INTEL_NO_MACRO_BODY */ #define __itt_pause_ptr 0 #define __itt_resume_ptr 0 +#define __itt_detach_ptr 0 #endif /* INTEL_NO_MACRO_BODY */ /** @endcond */ #endif /* _ITTNOTIFY_H_ */ diff --git a/src/tbb/tools_api/prototype/ittnotify.h b/src/tbb/tools_api/prototype/ittnotify.h deleted file mode 100644 index 7af8614e..00000000 --- a/src/tbb/tools_api/prototype/ittnotify.h +++ /dev/null @@ -1,213 +0,0 @@ -/* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. - - This file is part of Threading Building Blocks. Threading Building Blocks is free software; - you can redistribute it and/or modify it under the terms of the GNU General Public License - version 2 as published by the Free Software Foundation. Threading Building Blocks is - distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. You should have received a copy of - the GNU General Public License along with Threading Building Blocks; if not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - As a special exception, you may use this file as part of a free software library without - restriction. Specifically, if other files instantiate templates or use macros or inline - functions from this file, or you compile this file and link it with other files to produce - an executable, this file does not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does not however invalidate any other - reasons why the executable file might be covered by the GNU General Public License. -*/ - -#ifndef _PROTOTYPE_ITTNOTIFY_H_ -#define _PROTOTYPE_ITTNOTIFY_H_ - -/** - * @file - * @brief Prototype User API functions and types - */ - -/** @cond exclude_from_documentation */ -#ifndef ITT_OS_WIN -# define ITT_OS_WIN 1 -#endif /* ITT_OS_WIN */ - -#ifndef ITT_OS_LINUX -# define ITT_OS_LINUX 2 -#endif /* ITT_OS_LINUX */ - -#ifndef ITT_OS_MAC -# define ITT_OS_MAC 3 -#endif /* ITT_OS_MAC */ - -#ifndef ITT_OS -# if defined WIN32 || defined _WIN32 -# define ITT_OS ITT_OS_WIN -# elif defined( __APPLE__ ) && defined( __MACH__ ) -# define ITT_OS ITT_OS_MAC -# else -# define ITT_OS ITT_OS_LINUX -# endif -#endif /* ITT_OS */ - -#ifndef ITT_PLATFORM_WIN -# define ITT_PLATFORM_WIN 1 -#endif /* ITT_PLATFORM_WIN */ - -#ifndef ITT_PLATFORM_POSIX -# define ITT_PLATFORM_POSIX 2 -#endif /* ITT_PLATFORM_POSIX */ - -#ifndef ITT_PLATFORM_MAC -# define ITT_PLATFORM_MAC 3 -#endif /* ITT_PLATFORM_MAC */ - -#ifndef ITT_PLATFORM -# if ITT_OS==ITT_OS_WIN -# define ITT_PLATFORM ITT_PLATFORM_WIN -# elif ITT_OS==ITT_OS_MAC -# define ITT_PLATFORM ITT_PLATFORM_MAC -# else -# define ITT_PLATFORM ITT_PLATFORM_POSIX -# endif -#endif /* ITT_PLATFORM */ - -#if defined(_UNICODE) && !defined(UNICODE) -#define UNICODE -#endif - -#include -#if ITT_PLATFORM==ITT_PLATFORM_WIN -#include -#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#include -#if defined(UNICODE) || defined(_UNICODE) -#include -#endif /* UNICODE || _UNICODE */ -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ - -#ifndef CDECL -# if ITT_PLATFORM==ITT_PLATFORM_WIN -# define CDECL __cdecl -# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ -# define CDECL __attribute__ ((cdecl)) -# else /* _M_IX86 || __i386__ */ -# define CDECL /* actual only on x86 platform */ -# endif /* _M_IX86 || __i386__ */ -# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#endif /* CDECL */ - -#ifndef STDCALL -# if ITT_PLATFORM==ITT_PLATFORM_WIN -# define STDCALL __stdcall -# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -# if defined _M_IX86 || defined __i386__ -# define STDCALL __attribute__ ((stdcall)) -# else /* _M_IX86 || __i386__ */ -# define STDCALL /* supported only on x86 platform */ -# endif /* _M_IX86 || __i386__ */ -# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -#endif /* STDCALL */ - -#define ITTAPI CDECL -#define LIBITTAPI CDECL - -/* TODO: Temporary for compatibility! */ -#define ITTAPI_CALL CDECL -#define LIBITTAPI_CALL CDECL - -#if ITT_PLATFORM==ITT_PLATFORM_WIN -/* use __forceinline (VC++ specific) */ -#define ITT_INLINE __forceinline -#define ITT_INLINE_ATTRIBUTE /* nothing */ -#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -/* - * Generally, functions are not inlined unless optimization is specified. - * For functions declared inline, this attribute inlines the function even - * if no optimization level was specified. - */ -#ifdef __STRICT_ANSI__ -#define ITT_INLINE static -#else /* __STRICT_ANSI__ */ -#define ITT_INLINE static inline -#endif /* __STRICT_ANSI__ */ -#define ITT_INLINE_ATTRIBUTE __attribute__ ((always_inline, unused)) -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ -/** @endcond */ - -/** @cond exclude_from_documentation */ -/* Helper macro for joining tokens */ -#define ITT_JOIN_AUX(p,n) p##n -#define ITT_JOIN(p,n) ITT_JOIN_AUX(p,n) - -#ifdef ITT_MAJOR -#undef ITT_MAJOR -#endif -#ifdef ITT_MINOR -#undef ITT_MINOR -#endif -#define ITT_MAJOR 3 -#define ITT_MINOR 0 - -/* Standard versioning of a token with major and minor version numbers */ -#define ITT_VERSIONIZE(x) \ - ITT_JOIN(x, \ - ITT_JOIN(_, \ - ITT_JOIN(ITT_MAJOR, \ - ITT_JOIN(_, ITT_MINOR)))) - -#ifndef INTEL_ITTNOTIFY_PREFIX -# define INTEL_ITTNOTIFY_PREFIX __itt_ -#endif /* INTEL_ITTNOTIFY_PREFIX */ -#ifndef INTEL_ITTNOTIFY_POSTFIX -# define INTEL_ITTNOTIFY_POSTFIX _ptr_ -#endif /* INTEL_ITTNOTIFY_POSTFIX */ - -#define ITTNOTIFY_NAME_AUX(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) -#define ITTNOTIFY_NAME(n) ITT_VERSIONIZE(ITTNOTIFY_NAME_AUX(ITT_JOIN(n,INTEL_ITTNOTIFY_POSTFIX))) - -#define ITTNOTIFY_VOID(n) (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n) -#define ITTNOTIFY_DATA(n) (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n) - -#define ITTNOTIFY_VOID_D0(n,d) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d) -#define ITTNOTIFY_VOID_D1(n,d,x) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x) -#define ITTNOTIFY_VOID_D2(n,d,x,y) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y) -#define ITTNOTIFY_VOID_D3(n,d,x,y,z) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z) -#define ITTNOTIFY_VOID_D4(n,d,x,y,z,a) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a) -#define ITTNOTIFY_VOID_D5(n,d,x,y,z,a,b) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b) -#define ITTNOTIFY_VOID_D6(n,d,x,y,z,a,b,c) (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b,c) -#define ITTNOTIFY_DATA_D0(n,d) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d) -#define ITTNOTIFY_DATA_D1(n,d,x) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x) -#define ITTNOTIFY_DATA_D2(n,d,x,y) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y) -#define ITTNOTIFY_DATA_D3(n,d,x,y,z) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z) -#define ITTNOTIFY_DATA_D4(n,d,x,y,z,a) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a) -#define ITTNOTIFY_DATA_D5(n,d,x,y,z,a,b) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b) -#define ITTNOTIFY_DATA_D6(n,d,x,y,z,a,b,c) (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b,c) - -#ifdef ITT_STUB -#undef ITT_STUB -#endif -#ifdef ITT_STUBV -#undef ITT_STUBV -#endif -#define ITT_STUBV(api,type,name,args) \ - typedef type (api* ITT_JOIN(ITTNOTIFY_NAME(name),_t)) args; \ - extern ITT_JOIN(ITTNOTIFY_NAME(name),_t) ITTNOTIFY_NAME(name); -#define ITT_STUB ITT_STUBV -/** @endcond */ - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @defgroup prototype Prototype API - * @{ - * @} - */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _PROTOTYPE_ITTNOTIFY_H_ */ diff --git a/src/tbb/win32-tbb-export.def b/src/tbb/win32-tbb-export.def index b5895ed7..4e11c36c 100644 --- a/src/tbb/win32-tbb-export.def +++ b/src/tbb/win32-tbb-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/win32-tbb-export.lst b/src/tbb/win32-tbb-export.lst index 993ef470..a424e2e7 100644 --- a/src/tbb/win32-tbb-export.lst +++ b/src/tbb/win32-tbb-export.lst @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/win64-gcc-tbb-export.def b/src/tbb/win64-gcc-tbb-export.def index 8be96728..d39c8191 100644 --- a/src/tbb/win64-gcc-tbb-export.def +++ b/src/tbb/win64-gcc-tbb-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/win64-gcc-tbb-export.lst b/src/tbb/win64-gcc-tbb-export.lst index be7fafde..2a06fc0d 100644 --- a/src/tbb/win64-gcc-tbb-export.lst +++ b/src/tbb/win64-gcc-tbb-export.lst @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/win64-tbb-export.def b/src/tbb/win64-tbb-export.def index 094e3375..694767f4 100644 --- a/src/tbb/win64-tbb-export.def +++ b/src/tbb/win64-tbb-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/win64-tbb-export.lst b/src/tbb/win64-tbb-export.lst index ed1ae008..e615d133 100644 --- a/src/tbb/win64-tbb-export.lst +++ b/src/tbb/win64-tbb-export.lst @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/winrt-tbb-export.lst b/src/tbb/winrt-tbb-export.lst index beeaad9a..44b7f4bf 100644 --- a/src/tbb/winrt-tbb-export.lst +++ b/src/tbb/winrt-tbb-export.lst @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbb/x86_rtm_rw_mutex.cpp b/src/tbb/x86_rtm_rw_mutex.cpp index 157cdfc0..3282e648 100644 --- a/src/tbb/x86_rtm_rw_mutex.cpp +++ b/src/tbb/x86_rtm_rw_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,9 +28,10 @@ // __TBB_RW_MUTEX_DELAY_TEST shifts the point where flags aborting speculation are // added to the read-set of the operation. If 1, will add the test just before -// the transaction is ended. +// the transaction is ended; this technique is called lazy subscription. +// CAUTION: due to proven issues of lazy subscription, use of __TBB_RW_MUTEX_DELAY_TEST is discouraged! #ifndef __TBB_RW_MUTEX_DELAY_TEST - #define __TBB_RW_MUTEX_DELAY_TEST 1 + #define __TBB_RW_MUTEX_DELAY_TEST 0 #endif #if defined(_MSC_VER) && defined(_Wp64) @@ -202,10 +203,18 @@ bool x86_rtm_rw_mutex::internal_upgrade(x86_rtm_rw_mutex::scoped_lock& s) return no_release; } case RTM_transacting_reader: - s.transaction_state = RTM_transacting_writer; - // don't need to add w_flag to read_set even if __TBB_RW_MUTEX_DELAY_TEST - // because the this pointer (the spin_rw_mutex) will be sufficient on release. - return true; +#if !__TBB_RW_MUTEX_DELAY_TEST + if(this->state) { // add spin_rw_mutex to read-set. + // Real reader or writer holds the lock; so commit the read and re-acquire for write. + internal_release(s); + internal_acquire_writer(s); + return false; + } else +#endif + { + s.transaction_state = RTM_transacting_writer; + return true; + } default: __TBB_ASSERT(false, "Invalid state for upgrade"); return false; diff --git a/src/tbb/xbox360-tbb-export.def b/src/tbb/xbox360-tbb-export.def index a6914c73..31147b7c 100644 --- a/src/tbb/xbox360-tbb-export.def +++ b/src/tbb/xbox360-tbb-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/Customize.h b/src/tbbmalloc/Customize.h index d32001ff..2bb6e183 100644 --- a/src/tbbmalloc/Customize.h +++ b/src/tbbmalloc/Customize.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -200,7 +200,7 @@ namespace tbb { #if TBB_USE_THREADING_TOOLS call_itt_notify(releasing, &dst); #endif // TBB_USE_THREADING_TOOLS - FencedStore(*(intptr_t*)&dst, src); + FencedStore(*(intptr_t*)&dst, src); } template diff --git a/src/tbbmalloc/MapMemory.h b/src/tbbmalloc/MapMemory.h index 137d7cc0..29ecdd58 100644 --- a/src/tbbmalloc/MapMemory.h +++ b/src/tbbmalloc/MapMemory.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/Statistics.h b/src/tbbmalloc/Statistics.h index 1a06ea76..501e4c72 100644 --- a/src/tbbmalloc/Statistics.h +++ b/src/tbbmalloc/Statistics.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/TypeDefinitions.h b/src/tbbmalloc/TypeDefinitions.h index 8f625520..2b459b2c 100644 --- a/src/tbbmalloc/TypeDefinitions.h +++ b/src/tbbmalloc/TypeDefinitions.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/backend.cpp b/src/tbbmalloc/backend.cpp index 86f10149..bd91224e 100644 --- a/src/tbbmalloc/backend.cpp +++ b/src/tbbmalloc/backend.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/backref.cpp b/src/tbbmalloc/backref.cpp index a4647780..98b883fa 100644 --- a/src/tbbmalloc/backref.cpp +++ b/src/tbbmalloc/backref.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/frontend.cpp b/src/tbbmalloc/frontend.cpp index 09317abc..12fe7c26 100644 --- a/src/tbbmalloc/frontend.cpp +++ b/src/tbbmalloc/frontend.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -325,8 +325,9 @@ public: void putToLLOCache(TLSData *tls, void *object); }; -static char defaultMemPool_space[sizeof(MemoryPool)]; -static MemoryPool *defaultMemPool = (MemoryPool *)defaultMemPool_space; +static intptr_t defaultMemPool_space[sizeof(MemoryPool)/sizeof(intptr_t) + + (sizeof(MemoryPool)%sizeof(intptr_t)? 1 : 0)]; +static MemoryPool *defaultMemPool = (MemoryPool*)defaultMemPool_space; const size_t MemoryPool::defaultGranularity; // zero-initialized MallocMutex MemoryPool::memPoolListLock; @@ -423,10 +424,10 @@ public: FreeObject *toFree = findObjectToFree(object); // check against head of freeList, as this is mostly // expected after double free - MALLOC_ASSERT(findObjectToFree(object) != freeList, msg); + MALLOC_ASSERT(toFree != freeList, msg); // check against head of publicFreeList, to detect double free // involiving foreign thread - MALLOC_ASSERT(findObjectToFree(object) != publicFreeList, msg); + MALLOC_ASSERT(toFree != publicFreeList, msg); } #else suppress_unused_warning(object); @@ -1983,6 +1984,8 @@ static bool initMemoryManager() sizeof(Block), sizeof(uintptr_t) )); MALLOC_ASSERT( 2*blockHeaderAlignment == sizeof(Block), ASSERT_TEXT ); MALLOC_ASSERT( sizeof(FreeObject) == sizeof(void*), ASSERT_TEXT ); + MALLOC_ASSERT( isAligned(defaultMemPool, sizeof(intptr_t)), + "Memory pool must be void*-aligned for atomic to work over aligned arguments."); #if USE_WINTHREAD const size_t granularity = 64*1024; // granulatity of VirtualAlloc diff --git a/src/tbbmalloc/index.html b/src/tbbmalloc/index.html index 545fcb9a..8ad70e24 100644 --- a/src/tbbmalloc/index.html +++ b/src/tbbmalloc/index.html @@ -7,7 +7,7 @@ This directory contains the Intel® Threading Building Blocks (Intel® TBB

    -Copyright © 2005-2015 Intel Corporation. All Rights Reserved. +Copyright © 2005-2016 Intel Corporation. All Rights Reserved.

    Intel is a registered trademark or trademark of Intel Corporation or its subsidiaries in the United States and other countries. diff --git a/src/tbbmalloc/large_objects.cpp b/src/tbbmalloc/large_objects.cpp index 3ba97a59..63d0e0d7 100644 --- a/src/tbbmalloc/large_objects.cpp +++ b/src/tbbmalloc/large_objects.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -129,7 +129,7 @@ inline bool lessThanWithOverflow(intptr_t a, intptr_t b) /* ----------------------------------- Operation processing methods ------------------------------------ */ template void LargeObjectCacheImpl::CacheBin::CacheBinFunctor:: - OperationPreprocessor::commitOperation(CacheBinOperation *op) const + OperationPreprocessor::commitOperation(CacheBinOperation *op) const { FencedStore( (intptr_t&)(op->status), CBST_DONE ); } @@ -432,6 +432,7 @@ template LargeMemoryBlock *LargeObjectCacheImpl:: size_t size = head->unalignedSize; usedSize -= num*size; MALLOC_ASSERT( !last || (last->age != 0 && last->age != -1U), ASSERT_TEXT ); + MALLOC_ASSERT( (tail==head && num==1) || (tail!=head && num>1), ASSERT_TEXT ); LargeMemoryBlock *toRelease = NULL; if (!lastCleanedAge) { // 1st object of such size was released. @@ -448,6 +449,7 @@ template LargeMemoryBlock *LargeObjectCacheImpl:: } if (num) { // add [head;tail] list to cache + MALLOC_ASSERT( tail, ASSERT_TEXT ); tail->next = first; if (first) first->prev = tail; diff --git a/src/tbbmalloc/lin32-proxy-export.def b/src/tbbmalloc/lin32-proxy-export.def index 2d10ffca..3d85ce9e 100644 --- a/src/tbbmalloc/lin32-proxy-export.def +++ b/src/tbbmalloc/lin32-proxy-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/lin32-tbbmalloc-export.def b/src/tbbmalloc/lin32-tbbmalloc-export.def index 451370f2..567ce0bd 100644 --- a/src/tbbmalloc/lin32-tbbmalloc-export.def +++ b/src/tbbmalloc/lin32-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/lin64-proxy-export.def b/src/tbbmalloc/lin64-proxy-export.def index 975ada54..e4641acc 100644 --- a/src/tbbmalloc/lin64-proxy-export.def +++ b/src/tbbmalloc/lin64-proxy-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/lin64-tbbmalloc-export.def b/src/tbbmalloc/lin64-tbbmalloc-export.def index 103855e3..34fbfae7 100644 --- a/src/tbbmalloc/lin64-tbbmalloc-export.def +++ b/src/tbbmalloc/lin64-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/lin64ipf-proxy-export.def b/src/tbbmalloc/lin64ipf-proxy-export.def index 975ada54..e4641acc 100644 --- a/src/tbbmalloc/lin64ipf-proxy-export.def +++ b/src/tbbmalloc/lin64ipf-proxy-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/lin64ipf-tbbmalloc-export.def b/src/tbbmalloc/lin64ipf-tbbmalloc-export.def index 103855e3..34fbfae7 100644 --- a/src/tbbmalloc/lin64ipf-tbbmalloc-export.def +++ b/src/tbbmalloc/lin64ipf-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/mac32-tbbmalloc-export.def b/src/tbbmalloc/mac32-tbbmalloc-export.def index b24472b5..2d346c8d 100644 --- a/src/tbbmalloc/mac32-tbbmalloc-export.def +++ b/src/tbbmalloc/mac32-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/mac64-tbbmalloc-export.def b/src/tbbmalloc/mac64-tbbmalloc-export.def index b24472b5..2d346c8d 100644 --- a/src/tbbmalloc/mac64-tbbmalloc-export.def +++ b/src/tbbmalloc/mac64-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp index 438b3f0e..28a82efc 100644 --- a/src/tbbmalloc/proxy.cpp +++ b/src/tbbmalloc/proxy.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/proxy.h b/src/tbbmalloc/proxy.h index 781cadc7..8ae28990 100644 --- a/src/tbbmalloc/proxy.h +++ b/src/tbbmalloc/proxy.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -54,8 +54,8 @@ extern "C" { // Struct with original free() and _msize() pointers struct orig_ptrs { - void (*orig_free) (void*); - size_t (*orig_msize)(void*); + void (*orig_free) (void*); + size_t (*orig_msize)(void*); }; #endif /* _TBB_malloc_proxy_H_ */ diff --git a/src/tbbmalloc/proxy_overload_osx.h b/src/tbbmalloc/proxy_overload_osx.h index d4f828a8..0b894803 100644 --- a/src/tbbmalloc/proxy_overload_osx.h +++ b/src/tbbmalloc/proxy_overload_osx.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/shared_utils.h b/src/tbbmalloc/shared_utils.h index 55e0b445..6d35f523 100644 --- a/src/tbbmalloc/shared_utils.h +++ b/src/tbbmalloc/shared_utils.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/tbb_function_replacement.cpp b/src/tbbmalloc/tbb_function_replacement.cpp index c5e0b746..d38692c9 100644 --- a/src/tbbmalloc/tbb_function_replacement.cpp +++ b/src/tbbmalloc/tbb_function_replacement.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/tbb_function_replacement.h b/src/tbbmalloc/tbb_function_replacement.h index fd3fefc3..54e10dc0 100644 --- a/src/tbbmalloc/tbb_function_replacement.h +++ b/src/tbbmalloc/tbb_function_replacement.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/tbbmalloc.cpp b/src/tbbmalloc/tbbmalloc.cpp index f561a8cf..faf9607a 100644 --- a/src/tbbmalloc/tbbmalloc.cpp +++ b/src/tbbmalloc/tbbmalloc.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/tbbmalloc.rc b/src/tbbmalloc/tbbmalloc.rc index de82be9f..89fd44d1 100644 --- a/src/tbbmalloc/tbbmalloc.rc +++ b/src/tbbmalloc/tbbmalloc.rc @@ -1,4 +1,4 @@ -// Copyright 2005-2015 Intel Corporation. All Rights Reserved. +// Copyright 2005-2016 Intel Corporation. All Rights Reserved. // // This file is part of Threading Building Blocks. Threading Building Blocks is free software; // you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -84,7 +84,7 @@ BEGIN VALUE "CompanyName", "Intel Corporation\0" VALUE "FileDescription", "Scalable Allocator library\0" VALUE "FileVersion", TBBMALLOC_VERSION "\0" - VALUE "LegalCopyright", "Copyright 2005-2015 Intel Corporation. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright 2005-2016 Intel Corporation. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" #ifndef TBB_USE_DEBUG VALUE "OriginalFilename", "tbbmalloc.dll\0" diff --git a/src/tbbmalloc/tbbmalloc_internal.h b/src/tbbmalloc/tbbmalloc_internal.h index 14b5b058..a0fe2cf8 100644 --- a/src/tbbmalloc/tbbmalloc_internal.h +++ b/src/tbbmalloc/tbbmalloc_internal.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/tbbmalloc_internal_api.h b/src/tbbmalloc/tbbmalloc_internal_api.h index 2eedc774..9aa0e1c7 100644 --- a/src/tbbmalloc/tbbmalloc_internal_api.h +++ b/src/tbbmalloc/tbbmalloc_internal_api.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/win32-gcc-tbbmalloc-export.def b/src/tbbmalloc/win32-gcc-tbbmalloc-export.def index a7378e8c..409c1718 100644 --- a/src/tbbmalloc/win32-gcc-tbbmalloc-export.def +++ b/src/tbbmalloc/win32-gcc-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/win32-tbbmalloc-export.def b/src/tbbmalloc/win32-tbbmalloc-export.def index b74cc882..f7dcac4b 100644 --- a/src/tbbmalloc/win32-tbbmalloc-export.def +++ b/src/tbbmalloc/win32-tbbmalloc-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/win64-gcc-tbbmalloc-export.def b/src/tbbmalloc/win64-gcc-tbbmalloc-export.def index 8b6e4335..a76ac2a6 100644 --- a/src/tbbmalloc/win64-gcc-tbbmalloc-export.def +++ b/src/tbbmalloc/win64-gcc-tbbmalloc-export.def @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/win64-tbbmalloc-export.def b/src/tbbmalloc/win64-tbbmalloc-export.def index 0fd069e3..a0675e40 100644 --- a/src/tbbmalloc/win64-tbbmalloc-export.def +++ b/src/tbbmalloc/win64-tbbmalloc-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbmalloc/xbox360-tbbmalloc-export.def b/src/tbbmalloc/xbox360-tbbmalloc-export.def index 0a010bc9..3a028e3b 100644 --- a/src/tbbmalloc/xbox360-tbbmalloc-export.def +++ b/src/tbbmalloc/xbox360-tbbmalloc-export.def @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbproxy/tbbproxy-windows.asm b/src/tbbproxy/tbbproxy-windows.asm index 2d0d3edc..ac0ed80c 100644 --- a/src/tbbproxy/tbbproxy-windows.asm +++ b/src/tbbproxy/tbbproxy-windows.asm @@ -1,4 +1,4 @@ -; Copyright 2005-2015 Intel Corporation. All Rights Reserved. +; Copyright 2005-2016 Intel Corporation. All Rights Reserved. ; ; This file is part of Threading Building Blocks. Threading Building Blocks is free software; ; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/tbbproxy/tbbproxy.cpp b/src/tbbproxy/tbbproxy.cpp index 3c5f3074..c97859c9 100644 --- a/src/tbbproxy/tbbproxy.cpp +++ b/src/tbbproxy/tbbproxy.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness.h b/src/test/harness.h index 177540e9..4dc7cff0 100644 --- a/src/test/harness.h +++ b/src/test/harness.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_allocator.h b/src/test/harness_allocator.h index 8392dbe4..10faec3e 100644 --- a/src/test/harness_allocator.h +++ b/src/test/harness_allocator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ #if __linux__ || __APPLE__ || __sun #include -#elif _WIN32 +#elif _WIN32 #include "tbb/machine/windows_api.h" #endif /* OS specific */ #include @@ -166,9 +166,8 @@ public: //! Destroy value at location pointed to by p. void destroy( pointer p ) { p->~value_type(); -#if _MSC_VER <= 1800 && defined(_MSC_VER) && !defined(__INTEL_COMPILER) + // suppress "unreferenced parameter" warnings by MSVC up to and including 2015 tbb::internal::suppress_unused_warning(p); -#endif } friend bool operator==(arena const& lhs, arena const& rhs){ @@ -225,7 +224,7 @@ public: static_counting_allocator(const base_alloc_t& src) throw() : base_alloc_t(src) { } - static_counting_allocator(const static_counting_allocator& src) throw() + static_counting_allocator(const static_counting_allocator& src) throw() : base_alloc_t(src) { } template @@ -529,7 +528,7 @@ public: //! Analogous to std::allocator, as defined in ISO C++ Standard, Section 20.4.1 /** @ingroup memory_allocation */ -template class Allocator> +template class Allocator> class debug_allocator : public Allocator { public: typedef Allocator base_allocator_type; diff --git a/src/test/harness_allocator_overload.h b/src/test/harness_allocator_overload.h index 28222f60..8b8eb165 100644 --- a/src/test/harness_allocator_overload.h +++ b/src/test/harness_allocator_overload.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_assert.h b/src/test/harness_assert.h index f3897dee..6da275e0 100644 --- a/src/test/harness_assert.h +++ b/src/test/harness_assert.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -27,8 +27,8 @@ #ifndef harness_assert_H #define harness_assert_H -void ReportError( const char* filename, int line, const char* expression, const char* message); -void ReportWarning( const char* filename, int line, const char* expression, const char* message); +void ReportError( const char* filename, int line, const char* expression, const char* message); +void ReportWarning( const char* filename, int line, const char* expression, const char* message); #define ASSERT_CUSTOM(p,message,file,line) ((p)?(void)0:ReportError(file,line,#p,message)) #define ASSERT(p,message) ASSERT_CUSTOM(p,message,__FILE__,__LINE__) diff --git a/src/test/harness_bad_expr.h b/src/test/harness_bad_expr.h index a7cc6525..86935772 100644 --- a/src/test/harness_bad_expr.h +++ b/src/test/harness_bad_expr.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -47,8 +47,8 @@ struct AssertionFailure { AssertionFailure( const char* filename, int line, const char* expression, const char* comment ); }; -AssertionFailure::AssertionFailure( const char* filename, int line, const char* expression, const char* comment ) : - message(comment) +AssertionFailure::AssertionFailure( const char* filename, int line, const char* expression, const char* comment ) : + message(comment) { ASSERT(filename,"missing filename"); ASSERT(0= 0, "too many destructions"); } diff --git a/src/test/harness_concurrency.h b/src/test/harness_concurrency.h index 9b283f8f..799e1f2b 100644 --- a/src/test/harness_concurrency.h +++ b/src/test/harness_concurrency.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -63,7 +63,7 @@ namespace Harness { return maxProcs; #if _WIN32||_WIN64 - ASSERT( max_threads <= 64 , "LimitNumberOfThreads doesn't support max_threads to be more than 64 on Windows." ); + ASSERT( max_threads <= 64 , "LimitNumberOfThreads doesn't support max_threads to be more than 64 on Windows." ); DWORD_PTR mask = 1; for ( int i = 1; i < max_threads; ++i ) mask |= mask << 1; diff --git a/src/test/harness_concurrency_checker.h b/src/test/harness_concurrency_checker.h index e795f10d..c9f9eb87 100644 --- a/src/test/harness_concurrency_checker.h +++ b/src/test/harness_concurrency_checker.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_concurrency_tracker.h b/src/test/harness_concurrency_tracker.h index dacee0fb..f9c5ce82 100644 --- a/src/test/harness_concurrency_tracker.h +++ b/src/test/harness_concurrency_tracker.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_cpu.h b/src/test/harness_cpu.h index bc2b812b..30bd5404 100644 --- a/src/test/harness_cpu.h +++ b/src/test/harness_cpu.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ // This header is an optional part of the test harness. // It assumes that "harness_assert.h" has already been included. -#if _WIN32 +#if _WIN32 #if !_XBOX #include #endif @@ -33,7 +33,7 @@ //! Return time (in seconds) spent by the current process in user mode. /* Returns 0 if not implemented on platform. */ -static double GetCPUUserTime() { +static double GetCPUUserTime() { #if _XBOX || __TBB_WIN8UI_SUPPORT return 0; #elif _WIN32 @@ -51,7 +51,7 @@ static double GetCPUUserTime() { // getrusage(RUSAGE_SELF, ...) that is used now only returns info for the calling thread; // getrusage(RUSAGE_CHILDREN, ...) only counts for finished children threads; // tms_utime and tms_cutime got with times(struct tms*) are equivalent to the above items; - // finally, /proc/self/task//stat doesn't exist on older kernels + // finally, /proc/self/task//stat doesn't exist on older kernels // and it isn't quite convenient to read it for every task_id. struct rusage resources; @@ -87,7 +87,7 @@ static void TestCPUUserTime( int nthreads, int nactive = 1 ) { while( (usrtime_delta=GetCPUUserTime()-lastusrtime) < THRESHOLD ) { for ( int i = 0; i < 1000; ++i ) ++k; // do fake work without which user time can stall if ( (waittime_delta = (tbb::tick_count::now()-stamp).seconds()) > maximal_waittime ) { - REPORT( "Warning: %.2f sec elapsed but user mode time is still below its threshold (%g < %g)\n", + REPORT( "Warning: %.2f sec elapsed but user mode time is still below its threshold (%g < %g)\n", waittime_delta, usrtime_delta, THRESHOLD ); break; } @@ -96,7 +96,7 @@ static void TestCPUUserTime( int nthreads, int nactive = 1 ) { // Wait for workers to go sleep stamp = tbb::tick_count::now(); - while( ((waittime_delta=(tbb::tick_count::now()-stamp).seconds()) < minimal_waittime) + while( ((waittime_delta=(tbb::tick_count::now()-stamp).seconds()) < minimal_waittime) || ((usrtime_delta=GetCPUUserTime()-lastusrtime) < THRESHOLD) ) { for ( int i = 0; i < 1000; ++i ) ++k; // do fake work without which user time can stall diff --git a/src/test/harness_defs.h b/src/test/harness_defs.h index be7e0f62..c9946236 100644 --- a/src/test/harness_defs.h +++ b/src/test/harness_defs.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -128,7 +128,7 @@ #define __TBB_THROW_FROM_DTOR_BROKEN (__clang__ && (__apple_build_version__ && __apple_build_version__ < 5000279 || __TBB_CLANG_VERSION && __TBB_CLANG_VERSION < 50000)) //std::uncaught_exception is broken on some version of stdlibc++ (it returns true with no active exception) -#define __TBB_STD_UNCAUGHT_EXCEPTION_BROKEN (__linux__ && (__TBB_GCC_VERSION == 40407 || __TBB_GCC_VERSION == 40802 || __TBB_GCC_VERSION == 40902)) +#define __TBB_STD_UNCAUGHT_EXCEPTION_BROKEN (__linux__ && (__TBB_GCC_VERSION == 40407 || __TBB_GCC_VERSION >= 40800 && __TBB_GCC_VERSION < 50300)) #if __TBB_LIBSTDCPP_EXCEPTION_HEADERS_BROKEN #define _EXCEPTION_PTR_H /* prevents exception_ptr.h inclusion */ diff --git a/src/test/harness_dynamic_libs.h b/src/test/harness_dynamic_libs.h index 5384e6c6..885e81bc 100644 --- a/src/test/harness_dynamic_libs.h +++ b/src/test/harness_dynamic_libs.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -80,7 +80,7 @@ typedef void *LIBRARY_HANDLE; LIBRARY_HANDLE OpenLibrary(const char *name) { #if _WIN32 || _WIN64 -#if __TBB_WIN8UI_SUPPORT +#if __TBB_WIN8UI_SUPPORT TCHAR wlibrary[MAX_PATH]; if ( MultiByteToWideChar(CP_UTF8, 0, name, -1, wlibrary, MAX_PATH) == 0 ) return false; return :: LoadPackagedLibrary( wlibrary, 0 ); diff --git a/src/test/harness_eh.h b/src/test/harness_eh.h index dc70e4a1..7507427b 100644 --- a/src/test/harness_eh.h +++ b/src/test/harness_eh.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -134,7 +134,7 @@ public: #if HARNESS_EH_SIMPLE_MODE -static void ThrowTestException () { +static void ThrowTestException () { ++g_ExceptionsThrown; throw test_exception(EXCEPTION_DESCR); } @@ -144,10 +144,10 @@ static void ThrowTestException () { static void ThrowTestException ( intptr_t threshold ) { bool inMaster = (Harness::CurrentTid() == g_Master); if ( !g_ThrowException || // if we're not supposed to throw - (!g_Flog && // if we're not catching throw in bodies and + (!g_Flog && // if we're not catching throw in bodies and (g_ExceptionInMaster ^ inMaster)) ) { // we're the master and not expected to throw // or are the master and the master is not the one to throw (??) - return; + return; } while ( Existed() < threshold ) __TBB_Yield(); diff --git a/src/test/harness_fp.h b/src/test/harness_fp.h index 08df60e4..f2f0d0bf 100644 --- a/src/test/harness_fp.h +++ b/src/test/harness_fp.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_graph.h b/src/test/harness_graph.h index 57252946..55b2d436 100644 --- a/src/test/harness_graph.h +++ b/src/test/harness_graph.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,7 +18,7 @@ reasons why the executable file might be covered by the GNU General Public License. */ -/** @file harness_graph.cpp +/** @file harness_graph.cpp This contains common helper classes and functions for testing graph nodes **/ @@ -70,7 +70,7 @@ struct convertor { template struct convertor { static tbb::flow::continue_msg convert_value(const InputType &/*i*/) { - return tbb::flow::continue_msg(); + return tbb::flow::continue_msg(); } }; @@ -154,11 +154,11 @@ struct harness_graph_executor { static inline OutputType func( InputType v ) { size_t c; // Declaration separate from initialization to avoid ICC internal error on IA-64 architecture c = current_executors.fetch_and_increment(); - ASSERT( max_executors == 0 || c <= max_executors, NULL ); + ASSERT( max_executors == 0 || c <= max_executors, NULL ); ++execute_count; OutputType v2 = (*fptr)(v); current_executors.fetch_and_decrement(); - return v2; + return v2; } template< typename RW > @@ -177,7 +177,7 @@ struct harness_graph_executor { OutputType operator()( InputType i ) { typename RW::scoped_lock l( harness_graph_executor::mutex_holder::mutex, /*write=*/false ); my_execute_count.fetch_and_increment(); - return harness_graph_executor::func(i); + return harness_graph_executor::func(i); } }; typedef tfunctor functor; @@ -204,7 +204,7 @@ struct harness_graph_multifunction_executor { static inline void func( const InputType &v, ports_type &p ) { size_t c; // Declaration separate from initialization to avoid ICC internal error on IA-64 architecture c = current_executors.fetch_and_increment(); - ASSERT( max_executors == 0 || c <= max_executors, NULL ); + ASSERT( max_executors == 0 || c <= max_executors, NULL ); ASSERT(tbb::flow::tuple_size::value == 1, NULL); ++execute_count; (*fptr)(v,p); @@ -427,7 +427,7 @@ struct harness_counting_sender : public tbb::flow::sender, NoCopy { /* override */ size_t successor_count() { return 0; } #endif - /* override */ bool try_get( T & v ) { + /* override */ bool try_get( T & v ) { size_t i = my_count.fetch_and_increment(); if ( i < my_limit ) { v = T( i ); @@ -456,16 +456,16 @@ struct harness_counting_sender : public tbb::flow::sender, NoCopy { while ( s->try_put( T(i) ) ) { ++my_received; i = my_count.fetch_and_increment(); - } + } } void try_put_until_limit() { successor_type *s = my_receiver; - for ( int i = 0; i < (int)my_limit; ++i ) { + for ( int i = 0; i < (int)my_limit; ++i ) { ASSERT( s->try_put( T(i) ), NULL ); ++my_received; - } + } ASSERT( my_received == my_limit, NULL ); } @@ -551,7 +551,7 @@ void test_resets() { tbb::flow::queue_node q0(g); T j; bool nFound[NN]; - + // reset empties buffer for(T i = 0; i < NN; ++i) { b0.try_put(i); @@ -651,7 +651,7 @@ void test_resets() { g.wait_for_all(); ASSERT((int)serial_fn_state0 == 1, "function_node executed when it shouldn't"); T outt; - ASSERT(b0.try_get(outt) && (T)23 == outt, "node lost its input"); + ASSERT(b0.try_get(outt) && (T)23 == outt, "node lost its input"); } } @@ -685,15 +685,15 @@ protected: typename NODE_TYPE::successor_list_type::iterator ms_list_iter; virtual void set_up_lists() { - in0_p_list.clear(); + in0_p_list.clear(); in0_s_list.clear(); - in1_p_list.clear(); + in1_p_list.clear(); in1_s_list.clear(); - mp_list.clear(); + mp_list.clear(); ms_list.clear(); - out0_p_list.clear(); + out0_p_list.clear(); out0_s_list.clear(); - out1_p_list.clear(); + out1_p_list.clear(); out1_s_list.clear(); in0.copy_predecessors(in0_p_list); in0.copy_successors(in0_s_list); @@ -734,20 +734,20 @@ protected: int first_pred = *(mp_list.begin()) == ins[0] ? 0 : ( *(mp_list.begin()) == ins[1] ? 1 : -1 ); mp_list_iter = mp_list.begin(); ++mp_list_iter; int second_pred = *mp_list_iter == ins[0] ? 0 : ( *mp_list_iter == ins[1] ? 1 : -1 ); - ASSERT( first_pred != -1 && second_pred != -1 && first_pred != second_pred, "bad predecessor(s) for middle" ); + ASSERT( first_pred != -1 && second_pred != -1 && first_pred != second_pred, "bad predecessor(s) for middle" ); int first_succ = *(ms_list.begin()) == outs[0] ? 0 : ( *(ms_list.begin()) == outs[1] ? 1 : -1 ); ms_list_iter = ++(ms_list.begin()); int second_succ = *ms_list_iter == outs[0] ? 0 : ( *ms_list_iter == outs[1] ? 1 : -1 ); - ASSERT( first_succ != -1 && second_succ != -1 && first_succ != second_succ, "bad successor(s) for middle" ); - + ASSERT( first_succ != -1 && second_succ != -1 && first_succ != second_succ, "bad successor(s) for middle" ); + in0.try_put(1); in1.try_put(2); g.wait_for_all(); int r = 0; int v = 0; - + ASSERT( in0.try_get(v) == false, "buffer should not have a value" ); ASSERT( in1.try_get(v) == false, "buffer should not have a value" ); ASSERT( middle.try_get(v) == false, "buffer should not have a value" ); @@ -783,17 +783,17 @@ protected: ASSERT( out0.successor_count() == 0 && out0_s_list.size() == 0, "expected 0 successors" ); ASSERT( out1.predecessor_count() == 1 && out1_p_list.size() == 1 && *(out1_p_list.begin()) == mp_ptr, "expected 1 predecessor" ); ASSERT( out1.successor_count() == 0 && out1_s_list.size() == 0, "expected 0 successors" ); - + ASSERT( middle.predecessor_count() == 1 && mp_list.size() == 1, "expected two predecessors" ); ASSERT( middle.successor_count() == 1 && ms_list.size() == 1, "expected two successors" ); - + ASSERT( *(mp_list.begin()) == ins[1], "incorrect predecessor" ); ASSERT( *(ms_list.begin()) == outs[1], "incorrect successor" ); - + in0.try_put(1); in1.try_put(2); g.wait_for_all(); - + int v = 0; ASSERT( in0.try_get(v) == true && v == 1, "buffer should have a value of 1" ); ASSERT( in1.try_get(v) == false, "buffer should not have a value" ); @@ -821,14 +821,14 @@ protected: ASSERT( out0.successor_count() == 0 && out0_s_list.size() == 0, "expected 0 successors" ); ASSERT( out1.predecessor_count() == 0 && out1_p_list.size() == 0, "expected 0 predecessors" ); ASSERT( out1.successor_count() == 0 && out1_s_list.size() == 0, "expected 0 successors" ); - + ASSERT( middle.predecessor_count() == 0 && mp_list.size() == 0, "expected 0 predecessors" ); ASSERT( middle.successor_count() == 0 && ms_list.size() == 0, "expected 0 successors" ); - + in0.try_put(1); in1.try_put(2); g.wait_for_all(); - + int v = 0; ASSERT( in0.try_get(v) == true && v == 1, "buffer should have a value of 1" ); ASSERT( in1.try_get(v) == true && v == 2, "buffer should have a value of 2" ); @@ -843,7 +843,7 @@ protected: public: - test_buffer_base_extract(tbb::flow::graph &_g, NODE_TYPE &i0, NODE_TYPE &i1, NODE_TYPE &m, NODE_TYPE &o0, NODE_TYPE &o1) : + test_buffer_base_extract(tbb::flow::graph &_g, NODE_TYPE &i0, NODE_TYPE &i1, NODE_TYPE &m, NODE_TYPE &o0, NODE_TYPE &o1) : g(_g), in0(i0), in1(i1), middle(m), out0(o0), out1(o1) { ins[0] = &in0; ins[1] = &in1; @@ -852,7 +852,7 @@ public: ms_ptr = static_cast< typename NODE_TYPE::successor_type * >(&middle); mp_ptr = static_cast< typename NODE_TYPE::predecessor_type *>(&middle); } - + virtual ~test_buffer_base_extract() {} void run_tests() { @@ -873,7 +873,7 @@ public: make_and_validate_full_graph(); } - + }; template< typename NODE_TYPE > @@ -886,7 +886,7 @@ protected: NODE_TYPE my_out0; NODE_TYPE my_out1; public: - test_buffer_extract() : test_buffer_base_extract( my_g, my_in0, my_in1, my_middle, my_out0, my_out1), + test_buffer_extract() : test_buffer_base_extract( my_g, my_in0, my_in1, my_middle, my_out0, my_out1), my_in0(my_g), my_in1(my_g), my_middle(my_g), my_out0(my_g), my_out1(my_g) { } }; @@ -907,12 +907,12 @@ protected: count_t out1_count; struct always_zero { size_t operator()(int) { return 0; } }; - struct always_inc { + struct always_inc { count_t *c; always_inc(count_t &_c) : c(&_c) {} - size_t operator()(int) { + size_t operator()(int) { return c->fetch_and_increment(); - } + } }; /*override*/void set_up_lists() { @@ -925,9 +925,9 @@ protected: public: - test_buffer_extract() : test_buffer_base_extract( my_g, my_in0, my_in1, my_middle, my_out0, my_out1), - my_in0(my_g, always_zero()), my_in1(my_g, always_zero()), my_middle(my_g, always_inc(middle_count)), - my_out0(my_g, always_inc(out0_count)), my_out1(my_g, always_inc(out1_count)) { + test_buffer_extract() : test_buffer_base_extract( my_g, my_in0, my_in1, my_middle, my_out0, my_out1), + my_in0(my_g, always_zero()), my_in1(my_g, always_zero()), my_middle(my_g, always_inc(middle_count)), + my_out0(my_g, always_inc(out0_count)), my_out1(my_g, always_inc(out1_count)) { } }; @@ -947,7 +947,7 @@ void test_extract_on_node() { tbb::flow::make_edge(node0, q2); q0.try_put(ItemType(i)); g.wait_for_all(); - + /* q0 */ /* \ */ /* \ */ @@ -955,14 +955,14 @@ void test_extract_on_node() { /* / */ /* / */ /* q1 */ - + ASSERT(node0.predecessor_count() == 2 && q0.successor_count() == 1 && q1.successor_count() == 1, "bad predecessor count"); ASSERT(node0.successor_count() == 1 && q2.predecessor_count() == 1, "bad successor count"); ASSERT(q2.try_get(dont_care) && int(dont_care) == i, "item not forwarded"); typename NType::successor_list_type sv, sv1; typename NType::predecessor_list_type pv, pv1; - + pv1.push_back(&q0); pv1.push_back(&q1); sv1.push_back(&q2); @@ -970,7 +970,7 @@ void test_extract_on_node() { node0.copy_successors(sv); ASSERT(lists_match(pv,pv1), "predecessor vector incorrect"); ASSERT(lists_match(sv,sv1), "successor vector incorrect"); - + if(i == 0) { node0.extract(); } diff --git a/src/test/harness_inject_scheduler.h b/src/test/harness_inject_scheduler.h index 7f89bf36..61d9c6c9 100644 --- a/src/test/harness_inject_scheduler.h +++ b/src/test/harness_inject_scheduler.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,7 +34,7 @@ // Suppress usage of #pragma comment #define __TBB_NO_IMPLICIT_LINKAGE 1 -// Enable preview features if any +// Enable preview features if any #define __TBB_BUILD 1 #undef DO_ITT_NOTIFY diff --git a/src/test/harness_iterator.h b/src/test/harness_iterator.h index a43a37b5..986b813f 100644 --- a/src/test/harness_iterator.h +++ b/src/test/harness_iterator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,11 +37,11 @@ public: typedef typename std::allocator::pointer pointer; typedef typename std::allocator::reference reference; #endif /* HARNESS_EXTENDED_STD_COMPLIANCE */ - + explicit InputIterator( T * ptr): my_ptr(ptr){} - + T& operator* () { return *my_ptr; } - + InputIterator& operator++ () { ++my_ptr; return *this; } bool operator== ( const InputIterator& r ) { return my_ptr == r.my_ptr; } @@ -58,13 +58,13 @@ public: typedef typename std::allocator::pointer pointer; typedef typename std::allocator::reference reference; #endif /* HARNESS_EXTENDED_STD_COMPLIANCE */ - + explicit ForwardIterator ( T * ptr ) : my_ptr(ptr){} - + ForwardIterator ( const ForwardIterator& r ) : my_ptr(r.my_ptr){} - + T& operator* () { return *my_ptr; } - + ForwardIterator& operator++ () { ++my_ptr; return *this; } bool operator== ( const ForwardIterator& r ) { return my_ptr == r.my_ptr; } diff --git a/src/test/harness_m128.h b/src/test/harness_m128.h index e20d057f..d3a0e9bd 100644 --- a/src/test/harness_m128.h +++ b/src/test/harness_m128.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ // did not always provide proper stack alignment in destructors of such objects. #if (_MSC_VER>=1600) -//TODO: handle /arch:AVX in the right way. +//TODO: handle /arch:AVX in the right way. #pragma warning (push) #pragma warning (disable: 4752) #endif @@ -40,7 +40,7 @@ class ClassWithVectorType { __Mvec field[n]; void init( int start ); public: - ClassWithVectorType() {init(-n);} + ClassWithVectorType() {init(-n);} ClassWithVectorType( int i ) {init(i);} void operator=( const ClassWithVectorType& src ) { __Mvec stack[n]; @@ -65,7 +65,7 @@ template void ClassWithVectorType<__Mvec>::init( int start ) { __Mvec stack[n]; for( int i=0; i #include -#elif __APPLE__ +#elif __APPLE__ && !__ARM_ARCH #include #include #include -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 +#if MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6 || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 #include #else #include @@ -53,7 +53,7 @@ const size_t shared_size = 0; //! Return estimate of number of bytes of memory that this program is currently using. /* Returns 0 if not implemented on platform. */ -size_t GetMemoryUsage() { +size_t GetMemoryUsage() { #if _XBOX || __TBB_WIN8UI_SUPPORT return 0; #elif _WIN32 @@ -73,7 +73,7 @@ size_t GetMemoryUsage() { } fclose(statsfile); return total_mem*pagesize; -#elif __APPLE__ +#elif __APPLE__ && !__ARM_ARCH kern_return_t status; task_basic_info info; mach_msg_type_number_t msg_type = TASK_BASIC_INFO_COUNT; @@ -90,7 +90,7 @@ size_t GetMemoryUsage() { void UseStackSpace( size_t amount, char* top=0 ) { char x[1000]; memset( x, -1, sizeof(x) ); - if( !top ) + if( !top ) top = x; ASSERT( x<=top, "test assumes that stacks grow downwards" ); if( size_t(top-x)()) ? (void)0 : TRACE diff --git a/src/test/harness_runtime_loader.h b/src/test/harness_runtime_loader.h index a01d8dc3..35e65895 100644 --- a/src/test/harness_runtime_loader.h +++ b/src/test/harness_runtime_loader.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_task.h b/src/test/harness_task.h index 5c43234a..7e4a3e81 100644 --- a/src/test/harness_task.h +++ b/src/test/harness_task.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -26,11 +26,11 @@ tbb::task* GetTaskPtr( int& counter ) { ++counter; return NULL; } - + class TaskGenerator: public tbb::task { int m_ChildCount; int m_Depth; - + public: TaskGenerator( int child_count, int _depth ) : m_ChildCount(child_count), m_Depth(_depth) {} ~TaskGenerator( ) { m_ChildCount = m_Depth = -125; } @@ -40,7 +40,7 @@ public: if( m_Depth>0 ) { recycle_as_safe_continuation(); set_ref_count( m_ChildCount+1 ); - int k=0; + int k=0; for( int j=0; jspawn(t); diff --git a/src/test/harness_tbb_independence.h b/src/test/harness_tbb_independence.h index 356e2778..1f069364 100644 --- a/src/test/harness_tbb_independence.h +++ b/src/test/harness_tbb_independence.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_test_cases_framework.h b/src/test/harness_test_cases_framework.h index c48ef5ea..fc8260f2 100644 --- a/src/test/harness_test_cases_framework.h +++ b/src/test/harness_test_cases_framework.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/harness_tsx.h b/src/test/harness_tsx.h index 4dc084de..d8bb2c50 100644 --- a/src/test/harness_tsx.h +++ b/src/test/harness_tsx.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ // Header that includes TSX-specific test functions -#if __TBB_TSX_AVAILABLE +#if __TBB_TSX_AVAILABLE #define __TBB_TSX_TESTING_ENABLED_FOR_THIS_COMPILER (__INTEL_COMPILER || __GNUC__ || _MSC_VER || __SUNPRO_CC) #if __TBB_TSX_TESTING_ENABLED_FOR_THIS_COMPILER diff --git a/src/test/test_ScalableAllocator.cpp b/src/test/test_ScalableAllocator.cpp index 535b5540..53fabc7c 100644 --- a/src/test/test_ScalableAllocator.cpp +++ b/src/test/test_ScalableAllocator.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -25,7 +25,7 @@ #include "harness_assert.h" #if !__TBB_SOURCE_DIRECTLY_INCLUDED -// harness_allocator.h requires atimics. We do not want dependency +// harness_allocator.h requires atimics. We do not want dependency // to TBB library to get atomics, so add rudimentary implementation of them. #include "harness_tbb_independence.h" #endif diff --git a/src/test/test_ScalableAllocator_STL.cpp b/src/test/test_ScalableAllocator_STL.cpp index 51cb6cca..cff971c5 100644 --- a/src/test/test_ScalableAllocator_STL.cpp +++ b/src/test/test_ScalableAllocator_STL.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_aggregator.cpp b/src/test/test_aggregator.cpp index a4c5a486..4a87929a 100644 --- a/src/test/test_aggregator.cpp +++ b/src/test/test_aggregator.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -60,7 +60,7 @@ class BasicBody : NoAssign { pq_t& pq; tbb::aggregator& agg; public: - BasicBody(pq_t& pq_, tbb::aggregator& agg_) : pq(pq_), agg(agg_) {} + BasicBody(pq_t& pq_, tbb::aggregator& agg_) : pq(pq_), agg(agg_) {} void operator()(const int threadID) const { for (int i=0; i to waste less space\n", type_name ); + REPORT("Consider rewriting aligned_space<%s,N> to waste less space\n", type_name ); } diff --git a/src/test/test_allocator.h b/src/test/test_allocator.h index 4a5d3ecb..8fb7dc4c 100644 --- a/src/test/test_allocator.h +++ b/src/test/test_allocator.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ // Tests against requirements in 20.1.5 of ISO C++ Standard (1998). // Does not check for thread safety or false sharing issues. // -// Tests for compatibility with the host's STL are in +// Tests for compatibility with the host's STL are in // test_Allocator_STL.h. Those tests are in a separate file // because they bring in lots of STL headers, and the tests here // are supposed to work in the abscense of STL. @@ -86,7 +86,7 @@ public: }; #endif -//! T is type and A is allocator for that type +//! T is type and A is allocator for that type template void TestBasic( A& a ) { T x; @@ -114,7 +114,7 @@ void TestBasic( A& a ) { --difference; ASSERT( difference<0, "not an signed integral type?" ); - // "rebind" tested by our caller + // "rebind" tested by our caller ASSERT( a.address(rx)==px, NULL ); @@ -131,8 +131,8 @@ void TestBasic( A& a ) { // Test hint argument. This can't be compiled when hint is void*, It should be const void* typename A::pointer a_ptr; - const void * const_hint = NULL; - a_ptr = a.allocate (1, const_hint); + const void * const_hint = NULL; + a_ptr = a.allocate (1, const_hint); a.deallocate(a_ptr, 1); // Test "a.deallocate(p,n) @@ -145,9 +145,9 @@ void TestBasic( A& a ) { // Test "a.max_size()" AssertSameType( a.max_size(), typename A::size_type(0) ); - // Following assertion catches case where max_size() is so large that computation of + // Following assertion catches case where max_size() is so large that computation of // number of bytes for such an allocation would overflow size_type. - ASSERT( a.max_size()*typename A::size_type(sizeof(T))>=a.max_size(), "max_size larger than reasonable" ); + ASSERT( a.max_size()*typename A::size_type(sizeof(T))>=a.max_size(), "max_size larger than reasonable" ); // Test "a.construct(p,t)" int n = NumberOfFoo; @@ -259,7 +259,7 @@ void Test(A &a) { // thread safety NativeParallelFor( 4, Body(a) ); ASSERT( NumberOfFoo==0, "Allocate/deallocate count mismatched" ); - + ASSERT( a==b, NULL ); ASSERT( !(a!=b), NULL ); } diff --git a/src/test/test_allocator_STL.h b/src/test/test_allocator_STL.h index cc0dd8f1..4d6ebae1 100644 --- a/src/test/test_allocator_STL.h +++ b/src/test/test_allocator_STL.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -26,7 +26,7 @@ template void TestSequence(const typename Container::allocator_type &a) { Container c(a); for( int i=0; i<1000; ++i ) - c.push_back(i*i); + c.push_back(i*i); typename Container::const_iterator p = c.begin(); for( int i=0; i<1000; ++i ) { ASSERT( *p==i*i, NULL ); @@ -40,7 +40,7 @@ template void TestSet(const typename Set::allocator_type &a) { Set s(typename Set::key_compare(), a); typedef typename Set::value_type value_type; - for( int i=0; i<100; ++i ) + for( int i=0; i<100; ++i ) s.insert(value_type(3*i)); for( int i=0; i<300; ++i ) { ASSERT( s.erase(i)==size_t(i%3==0), NULL ); @@ -51,7 +51,7 @@ template void TestMap(const typename Map::allocator_type &a) { Map m(typename Map::key_compare(), a); typedef typename Map::value_type value_type; - for( int i=0; i<100; ++i ) + for( int i=0; i<100; ++i ) m.insert(value_type(i,i*i)); for( int i=0; i<100; ++i ) ASSERT( m.find(i)->second==i*i, NULL ); diff --git a/src/test/test_assembly.cpp b/src/test/test_assembly.cpp index 2770ff1e..11688e56 100644 --- a/src/test/test_assembly.cpp +++ b/src/test/test_assembly.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -41,7 +41,7 @@ using tbb::internal::reference_count; //TODO: remove this function when atomic function __TBB_XXX are dropped //! Test __TBB_CompareAndSwapW static void TestCompareExchange() { - ASSERT( intptr_t(-10)<10, "intptr_t not a signed integral type?" ); + ASSERT( intptr_t(-10)<10, "intptr_t not a signed integral type?" ); REMARK("testing __TBB_CompareAndSwapW\n"); for( intptr_t a=-10; a<10; ++a ) for( intptr_t b=-10; b<10; ++b ) @@ -54,8 +54,8 @@ static void TestCompareExchange() { intptr_t x = a; #endif intptr_t y = __TBB_CompareAndSwapW(&x,b,c); - ASSERT( y==a, NULL ); - if( a==c ) + ASSERT( y==a, NULL ); + if( a==c ) ASSERT( x==b, NULL ); else ASSERT( x==a, NULL ); @@ -121,8 +121,8 @@ static void TestLog2() { if( uintptr_t k = i*j ) { uintptr_t actual = __TBB_Log2(k); const uintptr_t ONE = 1; // warning suppression again - ASSERT( k >= ONE<>1 < ONE<= ONE<>1 < ONE< + template friend struct place_wrapper; int value; public: - minimal_type() : value(-1) {} - minimal_type(int v) : value(v) {} + minimal_type() : value(-1) {} + minimal_type(int v) : value(v) {} minimal_type(const minimal_type &m) : value(m.value) { } minimal_type &operator=(const minimal_type &m) { value = m.value; return *this; } }; @@ -59,11 +59,11 @@ struct place_wrapper { place_wrapper( ) : value(0) { thread_id = tbb::this_tbb_thread::get_id(); - task_ptr = &tbb::task::self(); + task_ptr = &tbb::task::self(); } place_wrapper( int v ) : value(v) { thread_id = tbb::this_tbb_thread::get_id(); - task_ptr = &tbb::task::self(); + task_ptr = &tbb::task::self(); } place_wrapper( const place_wrapper &v ) : value(v.value), thread_id(v.thread_id), task_ptr(v.task_ptr) { } @@ -75,20 +75,20 @@ template struct wrapper_helper { static void check(const T1 &, const T2 &) { } - static void copy_value(const T1 &in, T2 &out) { + static void copy_value(const T1 &in, T2 &out) { out = in; } }; template struct wrapper_helper< place_wrapper, place_wrapper > { - static void check(const place_wrapper &a, const place_wrapper &b) { + static void check(const place_wrapper &a, const place_wrapper &b) { REMARK("a.task_ptr == %p != b.task_ptr == %p\n", a.task_ptr, b.task_ptr); ASSERT( (a.thread_id != b.thread_id), "same thread used to execute adjacent nodes"); ASSERT( (a.task_ptr != b.task_ptr), "same task used to execute adjacent nodes"); return; } - static void copy_value(const place_wrapper &in, place_wrapper &out) { + static void copy_value(const place_wrapper &in, place_wrapper &out) { out.value = in.value; } }; @@ -110,13 +110,13 @@ struct counting_async_body { } void operator()( const int &input, counting_async_gateway_type& my_node ) { - REMARK( "Body execution with input == %d\n", input); + REMARK( "Body execution with input == %d\n", input); ++my_async_body_exec_count; ++async_body_exec_count; if ( input == -1 ) { bool result = tbb::task::self().group()->cancel_group_execution(); REMARK( "Canceling graph execution\n" ); - ASSERT( result == true, "attempted to cancel graph twice" ); + ASSERT( result == true, "attempted to cancel graph twice" ); Harness::Sleep(50); } my_node.async_try_put(input); @@ -144,7 +144,7 @@ void test_reset() { a.try_put(-1); for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); // should be canceled with only 1 item reaching the async_body and the counting receivers // and N items left in the node's queue @@ -163,7 +163,7 @@ void test_reset() { REMARK( "N body executions\n" ); for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); ASSERT( g.is_cancelled() == false, "task group not canceled" ); @@ -183,7 +183,7 @@ void test_reset() { g.reset(tbb::flow::rf_reset_bodies); for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); ASSERT( g.is_cancelled() == false, "task group not canceled" ); @@ -202,7 +202,7 @@ void test_reset() { g.reset(tbb::flow::rf_clear_edges); for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); ASSERT( g.is_cancelled() == false, "task group not canceled" ); @@ -225,7 +225,7 @@ void test_reset() { #endif for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); ASSERT( g.is_cancelled() == false, "task group not canceled" ); @@ -245,7 +245,7 @@ void test_reset() { g.reset(static_cast(tbb::flow::rf_reset_bodies|tbb::flow::rf_clear_edges)); for (int i = 0; i < N; ++i) { a.try_put(i); - } + } g.wait_for_all(); ASSERT( g.is_cancelled() == false, "task group not canceled" ); @@ -368,15 +368,15 @@ struct basic_test { typedef typename async_node_type::async_gateway_type async_gateway_type; public: typedef async_activity async_activity_type; - + async_body_type( async_activity_type* aa ) : my_async_activity( aa ) { } - async_body_type( const async_body_type& other ) : my_async_activity( other.my_async_activity ) { } + async_body_type( const async_body_type& other ) : my_async_activity( other.my_async_activity ) { } void operator()( const input_type &input, async_gateway_type& my_node ) { ++async_body_exec_count; my_async_activity->submit( input, my_node ); - if ( my_async_activity->should_reserve_each_time() ) + if ( my_async_activity->should_reserve_each_time() ) my_node.async_reserve(); } @@ -407,13 +407,13 @@ public: async_node_type offload_node( g, tbb::flow::unlimited, [&] (const input_type &input, async_gateway_type& my_node) { ++async_body_exec_count; my_async_activity.submit( input, my_node ); - if ( my_async_activity.should_reserve_each_time() ) + if ( my_async_activity.should_reserve_each_time() ) my_node.async_reserve(); } ); #else async_node_type offload_node( g, tbb::flow::unlimited, async_body_type( &my_async_activity ) ); #endif - + tbb::flow::function_node< output_type > end_node( g, tbb::flow::unlimited, end_body_type() ); tbb::flow::make_edge( start_node, offload_node ); @@ -423,7 +423,7 @@ public: tbb::flow::make_edge( tbb::flow::output_port<0>(offload_node), end_node ); #endif async_body_exec_count = 0; - async_activity_processed_msg_count = 0; + async_activity_processed_msg_count = 0; end_body_exec_count = 0; if (async_expected_items != UNKNOWN_NUMBER_OF_ITEMS ) { @@ -436,7 +436,7 @@ public: ASSERT( async_body_exec_count == NUMBER_OF_MSGS, "AsyncBody procesed wrong number of signals" ); ASSERT( async_activity_processed_msg_count == NUMBER_OF_MSGS, "AsyncActivity processed wrong number of signals" ); ASSERT( end_body_exec_count == NUMBER_OF_MSGS, "EndBody processed wrong number of signals"); - REMARK("async_body_exec_count == %d == async_activity_processed_msg_count == %d == end_body_exec_count == %d\n", + REMARK("async_body_exec_count == %d == async_activity_processed_msg_count == %d == end_body_exec_count == %d\n", int(async_body_exec_count), int(async_activity_processed_msg_count), int(end_body_exec_count)); return Harness::Done; } @@ -510,10 +510,10 @@ struct spin_test { typedef typename async_node_type::async_gateway_type async_gateway_type; public: typedef async_activity async_activity_type; - + async_body_type( async_activity_type* aa ) : my_async_activity( aa ) { } - async_body_type( const async_body_type& other ) : my_async_activity( other.my_async_activity ) { } + async_body_type( const async_body_type& other ) : my_async_activity( other.my_async_activity ) { } void operator()( const input_type &input, async_gateway_type& my_node ) { ++async_body_exec_count; @@ -538,7 +538,7 @@ struct spin_test { ++end_body_exec_count; if (tbb::this_tbb_thread::get_id() == my_main_tid) { ++main_tid_count; - } + } my_barrier->timed_wait_noerror(10); } }; diff --git a/src/test/test_atomic.cpp b/src/test/test_atomic.cpp index 4e3de015..dcaf5326 100644 --- a/src/test/test_atomic.cpp +++ b/src/test/test_atomic.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -97,7 +97,7 @@ template tbb::atomic TestStruct::gCo //! Test compare_and_swap template members of class atomic for memory_semantics=M template void TestCompareAndSwapWithExplicitOrdering( T i, T j, T k ) { - ASSERT( i!=k, "values must be distinct" ); + ASSERT( i!=k, "values must be distinct" ); // Test compare_and_swap that should fail TestStruct x(i); T old = x.counter.template compare_and_swap( j, k ); @@ -717,9 +717,9 @@ void TestAtomicEnum() { enum class ScopedColor1 {ScopedRed,ScopedGreen,ScopedBlue=-1}; // TODO: extend the test to cover 2 byte scoped enum as well #if __TBB_ICC_SCOPED_ENUM_WITH_UNDERLYING_TYPE_NEGATIVE_VALUE_BROKEN -enum class ScopedColor2 : char {ScopedZero, ScopedOne,ScopedRed=42,ScopedGreen=-1,ScopedBlue=127}; +enum class ScopedColor2 : signed char {ScopedZero, ScopedOne,ScopedRed=42,ScopedGreen=-1,ScopedBlue=127}; #else -enum class ScopedColor2 : char {ScopedZero, ScopedOne,ScopedRed=-128,ScopedGreen=-1,ScopedBlue=127}; +enum class ScopedColor2 : signed char {ScopedZero, ScopedOne,ScopedRed=-128,ScopedGreen=-1,ScopedBlue=127}; #endif // TODO: replace the hack of getting symbolic enum name with a better implementation @@ -730,7 +730,7 @@ std::string to_string(const ScopedColor1& a){ } template<> std::string to_string(const ScopedColor2& a){ - return enum_strings[a==ScopedColor2::ScopedRed? 2 : + return enum_strings[a==ScopedColor2::ScopedRed? 2 : a==ScopedColor2::ScopedGreen? 3 : a==ScopedColor2::ScopedBlue? 4 : (int)a ]; } @@ -1286,7 +1286,7 @@ public: if( flag!=(T)-1 ) { REPORT("ERROR: flag!=(T)-1 k=%d i=%d trial=%x type=%s (atomicity problem?)\n", k, i, trial, name ); ParallelError = true; - } + } if( !IsRelaxed(E) && message!=(T)-1 ) { REPORT("ERROR: message!=(T)-1 k=%d i=%d trial=%x type=%s mode=%d (memory fence problem?)\n", k, i, trial, name, E ); ParallelError = true; diff --git a/src/test/test_blocked_range.cpp b/src/test/test_blocked_range.cpp index 42cb5e83..58e5398d 100644 --- a/src/test/test_blocked_range.cpp +++ b/src/test/test_blocked_range.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_blocked_range2d.cpp b/src/test/test_blocked_range2d.cpp index 1574fe96..3fcf6c79 100644 --- a/src/test/test_blocked_range2d.cpp +++ b/src/test/test_blocked_range2d.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ template class AbstractValueType { AbstractValueType() {} int value; -public: +public: template friend AbstractValueType MakeAbstractValueType( int i ); @@ -131,7 +131,7 @@ void ParallelTest() { ASSERT( Array[k][l]==(k class AbstractValueType { AbstractValueType() {} int value; -public: +public: template friend AbstractValueType MakeAbstractValueType( int i ); @@ -161,7 +161,7 @@ void ParallelTest() { Array[l][m][n] = 0; } } - } + } } } } @@ -170,7 +170,7 @@ void ParallelTest() { #include "tbb/task_scheduler_init.h" int TestMain () { - SerialTest(); + SerialTest(); for( int p=MinThread; p<=MaxThread; ++p ) { tbb::task_scheduler_init init(p); ParallelTest(); diff --git a/src/test/test_broadcast_node.cpp b/src/test/test_broadcast_node.cpp index 4384be41..d566ea2d 100644 --- a/src/test/test_broadcast_node.cpp +++ b/src/test/test_broadcast_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -97,7 +97,7 @@ void test_serial_broadcasts() { for ( int r = 0; r < num_receivers; ++r ) { tbb::flow::make_edge( b, receivers[r] ); - } + } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES ASSERT( b.successor_count() == (size_t)num_receivers, NULL); #endif @@ -111,9 +111,9 @@ void test_serial_broadcasts() { ASSERT( receivers[r][n] == 1, NULL ); } tbb::flow::remove_edge( b, receivers[r] ); - } + } ASSERT( b.try_put( (T)0 ), NULL ); - for ( int r = 0; r < num_receivers; ++r ) + for ( int r = 0; r < num_receivers; ++r ) ASSERT( receivers[0][0] == 1, NULL ) ; delete [] receivers; @@ -129,14 +129,14 @@ class native_body : private NoAssign { public: - native_body( tbb::flow::broadcast_node &b ) : my_b(b) {} + native_body( tbb::flow::broadcast_node &b ) : my_b(b) {} void operator()(int) const { for (int n = 0; n < N; ++n ) { ASSERT( my_b.try_put( (T)n ), NULL ); } } - + }; template< typename T > @@ -146,7 +146,7 @@ void run_parallel_broadcasts(int p, tbb::flow::broadcast_node& b) { for ( int r = 0; r < num_receivers; ++r ) { tbb::flow::make_edge( b, receivers[r] ); - } + } NativeParallelFor( p, native_body( b ) ); @@ -155,9 +155,9 @@ void run_parallel_broadcasts(int p, tbb::flow::broadcast_node& b) { ASSERT( (int)receivers[r][n] == p, NULL ); } tbb::flow::remove_edge( b, receivers[r] ); - } + } ASSERT( b.try_put( (T)0 ), NULL ); - for ( int r = 0; r < num_receivers; ++r ) + for ( int r = 0; r < num_receivers; ++r ) ASSERT( (int)receivers[r][0] == p, NULL ) ; delete [] receivers; @@ -171,7 +171,7 @@ void test_parallel_broadcasts(int p) { tbb::flow::graph g; tbb::flow::broadcast_node b(g); run_parallel_broadcasts(p, b); - + // test copy constructor tbb::flow::broadcast_node b_copy(b); run_parallel_broadcasts(p, b_copy); @@ -317,7 +317,7 @@ void test_extract() { } #endif // TBB_PREVIEW_FLOW_GRAPH_FEATURES -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_buffer_node.cpp b/src/test/test_buffer_node.cpp index 4f119afd..45be48f0 100644 --- a/src/test/test_buffer_node.cpp +++ b/src/test/test_buffer_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -63,9 +63,9 @@ struct touches { int my_num_threads; touches( int num_threads ) : my_num_threads(num_threads) { - my_touches = new bool* [my_num_threads]; + my_touches = new bool* [my_num_threads]; for ( int p = 0; p < my_num_threads; ++p) { - my_touches[p] = new bool[N]; + my_touches[p] = new bool[N]; for ( int n = 0; n < N; ++n) my_touches[p][n] = false; } @@ -80,7 +80,7 @@ struct touches { bool check( T v ) { ASSERT ( my_touches[v/N][v%N] == false, NULL); - my_touches[v/N][v%N] = true; + my_touches[v/N][v%N] = true; return true; } @@ -123,7 +123,7 @@ struct parallel_put_get : NoAssign { void operator()(int tid) const { for ( int i = 0; i < N; i+=C ) { - int j_end = ( N < i + C ) ? N : i + C; + int j_end = ( N < i + C ) ? N : i + C; // dump about C values into the buffer for ( int j = i; j < j_end; ++j ) { ASSERT( my_b.try_put( T (N*tid + j ) ) == true, NULL ); @@ -155,7 +155,7 @@ int test_reservation() { b.try_put(T(1)); b.try_put(T(2)); b.try_put(T(3)); - + T v, vsum; ASSERT( b.try_reserve(v) == true, NULL ); ASSERT( b.try_release() == true, NULL ); @@ -166,12 +166,12 @@ int test_reservation() { vsum += v; v = bogus_value; g.wait_for_all(); - + ASSERT( b.try_get(v) == true, NULL ); vsum += v; v = bogus_value; g.wait_for_all(); - + ASSERT( b.try_reserve(v) == true, NULL ); ASSERT( b.try_release() == true, NULL ); v = bogus_value; @@ -300,7 +300,7 @@ int test_parallel(int num_threads) { // Tests // // Predecessors cannot be registered -// Empty buffer rejects item requests +// Empty buffer rejects item requests // Single serial sender, items in arbitrary order // Chained buffers ( 2 & 3 ), single sender, items at last buffer in arbitrary order // @@ -426,13 +426,13 @@ int test_serial() { return 0; } -int TestMain() { +int TestMain() { tbb::tick_count start = tbb::tick_count::now(), stop; for (int p = 2; p <= 4; ++p) { tbb::task_scheduler_init init(p); test_serial(); test_parallel(p); - } + } stop = tbb::tick_count::now(); REMARK("Buffer_Node Time=%6.6f\n", (stop-start).seconds()); test_resets >(); diff --git a/src/test/test_cache_aligned_allocator.cpp b/src/test/test_cache_aligned_allocator.cpp index 645f8530..e9b87420 100644 --- a/src/test/test_cache_aligned_allocator.cpp +++ b/src/test/test_cache_aligned_allocator.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_cache_aligned_allocator_STL.cpp b/src/test/test_cache_aligned_allocator_STL.cpp index ebce6e47..f85b66e7 100644 --- a/src/test/test_cache_aligned_allocator_STL.cpp +++ b/src/test/test_cache_aligned_allocator_STL.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_cilk_common.h b/src/test/test_cilk_common.h index 85f8826a..2be97b91 100644 --- a/src/test/test_cilk_common.h +++ b/src/test/test_cilk_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -60,7 +60,7 @@ class FibTask: public tbb::task { spawn (*new( allocate_child() ) FibTask(x,n-1)); spawn (*new( allocate_child() ) FibTask(y,n-2)); } - wait_for_all(); + wait_for_all(); task* self1 = &task::self(); ASSERT( self0 == self1, "failed to preserve TBB TLS" ); result = x+y; diff --git a/src/test/test_cilk_dynamic_load.cpp b/src/test/test_cilk_dynamic_load.cpp index 4fbd27ec..2782d7c9 100644 --- a/src/test/test_cilk_dynamic_load.cpp +++ b/src/test/test_cilk_dynamic_load.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -131,7 +131,7 @@ int TBB_Fib( int n ) { } } -void RunSandwich() { +void RunSandwich() { tbb::task_scheduler_init init(P_outer); int m = TBB_Fib(N); ASSERT( m == F, NULL ); diff --git a/src/test/test_cilk_interop.cpp b/src/test/test_cilk_interop.cpp index 00d27f64..8f95934d 100644 --- a/src/test/test_cilk_interop.cpp +++ b/src/test/test_cilk_interop.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -124,7 +124,7 @@ void RunCilkOnlyConcurrently ( tbb_sched_injection_mode_t sim ) { NativeParallelFor( P_outer, FibBody() ); } -void RunSandwich( bool sandwich ) { +void RunSandwich( bool sandwich ) { g_sandwich = sandwich; tbb::task_scheduler_init init(P_outer); int m = TBB_Fib(N); diff --git a/src/test/test_combinable.cpp b/src/test/test_combinable.cpp index 59be6415..3da28fa3 100644 --- a/src/test/test_combinable.cpp +++ b/src/test/test_combinable.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -119,9 +119,9 @@ class CombineEachHelper { public: CombineEachHelper(T& _result) : my_result(_result) {} void operator()(const T& new_bit) { my_result += new_bit; } - CombineEachHelper& operator=(const CombineEachHelper& other) { - my_result = other; - return *this; + CombineEachHelper& operator=(const CombineEachHelper& other) { + my_result = other; + return *this; } private: T& my_result; @@ -132,10 +132,10 @@ class CombineEachHelperCnt { public: CombineEachHelperCnt(T& _result, int& _nbuckets) : my_result(_result), nBuckets(_nbuckets) {} void operator()(const T& new_bit) { my_result += new_bit; ++nBuckets; } - CombineEachHelperCnt& operator=(const CombineEachHelperCnt& other) { - my_result = other.my_result; + CombineEachHelperCnt& operator=(const CombineEachHelperCnt& other) { + my_result = other.my_result; nBuckets = other.nBuckets; - return *this; + return *this; } private: T& my_result; @@ -147,7 +147,7 @@ class CombineEachVectorHelper { public: typedef std::vector > ContainerType; CombineEachVectorHelper(T& _result) : my_result(_result) { } - void operator()(const ContainerType& new_bit) { + void operator()(const ContainerType& new_bit) { for(typename ContainerType::const_iterator ci = new_bit.begin(); ci != new_bit.end(); ++ci) { my_result += *ci; } @@ -168,12 +168,12 @@ void run_serial_scalar_tests(const char *test_name) { REMARK("Testing serial %s... ", test_name); for (int t = -1; t < REPETITIONS; ++t) { - if (Verbose && t == 0) t0 = tbb::tick_count::now(); + if (Verbose && t == 0) t0 = tbb::tick_count::now(); for (int i = 0; i < N; ++i) { - sum += 1; + sum += 1; } } - + double ResultValue = sum; ASSERT( EXPECTED_SUM == ResultValue, NULL); REMARK("done\nserial %s, 0, %g, %g\n", test_name, ResultValue, ( tbb::tick_count::now() - t0).seconds()); @@ -182,40 +182,40 @@ void run_serial_scalar_tests(const char *test_name) { template class ParallelScalarBody: NoAssign { - + tbb::combinable &sums; - + public: ParallelScalarBody ( tbb::combinable &_sums ) : sums(_sums) { } void operator()( const tbb::blocked_range &r ) const { - for (int i = r.begin(); i != r.end(); ++i) { + for (int i = r.begin(); i != r.end(); ++i) { bool was_there; T& my_local = sums.local(was_there); if(!was_there) my_local = 0; my_local += 1 ; } } - + }; // parallel body with no test for first access. template class ParallelScalarBodyNoInit: NoAssign { - + tbb::combinable &sums; - + public: ParallelScalarBodyNoInit ( tbb::combinable &_sums ) : sums(_sums) { } void operator()( const tbb::blocked_range &r ) const { - for (int i = r.begin(); i != r.end(); ++i) { + for (int i = r.begin(); i != r.end(); ++i) { sums.local() += 1 ; } } - + }; template< typename T > @@ -223,12 +223,12 @@ void RunParallelScalarTests(const char *test_name) { tbb::task_scheduler_init init(tbb::task_scheduler_init::deferred); - for (int p = MinThread; p <= MaxThread; ++p) { + for (int p = MinThread; p <= MaxThread; ++p) { if (p == 0) continue; - REMARK("Testing parallel %s on %d thread(s)... ", test_name, p); + REMARK("Testing parallel %s on %d thread(s)... ", test_name, p); init.initialize(p); tbb::tick_count t0; @@ -244,12 +244,12 @@ void RunParallelScalarTests(const char *test_name) { T combine_finit_sum(0); for (int t = -1; t < REPETITIONS; ++t) { - if (Verbose && t == 0) t0 = tbb::tick_count::now(); + if (Verbose && t == 0) t0 = tbb::tick_count::now(); tbb::combinable sums; FunctorAddFinit my_finit_decl; tbb::combinable finit_combinable(my_finit_decl); - + tbb::parallel_for( tbb::blocked_range( 0, N, 10000 ), ParallelScalarBodyNoInit( finit_combinable ) ); tbb::parallel_for( tbb::blocked_range( 0, N, 10000 ), ParallelScalarBody( sums ) ); @@ -260,7 +260,7 @@ void RunParallelScalarTests(const char *test_name) { CombineEachHelper my_helper(combine_each_sum); sums.combine_each(my_helper); - + // test assignment tbb::combinable assigned; assigned = sums; @@ -275,7 +275,7 @@ void RunParallelScalarTests(const char *test_name) { ASSERT( EXPECTED_SUM == assign_sum, NULL); ASSERT( EXPECTED_SUM == combine_finit_sum, NULL); - REMARK("done\nparallel %s, %d, %g, %g\n", test_name, p, static_cast(combine_sum), + REMARK("done\nparallel %s, %d, %g, %g\n", test_name, p, static_cast(combine_sum), ( tbb::tick_count::now() - t0).seconds()); init.terminate(); } @@ -284,9 +284,9 @@ void RunParallelScalarTests(const char *test_name) { template class ParallelVectorForBody: NoAssign { - + tbb::combinable< std::vector > > &locals; - + public: ParallelVectorForBody ( tbb::combinable< std::vector > > &_locals ) : locals(_locals) { } @@ -298,7 +298,7 @@ public: locals.local().push_back( one ); } } - + }; template< typename T > @@ -307,7 +307,7 @@ void RunParallelVectorTests(const char *test_name) { tbb::task_scheduler_init init(tbb::task_scheduler_init::deferred); typedef std::vector > ContainerType; - for (int p = MinThread; p <= MaxThread; ++p) { + for (int p = MinThread; p <= MaxThread; ++p) { if (p == 0) continue; REMARK("Testing parallel %s on %d thread(s)... ", test_name, p); @@ -318,7 +318,7 @@ void RunParallelVectorTests(const char *test_name) { T sum3 = 0; for (int t = -1; t < REPETITIONS; ++t) { - if (Verbose && t == 0) t0 = tbb::tick_count::now(); + if (Verbose && t == 0) t0 = tbb::tick_count::now(); typedef typename tbb::combinable< ContainerType > CombinableType; CombinableType vs; @@ -399,7 +399,7 @@ TestLocalAllocations( int nthread ) { } -void +void RunParallelTests() { RunParallelScalarTests("int"); RunParallelScalarTests("double"); diff --git a/src/test/test_composite_node.cpp b/src/test/test_composite_node.cpp index f70c2765..705ea110 100644 --- a/src/test/test_composite_node.cpp +++ b/src/test/test_composite_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -37,17 +37,17 @@ class src_body{ int finish; int step; public: - src_body(int f, int s) : start(1), finish(f), step(s) {} + src_body(int f, int s) : start(1), finish(f), step(s) {} bool operator()(int &a) { a = start; if (start <= finish) { a = start; start+=step; return true; - } + } else { return false; - }; + }; } }; @@ -65,7 +65,7 @@ int operator()(int i){return i;} }; template -struct compare { +struct compare { static void compare_refs(T1 tuple1, T2 tuple2) { ASSERT( &tbb::flow::get(tuple1) == &tbb::flow::get(tuple2), "ports not set correctly"); compare::compare_refs(tuple1, tuple2); @@ -73,7 +73,7 @@ struct compare { }; template -struct compare<1, T1, T2> { +struct compare<1, T1, T2> { static void compare_refs(T1 tuple1, T2 tuple2) { ASSERT(&tbb::flow::get<0>(tuple1) == &tbb::flow::get<0>(tuple2), "port 0 not correctly set"); } @@ -82,10 +82,10 @@ struct compare<1, T1, T2> { void add_all_nodes (){ tbb::flow::graph g; - typedef tbb::flow::tuple, int, int, int, int, - int, int, int, int, int, int, int, int > InputTupleType; + typedef tbb::flow::tuple, int, int, int, int, + int, int, int, int, int, int, int, int > InputTupleType; - typedef tbb::flow::tuple, tbb::flow::tagged_msg, + typedef tbb::flow::tuple, tbb::flow::tagged_msg, int, int, int, int, int, int, int, int, int, int, int, int > OutputTupleType; typedef tbb::flow::tuple< > EmptyTupleType; @@ -114,28 +114,28 @@ void add_all_nodes (){ tbb::flow::overwrite_node ovw(g); tbb::flow::sequencer_node seq(g, seq_body()); - #if !(__GNUC__==4 && __GNUC_MINOR__==4 && !defined(__clang__)) + #if !(__GNUC__==4 && __GNUC_MINOR__==4 && !defined(__clang__)) // upcasting of a tuple of reference from derived to base fails on gcc4.4 (and all icc in this environment) // if std::tie is used to create the tuple of references - auto input_tuple = std::tie(ct, s, m_fxn, fxn, bc, tbb::flow::input_port<0>(j), lim, q, tbb::flow::input_port<0>(ind), + auto input_tuple = std::tie(ct, s, m_fxn, fxn, bc, tbb::flow::input_port<0>(j), lim, q, tbb::flow::input_port<0>(ind), pq, ovw, wo, bf, seq); - auto output_tuple = std::tie(ct,j, ind, fxn, src, bc, tbb::flow::output_port<0>(s), lim, tbb::flow::output_port<0>(m_fxn), + auto output_tuple = std::tie(ct,j, ind, fxn, src, bc, tbb::flow::output_port<0>(s), lim, tbb::flow::output_port<0>(m_fxn), q, pq, ovw, wo, bf, seq ); #else - input_output_type::input_ports_type input_tuple(ct, s, m_fxn, fxn, bc, tbb::flow::input_port<0>(j), lim, q, + input_output_type::input_ports_type input_tuple(ct, s, m_fxn, fxn, bc, tbb::flow::input_port<0>(j), lim, q, tbb::flow::input_port<0>(ind), pq, ovw, wo, bf, seq); input_output_type::output_ports_type output_tuple(ct,j, ind, fxn, src, bc, tbb::flow::output_port<0>(s), lim, tbb::flow::output_port<0>(m_fxn), q, pq, ovw, wo, bf, seq); #endif - //composite_node with both input_ports and output_ports + //composite_node with both input_ports and output_ports input_output_type a_node(g); - a_node.set_external_ports(input_tuple, output_tuple); - + a_node.set_external_ports(input_tuple, output_tuple); + a_node.add_visible_nodes(src, fxn, m_fxn, bc, lim, ind, s, ct, j, q, bf, pq, wo, ovw, seq); a_node.add_nodes(src, fxn, m_fxn, bc, lim, ind, s, ct, j, q, bf, pq, wo, ovw, seq); - + auto a_node_input_ports_ptr = a_node.input_ports(); compare::compare_refs(a_node_input_ports_ptr, input_tuple); ASSERT (NUM_INPUTS == tbb::flow::tuple_size::value, "not all declared input ports were bound to nodes"); @@ -145,7 +145,7 @@ void add_all_nodes (){ ASSERT(NUM_OUTPUTS == tbb::flow::tuple_size::value, "not all declared output ports were bound to nodes"); //composite_node with only input_ports - input_only_type b_node(g); + input_only_type b_node(g); b_node.set_external_ports(input_tuple); b_node.add_visible_nodes(src, fxn, m_fxn, bc, lim, ind, s, ct, j, q, bf, pq, wo, ovw, seq); @@ -156,7 +156,7 @@ void add_all_nodes (){ ASSERT (NUM_INPUTS == tbb::flow::tuple_size::value, "not all declared input ports were bound to nodes"); //composite_node with only output_ports - output_only_type c_node(g); + output_only_type c_node(g); c_node.set_external_ports(output_tuple); c_node.add_visible_nodes(src, fxn, m_fxn, bc, lim, ind, s, ct, j, q, bf, pq, wo, ovw, seq); @@ -176,7 +176,7 @@ struct tiny_node : public tbb::flow::composite_node< tbb::flow::tuple< int >, tb public: tiny_node(tbb::flow::graph &g, bool hidden = false) : base_type(g), f1(g, tbb::flow::unlimited, passthru_body() ), f2(g, tbb::flow::unlimited, passthru_body() ) { tbb::flow::make_edge( f1, f2 ); - + tbb::flow::tuple& > input_tuple(f1); tbb::flow::tuple& > output_tuple(f2); base_type::set_external_ports( input_tuple, output_tuple ); @@ -216,7 +216,7 @@ int test_tiny(bool hidden = false) { int i, j =0; q.try_get(i); - ASSERT( i == 1, "item did not go through graph"); + ASSERT( i == 1, "item did not go through graph"); q.try_get(j); ASSERT( !j, "unexpected item in graph"); g.wait_for_all(); @@ -227,20 +227,20 @@ int test_tiny(bool hidden = false) { tbb::flow::make_edge( t1 , f3 ); tbb::flow::make_edge(f3, q); - + f0.try_put(2); g.wait_for_all(); q.try_get(i); - ASSERT( i == 2, "item did not go through graph after removal of edge"); + ASSERT( i == 2, "item did not go through graph after removal of edge"); q.try_get(j); ASSERT( !j, "unexpected item in graph after removal of edge"); - return 0; + return 0; } class adder_node : public tbb::flow::composite_node< tbb::flow::tuple< int, int >, tbb::flow::tuple< int > > { -public: +public: tbb::flow::join_node< tbb::flow::tuple< int, int >, tbb::flow::queueing > j; tbb::flow::function_node< tbb::flow::tuple< int, int >, int > f; private: @@ -255,9 +255,9 @@ private: public: adder_node(tbb::flow::graph &g, bool hidden = false) : base_type(g), j(g), f(g, tbb::flow::unlimited, f_body() ) { tbb::flow::make_edge( j, f ); - + base_type::set_external_ports(base_type::input_ports_type(tbb::flow::input_port<0>(j), tbb::flow::input_port<1>(j)), base_type::output_ports_type(f)); - + if (hidden) base_type::add_nodes(j, f); else @@ -269,7 +269,7 @@ public: struct square_body { int operator()(int v) { return v*v; } }; struct cube_body { int operator()(int v) { return v*v*v; } }; int adder_sum(int i) { - return (int)(pow(3*pow(i,3) + pow(i, 2),2)); + return (int)(pow(3*pow(i,3) + pow(i, 2),2)); } int test_adder(bool hidden = false) { tbb::flow::graph g; @@ -299,7 +299,7 @@ int test_adder(bool hidden = false) { tbb::flow::function_node s2(g, tbb::flow::unlimited, square_body()); tbb::flow::queue_node q(g); - + tbb::flow::make_edge( s, tbb::flow::input_port<0>(a0) ); tbb::flow::make_edge( c, tbb::flow::input_port<1>(a0) ); @@ -311,7 +311,7 @@ int test_adder(bool hidden = false) { tbb::flow::make_edge( tbb::flow::output_port<0>(a2), s2 ); tbb::flow::make_edge( s2, q ); - + int sum_total=0; int result=0; for ( int i = 1; i < 4; ++i ) { @@ -324,7 +324,7 @@ int test_adder(bool hidden = false) { int j; for ( int i = 1; i < 4; ++i ) { q.try_get(j); - result += j; + result += j; } g.wait_for_all(); ASSERT(result == sum_total, "the sum from the graph does not match the calculated value"); @@ -347,27 +347,27 @@ int test_adder(bool hidden = false) { for ( int i = 10; i < 20; ++i ) { q.try_get(j); - result += j; + result += j; } g.wait_for_all(); ASSERT(result == sum_total, "the new sum after the replacement of the nodes does not match the calculated value"); - return 0; + return 0; } -/* +/* outer composite node (outer_node) |-------------------------------------------------------------------| | | | |------------------| |------------------| |------------------| | - |---------------------| |--| inner composite | /| inner composite | /| inner composite | | |-------------------| + |---------------------| |--| inner composite | /| inner composite | /| inner composite | | |-------------------| |broadcast node(input)|/| | node |/ | node |/ | node |-+-| queue node(output)| |---------------------|\| |(inner_node1) |\ | (inner_node2) |\ | (inner_node3) | | |-------------------| |--| | \| | \| | | | |------------------| |------------------| |------------------| | | | |-------------------------------------------------------------------| - + */ int test_nested_adder(bool hidden=false) { tbb::flow::graph g; @@ -380,7 +380,7 @@ int test_nested_adder(bool hidden=false) { adder_node inner_node2(g, hidden); adder_node inner_node3(g, hidden); - outer_node.set_external_ports(base_type::input_ports_type(tbb::flow::input_port<0>(inner_node1), tbb::flow::input_port<1>(inner_node1)), base_type::output_ports_type(tbb::flow::output_port<0>(inner_node3))); + outer_node.set_external_ports(base_type::input_ports_type(tbb::flow::input_port<0>(inner_node1), tbb::flow::input_port<1>(inner_node1)), base_type::output_ports_type(tbb::flow::output_port<0>(inner_node3))); ASSERT(&tbb::flow::input_port<0>(outer_node) == &tbb::flow::input_port<0>(inner_node1), "input port 0 of inner_node1 not bound to input port 0 in outer_node"); ASSERT(&tbb::flow::input_port<1>(outer_node) == &tbb::flow::input_port<1>(inner_node1), "input port 1 of inner_node1 not bound to input port 1 in outer_node"); @@ -450,7 +450,7 @@ public: base_type::add_nodes(j,s,f); else base_type::add_visible_nodes(j,s,f); - + } }; @@ -463,7 +463,7 @@ int test_prefix(bool hidden = false) { ASSERT(&tbb::flow::get<2>(p.input_ports()) == &tbb::flow::input_port<2>(p.j), "input port 2 of j is not bound to input port 2 of composite node p"); ASSERT(&tbb::flow::input_port<3>(p.j) == &tbb::flow::input_port<3>(p.j), "input port 3 of j is not bound to input port 3 of composite node p"); ASSERT(&tbb::flow::get<4>(p.input_ports()) == &tbb::flow::input_port<4>(p.j), "input port 4 of j is not bound to input port 4 of composite node p"); - + ASSERT(&tbb::flow::get<0>(p.output_ports()) == &tbb::flow::output_port<0>(p.s), "output port 0 of s is not bound to output port 0 of composite node p"); ASSERT(&tbb::flow::output_port<1>(p.s) == &tbb::flow::output_port<1>(p.s), "output port 1 of s is not bound to output port 1 of composite node p"); @@ -495,7 +495,7 @@ int test_prefix(bool hidden = false) { g.wait_for_all(); } } - return 0; + return 0; } void input_only_output_only_composite(bool hidden) { @@ -526,17 +526,17 @@ void input_only_output_only_composite(bool hidden) { a_in.set_external_ports(input_tuple); ASSERT(&tbb::flow::get<0>(a_in.input_ports()) == &f, "f not bound to input port 0 in composite_node a_in"); - tbb::flow::tuple output_tuple(src); + tbb::flow::tuple output_tuple(src); a_out.set_external_ports(output_tuple); ASSERT(&tbb::flow::get<0>(a_out.output_ports()) == &src, "src not bound to output port 0 in composite_node a_out"); - - if(hidden) { - a_in.add_nodes(f, que); - a_out.add_nodes(src); + + if(hidden) { + a_in.add_nodes(f, que); + a_out.add_nodes(src); } else { - a_in.add_visible_nodes(f, que); + a_in.add_visible_nodes(f, que); a_out.add_visible_nodes(src); - } + } tbb::flow::make_edge(a_out, a_in); tbb::flow::make_edge(f, que); @@ -550,7 +550,7 @@ void input_only_output_only_composite(bool hidden) { g.wait_for_all(); } -#endif // __TBB_FLOW_GRAPH_CPP11_FEATURES +#endif // __TBB_FLOW_GRAPH_CPP11_FEATURES int TestMain() { @@ -567,10 +567,10 @@ int TestMain() { test_prefix(true); input_only_output_only_composite(true); input_only_output_only_composite(false); - - return Harness::Done; -#else - return Harness::Skipped; -#endif + + return Harness::Done; +#else + return Harness::Skipped; +#endif } diff --git a/src/test/test_concurrent_hash_map.cpp b/src/test/test_concurrent_hash_map.cpp index 4104eca8..6a339611 100644 --- a/src/test/test_concurrent_hash_map.cpp +++ b/src/test/test_concurrent_hash_map.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_concurrent_lru_cache.cpp b/src/test/test_concurrent_lru_cache.cpp index 1dedbf45..989fd1cf 100644 --- a/src/test/test_concurrent_lru_cache.cpp +++ b/src/test/test_concurrent_lru_cache.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_concurrent_monitor.cpp b/src/test/test_concurrent_monitor.cpp index 40e5eb2a..20d879f8 100644 --- a/src/test/test_concurrent_monitor.cpp +++ b/src/test/test_concurrent_monitor.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -328,7 +328,7 @@ struct AllButOneSleep : NoAssign { try { ++n_sleepers; mon->commit_wait( thr_ctx ); - if( --n_sleepers>VLN ) + if( --n_sleepers>VLN ) break; } catch( tbb::user_abort& ) { // can no longer access 'mon' diff --git a/src/test/test_concurrent_priority_queue.cpp b/src/test/test_concurrent_priority_queue.cpp index a0f6cd73..3dcd9418 100644 --- a/src/test/test_concurrent_priority_queue.cpp +++ b/src/test/test_concurrent_priority_queue.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -85,8 +85,8 @@ class my_throwing_type : public my_data_type { public: static int throw_flag; my_throwing_type() : my_data_type() {} - my_throwing_type(const my_throwing_type& src) : my_data_type(src) { - if (my_throwing_type::throw_flag) throw 42; + my_throwing_type(const my_throwing_type& src) : my_data_type(src) { + if (my_throwing_type::throw_flag) throw 42; priority = src.priority; } }; @@ -122,7 +122,7 @@ class FillBody : NoAssign { T my_max, my_min; concurrent_priority_queue *q; C less_than; -public: +public: FillBody(int nThread_, T max_, T min_, concurrent_priority_queue *q_) : nThread(nThread_), my_max(max_), my_min(min_), q(q_) {} void operator()(const int threadID) const { T elem = my_min + T(threadID); @@ -162,8 +162,8 @@ class FloggerBody : NoAssign { int nThread; concurrent_priority_queue *q; public: - FloggerBody(int nThread_, concurrent_priority_queue *q_) : - nThread(nThread_), q(q_) {} + FloggerBody(int nThread_, concurrent_priority_queue *q_) : + nThread(nThread_), q(q_) {} void operator()(const int threadID) const { T elem = T(threadID+1); for (size_t i=0; isize()==42, "FAILED assignment/size test."); ASSERT(!qo->empty(), "FAILED assignment/empty test."); @@ -349,7 +349,7 @@ void TestSerialPushPop() { REMARK("Pushing complete.\n"); ASSERT(q->size()==MAX_ITER, "FAILED push/size test."); ASSERT(!q->empty(), "FAILED push/empty test."); - + REMARK("Testing serial pop.\n"); while (!q->empty()) { ASSERT(q->try_pop(e), "FAILED pop test."); @@ -378,7 +378,7 @@ void TestParallelPushPop(int nThreads, T t_max, T t_min, C /*compare*/) { qsize = q->size(); ASSERT(q->size()==nThreads*MAX_ITER, "FAILED push/size test."); ASSERT(!q->empty(), "FAILED push/empty test."); - + REMARK("Testing parallel pop.\n"); NativeParallelFor(nThreads, emptier); REMARK("Popping complete.\n"); @@ -531,15 +531,15 @@ struct special_member_calls_t { size_t move_constructor_called_times; size_t copy_assignment_called_times; size_t move_assignment_called_times; - + bool friend operator==(special_member_calls_t const& lhs, special_member_calls_t const& rhs){ - return - lhs.copy_constructor_called_times == rhs.copy_constructor_called_times + return + lhs.copy_constructor_called_times == rhs.copy_constructor_called_times && lhs.move_constructor_called_times == rhs.move_constructor_called_times && lhs.copy_assignment_called_times == rhs.copy_assignment_called_times && lhs.move_assignment_called_times == rhs.move_assignment_called_times; } - + }; #if __TBB_CPP11_RVALUE_REF_PRESENT struct MoveOperationTracker { diff --git a/src/test/test_concurrent_queue.cpp b/src/test/test_concurrent_queue.cpp index 885899ab..e677f041 100644 --- a/src/test/test_concurrent_queue.cpp +++ b/src/test/test_concurrent_queue.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -1236,7 +1236,7 @@ void TestFullness() TestFullQueue,Foo>(); } -void TestClearWorks() +void TestClearWorks() { REMARK(" Test concurrent_queue::clear() works\n"); TestClear >(); @@ -1264,7 +1264,7 @@ void TestQueueIteratorWorks() #endif class Empty; -void TestQueueConstructors() +void TestQueueConstructors() { REMARK(" Test concurrent_queue's constructors work\n"); TestConstructors,Bar,BarIterator,ConcQWithSizeWrapper,BAR_EX>(); @@ -1385,7 +1385,7 @@ void TestAbort() { ASSERT(num_pushed == 0, "no elements should have been pushed to zero-sized queue"); ASSERT((int)failed_pushes == nthreads, "All threads should have failed to push an element to zero-sized queue"); } - + REMARK("...testing pushing to small-sized queue\n"); tbb::concurrent_bounded_queue iq2; iq2.set_capacity(2); @@ -1394,12 +1394,12 @@ void TestAbort() { SimplePushBody my_push_body2(&iq2, nthreads); NativeParallelFor( nthreads+1, my_push_body2 ); ASSERT(num_pushed <= 2, "at most 2 elements should have been pushed to queue of size 2"); - if (nthreads >= 2) + if (nthreads >= 2) ASSERT((int)failed_pushes == nthreads-2, "nthreads-2 threads should have failed to push an element to queue of size 2"); int e; while (iq2.try_pop(e)) ; } - + REMARK("...testing popping from small-sized queue\n"); tbb::concurrent_bounded_queue iq3; iq3.set_capacity(2); @@ -1428,7 +1428,7 @@ void TestAbort() { SimplePushBody my_push_body2(&iq4, nthreads); NativeParallelFor( nthreads+1, my_push_body2 ); ASSERT((int)num_pushed <= cap, "at most cap elements should have been pushed to queue of size cap"); - if (nthreads >= cap) + if (nthreads >= cap) ASSERT((int)failed_pushes == nthreads-cap, "nthreads-cap threads should have failed to push an element to queue of size cap"); SimplePopBody my_pop_body(&iq4, nthreads); NativeParallelFor( nthreads+1, my_pop_body); diff --git a/src/test/test_concurrent_queue_whitebox.cpp b/src/test/test_concurrent_queue_whitebox.cpp index b501946c..25429099 100644 --- a/src/test/test_concurrent_queue_whitebox.cpp +++ b/src/test/test_concurrent_queue_whitebox.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_concurrent_unordered_common.h b/src/test/test_concurrent_unordered_common.h index 37e21063..978b9eb6 100644 --- a/src/test/test_concurrent_unordered_common.h +++ b/src/test/test_concurrent_unordered_common.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -540,14 +540,14 @@ template struct ParallelTraverseBody: NoAssign { const int n; AtomicByte* const array; - ParallelTraverseBody( AtomicByte an_array[], int a_n ) : + ParallelTraverseBody( AtomicByte an_array[], int a_n ) : n(a_n), array(an_array) {} void operator()( const RangeType& range ) const { for( typename RangeType::iterator i = range.begin(); i!=range.end(); ++i ) { int k = Value::key(*i); ASSERT( k == Value::get(*i), NULL ); - ASSERT( 0<=k && k { // mapped_type& operator[](const key_type& k); cont[1] = 2; - // bool empty() const; + // bool empty() const; ASSERT( !ccont.empty( ), "Concurrent container empty after adding an element" ); // size_type size() const; @@ -114,7 +114,7 @@ struct SpecialTests { // mapped_type& operator[](const key_type& k); cont.insert( std::make_pair( 1, one_values[0] ) ); - // bool empty() const; + // bool empty() const; ASSERT( !ccont.empty( ), "Concurrent container empty after adding an element" ); // size_type size() const; @@ -125,7 +125,7 @@ struct SpecialTests { cont.insert( std::make_pair( 1, one_values[1] ) ); - // bool empty() const; + // bool empty() const; ASSERT( !ccont.empty( ), "Concurrent container empty after adding an element" ); // size_type size() const; @@ -142,7 +142,7 @@ struct SpecialTests { cont.insert( std::make_pair( 0, zero_values[0] ) ); - // bool empty() const; + // bool empty() const; ASSERT( !ccont.empty( ), "Concurrent container empty after adding an element" ); // size_type size() const; @@ -320,7 +320,7 @@ int TestMain() { test_rvalue_ref_support( "concurrent unordered map" ); test_rvalue_ref_support( "concurrent unordered multimap" ); #endif /* __TBB_CPP11_RVALUE_REF_PRESENT */ - + TestTypes(); return Harness::Done; diff --git a/src/test/test_concurrent_unordered_set.cpp b/src/test/test_concurrent_unordered_set.cpp index 9f732d59..b4e7005f 100644 --- a/src/test/test_concurrent_unordered_set.cpp +++ b/src/test/test_concurrent_unordered_set.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_concurrent_vector.cpp b/src/test/test_concurrent_vector.cpp index 5e7564bd..375d656e 100644 --- a/src/test/test_concurrent_vector.cpp +++ b/src/test/test_concurrent_vector.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -247,8 +247,8 @@ void CheckIteratorComparison( V& u ) { ASSERT( (i>j)==(i_count>j_count), NULL ); ASSERT( (i<=j)==(i_count<=j_count), NULL ); ASSERT( (i>=j)==(i_count>=j_count), NULL ); - ASSERT( !(i==i2), NULL ); - ASSERT( i!=i2, NULL ); + ASSERT( !(i==i2), NULL ); + ASSERT( i!=i2, NULL ); ++j; ++i2; } @@ -1780,7 +1780,7 @@ int TestMain () { TestExceptionSafetyGuaranteesMoveConstructorWithUnEqualAllocatorExceptionInElementCtor(); TestExceptionSafetyGuaranteesForMoveAssignOperatorWithUnEqualAllocatorMemoryFailure(); TestExceptionSafetyGuaranteesForMoveAssignOperatorWithUnEqualAllocatorExceptionInElementCtor(); - TestPushBackMoveExceptionSafety(); + TestPushBackMoveExceptionSafety(); #if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT TestEmplaceBackExceptionSafety(); #endif /*__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT */ diff --git a/src/test/test_condition_variable.h b/src/test/test_condition_variable.h index 0bb04202..caf260ed 100644 --- a/src/test/test_condition_variable.h +++ b/src/test/test_condition_variable.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_container_move_support.h b/src/test/test_container_move_support.h index 28981c55..b554cb85 100644 --- a/src/test/test_container_move_support.h +++ b/src/test/test_container_move_support.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -152,7 +152,7 @@ public: } Foo(){ my_bar = initial_value_of_bar; - FooCount++; + FooCount++; } Foo( const Foo& foo ): FooLimit(), StateTrackable(foo){ my_bar = foo.my_bar; diff --git a/src/test/test_continue_node.cpp b/src/test/test_continue_node.cpp index 4d0f6453..93b388bc 100644 --- a/src/test/test_continue_node.cpp +++ b/src/test/test_continue_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -38,7 +38,7 @@ struct fake_continue_sender : public tbb::flow::sender typedef tbb::flow::receiver successor_type; // Define implementations of virtual methods that are abstract in the base class /*override*/ bool register_successor( successor_type& ) { return false; } - /*override*/ bool remove_successor( successor_type& ) { return false; } + /*override*/ bool remove_successor( successor_type& ) { return false; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES typedef tbb::flow::sender::built_successors_type built_successors_type; built_successors_type bst; @@ -212,7 +212,7 @@ void test_concurrency(int num_threads) { } /* * Connection of two graphs is not currently supported, but works to some limited extent. - * This test is included to check for backward compatibility. It checks that a continue_node + * This test is included to check for backward compatibility. It checks that a continue_node * with predecessors in two different graphs receives the required * number of continue messages before it executes. */ @@ -245,7 +245,7 @@ void test_two_graphs(){ start_h.try_put(continue_msg()); g.wait_for_all(); ASSERT(count==1, "Not all continue messages received"); - + //two try_puts from the graph that doesn't contain the node count=0; start_h.try_put(continue_msg()); @@ -278,13 +278,13 @@ void test_extract() { ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(c0.predecessor_count() == 2 && c0.successor_count() == 1, "c0 has incorrect counts"); ASSERT(q0.predecessor_count() == 1 && q0.successor_count() == 0, "q0 has incorrect counts"); - + /* b0 */ /* \ */ /* c0 - q0 */ /* / */ /* b1 */ - + b0.try_put(tbb::flow::continue_msg()); g.wait_for_all(); ASSERT(my_count == 0, "continue_node fired too soon"); @@ -292,15 +292,15 @@ void test_extract() { g.wait_for_all(); ASSERT(my_count == 1, "continue_node didn't fire"); ASSERT(q0.try_get(cm), "continue_node didn't forward"); - + b0.extract(); - + /* b0 */ /* */ /* c0 - q0 */ /* / */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(c0.predecessor_count() == 1 && c0.successor_count() == 1, "c0 has incorrect counts"); @@ -313,15 +313,15 @@ void test_extract() { g.wait_for_all(); ASSERT(my_count == 2, "continue_node didn't fire though it has only one predecessor"); ASSERT(q0.try_get(cm), "continue_node didn't forward second time"); - + c0.extract(); - + /* b0 */ /* */ /* c0 q0 */ /* */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(c0.predecessor_count() == 0 && c0.successor_count() == 0, "c0 has incorrect counts"); @@ -334,24 +334,24 @@ void test_extract() { ASSERT(my_count == 2, "continue didn't fire though it has only one predecessor"); ASSERT(!q0.try_get(cm), "continue_node forwarded though it shouldn't"); make_edge(b0, c0); - + /* b0 */ /* \ */ /* c0 q0 */ /* */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 1, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(c0.predecessor_count() == 1 && c0.successor_count() == 0, "c0 has incorrect counts"); ASSERT(q0.predecessor_count() == 0 && q0.successor_count() == 0, "q0 has incorrect counts"); - + b0.try_put(tbb::flow::continue_msg()); g.wait_for_all(); - + ASSERT(my_count == 3, "continue didn't fire though it has only one predecessor"); ASSERT(!q0.try_get(cm), "continue_node forwarded though it shouldn't"); - + tbb::flow::make_edge(b1, c0); tbb::flow::make_edge(c0, q0); my_count = 0; diff --git a/src/test/test_critical_section.cpp b/src/test/test_critical_section.cpp index 70a82ca5..c2e8fb4b 100644 --- a/src/test/test_critical_section.cpp +++ b/src/test/test_critical_section.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -41,11 +41,11 @@ struct BusyBody : NoAssign { bool test_throw; BusyBody( int nThread_, int workRatiox100_, tbb::enumerable_thread_specific &locals_, int &unprotected_count_, bool test_throw_) : - locals(locals_), - nThread(nThread_), - WorkRatiox100(workRatiox100_), + locals(locals_), + nThread(nThread_), + WorkRatiox100(workRatiox100_), unprotected_count(unprotected_count_), - test_throw(test_throw_) { + test_throw(test_throw_) { sBarrier.initialize(nThread_); } @@ -60,7 +60,7 @@ struct BusyBody : NoAssign { } cs.lock(); ASSERT( !cs.try_lock(), "recursive try_lock must fail" ); -#if TBB_USE_EXCEPTIONS && !__TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN +#if TBB_USE_EXCEPTIONS && !__TBB_THROW_ACROSS_MODULE_BOUNDARY_BROKEN if(test_throw && j == (nIters / 2)) { bool was_caught = false, unknown_exception = false; @@ -96,11 +96,11 @@ struct BusyBodyScoped : NoAssign { bool test_throw; BusyBodyScoped( int nThread_, int workRatiox100_, tbb::enumerable_thread_specific &locals_, int &unprotected_count_, bool test_throw_) : - locals(locals_), - nThread(nThread_), - WorkRatiox100(workRatiox100_), + locals(locals_), + nThread(nThread_), + WorkRatiox100(workRatiox100_), unprotected_count(unprotected_count_), - test_throw(test_throw_) { + test_throw(test_throw_) { sBarrier.initialize(nThread_); } @@ -113,7 +113,7 @@ struct BusyBodyScoped : NoAssign { for(int i = 0; i < MAX_WORK * (100 - WorkRatiox100); i++) { locals.local() += 1.0; } - { + { tbb::critical_section::scoped_lock my_lock(cs); for(int i = 0; i < MAX_WORK * WorkRatiox100; i++) { locals.local() += 1.0; @@ -168,7 +168,7 @@ RunOneCriticalSectionTest(int nThreads, int csWorkRatio, bool test_throw) { // amount of time. If non-zero, the difference is divided by the time, and the // negative log is taken. If > 2, then the difference is on the order of 0.01*t // where T is the average time. We aritrarily define this as "fair." - etsSigma = sqrt(etsSigmaSq/double(nThreads)); + etsSigma = sqrt(etsSigmaSq/double(nThreads)); etsMax -= etsAvg; // max - a == delta1 etsMin = etsAvg - etsMin; // a - min == delta2 if(etsMax < etsMin) etsMax = etsMin; diff --git a/src/test/test_dynamic_link.cpp b/src/test/test_dynamic_link.cpp index 06108c15..a104f908 100644 --- a/src/test/test_dynamic_link.cpp +++ b/src/test/test_dynamic_link.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -67,7 +67,7 @@ int TestMain () { ASSERT( Harness::GetAddress( Harness::OpenLibrary(NULL), "foo1" ) && Harness::GetAddress( Harness::OpenLibrary(NULL), "foo2" ), "The executable doesn't export its symbols. Is the -rdynamic switch set during linking?" ); #endif /* !_WIN32 */ - // We want to link (or fail to link) to the symbols available from the + // We want to link (or fail to link) to the symbols available from the // executable so it doesn't matter what the library name is specified in // the dynamic_link call - let it be an empty string. // Generally speaking the test has sense only on Linux but on Windows it diff --git a/src/test/test_eh_algorithms.cpp b/src/test/test_eh_algorithms.cpp index 0e40e18c..3193fbb4 100644 --- a/src/test/test_eh_algorithms.cpp +++ b/src/test/test_eh_algorithms.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_eh_flow_graph.cpp b/src/test/test_eh_flow_graph.cpp index c29d3e83..4e035247 100644 --- a/src/test/test_eh_flow_graph.cpp +++ b/src/test/test_eh_flow_graph.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_eh_tasks.cpp b/src/test/test_eh_tasks.cpp index 103d2a77..c51c4f38 100644 --- a/src/test/test_eh_tasks.cpp +++ b/src/test/test_eh_tasks.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -114,10 +114,10 @@ inline void WaitForException () { class TaskBase : public tbb::task { tbb::task* execute () { tbb::task* t = NULL; - __TBB_TRY { + __TBB_TRY { t = do_execute(); - } __TBB_CATCH( ... ) { - g_CurStat.IncExecuted(); + } __TBB_CATCH( ... ) { + g_CurStat.IncExecuted(); __TBB_RETHROW(); } g_CurStat.IncExecuted(); @@ -183,13 +183,13 @@ void Test0 () { r.destroy( r ); } -//! Default exception behavior test. -/** Allocates a root task that spawns a bunch of children, one or several of which throw +//! Default exception behavior test. +/** Allocates a root task that spawns a bunch of children, one or several of which throw a test exception in a worker or master thread (depending on the global setting). **/ void Test1 () { ResetGlobals(); tbb::empty_task &r = *new( tbb::task::allocate_root() ) tbb::empty_task; - ASSERT (!g_CurStat.Existing() && !g_CurStat.Existed() && !g_CurStat.Executed(), + ASSERT (!g_CurStat.Existing() && !g_CurStat.Existed() && !g_CurStat.Executed(), "something wrong with the task accounting"); r.set_ref_count(NUM_CHILD_TASKS + 1); for ( int i = 0; i < NUM_CHILD_TASKS; ++i ) @@ -201,15 +201,15 @@ void Test1 () { ASSERT_TEST_POSTCOND(); } // void Test1 () -//! Default exception behavior test. +//! Default exception behavior test. /** Allocates and spawns root task that runs a bunch of children, one of which throws - a test exception in a worker thread. (Similar to Test1, except that the root task - is spawned by the test function, and children are created by the root task instead + a test exception in a worker thread. (Similar to Test1, except that the root task + is spawned by the test function, and children are created by the root task instead of the test function body.) **/ void Test2 () { ResetGlobals(); SimpleRootTask &r = *new( tbb::task::allocate_root() ) SimpleRootTask; - ASSERT (g_CurStat.Existing() == 1 && g_CurStat.Existed() == 1 && !g_CurStat.Executed(), + ASSERT (g_CurStat.Existing() == 1 && g_CurStat.Existed() == 1 && !g_CurStat.Executed(), "something wrong with the task accounting"); TRY(); tbb::task::spawn_root_and_wait(r); @@ -219,13 +219,13 @@ void Test2 () { } // void Test2 () //! The same as Test2() except the root task has explicit context. -/** The context is initialized as bound in order to check correctness of its associating +/** The context is initialized as bound in order to check correctness of its associating with a root task. **/ void Test3 () { ResetGlobals(); tbb::task_group_context ctx(tbb::task_group_context::bound); SimpleRootTask &r = *new( tbb::task::allocate_root(ctx) ) SimpleRootTask; - ASSERT (g_CurStat.Existing() == 1 && g_CurStat.Existed() == 1 && !g_CurStat.Executed(), + ASSERT (g_CurStat.Existing() == 1 && g_CurStat.Existed() == 1 && !g_CurStat.Executed(), "something wrong with the task accounting"); TRY(); tbb::task::spawn_root_and_wait(r); @@ -236,7 +236,7 @@ void Test3 () { class RootLauncherTask : public TaskBase { tbb::task_group_context::kind_type m_CtxKind; - + tbb::task* do_execute () { tbb::task_group_context ctx(m_CtxKind); SimpleRootTask &r = *new( allocate_root() ) SimpleRootTask; @@ -253,8 +253,8 @@ public: RootLauncherTask ( tbb::task_group_context::kind_type ctx_kind = tbb::task_group_context::isolated ) : m_CtxKind(ctx_kind) {} }; -/** Allocates and spawns a bunch of roots, which allocate and spawn new root with - isolated context, which at last spawns a bunch of children each, one of which +/** Allocates and spawns a bunch of roots, which allocate and spawn new root with + isolated context, which at last spawns a bunch of children each, one of which throws a test exception in a worker thread. **/ void Test4 () { ResetGlobals(); @@ -305,8 +305,8 @@ class RootsGroupLauncherTask : public TaskBase { } }; -/** Allocates and spawns a bunch of roots, which allocate and spawn groups of roots - with an isolated context shared by all group members, which at last spawn a bunch +/** Allocates and spawns a bunch of roots, which allocate and spawn groups of roots + with an isolated context shared by all group members, which at last spawn a bunch of children each, one of which throws a test exception in a worker thread. **/ void Test5 () { ResetGlobals(); @@ -381,10 +381,10 @@ public: }; // class BoundHierarchyLauncherTask //! Test for bound contexts forming 2 level tree. Exception is thrown on the 1st (root) level. -/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing - the same isolated context, each of which in their turn spawns a single 3rd level - root with the bound context, and these 3rd level roots spawn bunches of leaves - in the end. Leaves do not generate exceptions. The test exception is generated +/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing + the same isolated context, each of which in their turn spawns a single 3rd level + root with the bound context, and these 3rd level roots spawn bunches of leaves + in the end. Leaves do not generate exceptions. The test exception is generated by one of the 2nd level roots. **/ void Test6 () { ResetGlobals(); @@ -393,14 +393,14 @@ void Test6 () { tbb::task::spawn_root_and_wait(r); CATCH_AND_ASSERT(); ASSERT (!l_ExceptionCaughtAtCurrentLevel, "unexpected exception intercepted"); - // After the first of the branches (ThrowingRootLauncherTask) completes, + // After the first of the branches (ThrowingRootLauncherTask) completes, // the rest of the task tree may be collapsed before having a chance to execute leaves. // A number of branches running concurrently with the first one will be able to spawn leaves though. /// \todo: If additional checkpoints are added to scheduler the following assertion must weaken intptr_t num_tasks_expected = 1 + NUM_ROOT_TASKS * (2 + NUM_CHILD_TASKS); intptr_t min_num_tasks_created = 1 + g_NumThreads * 2 + NUM_CHILD_TASKS; // 2 stands for BoundHierarchyLauncherTask and SimpleRootTask - // 1 corresponds to BoundHierarchyLauncherTask + // 1 corresponds to BoundHierarchyLauncherTask intptr_t min_num_tasks_executed = 2 + 1 + NUM_CHILD_TASKS; ASSERT (g_CurStat.Existed() <= num_tasks_expected, "Number of expected tasks is calculated incorrectly"); ASSERT (g_CurStat.Existed() >= min_num_tasks_created, "Too few tasks created"); @@ -409,10 +409,10 @@ void Test6 () { } // void Test6 () //! Tests task_group_context::unbind and task_group_context::reset methods. -/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing - the same isolated context, each of which in their turn spawns a single 3rd level - root with the bound context, and these 3rd level roots spawn bunches of leaves - in the end. Leaves do not generate exceptions. The test exception is generated +/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing + the same isolated context, each of which in their turn spawns a single 3rd level + root with the bound context, and these 3rd level roots spawn bunches of leaves + in the end. Leaves do not generate exceptions. The test exception is generated by one of the 2nd level roots. **/ void Test7 () { ResetGlobals(); @@ -440,9 +440,9 @@ class BoundHierarchyLauncherTask2 : public TaskBase { }; // class BoundHierarchyLauncherTask2 //! Test for bound contexts forming 2 level tree. Exception is thrown in the 2nd (outer) level. -/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing - the same isolated context, each of which in their turn spawns a single 3rd level - root with the bound context, and these 3rd level roots spawn bunches of leaves +/** Allocates and spawns a root that spawns a bunch of 2nd level roots sharing + the same isolated context, each of which in their turn spawns a single 3rd level + root with the bound context, and these 3rd level roots spawn bunches of leaves in the end. The test exception is generated by one of the leaves. **/ void Test8 () { ResetGlobals(); @@ -465,7 +465,7 @@ void Test8 () { template void ThrowMovableException ( intptr_t threshold, const T& data ) { if ( !IsThrowingThread() ) - return; + return; if ( !g_SolitaryException ) { #if __TBB_ATOMICS_CODEGEN_BROKEN g_ExceptionsThrown = g_ExceptionsThrown + 1; @@ -483,7 +483,7 @@ void ThrowMovableException ( intptr_t threshold, const T& data ) { const int g_IntExceptionData = -375; const std::string g_StringExceptionData = "My test string"; -// Exception data class implementing minimal requirements of tbb::movable_exception +// Exception data class implementing minimal requirements of tbb::movable_exception class ExceptionData { const ExceptionData& operator = ( const ExceptionData& src ); explicit ExceptionData ( int n ) : m_Int(n), m_String(g_StringExceptionData) {} @@ -517,8 +517,8 @@ class LeafTaskWithMovableExceptions : public TaskBase { }; void CheckException ( tbb::tbb_exception& e ) { - ASSERT (strcmp(e.name(), (g_SolitaryException ? typeid(SolitaryMovableException) - : typeid(MultipleMovableException)).name() ) == 0, + ASSERT (strcmp(e.name(), (g_SolitaryException ? typeid(SolitaryMovableException) + : typeid(MultipleMovableException)).name() ) == 0, "Unexpected original exception name"); ASSERT (strcmp(e.what(), "tbb::movable_exception") == 0, "Unexpected original exception info "); if ( g_SolitaryException ) { @@ -543,7 +543,7 @@ void CheckException () { } //! Test for movable_exception behavior, and external exception recording. -/** Allocates a root task that spawns a bunch of children, one or several of which throw +/** Allocates a root task that spawns a bunch of children, one or several of which throw a movable exception in a worker or master thread (depending on the global settings). The test also checks the correctness of multiple rethrowing of the pending exception. **/ void TestMovableException () { @@ -552,7 +552,7 @@ void TestMovableException () { bool bUnsupported = false; tbb::task_group_context ctx; tbb::empty_task *r = new( tbb::task::allocate_root() ) tbb::empty_task; - ASSERT (!g_CurStat.Existing() && !g_CurStat.Existed() && !g_CurStat.Executed(), + ASSERT (!g_CurStat.Existing() && !g_CurStat.Existed() && !g_CurStat.Executed(), "something wrong with the task accounting"); r->set_ref_count(NUM_CHILD_TASKS + 1); for ( int i = 0; i < NUM_CHILD_TASKS; ++i ) diff --git a/src/test/test_enumerable_thread_specific.cpp b/src/test/test_enumerable_thread_specific.cpp index 89fb9bea..1fddc96a 100644 --- a/src/test/test_enumerable_thread_specific.cpp +++ b/src/test/test_enumerable_thread_specific.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -94,7 +94,7 @@ public: static size_t AlignMask = 0; // set to cache-line-size - 1 template -T& check_alignment(T& t, const char *aname) { +T& check_alignment(T& t, const char *aname) { if( !tbb::internal::is_aligned(&t, AlignMask)) { REPORT_ONCE("alignment error with %s allocator (%x)\n", aname, (int)size_t(&t) & (AlignMask-1)); } @@ -127,11 +127,11 @@ public: } }; -// MyThrower field of ThrowingConstructor will throw after a certain number of +// MyThrower field of ThrowingConstructor will throw after a certain number of // construction calls. The constructor unwinder wshould unconstruct the instance // of check_type that was constructed just before. class ThrowingConstructor { - check_type m_checktype; + check_type m_checktype; Thrower m_throwing_field; public: int m_cnt; @@ -549,7 +549,7 @@ void run_parallel_scalar_tests(const char *test_name, const char *allocator_name ASSERT( !sums.empty(), NULL); ASSERT(static_sums.empty(), NULL); - tbb::parallel_for( tbb::blocked_range( 0, N, RANGE_MIN ), + tbb::parallel_for( tbb::blocked_range( 0, N, RANGE_MIN ), parallel_scalar_body( static_sums, allocator_name ) ); ASSERT( !static_sums.empty(), NULL); @@ -721,7 +721,7 @@ void run_parallel_vector_tests(const char *test_name, const char *allocator_name template class Allocator> void run_cross_type_vector_tests(const char *test_name) { tbb::tick_count t0; - const char* allocator_name = "default"; + const char* allocator_name = "default"; typedef std::vector > container_type; for (int p = MinThread; p <= MaxThread; ++p) { diff --git a/src/test/test_examples_common_utility.cpp b/src/test/test_examples_common_utility.cpp index d599c7b5..de07f206 100644 --- a/src/test/test_examples_common_utility.cpp +++ b/src/test/test_examples_common_utility.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_fast_random.cpp b/src/test/test_fast_random.cpp index b91b2980..402e7fc4 100644 --- a/src/test/test_fast_random.cpp +++ b/src/test/test_fast_random.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -19,8 +19,8 @@ */ /** - The test checks that for different ranges of random numbers (from 0 to - [MinThread, MaxThread]) generated with different seeds the probability + The test checks that for different ranges of random numbers (from 0 to + [MinThread, MaxThread]) generated with different seeds the probability of each number in the range deviates from the ideal random distribution by no more than AcceptableDeviation percent. **/ @@ -41,7 +41,7 @@ const double AcceptableDeviation = 2.1; //! Tolerable probability of failure to achieve tolerable distribution const double AcceptableProbabilityOfOutliers = 1e-5; //! Coefficient defining the length of random numbers series used to estimate the distribution -/** Number of random values generated per each range element. I.e. the larger is +/** Number of random values generated per each range element. I.e. the larger is the range, the longer is the series of random values. **/ const uintptr_t SeriesBaseLen = 100; //! Number of random numbers series to generate @@ -175,7 +175,7 @@ int TestMain () { NumLowOutliers = NumHighOutliers = 0; // Parallelism is used in this test only to speed up the long serial checks // Essentially it is a loop over random number ranges - // Ideally tbb::parallel_for could be used to parallelize the outermost loop + // Ideally tbb::parallel_for could be used to parallelize the outermost loop // in CheckDistributionBody, but it is not used to avoid unit test contamination. int P = tbb::tbb_thread::hardware_concurrency(); enum {reproducibilitySeedsToTest=1000}; diff --git a/src/test/test_flow_graph.cpp b/src/test/test_flow_graph.cpp index a4e230fc..1695044f 100644 --- a/src/test/test_flow_graph.cpp +++ b/src/test/test_flow_graph.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -66,13 +66,13 @@ bool functor_flag[F]; struct set_functor { int my_i; - set_functor( int i ) : my_i(i) {} + set_functor( int i ) : my_i(i) {} void operator()() { functor_flag[my_i] = true; } }; struct return_functor { int my_i; - return_functor( int i ) : my_i(i) {} + return_functor( int i ) : my_i(i) {} int operator()() { return my_i; } }; @@ -98,12 +98,12 @@ static void test_run() { for ( int j = 0; j < F; ++j ) { #if __TBB_LAMBDAS_PRESENT - h.run( [=]() { lambda_flag[j] = true; } ); - h.run( lambda_r, [=]() { return j; } ); + h.run( [=]() { lambda_flag[j] = true; } ); + h.run( lambda_r, [=]() { return j; } ); #endif h.run( set_functor(j) ); h.run( functor_r, return_functor(j) ); - } + } h.wait_for_all(); for ( int j = 0; j < F; ++j ) { #if __TBB_LAMBDAS_PRESENT @@ -172,8 +172,8 @@ class AddRemoveBody : NoAssign { int nThreads; Harness::SpinBarrier &barrier; public: - AddRemoveBody(int nthr, Harness::SpinBarrier &barrier_, tbb::flow::graph& _g) : - g(_g), nThreads(nthr), barrier(barrier_) + AddRemoveBody(int nthr, Harness::SpinBarrier &barrier_, tbb::flow::graph& _g) : + g(_g), nThreads(nthr), barrier(barrier_) {} void operator()(const int /*threadID*/) const { my_int_buffer b(g); @@ -194,7 +194,7 @@ public: for (tbb::flow::graph::iterator it = g.begin(); it != g.end(); ++it) { count++; } - ASSERT(count==nThreads, "error in iterator count"); + ASSERT(count==nThreads, "error in iterator count"); barrier.wait(); // wait until all threads are done counting } // initial node gets deleted }; @@ -206,7 +206,7 @@ void test_parallel(int nThreads) { NativeParallelFor(nThreads, body); } -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_flow_graph_whitebox.cpp b/src/test/test_flow_graph_whitebox.cpp index b72e8517..6a1ecbfe 100644 --- a/src/test/test_flow_graph_whitebox.cpp +++ b/src/test/test_flow_graph_whitebox.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_fp.cpp b/src/test/test_fp.cpp index 527e4f1d..bbfa7aeb 100644 --- a/src/test/test_fp.cpp +++ b/src/test/test_fp.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -248,13 +248,13 @@ void TestContextFpuEnvBody::operator()( const tbb::blocked_range &r ) const int end = r.end(); if ( end-1 == numModes ) { // For a default context our mode should be inherited. - tbb::task::spawn_root_and_wait( + tbb::task::spawn_root_and_wait( *new( tbb::task::allocate_root() ) TestContextFpuEnvTask( arenaNum, mode, depth ) ); AssertMode( newMode ); end--; } for ( int i=r.begin(); i struct pass_through { IO operator()(const IO& i) { return i; } }; - + template< typename InputType, typename OutputType, typename Body > void buffered_levels( size_t concurrency, Body body ) { // Do for lc = 1 to concurrency level - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; // Set the execute_counter back to zero in the harness @@ -71,7 +71,7 @@ void buffered_levels( size_t concurrency, Body body ) { // Create the function_node with the appropriate concurrency level, and use default buffering tbb::flow::function_node< InputType, OutputType > exe_node( g, lc, body ); tbb::flow::function_node pass_thru( g, tbb::flow::unlimited, pass_through()); - + // Create a vector of identical exe_nodes and pass_thrus std::vector< tbb::flow::function_node< InputType, OutputType > > exe_vec(2, exe_node); std::vector< tbb::flow::function_node< InputType, InputType > > pass_thru_vec(2, pass_thru); @@ -102,17 +102,17 @@ void buffered_levels( size_t concurrency, Body body ) { // Initialize the receivers so they know how many senders and messages to check for for (size_t r = 0; r < num_receivers; ++r ) { - receivers[r].initialize_map( N, num_senders ); + receivers[r].initialize_map( N, num_senders ); } // Do the test NativeParallelFor( (int)num_senders, parallel_put_until_limit(senders) ); g.wait_for_all(); - // confirm that each sender was requested from N times + // confirm that each sender was requested from N times for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &pass_thru_vec[node_idx], NULL ); } // validate the receivers @@ -149,7 +149,7 @@ struct inc_functor { int operator()( int i ) { ++global_execute_count; ++local_execute_count; - return i; + return i; } }; @@ -158,13 +158,13 @@ template< typename InputType, typename OutputType > void buffered_levels_with_copy( size_t concurrency ) { // Do for lc = 1 to concurrency level - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; inc_functor cf; cf.local_execute_count = Offset; global_execute_count = Offset; - + tbb::flow::function_node< InputType, OutputType > exe_node( g, lc, cf ); for (size_t num_receivers = 1; num_receivers <= MAX_NODES; ++num_receivers ) { @@ -182,7 +182,7 @@ void buffered_levels_with_copy( size_t concurrency ) { } for (size_t r = 0; r < num_receivers; ++r ) { - receivers[r].initialize_map( N, num_senders ); + receivers[r].initialize_map( N, num_senders ); } NativeParallelFor( (int)num_senders, parallel_put_until_limit(senders) ); @@ -190,7 +190,7 @@ void buffered_levels_with_copy( size_t concurrency ) { for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &exe_node, NULL ); } for (size_t r = 0; r < num_receivers; ++r ) { @@ -211,14 +211,14 @@ void buffered_levels_with_copy( size_t concurrency ) { // validate that the local body matches the global execute_count and both are correct inc_functor body_copy = tbb::flow::copy_body( exe_node ); - const size_t expected_count = N/2 * MAX_NODES * MAX_NODES * ( MAX_NODES + 1 ) + MAX_NODES + Offset; + const size_t expected_count = N/2 * MAX_NODES * MAX_NODES * ( MAX_NODES + 1 ) + MAX_NODES + Offset; size_t global_count = global_execute_count; size_t inc_count = body_copy.local_execute_count; - ASSERT( global_count == expected_count && global_count == inc_count, NULL ); + ASSERT( global_count == expected_count && global_count == inc_count, NULL ); g.reset(tbb::flow::rf_reset_bodies); body_copy = tbb::flow::copy_body( exe_node ); inc_count = body_copy.local_execute_count; - ASSERT( Offset == inc_count, "reset(rf_reset_bodies) did not reset functor" ); + ASSERT( Offset == inc_count, "reset(rf_reset_bodies) did not reset functor" ); } } @@ -236,16 +236,16 @@ void run_buffered_levels( int c ) { //! Performs test on executable nodes with limited concurrency /** Theses tests check: 1) that the nodes will accepts puts up to the concurrency limit, - 2) the nodes do not exceed the concurrency limit even when run with more threads (this is checked in the harness_graph_executor), + 2) the nodes do not exceed the concurrency limit even when run with more threads (this is checked in the harness_graph_executor), 3) the nodes will receive puts from multiple successors simultaneously, and 4) the nodes will send to multiple predecessors. There is no checking of the contents of the messages for corruption. */ - + template< typename InputType, typename OutputType, typename Body > void concurrency_levels( size_t concurrency, Body body ) { - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; // Set the execute_counter back to zero in the harness @@ -305,10 +305,10 @@ void concurrency_levels( size_t concurrency, Body body ) { // wait for graph to settle down g.wait_for_all(); - // confirm that each sender was requested from N times + // confirm that each sender was requested from N times for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &exe_node, NULL ); } // confirm that each receivers got N * num_senders + the initial lc puts @@ -343,7 +343,7 @@ void run_concurrency_levels( int c ) { } -struct empty_no_assign { +struct empty_no_assign { empty_no_assign() {} empty_no_assign( int ) {} operator int() { return 0; } @@ -390,11 +390,11 @@ void unlimited_concurrency( Body body ) { } NativeParallelFor( p, parallel_puts(exe_node) ); - g.wait_for_all(); + g.wait_for_all(); // 2) the nodes will receive puts from multiple predecessors simultaneously, size_t ec = harness_graph_executor::execute_count; - ASSERT( (int)ec == p*N, NULL ); + ASSERT( (int)ec == p*N, NULL ); for (size_t r = 0; r < num_receivers; ++r ) { size_t c = receivers[r].my_count; // 3) the nodes will send to multiple successors. @@ -428,10 +428,10 @@ void test_function_node_with_continue_msg_as_input() { tbb::flow::function_node FN1( g, tbb::flow::serial, continue_msg_to_int(42)); tbb::flow::function_node FN2( g, tbb::flow::serial, continue_msg_to_int(43)); - + tbb::flow::make_edge( Start, FN1 ); tbb::flow::make_edge( Start, FN2 ); - + Start.try_put( tbb::flow::continue_msg() ); g.wait_for_all(); } @@ -476,13 +476,13 @@ void test_extract() { ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(f0.predecessor_count() == 2 && f0.successor_count() == 1, "f0 has incorrect counts"); ASSERT(q0.predecessor_count() == 1 && q0.successor_count() == 0, "q0 has incorrect counts"); - + /* b0 */ /* \ */ /* f0 - q0 */ /* / */ /* b1 */ - + b0.try_put(1); g.wait_for_all(); ASSERT(my_count == 1, "function_node didn't fire"); @@ -491,15 +491,15 @@ void test_extract() { g.wait_for_all(); ASSERT(my_count == 2, "function_node didn't fire"); ASSERT(q0.try_get(cm), "function_node didn't forward"); - + b0.extract(); - + /* b0 */ /* */ /* f0 - q0 */ /* / */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(f0.predecessor_count() == 1 && f0.successor_count() == 1, "f0 has incorrect counts"); @@ -512,15 +512,15 @@ void test_extract() { g.wait_for_all(); ASSERT(my_count == 3, "function_node didn't fire though it has only one predecessor"); ASSERT(q0.try_get(cm), "function_node didn't forward second time"); - + f0.extract(); - + /* b0 */ /* */ /* f0 q0 */ /* */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(f0.predecessor_count() == 0 && f0.successor_count() == 0, "f0 has incorrect counts"); @@ -533,24 +533,24 @@ void test_extract() { ASSERT(my_count == 3, "function_node didn't fire though it has only one predecessor"); ASSERT(!q0.try_get(cm), "function_node forwarded though it shouldn't"); make_edge(b0, f0); - + /* b0 */ /* \ */ /* f0 q0 */ /* */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 1, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(f0.predecessor_count() == 1 && f0.successor_count() == 0, "f0 has incorrect counts"); ASSERT(q0.predecessor_count() == 0 && q0.successor_count() == 0, "q0 has incorrect counts"); - + b0.try_put(int()); g.wait_for_all(); - + ASSERT(my_count == 4, "function_node didn't fire though it has only one predecessor"); ASSERT(!q0.try_get(cm), "function_node forwarded though it shouldn't"); - + tbb::flow::make_edge(b1, f0); tbb::flow::make_edge(f0, q0); my_count = 0; @@ -558,7 +558,7 @@ void test_extract() { } #endif -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_global_control.cpp b/src/test/test_global_control.cpp index 0677e32c..d18c613d 100644 --- a/src/test/test_global_control.cpp +++ b/src/test/test_global_control.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -22,6 +22,8 @@ #define TBB_PREVIEW_GLOBAL_CONTROL 1 #include "tbb/global_control.h" #include "harness.h" +#define TBB_PREVIEW_LOCAL_OBSERVER 1 +#include "tbb/task_scheduler_observer.h" const size_t MB = 1024*1024; const double BARRIER_TIMEOUT = 10.; @@ -248,28 +250,28 @@ void TestInvalidParallelism() #if TRY_BAD_EXPR_ENABLED const size_t max_parallelism = tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism); - for (size_t par = 0; par<=1; par++) { - { - tbb::set_assertion_handler( AssertionFailureHandler ); - TRY_BAD_EXPR( tbb::global_control c(tbb::global_control::max_allowed_parallelism, par), "Values of 1 and 0 are not supported for max_allowed_parallelism." ); - tbb::set_assertion_handler( ReportError ); - ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) - == max_parallelism, NULL); - } - { - const size_t P = 2; - tbb::global_control c(tbb::global_control::max_allowed_parallelism, P); - ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) - == P, NULL); - tbb::set_assertion_handler( AssertionFailureHandler ); - TRY_BAD_EXPR( tbb::global_control cZ(tbb::global_control::max_allowed_parallelism, par), "Values of 1 and 0 are not supported for max_allowed_parallelism." ); - tbb::set_assertion_handler( ReportError ); - ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) - == P, NULL); - } + { + tbb::set_assertion_handler( AssertionFailureHandler ); + TRY_BAD_EXPR( tbb::global_control c(tbb::global_control::max_allowed_parallelism, 0), + "max_allowed_parallelism cannot be 0." ); + tbb::set_assertion_handler( ReportError ); ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) == max_parallelism, NULL); } + { + const size_t P = 2; + tbb::global_control c(tbb::global_control::max_allowed_parallelism, P); + ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) + == P, NULL); + tbb::set_assertion_handler( AssertionFailureHandler ); + TRY_BAD_EXPR( tbb::global_control cZ(tbb::global_control::max_allowed_parallelism, 0), + "max_allowed_parallelism cannot be 0." ); + tbb::set_assertion_handler( ReportError ); + ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) + == P, NULL); + } + ASSERT(tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) + == max_parallelism, NULL); #endif /* TRY_BAD_EXPR_ENABLED */ } @@ -306,8 +308,366 @@ void TestTooBigStack() } } +struct ParallelForRun: NoAssign { + int num_threads; + Harness::SpinBarrier *barr1, *barr2; + + ParallelForRun(Harness::SpinBarrier *b1, Harness::SpinBarrier *b2) : + barr1(b1), barr2(b2) {} + void operator()( int /*id*/ ) const { + barr1->timed_wait(BARRIER_TIMEOUT); + + tbb::parallel_for(tbb::blocked_range(0, CheckWorkersNum::LOOP_ITERS, 1), + CheckWorkersNum(NULL), tbb::simple_partitioner()); + barr2->timed_wait(BARRIER_TIMEOUT); + } +}; + +class FFTask: public tbb::task { + tbb::atomic *counter; + tbb::task* execute() { + (*counter)++; + return NULL; + } +public: + FFTask(tbb::atomic *counter_) : counter(counter_) {} +}; + +class WaiterTask: public tbb::task { + tbb::atomic *flag; + tbb::task* execute() { + while(!flag) + __TBB_Yield(); + return NULL; + } +public: + WaiterTask(tbb::atomic *flag_) : flag(flag_) {} +}; + +class ParallelForWork { +public: + void operator()(const tbb::blocked_range&) const { + __TBB_Pause(1); + } +}; + +class WorkAndEnqueueTask: public tbb::task { + tbb::atomic *counter; + tbb::atomic *signalToLeave; + tbb::task* execute() { + tbb::parallel_for(tbb::blocked_range(0, 10*1000, 1), + ParallelForWork(), tbb::simple_partitioner()); + *signalToLeave = true; + for (int i=0; i *counter_, tbb::atomic *signal_) + : counter(counter_), signalToLeave(signal_) {} +}; + +#if __TBB_TASK_PRIORITY +tbb::priority_t getPriorityByInt(int i) { + return i%3==0? tbb::priority_low : (i%3==1? tbb::priority_normal : + tbb::priority_high); +} +#endif + +class FFTasksRun: NoAssign { + void enqTasks(int id) const { + for (int i=0; i *cnt; + + FFTasksRun(Harness::SpinBarrier *b, tbb::atomic *c) : + barr(b), cnt(c) {} + void operator()(int id) const { + if (id) + enqTasks(id); + barr->wait(); + if (!id) + enqTasks(id); + } +}; + +void TestTaskEnqueue() +{ + { + tbb::task_scheduler_init tsi(20, 0, /*blocking=*/true); + tbb::atomic flag; + tbb::atomic taskDoneFlag; + flag = 0; + taskDoneFlag = false; + + for (int i=0; i<10; i++) { + WaiterTask* w = new( tbb::task::allocate_root() ) WaiterTask(&taskDoneFlag); + tbb::task::enqueue(*w); + } + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + taskDoneFlag = true; + + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); + tbb::task::enqueue(*t); + while(!flag) + __TBB_Yield(); + } + { + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + tbb::atomic flag; + tbb::atomic taskDoneFlag; + flag = 0; + taskDoneFlag = false; + + WaiterTask* w = new( tbb::task::allocate_root() ) WaiterTask(&taskDoneFlag); + tbb::task::enqueue(*w); + taskDoneFlag = true; + + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); + tbb::task::enqueue(*t); + while(!flag) + __TBB_Yield(); + } + { + tbb::task_scheduler_init tsi(2, 0, /*blocking=*/true); + tbb::atomic flag; + flag = 0; + + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); + tbb::task::enqueue(*t); + while(!flag) + __TBB_Yield(); + } + { + tbb::task_scheduler_init tsi(2, 0, /*blocking=*/true); + tbb::atomic flag; + flag = 0; + + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); + tbb::task::enqueue(*t); + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + + while(!flag) + __TBB_Yield(); + } + + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + + { // check that enqueue() guarantee mandatory parallelism + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + tbb::atomic flag; + flag = 0; + + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); + tbb::task::enqueue(*t); + while(!flag) + __TBB_Yield(); + } + { + tbb::atomic flag; + flag = 0; + { + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + + for (int i=0; i<10; i++) { + FFTask* t = new( tbb::task::allocate_root() ) FFTask(&flag); +#if __TBB_TASK_PRIORITY + const tbb::priority_t p = getPriorityByInt(i); + tbb::task::enqueue(*t, p); +#else + tbb::task::enqueue(*t); +#endif + } + } + ASSERT(flag==10, "The tasks must be terminated when task_scheduler_init destroyed."); + } + const unsigned threads = 2; + { + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + Harness::SpinBarrier barr1(threads), barr2(threads); + RunWorkersLimited(1, 1, false); + + NativeParallelFor( threads, ParallelForRun(&barr1, &barr2) ); + } + + tbb::atomic counter; + counter = 0; + { + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + Harness::SpinBarrier barr(threads); + RunWorkersLimited(1, 1, false); + + NativeParallelFor( threads, FFTasksRun(&barr, &counter) ); + } + ASSERT(counter == threads*FFTasksRun::ITERS, "All tasks must be done when task_scheduler_init destroyed."); + counter = 0; + { // enqueued task can enqueue tasks and call parallel_for + tbb::atomic signalToLeave; + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + + signalToLeave = false; + WorkAndEnqueueTask *t = new( tbb::task::allocate_root() ) + WorkAndEnqueueTask(&counter, &signalToLeave); + tbb::task::enqueue(*t); + tbb::parallel_for(tbb::blocked_range(0, 100*1000, 1), + ParallelForWork(), tbb::simple_partitioner()); + + while (!signalToLeave) + __TBB_Yield(); + } + ASSERT(counter == WorkAndEnqueueTask::ENQUEUE_TASKS, "All tasks must be done when task_scheduler_init destroyed."); +} + +class CountWorkersTask: public tbb::task { + tbb::atomic *flag; + // count unique worker threads + static tbb::combinable uniqThreads; + + tbb::task* execute() { + uniqThreads.local() = 1; + Harness::Sleep(10); + *flag = 1; + return NULL; + } +public: + CountWorkersTask(tbb::atomic *flag_) : flag(flag_) {} + static size_t observedThreads() { + return uniqThreads.combine(std::plus()); + } +}; + +tbb::combinable CountWorkersTask::uniqThreads; + +tbb::atomic activeArenas; + +class ArenaObserver: public tbb::task_scheduler_observer { +public: + ArenaObserver() : tbb::task_scheduler_observer(/*local=*/true) { + } + /*override*/ void on_scheduler_entry( bool worker ) { + if (worker) { + ++activeArenas; + } + } + /*override*/ void on_scheduler_exit( bool worker ) { + if (worker) { + --activeArenas; + } + } +}; + +ArenaObserver observers[2]; + +struct ArenasObserveRun: NoAssign { + Harness::SpinBarrier *barr; + + ArenasObserveRun(Harness::SpinBarrier *b) : barr(b) {} + void operator()( int id ) const { + observers[id].observe(true); + ArenaObserver o; + tbb::atomic flag; + flag = false; + + CountWorkersTask* t = new( tbb::task::allocate_root() ) + CountWorkersTask(&flag); + barr->wait(); + tbb::task::enqueue(*t); + while(!flag) + __TBB_Yield(); + } +}; + +struct ArenaRun: NoAssign { + tbb::atomic *counter; + + ArenaRun(tbb::atomic *counter_) : counter(counter_) {} + void operator()() const { + (*counter)++; + } +}; + +struct ArenaUserRun: NoAssign { + static const int ENQUEUE_TASKS = 10; + tbb::task_arena *arena; + Harness::SpinBarrier *barr; + tbb::atomic *counter; + + ArenaUserRun(tbb::task_arena *a, Harness::SpinBarrier *b, tbb::atomic *c) : + arena(a), barr(b), counter(c) {} + void operator()( int id ) const { + + for (int i=0; ienqueue(ArenaRun(counter)); + barr->wait(); + if (!id) + arena->terminate(); + } +}; + +void TestCuncurrentArenas() +{ + Harness::SpinBarrier barrier(2); + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + { + tbb::task_scheduler_init tsi(2, 0, /*blocking=*/true); + ArenaObserver observer; + observer.observe(true); + + // must have 0 worker threads + CheckWorkersNum::clear(); + tbb::parallel_for(tbb::blocked_range(0, CheckWorkersNum::LOOP_ITERS, 1), + CheckWorkersNum(NULL), tbb::simple_partitioner()); + CheckWorkersNum::check(1); + + NativeParallelFor( 2, ArenasObserveRun(&barrier) ); + ASSERT(1 == CountWorkersTask::observedThreads(), + "Single worker is expecting to serve mandatory parallelism."); + while(activeArenas) // wait till single worker termination + __TBB_Yield(); + + // check that without mandatory parallelism, still have 0 worker threads + tbb::parallel_for(tbb::blocked_range(0, CheckWorkersNum::LOOP_ITERS, 1), + CheckWorkersNum(NULL), tbb::simple_partitioner()); + CheckWorkersNum::clear(); + tbb::parallel_for(tbb::blocked_range(0, CheckWorkersNum::LOOP_ITERS, 1), + CheckWorkersNum(NULL), tbb::simple_partitioner()); + CheckWorkersNum::check(1); + } + tbb::atomic counter; + counter = 0; + { + tbb::task_scheduler_init tsi(1, 0, /*blocking=*/true); + tbb::task_arena arena(2); + + NativeParallelFor( 2, ArenaUserRun(&arena, &barrier, &counter) ); + } + ASSERT(counter == 2*ArenaUserRun::ENQUEUE_TASKS, "All tasks must be done."); +} + int TestMain() { + TestTaskEnqueue(); + TestCuncurrentArenas(); const unsigned h_c = tbb::tbb_thread::hardware_concurrency(); bool excessHC; { @@ -336,6 +696,5 @@ int TestMain() #endif TestTooBigStack(); ASSERT(default_ss == tbb::global_control::active_value(tbb::global_control::thread_stack_size), NULL); - return Harness::Done; } diff --git a/src/test/test_global_control_whitebox.cpp b/src/test/test_global_control_whitebox.cpp index d55e451e..3d6a02a4 100644 --- a/src/test/test_global_control_whitebox.cpp +++ b/src/test/test_global_control_whitebox.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_halt.cpp b/src/test/test_halt.cpp index 6c767683..d50184bd 100644 --- a/src/test/test_halt.cpp +++ b/src/test/test_halt.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -53,7 +53,7 @@ public: for(;;) { typename M::scoped_lock lock( mutex ); if(SharedI >= SharedN) break; - volatile double sum = 7.3; + volatile double sum = 7.3; sum *= 11.17; ++SharedI; } @@ -64,8 +64,8 @@ public: template void SharedSerialFib(int n) { - SharedI = 1; - SharedN = n; + SharedI = 1; + SharedN = n; M mutex; parallel_for( blocked_range(0,4,1), SharedSerialFibBody( mutex ) ); } diff --git a/src/test/test_handle_perror.cpp b/src/test/test_handle_perror.cpp index 41cdc1e4..6fe88d1c 100644 --- a/src/test/test_handle_perror.cpp +++ b/src/test/test_handle_perror.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -48,7 +48,7 @@ static void TestHandlePerror() { #if TBB_USE_EXCEPTIONS REMARK("caught runtime_exception('%s')\n",e.what()); ASSERT( memcmp(e.what(),"apple: ",7)==0, NULL ); - ASSERT( strlen(strstr(e.what(), strerror(EAGAIN))), "bad error message?" ); + ASSERT( strlen(strstr(e.what(), strerror(EAGAIN))), "bad error message?" ); #endif /* TBB_USE_EXCEPTIONS */ caught = true; } diff --git a/src/test/test_hw_concurrency.cpp b/src/test/test_hw_concurrency.cpp index a9094bf5..4e9bc8c2 100644 --- a/src/test/test_hw_concurrency.cpp +++ b/src/test/test_hw_concurrency.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_indexer_node.cpp b/src/test/test_indexer_node.cpp index b31f97fb..606caf4d 100644 --- a/src/test/test_indexer_node.cpp +++ b/src/test/test_indexer_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -107,8 +107,8 @@ protected: } void make_and_validate_full_graph() { - /* in0 */ - /* \ */ + /* in0 */ + /* \ */ /* port0 out0 */ /* / | / */ /* in1 middle */ @@ -139,15 +139,15 @@ protected: int first_pred = *(mp0_list.begin()) == ins[0] ? 0 : ( *(mp0_list.begin()) == ins[1] ? 1 : -1 ); typename in_node_t::predecessor_list_type::iterator piv = mp0_list.begin();++piv; int second_pred = *piv == ins[0] ? 0 : ( *piv == ins[1] ? 1 : -1 ); - ASSERT( first_pred != -1 && second_pred != -1 && first_pred != second_pred, "bad predecessor(s) for middle port 0" ); + ASSERT( first_pred != -1 && second_pred != -1 && first_pred != second_pred, "bad predecessor(s) for middle port 0" ); ASSERT( *(mp1_list.begin()) == ins[2], "bad predecessor for middle port 1" ); int first_succ = *(ms_list.begin()) == outs[0] ? 0 : ( *(ms_list.begin()) == outs[1] ? 1 : -1 ); typename out_node_t::successor_list_type::iterator ms_vec_iter = ms_list.begin(); ++ms_vec_iter; int second_succ = *ms_vec_iter == outs[0] ? 0 : ( *ms_vec_iter == outs[1] ? 1 : -1 ); - ASSERT( first_succ != -1 && second_succ != -1 && first_succ != second_succ, "bad successor(s) for middle" ); - + ASSERT( first_succ != -1 && second_succ != -1 && first_succ != second_succ, "bad successor(s) for middle" ); + in0.try_put(1); in1.try_put(2); in2.try_put(8); @@ -155,7 +155,7 @@ protected: g.wait_for_all(); T v_in; - + ASSERT( in0.try_get(v_in) == false, "buffer should not have a value" ); ASSERT( in1.try_get(v_in) == false, "buffer should not have a value" ); ASSERT( in1.try_get(v_in) == false, "buffer should not have a value" ); @@ -180,8 +180,8 @@ protected: } void validate_partial_graph() { - /* in0 */ - /* */ + /* in0 */ + /* */ /* port0 out0 */ /* / | */ /* in1 middle */ @@ -208,7 +208,7 @@ protected: in2.try_put(8); in2.try_put(4); g.wait_for_all(); - + T v_in; typename my_node_t::output_type v; @@ -227,8 +227,8 @@ protected: } void validate_empty_graph() { - /* in0 */ - /* */ + /* in0 */ + /* */ /* port0 out0 */ /* | */ /* in1 middle */ @@ -255,7 +255,7 @@ protected: in2.try_put(8); in2.try_put(4); g.wait_for_all(); - + T v_in; typename my_node_t::output_type v; @@ -281,7 +281,7 @@ public: ms_p1_ptr = static_cast< typename in_node_t::successor_type * >(&tbb::flow::input_port<1>(middle)); mp_ptr = static_cast< typename out_node_t::predecessor_type *>(&middle); } - + virtual ~test_indexer_extract() {} void run_tests() { @@ -548,7 +548,7 @@ public: } for(int nInputs = 1; nInputs <= MaxNSources; ++nInputs) { tbb::flow::graph g; - IType* my_indexer = new IType(g); //makeIndexer::create(); + IType* my_indexer = new IType(g); //makeIndexer::create(); tbb::flow::queue_node outq1(g); tbb::flow::queue_node outq2(g); @@ -725,7 +725,7 @@ static void test() { template< template class TestType, // serial_test or parallel_test - typename T0, typename T1=void, typename T2=void, typename T3=void, typename T4=void, + typename T0, typename T1=void, typename T2=void, typename T3=void, typename T4=void, typename T5=void, typename T6=void, typename T7=void, typename T8=void, typename T9=void> // type of the inputs to the indexer_node class generate_test { public: @@ -737,9 +737,9 @@ public: //specializations for indexer node inputs template< - template class TestType, - typename T0, typename T1, typename T2, typename T3, typename T4, - typename T5, typename T6, typename T7, typename T8> + template class TestType, + typename T0, typename T1, typename T2, typename T3, typename T4, + typename T5, typename T6, typename T7, typename T8> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -749,9 +749,9 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2, typename T3, typename T4, - typename T5, typename T6, typename T7> + template class TestType, + typename T0, typename T1, typename T2, typename T3, typename T4, + typename T5, typename T6, typename T7> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -761,9 +761,9 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2, typename T3, typename T4, - typename T5, typename T6> + template class TestType, + typename T0, typename T1, typename T2, typename T3, typename T4, + typename T5, typename T6> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -773,9 +773,9 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2, typename T3, typename T4, - typename T5> + template class TestType, + typename T0, typename T1, typename T2, typename T3, typename T4, + typename T5> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -785,8 +785,8 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2, typename T3, typename T4> + template class TestType, + typename T0, typename T1, typename T2, typename T3, typename T4> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -796,8 +796,8 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2, typename T3> + template class TestType, + typename T0, typename T1, typename T2, typename T3> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -807,8 +807,8 @@ public: }; template< - template class TestType, - typename T0, typename T1, typename T2> + template class TestType, + typename T0, typename T1, typename T2> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -818,8 +818,8 @@ public: }; template< - template class TestType, - typename T0, typename T1> + template class TestType, + typename T0, typename T1> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -829,8 +829,8 @@ public: }; template< - template class TestType, - typename T0> + template class TestType, + typename T0> class generate_test { public: typedef tbb::flow::indexer_node indexer_node_type; @@ -874,7 +874,7 @@ int TestMain() { #if MAX_TUPLE_TEST_SIZE >= 9 generate_test::do_test(); #endif - } + } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES test_indexer_extract().run_tests(); #endif diff --git a/src/test/test_initializer_list.h b/src/test/test_initializer_list.h index b943fc04..f3e264d7 100644 --- a/src/test/test_initializer_list.h +++ b/src/test/test_initializer_list.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_inits_loop.cpp b/src/test/test_inits_loop.cpp index bbe0932a..12222bbc 100644 --- a/src/test/test_inits_loop.cpp +++ b/src/test/test_inits_loop.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_intrusive_list.cpp b/src/test/test_intrusive_list.cpp index 095ebe34..25f767c9 100644 --- a/src/test/test_intrusive_list.cpp +++ b/src/test/test_intrusive_list.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -66,9 +66,9 @@ public: }; typedef tbb::internal::intrusive_list IntrusiveList1; -typedef tbb::internal::memptr_intrusive_list IntrusiveList2; -typedef tbb::internal::memptr_intrusive_list IntrusiveList3; const int NumElements = 256 * 1024; diff --git a/src/test/test_ittnotify.cpp b/src/test/test_ittnotify.cpp index a664aecb..747b92a9 100644 --- a/src/test/test_ittnotify.cpp +++ b/src/test/test_ittnotify.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_join_node.cpp b/src/test/test_join_node.cpp index 66dbf51c..1e600f73 100644 --- a/src/test/test_join_node.cpp +++ b/src/test/test_join_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -789,7 +789,7 @@ public: static const char* name() {return "MyKeySecond"; } }; -// The additional policy to differ message based key matching from usual key matching. +// The additional policy to differ message based key matching from usual key matching. // It only has sence for the test because join_node is created with the key_matching policy for the both cases. template ::type > > struct message_based_key_matching {}; diff --git a/src/test/test_lambda.cpp b/src/test/test_lambda.cpp index 384e556b..fc1ce9f9 100644 --- a/src/test/test_lambda.cpp +++ b/src/test/test_lambda.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -211,7 +211,7 @@ int TestMain () { return std::make_pair(x.firsty.second?x.second:y.second); }); - ASSERT(minmax_result_c.first==0 && minmax_result_c.second==999, + ASSERT(minmax_result_c.first==0 && minmax_result_c.second==999, "combinable w/lambda failed.\n"); REMARK("passed.\n"); diff --git a/src/test/test_limiter_node.cpp b/src/test/test_limiter_node.cpp index a8e53706..6739aebc 100644 --- a/src/test/test_limiter_node.cpp +++ b/src/test/test_limiter_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -103,14 +103,14 @@ struct put_body : NoAssign { tbb::flow::limiter_node &my_lim; tbb::atomic &my_accept_count; - put_body( tbb::flow::limiter_node &lim, tbb::atomic &accept_count ) : + put_body( tbb::flow::limiter_node &lim, tbb::atomic &accept_count ) : my_lim(lim), my_accept_count(accept_count) {} void operator()( int ) const { for ( int i = 0; i < L; ++i ) { bool msg = my_lim.try_put( T(i) ); if ( msg == true ) - ++my_accept_count; + ++my_accept_count; } } }; @@ -121,7 +121,7 @@ struct put_dec_body : NoAssign { tbb::flow::limiter_node &my_lim; tbb::atomic &my_accept_count; - put_dec_body( tbb::flow::limiter_node &lim, tbb::atomic &accept_count ) : + put_dec_body( tbb::flow::limiter_node &lim, tbb::atomic &accept_count ) : my_lim(lim), my_accept_count(accept_count) {} void operator()( int ) const { @@ -132,7 +132,7 @@ struct put_dec_body : NoAssign { ++local_accept_count; ++my_accept_count; my_lim.decrement.try_put( tbb::flow::continue_msg() ); - } + } } } @@ -166,11 +166,11 @@ void test_puts_with_decrements( int num_threads, tbb::flow::limiter_node< T >& l // // limiter only forwards below the limit, multiple parallel senders / single receiver // mutiple parallel senders that put to decrement at each accept, limiter accepts new messages -// -// +// +// template< typename T > int test_parallel(int num_threads) { - + // test puts with no decrements for ( int i = 0; i < L; ++i ) { tbb::flow::graph g; @@ -203,10 +203,10 @@ int test_parallel(int num_threads) { // // limiter only forwards below the limit, single sender / single receiver // at reject, a put to decrement, will cause next message to be accepted -// +// template< typename T > int test_serial() { - + // test puts with no decrements for ( int i = 0; i < L; ++i ) { tbb::flow::graph g; @@ -369,7 +369,7 @@ void test_reserve_release_messages() { //edges make_edge(input_queue, limit); make_edge(limit, output_queue); - make_edge(broad,limit.decrement); + make_edge(broad,limit.decrement); int list[4] = {19, 33, 72, 98}; //list to be put to the input queue @@ -513,7 +513,7 @@ void test_extract() { } #endif // TBB_PREVIEW_FLOW_GRAPH_FEATURES -int TestMain() { +int TestMain() { for (int i = 1; i <= 8; ++i) { tbb::task_scheduler_init init(i); test_serial(); diff --git a/src/test/test_malloc_atexit.cpp b/src/test/test_malloc_atexit.cpp index b10a2c62..dc08085d 100644 --- a/src/test/test_malloc_atexit.cpp +++ b/src/test/test_malloc_atexit.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,11 +18,11 @@ reasons why the executable file might be covered by the GNU General Public License. */ -/* Regression test against a bug in TBB allocator manifested when +/* Regression test against a bug in TBB allocator manifested when dynamic library calls atexit() or registers dtors of static objects. - If the allocator is not initialized yet, we can get deadlock, + If the allocator is not initialized yet, we can get deadlock, because allocator library has static object dtors as well, they - registered during allocator initialization, and atexit() is protected + registered during allocator initialization, and atexit() is protected by non-recursive mutex in some versions of GLIBC. */ diff --git a/src/test/test_malloc_compliance.cpp b/src/test/test_malloc_compliance.cpp index 1bf124e5..122cc2f2 100644 --- a/src/test/test_malloc_compliance.cpp +++ b/src/test/test_malloc_compliance.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -265,7 +265,7 @@ static void setSystemAllocs() Raligned_realloc=_aligned_realloc; Taligned_free=_aligned_free; Rposix_memalign=0; -#elif __APPLE__ || __sun || __ANDROID__ +#elif __APPLE__ || __sun || __ANDROID__ // OS X*, Solaris, and Android don't have posix_memalign Raligned_malloc=0; Raligned_realloc=0; diff --git a/src/test/test_malloc_init_shutdown.cpp b/src/test/test_malloc_init_shutdown.cpp index 135f9dd3..67bfde42 100644 --- a/src/test/test_malloc_init_shutdown.cpp +++ b/src/test/test_malloc_init_shutdown.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_lib_unload.cpp b/src/test/test_malloc_lib_unload.cpp index dba6777c..b403ec14 100644 --- a/src/test/test_malloc_lib_unload.cpp +++ b/src/test/test_malloc_lib_unload.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_overload.cpp b/src/test/test_malloc_overload.cpp index 30af414d..7211aaf0 100644 --- a/src/test/test_malloc_overload.cpp +++ b/src/test/test_malloc_overload.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ #if (_WIN32 || _WIN64) -// As the test is intentionally build with /EHs-, suppress multiple VS2005's +// As the test is intentionally build with /EHs-, suppress multiple VS2005's // warnings like C4530: C++ exception handler used, but unwind semantics are not enabled #if defined(_MSC_VER) && !__INTEL_COMPILER /* ICC 10.1 and 11.0 generates code that uses std::_Raise_handler, @@ -109,12 +109,12 @@ typedef unsigned __int64 uint64_t; #endif /* OS selection */ #if _WIN32 -// On Windows, the trick with string "dependence on msvcpXX.dll" is necessary to create +// On Windows, the trick with string "dependence on msvcpXX.dll" is necessary to create // dependence on msvcpXX.dll, for sake of a regression test. // On Linux, C++ RTL headers are undesirable because of breaking strict ANSI mode. #if defined(_MSC_VER) && _MSC_VER >= 1300 && _MSC_VER <= 1310 && !defined(__INTEL_COMPILER) /* Fixing compilation error reported by VS2003 for exception class - when _HAS_EXCEPTIONS is 0: + when _HAS_EXCEPTIONS is 0: bad_cast that inherited from exception is not in std namespace. */ using namespace std; @@ -153,7 +153,7 @@ struct LargeMemoryBlock : public BlockI { MemoryPool *pool; // owner pool LargeMemoryBlock *next, // ptrs in list of cached blocks *prev, - *gPrev, // in pool's global list + *gPrev, // in pool's global list *gNext; uintptr_t age; // age of block while in cache size_t objectSize; // the size requested by a client @@ -166,7 +166,7 @@ struct LargeMemoryBlock : public BlockI { struct LargeObjectHdr { LargeMemoryBlock *memoryBlock; - /* Have to duplicate it here from CachedObjectHdr, + /* Have to duplicate it here from CachedObjectHdr, as backreference must be checked without further pointer dereference. Points to LargeObjectHdr. */ BackRefIdx backRefIdx; diff --git a/src/test/test_malloc_pools.cpp b/src/test/test_malloc_pools.cpp index 1dbfa978..4432f7ac 100644 --- a/src/test/test_malloc_pools.cpp +++ b/src/test/test_malloc_pools.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_pure_c.c b/src/test/test_malloc_pure_c.c index 6043db96..e85a21d7 100644 --- a/src/test/test_malloc_pure_c.c +++ b/src/test/test_malloc_pure_c.c @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_regression.cpp b/src/test/test_malloc_regression.cpp index b9cb0fd4..2e300596 100644 --- a/src/test/test_malloc_regression.cpp +++ b/src/test/test_malloc_regression.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_used_by_lib.cpp b/src/test/test_malloc_used_by_lib.cpp index 0347578b..743af134 100644 --- a/src/test/test_malloc_used_by_lib.cpp +++ b/src/test/test_malloc_used_by_lib.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_malloc_whitebox.cpp b/src/test/test_malloc_whitebox.cpp index 980bcd83..6c840776 100644 --- a/src/test/test_malloc_whitebox.cpp +++ b/src/test/test_malloc_whitebox.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -116,7 +116,7 @@ public: } } } - + barrier.wait(); // check caching correctness @@ -125,7 +125,7 @@ public: for (int j=0; j=MinThread; --p ) { @@ -170,14 +170,14 @@ public: for (int i=0; i=blocks1[i].sz + ASSERT(blocks1[i].ptr && StartupBlock::msize(blocks1[i].ptr)>=blocks1[i].sz && 0==(uintptr_t)blocks1[i].ptr % sizeof(void*), NULL); memset(blocks1[i].ptr, i, blocks1[i].sz); } for (int i=0; i=blocks2[i].sz + ASSERT(blocks2[i].ptr && StartupBlock::msize(blocks2[i].ptr)>=blocks2[i].sz && 0==(uintptr_t)blocks2[i].ptr % sizeof(void*), NULL); memset(blocks2[i].ptr, i, blocks2[i].sz); @@ -531,7 +531,7 @@ void TestObjectRecognition() { void* bufferLOH = scalable_malloc(2*slabSize + headersSize); ASSERT(bufferLOH, "Memory was not allocated"); - LargeObjectHdr* falseLO = + LargeObjectHdr* falseLO = (LargeObjectHdr*)alignUp((uintptr_t)bufferLOH + headersSize, slabSize); LargeObjectHdr* headerLO = (LargeObjectHdr*)falseLO-1; headerLO->memoryBlock = (LargeMemoryBlock*)bufferLOH; @@ -549,7 +549,7 @@ void TestObjectRecognition() { for (int master = -10; master<10; master++) { falseBlock->backRefIdx.master = (uint16_t)master; headerLO->backRefIdx.master = (uint16_t)master; - + for (int bl = -10; blbackRefIdx.offset = (uint16_t)bl; headerLO->backRefIdx.offset = (uint16_t)bl; diff --git a/src/test/test_model_plugin.cpp b/src/test/test_model_plugin.cpp index 9ddb43b1..9ff18639 100644 --- a/src/test/test_model_plugin.cpp +++ b/src/test/test_model_plugin.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -172,7 +172,7 @@ int use_lot_of_tls() { pthread_key_t last_handles[10]; pthread_key_t result; int setspecific_dummy=10; - while( pthread_key_create(&result, NULL)==0 + while( pthread_key_create(&result, NULL)==0 && count < 4096 ) // Sun Solaris doesn't have any built-in limit, so we set something big enough { last_handles[++count%10] = result; diff --git a/src/test/test_multifunction_node.cpp b/src/test/test_multifunction_node.cpp index bb627e9f..3a04a376 100644 --- a/src/test/test_multifunction_node.cpp +++ b/src/test/test_multifunction_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -52,13 +52,13 @@ struct parallel_put_until_limit : private NoAssign { } }; - -//! exercise buffered multifunction_node. + +//! exercise buffered multifunction_node. template< typename InputType, typename OutputTuple, typename Body > void buffered_levels( size_t concurrency, Body body ) { typedef typename tbb::flow::tuple_element<0,OutputTuple>::type OutputType; // Do for lc = 1 to concurrency level - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; // Set the execute_counter back to zero in the harness @@ -70,7 +70,7 @@ void buffered_levels( size_t concurrency, Body body ) { // Create the function_node with the appropriate concurrency level, and use default buffering tbb::flow::multifunction_node< InputType, OutputTuple > exe_node( g, lc, body ); - + //Create a vector of identical exe_nodes std::vector< tbb::flow::multifunction_node< InputType, OutputTuple > > exe_vec(2, exe_node); @@ -95,17 +95,17 @@ void buffered_levels( size_t concurrency, Body body ) { // Initialize the receivers so they know how many senders and messages to check for for (size_t r = 0; r < num_receivers; ++r ) { - receivers[r].initialize_map( N, num_senders ); + receivers[r].initialize_map( N, num_senders ); } // Do the test NativeParallelFor( (int)num_senders, parallel_put_until_limit(senders) ); g.wait_for_all(); - // confirm that each sender was requested from N times + // confirm that each sender was requested from N times for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &exe_vec[node_idx], NULL ); } // validate the receivers @@ -125,7 +125,7 @@ void buffered_levels( size_t concurrency, Body body ) { } delete [] receivers; } - } + } } } @@ -151,13 +151,13 @@ template< typename InputType, typename OutputTuple > void buffered_levels_with_copy( size_t concurrency ) { typedef typename tbb::flow::tuple_element<0,OutputTuple>::type OutputType; // Do for lc = 1 to concurrency level - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; inc_functor cf; cf.local_execute_count = Offset; global_execute_count = Offset; - + tbb::flow::multifunction_node< InputType, OutputTuple > exe_node( g, lc, cf ); for (size_t num_receivers = 1; num_receivers <= MAX_NODES; ++num_receivers ) { @@ -175,7 +175,7 @@ void buffered_levels_with_copy( size_t concurrency ) { } for (size_t r = 0; r < num_receivers; ++r ) { - receivers[r].initialize_map( N, num_senders ); + receivers[r].initialize_map( N, num_senders ); } NativeParallelFor( (int)num_senders, parallel_put_until_limit(senders) ); @@ -183,7 +183,7 @@ void buffered_levels_with_copy( size_t concurrency ) { for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &exe_node, NULL ); } for (size_t r = 0; r < num_receivers; ++r ) { @@ -204,10 +204,10 @@ void buffered_levels_with_copy( size_t concurrency ) { // validate that the local body matches the global execute_count and both are correct inc_functor body_copy = tbb::flow::copy_body( exe_node ); - const size_t expected_count = N/2 * MAX_NODES * MAX_NODES * ( MAX_NODES + 1 ) + MAX_NODES + Offset; + const size_t expected_count = N/2 * MAX_NODES * MAX_NODES * ( MAX_NODES + 1 ) + MAX_NODES + Offset; size_t global_count = global_execute_count; size_t inc_count = body_copy.local_execute_count; - ASSERT( global_count == expected_count && global_count == inc_count, NULL ); + ASSERT( global_count == expected_count && global_count == inc_count, NULL ); } } @@ -226,16 +226,16 @@ void run_buffered_levels( int c ) { //! Performs test on executable nodes with limited concurrency /** Theses tests check: 1) that the nodes will accepts puts up to the concurrency limit, - 2) the nodes do not exceed the concurrency limit even when run with more threads (this is checked in the harness_graph_executor), + 2) the nodes do not exceed the concurrency limit even when run with more threads (this is checked in the harness_graph_executor), 3) the nodes will receive puts from multiple successors simultaneously, and 4) the nodes will send to multiple predecessors. There is no checking of the contents of the messages for corruption. */ - + template< typename InputType, typename OutputTuple, typename Body > void concurrency_levels( size_t concurrency, Body body ) { typedef typename tbb::flow::tuple_element<0,OutputTuple>::type OutputType; - for ( size_t lc = 1; lc <= concurrency; ++lc ) { + for ( size_t lc = 1; lc <= concurrency; ++lc ) { tbb::flow::graph g; // Set the execute_counter back to zero in the harness @@ -257,34 +257,34 @@ void concurrency_levels( size_t concurrency, Body body ) { } harness_counting_sender *senders = NULL; - + for (size_t num_senders = 1; num_senders <= MAX_NODES; ++num_senders ) { { // Exclusively lock m to prevent exe_node from finishing tbb::spin_rw_mutex::scoped_lock l( harness_graph_multifunction_executor< InputType, OutputTuple>::template mutex_holder::mutex ); - + // put to lc level, it will accept and then block at m for ( size_t c = 0 ; c < lc ; ++c ) { ASSERT( exe_node.try_put( InputType() ) == true, NULL ); } // it only accepts to lc level ASSERT( exe_node.try_put( InputType() ) == false, NULL ); - + senders = new harness_counting_sender[num_senders]; for (size_t s = 0; s < num_senders; ++s ) { // register a sender senders[s].my_limit = N; exe_node.register_predecessor( senders[s] ); } - + } // release lock at end of scope, setting the exe node free to continue // wait for graph to settle down g.wait_for_all(); - - // confirm that each sender was requested from N times + + // confirm that each sender was requested from N times for (size_t s = 0; s < num_senders; ++s ) { size_t n = senders[s].my_received; - ASSERT( n == N, NULL ); + ASSERT( n == N, NULL ); ASSERT( senders[s].my_receiver == &exe_node, NULL ); } // confirm that each receivers got N * num_senders + the initial lc puts @@ -319,7 +319,7 @@ void run_concurrency_levels( int c ) { } -struct empty_no_assign { +struct empty_no_assign { empty_no_assign() {} empty_no_assign( int ) {} operator int() { return 0; } @@ -367,11 +367,11 @@ void unlimited_concurrency( Body body ) { } NativeParallelFor( p, parallel_puts(exe_node) ); - g.wait_for_all(); + g.wait_for_all(); // 2) the nodes will receive puts from multiple predecessors simultaneously, size_t ec = harness_graph_multifunction_executor::execute_count; - ASSERT( (int)ec == p*N, NULL ); + ASSERT( (int)ec == p*N, NULL ); for (size_t r = 0; r < num_receivers; ++r ) { size_t c = receivers[r].my_count; // 3) the nodes will send to multiple successors. @@ -508,7 +508,7 @@ void test_extract() { tbb::flow::make_edge(tbb::flow::output_port<0>(mf0), q0); tbb::flow::make_edge(tbb::flow::output_port<1>(mf0), q1); for( int i = 0; i < 2; ++i ) { - + /* b0 */ /* \ |--q0 */ /* mf0+ */ @@ -533,16 +533,16 @@ void test_extract() { ASSERT(my_count == 2, "multifunction_node didn't fire"); ASSERT(q0.try_get(cm), "multifunction_node didn't forward to 0"); ASSERT(q1.try_get(cm), "multifunction_node didn't forward to 1"); - + b0.extract(); - - + + /* b0 */ /* |--q0 */ /* mf0+ */ /* / |--q1 */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(mf0.predecessor_count() == 1 @@ -562,13 +562,13 @@ void test_extract() { ASSERT(q1.try_get(cm), "multifunction_node didn't forward second time"); q0.extract(); - + /* b0 */ /* | q0 */ /* mf0+ */ /* / |--q1 */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 1, "b1 has incorrect counts"); ASSERT(mf0.predecessor_count() == 1 @@ -587,20 +587,20 @@ void test_extract() { ASSERT(!q0.try_get(cm), "multifunction_node forwarded"); ASSERT(q1.try_get(cm), "multifunction_node forwarded"); mf0.extract(); - + if(i == 0) { } else { g.reset(tbb::flow::rf_reset_bodies); } - - + + /* b0 */ /* | q0 */ /* mf0+ */ /* | q1 */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 0, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(mf0.predecessor_count() == 0 @@ -619,13 +619,13 @@ void test_extract() { ASSERT(!q0.try_get(cm), "multifunction_node forwarded"); ASSERT(!q1.try_get(cm), "multifunction_node forwarded"); make_edge(b0, mf0); - + /* b0 */ /* \ | q0 */ /* mf0+ */ /* | q1 */ /* b1 */ - + ASSERT(b0.predecessor_count() == 0 && b0.successor_count() == 1, "b0 has incorrect counts"); ASSERT(b1.predecessor_count() == 0 && b1.successor_count() == 0, "b1 has incorrect counts"); ASSERT(mf0.predecessor_count() == 1 @@ -642,7 +642,7 @@ void test_extract() { ASSERT(my_count == 5, "multifunction_node fired though it has only one predecessor"); ASSERT(!q0.try_get(cm), "multifunction_node forwarded"); ASSERT(!q1.try_get(cm), "multifunction_node forwarded"); - + tbb::flow::make_edge(b1, mf0); tbb::flow::make_edge(tbb::flow::output_port<0>(mf0), q0); tbb::flow::make_edge(tbb::flow::output_port<1>(mf0), q1); @@ -653,7 +653,7 @@ void test_extract() { } #endif -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_mutex.cpp b/src/test/test_mutex.cpp index 091c1167..d4bd05ab 100644 --- a/src/test/test_mutex.cpp +++ b/src/test/test_mutex.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_mutex_native_threads.cpp b/src/test/test_mutex_native_threads.cpp index 3f4c4673..b2425fad 100644 --- a/src/test/test_mutex_native_threads.cpp +++ b/src/test/test_mutex_native_threads.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,7 +34,7 @@ template struct Counter { typedef M mutex_type; M mutex; - volatile long value; + volatile long value; void flog_once( size_t mode ); }; @@ -83,7 +83,7 @@ struct Invariant { bool is_okay() { return value_is( value[0] ); } - void flog_once( size_t mode ); + void flog_once( size_t mode ); }; template @@ -159,7 +159,7 @@ struct Work: NoAssign { void operator()( int ) const { size_t step; while( (step=Order.fetch_and_add(chunk))(), BROKEN_FUNCTION_POINTER_DEDUCTION( port_ref<1> ), /* stride_x */ 1, /* stride_y */ 64, /* stride_z */ stride_z, /* dim */ 3, err, err_size ); - k.set_ndranges( { 64, 64, 64 }, { 4, (int)min( maxSizes[1], 4 ), (int)min( maxSizes[2], 4 ) } ); + k.set_ndranges( { 64, 64, 64 }, { 4, min( (int)maxSizes[1], 4 ), min( (int)maxSizes[2], 4 ) } ); s.try_put( std::make_tuple( b1, b2, std::list() ) ); g.wait_for_all(); ASSERT( err.data() == std::string( "Done" ), "Validation has failed" ); @@ -133,7 +133,7 @@ void TestArgumentPassing() { std::fill( b1.begin(), b1.end(), 5 ); ASSERT( 2 * 64 * 64 < N, NULL ); k.set_args( port_ref<0, 1>(), /* stride_x */ 2, /* stride_y */ 2 * 64, /* stride_z */ 2 * 64 * 64, /* dim */ 3, err, err_size ); - k.set_ndranges( BROKEN_FUNCTION_POINTER_DEDUCTION( port_ref<2> ), BROKEN_INITIALIZER_LIST_DEDUCTION( { 4, (int)min( maxSizes[1], 4 ), min( (int)maxSizes[2], 4 ) } ) ); + k.set_ndranges( BROKEN_FUNCTION_POINTER_DEDUCTION( port_ref<2> ), BROKEN_INITIALIZER_LIST_DEDUCTION( { 4, min( (int)maxSizes[1], 4 ), min( (int)maxSizes[2], 4 ) } ) ); l.push_back( 64 ); l.push_back( 64 ); l.push_back( 64 ); s.try_put( std::make_tuple( b1, b2, l ) ); l.front() = 0; // Nothing should be changed @@ -338,21 +338,23 @@ void LoopTest() { template struct ConcurrencyTestBodyData { - typedef opencl_node< tuple, opencl_buffer>, queueing, Factory > NodeType; + typedef opencl_node< tuple, opencl_subbuffer>, queueing, Factory > NodeType; typedef std::vector< NodeType* > VectorType; Harness::SpinBarrier barrier; VectorType nodes; - function_node< opencl_buffer > validationNode; + function_node< opencl_subbuffer > validationNode; tbb::atomic numChecks; ConcurrencyTestBodyData( opencl_graph &g, int numThreads ) : barrier( numThreads ), nodes(numThreads), - validationNode( g, unlimited, [numThreads, this]( const opencl_buffer &b ) { + validationNode( g, unlimited, [numThreads, this]( const opencl_subbuffer &b ) { ASSERT( std::all_of( b.begin(), b.end(), [numThreads]( cl_short c ) { return c == numThreads; } ), "Validation has failed" ); --numChecks; } ) { numChecks = 100; + // The test creates subbers in pairs so numChecks should be even. + ASSERT( numChecks % 2 == 0, NULL ); } ~ConcurrencyTestBodyData() { @@ -432,15 +434,43 @@ public: remove_edge( output_port<1>( *data->nodes.back() ), data->validationNode ); data->barrier.wait(); + if ( idx == 0 ) { + // The first node needs two buffers. + Harness::FastRandom rnd(42); + cl_uint alignment = 0; + for ( opencl_device d : filteredDevices ) { + cl_uint deviceAlignment; + d.info( CL_DEVICE_MEM_BASE_ADDR_ALIGN, deviceAlignment ); + alignment = max( alignment, deviceAlignment ); + } + alignment /= CHAR_BIT; + cl_uint alignmentMask = ~(alignment-1); + for ( int i = 0; i < numChecks; i += 2 ) { + for ( int j = 0; j < 2; ++j ) { + opencl_buffer b1( f, N ); + std::fill( b1.begin(), b1.end(), 1 ); + input_port<0>( *n2 ).try_put( b1 ); + } - for ( int i = 0; i < numChecks; ++i ) { - opencl_buffer b( f, N ); - std::fill( b.begin(), b.end(), 1 ); - input_port<0>( *n2 ).try_put( b ); - if ( idx == 0 ) { - opencl_buffer b1( f, N ); - std::fill( b1.begin(), b1.end(), 0 ); - input_port<1>( *n2 ).try_put( b1 ); + // The subbers are created in pairs from one big buffer + opencl_buffer b( f, 4*N ); + size_t id0 = (rnd.get() % N) & alignmentMask; + opencl_subbuffer sb1( b, id0, N ); + std::fill( sb1.begin(), sb1.end(), 0 ); + input_port<1>( *n2 ).try_put( sb1 ); + + size_t id1 = (rnd.get() % N) & alignmentMask; + opencl_subbuffer sb2 = b.subbuffer( 2*N + id1, N ); + std::fill( sb2.begin(), sb2.end(), 0 ); + input_port<1>( *n2 ).try_put( sb2 ); + } + } else { + // Other nodes need only one buffer each because input_port<1> is connected with + // output_port<1> of the previous node. + for ( int i = 0; i < numChecks; ++i ) { + opencl_buffer b( f, N ); + std::fill( b.begin(), b.end(), 1 ); + input_port<0>( *n2 ).try_put( b ); } } @@ -485,7 +515,7 @@ struct DeviceFilter { std::unordered_map> platforms; for ( opencl_device d : device_list ) platforms[d.platform_name()].push_back( d ); - // Select a platform with maximum number of devices. + // Select a platform with maximum number of devices. filteredDevices = std::max_element( platforms.begin(), platforms.end(), []( const std::pair>& p1, const std::pair>& p2 ) { return p1.second.size() < p2.second.size(); diff --git a/src/test/test_opencl_precompiled_kernel_gpu.clbin b/src/test/test_opencl_precompiled_kernel_gpu.clbin index 3fcfdfcc158d816c9caeac9adcc622a3c6c75068..1c474d4a68c1779cd18a35d84642d64dd09812da 100644 GIT binary patch delta 75 zcmZoueyKEJ0i*B4h31TBC*HJYyf|5s(VkIpawMarW{9hAKunscd5WRAiK%W%qM3=V fNlKcTuBCBGimsuhVOpAzL7KT?lJVvnjO+LTvf>w; delta 104 zcmaE<)TTUP0b|z0h31T}Cf>AXd^cH=(Vo$6awMarTWE1=QE^OST53vuNxor>V?lvS zVo73*PkwS@PE1H@Zb3|vnVFe+s=1|ZQnI0eu1T_Ss&0~HnxSrTnx$E4YHE^svZ2}L I-Hhw_0nSAvApigX diff --git a/src/test/test_openmp.cpp b/src/test/test_openmp.cpp index 51187764..48aa2513 100644 --- a/src/test/test_openmp.cpp +++ b/src/test/test_openmp.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ // Test mixing OpenMP and TBB -/* SCR #471 +/* SCR #471 Below is workaround to compile test within environment of Intel Compiler but by Microsoft Compiler. So, there is wrong "omp.h" file included and manifest section is missed from .exe file - restoring here. @@ -90,9 +90,9 @@ typedef short T; void SerialConvolve( T c[], const T a[], int m, const T b[], int n ) { for( int i=0; i& range ) { - for( int j=range.begin(); j!=range.end(); ++j ) + for( int j=range.begin(); j!=range.end(); ++j ) sum += my_a[j]*my_b[i-j]; } }; @@ -142,13 +142,13 @@ public: //! Test OpenMMP loop around TBB loop void OpenMP_TBB_Convolve( T c[], const T a[], int m, const T b[], int n ) { REMARK("testing OpenMP loop around TBB loop\n"); -#pragma omp parallel +#pragma omp parallel { task_scheduler_init init; #pragma omp for for( int i=0; i(start,finish,10), body ); c[i] = body.sum; @@ -169,10 +169,10 @@ public: void operator()( const blocked_range& range ) const { for( int i=range.begin(); i!=range.end(); ++i ) { int start = i @@ -138,7 +138,7 @@ void parallel_read_write_tests() { } } -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_parallel_do.cpp b/src/test/test_parallel_do.cpp index 3c28ee5d..b61d8939 100644 --- a/src/test/test_parallel_do.cpp +++ b/src/test/test_parallel_do.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -277,8 +277,8 @@ int TestMain () { // Test that all workers sleep when no work TestCPUUserTime(p); } - // This check must be performed after the scheduler terminated because only in this - // case there is a guarantee that the workers already destroyed their last tasks. + // This check must be performed after the scheduler terminated because only in this + // case there is a guarantee that the workers already destroyed their last tasks. ASSERT( g_values_counter == 0, "Value objects were leaked" ); return Harness::Done; } diff --git a/src/test/test_parallel_for.cpp b/src/test/test_parallel_for.cpp index 958d5cae..2b74e72e 100644 --- a/src/test/test_parallel_for.cpp +++ b/src/test/test_parallel_for.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_parallel_for_each.cpp b/src/test/test_parallel_for_each.cpp index 2ca101d8..6a2aa862 100644 --- a/src/test/test_parallel_for_each.cpp +++ b/src/test/test_parallel_for_each.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -51,7 +51,7 @@ void RunPForEachTests() sum = 0; size_t test_sum = 0; - for (size_t i =0; i < NUMBER_OF_ELEMENTS; i++) { + for (size_t i =0; i < NUMBER_OF_ELEMENTS; i++) { test_vector[i] = i; test_sum += i; } @@ -102,7 +102,7 @@ void TestExceptionsSupport() REMARK (__FUNCTION__); size_t test_vector[NUMBER_OF_ELEMENTS + 1]; - for (size_t i = 0; i < NUMBER_OF_ELEMENTS; i++) { + for (size_t i = 0; i < NUMBER_OF_ELEMENTS; i++) { test_vector[i] = i; } @@ -128,14 +128,14 @@ class my_worker_pforeach_task : public tbb::task tbb::task* execute () { size_t test_vector[NUMBER_OF_ELEMENTS + 1]; - for (size_t i = 0; i < NUMBER_OF_ELEMENTS; i++) { + for (size_t i = 0; i < NUMBER_OF_ELEMENTS; i++) { test_vector[i] = i; } Iterator begin(&test_vector[0]); Iterator end(&test_vector[NUMBER_OF_ELEMENTS]); tbb::parallel_for_each(begin, end, (TestFunctionType)function_to_cancel); - + return NULL; } public: diff --git a/src/test/test_parallel_for_vectorization.cpp b/src/test/test_parallel_for_vectorization.cpp index e8ce9c62..c1b97d6a 100644 --- a/src/test/test_parallel_for_vectorization.cpp +++ b/src/test/test_parallel_for_vectorization.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_parallel_invoke.cpp b/src/test/test_parallel_invoke.cpp index a45317e6..dd9c8107 100644 --- a/src/test/test_parallel_invoke.cpp +++ b/src/test/test_parallel_invoke.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_parallel_pipeline.cpp b/src/test/test_parallel_pipeline.cpp index c846f1a2..8d2e0e8c 100644 --- a/src/test/test_parallel_pipeline.cpp +++ b/src/test/test_parallel_pipeline.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -35,7 +35,7 @@ const unsigned n_tokens = 8; // we can conceivably have two buffers used in the middle filter for every token in flight, so // we must allocate two buffers for every token. Unlikely, but possible. const unsigned n_buffers = 2*n_tokens; -const unsigned max_counter = 16; +const int max_counter = 16; static tbb::atomic output_counter; static tbb::atomic input_counter; static tbb::atomic non_pointer_specialized_calls; @@ -47,7 +47,7 @@ static tbb::spin_mutex buffer_mutex; static int intbuffer[max_counter]; // store results for parallel pipeline test static bool check_intbuffer; -static void* buffers[n_buffers]; +static void* buffers[n_buffers]; static bool buf_available[n_buffers]; void *fetchNextBuffer() { @@ -121,7 +121,7 @@ public: AssertLive(); if( --input_counter < 0 ) { control.stop(); - } + } else // only count successful reads ++non_pointer_specialized_calls; return U(); // default constructed @@ -157,7 +157,7 @@ public: if( --input_counter < 0 ) { control.stop(); } - else + else ++non_pointer_specialized_calls; } @@ -327,10 +327,10 @@ void checkCounters(final_assert_type my_t) { ASSERT(pointer_specialized_calls+first_pointer_specialized_calls+second_pointer_specialized_calls == 0, "non-pointer filters specialized to pointer"); ASSERT(non_pointer_specialized_calls == 3*max_counter, "bad count for non-pointer filters"); if(check_intbuffer) { - for(int i = 1; i <= (int)max_counter; ++i) { + for(int i = 1; i <= max_counter; ++i) { int j = i*i; bool found_val = false; - for(int k = 0; k < (int)max_counter; ++k) { + for(int k = 0; k < max_counter; ++k) { if(intbuffer[k] == j) { found_val = true; break; @@ -347,7 +347,7 @@ void checkCounters(final_assert_type my_t) { second_pointer_specialized_calls == 0, "incorrect specialization for firstpointer"); break; case assert_secondpointer: - ASSERT(pointer_specialized_calls == max_counter && + ASSERT(pointer_specialized_calls == max_counter && first_pointer_specialized_calls == 0 && non_pointer_specialized_calls == max_counter && // input filter second_pointer_specialized_calls == max_counter, "incorrect specialization for firstpointer"); @@ -361,7 +361,7 @@ void checkCounters(final_assert_type my_t) { } } -static const tbb::filter::mode filter_table[] = { tbb::filter::parallel, tbb::filter::serial_in_order, tbb::filter::serial_out_of_order}; +static const tbb::filter::mode filter_table[] = { tbb::filter::parallel, tbb::filter::serial_in_order, tbb::filter::serial_out_of_order}; const unsigned number_of_filter_types = sizeof(filter_table)/sizeof(filter_table[0]); typedef tbb::filter_t filter_chain; @@ -397,7 +397,7 @@ void run_function_spec() { tbb::atomic counter; counter = max_counter; // Construct filter using lambda-syntax when parallel_pipeline() is being run; - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_table[i], [&counter]( tbb::flow_control& control ) { if( counter-- == 0 ) control.stop(); @@ -410,11 +410,11 @@ void run_function_spec() { } template -void run_filter_set( - input_filter& i_filter, - middle_filter& m_filter, - output_filter& o_filter, - mode_array *filter_type, +void run_filter_set( + input_filter& i_filter, + middle_filter& m_filter, + output_filter& o_filter, + mode_array *filter_type, final_assert_type my_t) { tbb::filter_t filter1( filter_type[0], i_filter ); tbb::filter_t filter2( filter_type[1], m_filter ); @@ -450,7 +450,7 @@ void run_filter_set( // Construct filters and create the sequence when parallel_pipeline() is being run resetCounters(); - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_type[0], i_filter) & tbb::make_filter(filter_type[1], m_filter) & tbb::make_filter(filter_type[2], o_filter) ); @@ -490,7 +490,7 @@ void run_lambdas_test( mode_array *filter_type ) { counter = max_counter; // Construct filters using lambda-syntax and create the sequence when parallel_pipeline() is being run; resetCounters(); // only need the output_counter reset. - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_type[0], [&counter]( tbb::flow_control& control ) -> t1 { if( --counter < 0 ) control.stop(); @@ -499,15 +499,15 @@ void run_lambdas_test( mode_array *filter_type ) { tbb::make_filter(filter_type[1], []( t1 /*my_storage*/ ) -> t2 { return t2(); } ) & - tbb::make_filter(filter_type[2], [] ( t2 ) -> void { + tbb::make_filter(filter_type[2], [] ( t2 ) -> void { output_counter++; } - ) + ) ); checkCounters(no_pointer_counts); // don't have to worry about specializations counter = max_counter; // pointer filters resetCounters(); - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_type[0], [&counter]( tbb::flow_control& control ) -> t1* { if( --counter < 0 ) { control.stop(); @@ -519,17 +519,17 @@ void run_lambdas_test( mode_array *filter_type ) { tbb::tbb_allocator().destroy(my_storage); // my_storage->~t1(); return new(my_storage) t2(); } ) & - tbb::make_filter(filter_type[2], [] ( t2* my_storage ) -> void { + tbb::make_filter(filter_type[2], [] ( t2* my_storage ) -> void { tbb::tbb_allocator().destroy(my_storage); // my_storage->~t2(); freeBuffer(my_storage); output_counter++; } - ) + ) ); checkCounters(no_pointer_counts); // first filter outputs pointer counter = max_counter; resetCounters(); - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_type[0], [&counter]( tbb::flow_control& control ) -> t1* { if( --counter < 0 ) { control.stop(); @@ -542,15 +542,15 @@ void run_lambdas_test( mode_array *filter_type ) { freeBuffer(my_storage); return t2(); } ) & - tbb::make_filter(filter_type[2], [] ( t2 /*my_storage*/) -> void { + tbb::make_filter(filter_type[2], [] ( t2 /*my_storage*/) -> void { output_counter++; } - ) + ) ); checkCounters(no_pointer_counts); // second filter outputs pointer counter = max_counter; resetCounters(); - tbb::parallel_pipeline( n_tokens, + tbb::parallel_pipeline( n_tokens, tbb::make_filter(filter_type[0], [&counter]( tbb::flow_control& control ) -> t1 { if( --counter < 0 ) { control.stop(); @@ -560,11 +560,11 @@ void run_lambdas_test( mode_array *filter_type ) { tbb::make_filter(filter_type[1], []( t1 /*my_storage*/ ) -> t2* { return new(fetchNextBuffer()) t2(); } ) & - tbb::make_filter(filter_type[2], [] ( t2* my_storage) -> void { + tbb::make_filter(filter_type[2], [] ( t2* my_storage) -> void { tbb::tbb_allocator().destroy(my_storage); // my_storage->~t2(); freeBuffer(my_storage); output_counter++; } - ) + ) ); checkCounters(no_pointer_counts); } diff --git a/src/test/test_parallel_reduce.cpp b/src/test/test_parallel_reduce.cpp index c708266d..f05ba388 100644 --- a/src/test/test_parallel_reduce.cpp +++ b/src/test/test_parallel_reduce.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -62,11 +62,11 @@ private: FooBody() {++FooBodyCount;} public: ~FooBody() { - forked = 0xDEADBEEF; + forked = 0xDEADBEEF; sum=0xDEADBEEF; join_count=0xDEADBEEF; --FooBodyCount; - } + } FooBody( FooBody& other, tbb::split ) { ++FooBodyCount; ++ForkCount; @@ -79,7 +79,7 @@ public: void join( FooBody& s ) { ASSERT( s.forked==1, NULL ); ASSERT( this!=&s, NULL ); - ASSERT( this==s.parent, NULL ); + ASSERT( this==s.parent, NULL ); ASSERT( end==s.begin, NULL ); end = s.end; sum += s.sum; @@ -105,7 +105,7 @@ public: void Flog( int nthread, bool interference=false ) { for (int mode = 0; mode < 4; mode++) { tbb::tick_count T0 = tbb::tick_count::now(); - long join_count = 0; + long join_count = 0; tbb::affinity_partitioner ap; for( size_t i=0; i<=1000; ++i ) { FooBody f; @@ -127,7 +127,7 @@ void Flog( int nthread, bool interference=false ) { case 2: tbb::parallel_reduce( MinimalRange(i), f, tbb::auto_partitioner() ); break; - case 3: + case 3: tbb::parallel_reduce( MinimalRange(i), f, ap ); break; } @@ -177,8 +177,8 @@ void ParallelSum () { ValueType r1 = tbb::parallel_reduce( range, I, Accumulator(), Sum() ); ASSERT( r1 == R, NULL ); #if __TBB_LAMBDAS_PRESENT - ValueType r2 = tbb::parallel_reduce( range, I, - [](const tbb::blocked_range& r, ValueType value) -> ValueType { + ValueType r2 = tbb::parallel_reduce( range, I, + [](const tbb::blocked_range& r, ValueType value) -> ValueType { for ( ValueType* pv = r.begin(); pv != r.end(); ++pv ) value += *pv; return value; @@ -227,7 +227,7 @@ void TestDeterministicReduction () { tbb::parallel_deterministic_reduce( range,body2 ); ASSERT( body2.my_value == R, NULL ); #if __TBB_LAMBDAS_PRESENT - Type r = tbb::parallel_deterministic_reduce( range, Type(), + Type r = tbb::parallel_deterministic_reduce( range, Type(), [](const tbb::blocked_range& br, Type value) -> Type { Harness::ConcurrencyTracker ct; for ( int ii = br.begin(); ii != br.end(); ++ii ) { diff --git a/src/test/test_parallel_scan.cpp b/src/test/test_parallel_scan.cpp index 872a0699..cc3174c5 100644 --- a/src/test/test_parallel_scan.cpp +++ b/src/test/test_parallel_scan.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ static volatile bool ScanIsRunning = false; //! Sum of 0..i with wrap around on overflow. inline int TriangularSum( int i ) { - return i&1 ? ((i>>1)+1)*i : (i>>1)*(i+1); + return i&1 ? ((i>>1)+1)*i : (i>>1)*(i+1); } //! Verify that sum is sum of integers in closed interval [start_index..finish_index]. @@ -43,11 +43,11 @@ enum AddendFlag { USED_FINAL=2 }; -//! Array recording how each addend was used. +//! Array recording how each addend was used. /** 'unsigned char' instead of AddendFlag for sake of compactness. */ static unsigned char AddendHistory[MAXN]; -//! Set to 1 for debugging output +//! Set to 1 for debugging output #define PRINT_DEBUG 0 #include "tbb/atomic.h" @@ -94,14 +94,14 @@ public: #endif /* PRINT_DEBUG */ ~Accumulator() { #if PRINT_DEBUG - REPORT("%d [%ld..%ld) destroyed\n",id,my_range.begin(),my_range.end() ); + REPORT("%d [%ld..%ld) destroyed\n",id,my_range.begin(),my_range.end() ); #endif /* PRINT_DEBUG */ // Clear self as first action of destructor, to indicate that object is not fully constructed. self = 0; --NumberOfLiveAccumulator; } - Accumulator( Accumulator& a, tbb::split ) : - my_total(0), my_array(a.my_array), my_sum(a.my_sum), my_range(-1,-1,1) + Accumulator( Accumulator& a, tbb::split ) : + my_total(0), my_array(a.my_array), my_sum(a.my_sum), my_range(-1,-1,1) { ++NumberOfLiveAccumulator; #if PRINT_DEBUG @@ -111,7 +111,7 @@ public: // Set self as last action of constructor, to indicate that object is fully constructed. self = this; } - template + template void operator()( const Range& r, Tag /*tag*/ ) { Snooze(true); #if PRINT_DEBUG @@ -131,7 +131,7 @@ public: } else { ASSERT( AddendHistory[i]==UNUSED, "addend used too many times" ); AddendHistory[i] |= USED_NONFINAL; - } + } } if( my_range.empty() ) my_range = r; @@ -147,13 +147,13 @@ public: id,my_range.begin(),my_range.end()); #endif /* PRINT_DEBUG */ Snooze(true); - ASSERT( ScanIsRunning, NULL ); + ASSERT( ScanIsRunning, NULL ); ASSERT( left.my_range.end()==my_range.begin(), NULL ); my_total += left.my_total; my_range = Range( left.my_range.begin(), my_range.end(), 1 ); - ASSERT( ScanIsRunning, NULL ); + ASSERT( ScanIsRunning, NULL ); Snooze(true); - ASSERT( ScanIsRunning, NULL ); + ASSERT( ScanIsRunning, NULL ); ASSERT( self==this, NULL ); ASSERT( left.self==&left, NULL ); } @@ -215,7 +215,7 @@ void TestAccumulator( int mode, int nthread ) { Snooze(false); tbb::tick_count t1 = tbb::tick_count::now(); long used_once_count = 0; - for( long i=0; i bool Validate(std::string * a, std::string * b, size_t n) { for (size_t i = 0; i < n; i++) { @@ -89,18 +89,18 @@ bool Validate(std::string * a, std::string * b, size_t n) { return true; } -//! A Validate specialized to Minimal since it does not define an operator== +//! A Validate specialized to Minimal since it does not define an operator== template<> bool Validate(Minimal *a, Minimal *b, size_t n) { for (size_t i = 0; i < n; i++) { ASSERT( Minimal::AreEqual(a[i],b[i]), NULL ); } return true; -} +} -//! A Validate specialized to concurrent_vector since it does not define an operator== +//! A Validate specialized to concurrent_vector since it does not define an operator== template<> -bool Validate::iterator>(tbb::concurrent_vector::iterator a, +bool Validate::iterator>(tbb::concurrent_vector::iterator a, tbb::concurrent_vector::iterator b, size_t n) { for (size_t i = 0; i < n; i++) { ASSERT( Minimal::AreEqual(a[i],b[i]), NULL ); @@ -108,8 +108,8 @@ bool Validate::iterator>(tbb::concurrent_vector< return true; } -//! used in Verbose mode for identifying which data set is being used -static std::string test_type; +//! used in Verbose mode for identifying which data set is being used +static std::string test_type; //! The default initialization routine. /*! This routine assumes that you can assign to the elements from a float. @@ -117,12 +117,12 @@ static std::string test_type; them according to the current data set (tracked by a local static variable). Returns true if a valid test has been setup, or false if there is no test to perform. -*/ - +*/ + template < typename RandomAccessIterator, typename Compare > bool init_iter(RandomAccessIterator iter, RandomAccessIterator sorted_list, size_t n, const Compare &compare, bool reset) { - static char test_case = 0; - const char num_cases = 3; + static char test_case = 0; + const char num_cases = 3; if (reset) test_case = 0; @@ -132,24 +132,24 @@ bool init_iter(RandomAccessIterator iter, RandomAccessIterator sorted_list, size case 0: /* use sin to generate the values */ test_type = "sin"; - for (size_t i = 0; i < n; i++) + for (size_t i = 0; i < n; i++) iter[i] = sorted_list[i] = static_cast::value_type>(sin(float(i))); break; case 1: - /* presorted list */ + /* presorted list */ test_type = "pre-sorted"; - for (size_t i = 0; i < n; i++) + for (size_t i = 0; i < n; i++) iter[i] = sorted_list[i] = static_cast::value_type>(i); break; case 2: - /* reverse-sorted list */ + /* reverse-sorted list */ test_type = "reverse-sorted"; - for (size_t i = 0; i < n; i++) + for (size_t i = 0; i < n; i++) iter[i] = sorted_list[i] = static_cast::value_type>(n - i); break; - } + } - // pre-sort sorted_list for later validity testing + // pre-sort sorted_list for later validity testing std::sort(sorted_list, sorted_list + n, compare); test_case++; return true; @@ -187,7 +187,7 @@ bool init_iter(T * iter, T * sorted_list, size_t n, const Compare &compare, bool break; } - // pre-sort sorted_list for later validity testing + // pre-sort sorted_list for later validity testing std::sort(sorted_list, sorted_list + n, compare); test_case++; return true; @@ -196,14 +196,14 @@ bool init_iter(T * iter, T * sorted_list, size_t n, const Compare &compare, bool } -//! The initialization routine specialized to the class Minimal +//! The initialization routine specialized to the class Minimal /*! Minimal cannot have floats assigned to it. This function uses the set_val method */ template < > bool init_iter(Minimal* iter, Minimal * sorted_list, size_t n, const MinimalCompare &compare, bool reset) { static char test_case = 0; - const char num_cases = 3; + const char num_cases = 3; if (reset) test_case = 0; @@ -218,22 +218,22 @@ bool init_iter(Minimal* iter, Minimal * sorted_list, size_t n, const MinimalComp } break; case 1: - /* presorted list */ + /* presorted list */ test_type = "pre-sorted"; for (size_t i = 0; i < n; i++) { - iter[i].set_val( int(i) ); + iter[i].set_val( int(i) ); sorted_list[i].set_val( int(i) ); } break; case 2: - /* reverse-sorted list */ + /* reverse-sorted list */ test_type = "reverse-sorted"; for (size_t i = 0; i < n; i++) { - iter[i].set_val( int(n-i) ); + iter[i].set_val( int(n-i) ); sorted_list[i].set_val( int(n-i) ); } break; - } + } std::sort(sorted_list, sorted_list + n, compare); test_case++; return true; @@ -241,12 +241,12 @@ bool init_iter(Minimal* iter, Minimal * sorted_list, size_t n, const MinimalComp return false; } -//! The initialization routine specialized to the class concurrent_vector +//! The initialization routine specialized to the class concurrent_vector /*! Minimal cannot have floats assigned to it. This function uses the set_val method */ template < > -bool init_iter(tbb::concurrent_vector::iterator iter, tbb::concurrent_vector::iterator sorted_list, +bool init_iter(tbb::concurrent_vector::iterator iter, tbb::concurrent_vector::iterator sorted_list, size_t n, const MinimalCompare &compare, bool reset) { static char test_case = 0; const char num_cases = 3; @@ -287,15 +287,15 @@ bool init_iter(tbb::concurrent_vector::iterator iter, tbb::concurrent_v return false; } -//! The initialization routine specialized to the class string -/*! strings are created from floats. +//! The initialization routine specialized to the class string +/*! strings are created from floats. */ template<> bool init_iter(std::string *iter, std::string *sorted_list, size_t n, const std::less &compare, bool reset) { static char test_case = 0; - const char num_cases = 1; - + const char num_cases = 1; + if (reset) test_case = 0; if (test_case < num_cases) { @@ -314,7 +314,7 @@ bool init_iter(std::string *iter, std::string *sorted_list, size_t n, const std: sorted_list[i] = iter[i] = std::string(buffer); } break; - } + } std::sort(sorted_list, sorted_list + n, compare); test_case++; return true; @@ -322,14 +322,14 @@ bool init_iter(std::string *iter, std::string *sorted_list, size_t n, const std: return false; } -//! The current number of threads in use (for Verbose only) +//! The current number of threads in use (for Verbose only) static size_t current_p; -//! The current data type being sorted (for Verbose only) -static std::string current_type; +//! The current data type being sorted (for Verbose only) +static std::string current_type; //! The default test routine. -/*! Tests all data set sizes from 0 to N, all grainsizes from 0 to G=10, and selects from +/*! Tests all data set sizes from 0 to N, all grainsizes from 0 to G=10, and selects from all possible interfaces to parallel_sort depending on whether a scratch space and compare have been provided. */ @@ -337,18 +337,18 @@ template bool parallel_sortTest(size_t n, RandomAccessIterator iter, RandomAccessIterator sorted_list, const Compare *comp) { bool passed = true; - Compare local_comp; + Compare local_comp; init_iter(iter, sorted_list, n, local_comp, true); do { - REMARK("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(), + REMARK("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(), static_cast(current_p), static_cast(n)); if (comp != NULL) { tbb::parallel_sort(iter, iter + n, local_comp ); } else { tbb::parallel_sort(iter, iter + n ); } - if (!Validate(iter, sorted_list, n)) + if (!Validate(iter, sorted_list, n)) passed = false; REMARK("passed\n"); } while (init_iter(iter, sorted_list, n, local_comp, false)); @@ -378,17 +378,17 @@ bool parallel_sortTest(size_t n, Minimal * iter, Minimal * sorted_list, const Mi //! The test routine specialize to concurrent_vector of Minimal, since it does not have a less defined for it template<> -bool parallel_sortTest(size_t n, tbb::concurrent_vector::iterator iter, +bool parallel_sortTest(size_t n, tbb::concurrent_vector::iterator iter, tbb::concurrent_vector::iterator sorted_list, const MinimalCompare *compare) { bool passed = true; if (compare == NULL) return passed; - + init_iter(iter, sorted_list, n, *compare, true); do { REMARK("%s %s p=%llu n=%llu :",current_type.c_str(), test_type.c_str(), static_cast(current_p), static_cast(n)); - + tbb::parallel_sort(iter, iter + n, *compare ); if (!Validate(iter, sorted_list, n)) @@ -403,13 +403,13 @@ bool parallel_sortTest(size_t n, tbb::concurrent_vector::iterator iter, by each type are tested. */ void Flog() { - // For each type create: - // the list to be sorted by parallel_sort (array) + // For each type create: + // the list to be sorted by parallel_sort (array) // the list to be sort by STL sort (array_2) // and a less function object const size_t N = 50000; - + Minimal *minimal_array = new Minimal[N]; Minimal *minimal_array_2 = new Minimal[N]; MinimalCompare minimal_less; @@ -431,8 +431,8 @@ void Flog() { tbb::concurrent_vector minimal_cv2; minimal_cv1.grow_to_at_least(N); minimal_cv2.grow_to_at_least(N); - - + + // run the appropriate tests for each type current_type = "Minimal(less)"; @@ -443,18 +443,18 @@ void Flog() { parallel_sortTest(50000, minimal_array, minimal_array_2, &minimal_less); current_type = "float (no less)"; - parallel_sortTest(0, float_array, float_array_2, static_cast *>(NULL)); - parallel_sortTest(1, float_array, float_array_2, static_cast *>(NULL)); - parallel_sortTest(10, float_array, float_array_2, static_cast *>(NULL)); - parallel_sortTest(9999, float_array, float_array_2, static_cast *>(NULL)); - parallel_sortTest(50000, float_array, float_array_2, static_cast *>(NULL)); + parallel_sortTest(0, float_array, float_array_2, static_cast *>(NULL)); + parallel_sortTest(1, float_array, float_array_2, static_cast *>(NULL)); + parallel_sortTest(10, float_array, float_array_2, static_cast *>(NULL)); + parallel_sortTest(9999, float_array, float_array_2, static_cast *>(NULL)); + parallel_sortTest(50000, float_array, float_array_2, static_cast *>(NULL)); current_type = "float (less)"; - parallel_sortTest(0, float_array, float_array_2, &float_less); - parallel_sortTest(1, float_array, float_array_2, &float_less); - parallel_sortTest(10, float_array, float_array_2, &float_less); - parallel_sortTest(9999, float_array, float_array_2, &float_less); - parallel_sortTest(50000, float_array, float_array_2, &float_less); + parallel_sortTest(0, float_array, float_array_2, &float_less); + parallel_sortTest(1, float_array, float_array_2, &float_less); + parallel_sortTest(10, float_array, float_array_2, &float_less); + parallel_sortTest(9999, float_array, float_array_2, &float_less); + parallel_sortTest(50000, float_array, float_array_2, &float_less); current_type = "concurrent_vector (no less)"; parallel_sortTest(0, float_cv1.begin(), float_cv2.begin(), static_cast *>(NULL)); @@ -571,7 +571,7 @@ int TestMain () { // Test that all workers sleep when no work TestCPUUserTime(p); } - } + } return Harness::Done; } diff --git a/src/test/test_parallel_while.cpp b/src/test/test_parallel_while.cpp index 0bffcbf5..71cdce9b 100644 --- a/src/test/test_parallel_while.cpp +++ b/src/test/test_parallel_while.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -32,7 +32,7 @@ class MinimalArgumentType { enum { DEAD=0xDEAD, LIVE=0x2718, - INITIALIZED=0x3141 + INITIALIZED=0x3141 } my_state; public: ~MinimalArgumentType() { @@ -50,7 +50,7 @@ public: long get_value() const { ASSERT( my_state==INITIALIZED, NULL ); return my_value; - } + } }; class IntegerStream { @@ -59,7 +59,7 @@ class IntegerStream { public: IntegerStream( long n ) : my_limit(n), my_index(0) {} bool pop_if_present( MinimalArgumentType& v ) { - if( my_index>=my_limit ) + if( my_index>=my_limit ) return false; v.set_value( my_index ); my_index+=2; @@ -82,11 +82,11 @@ public: value.set_value(i+1); my_while.add( value ); } - for( int j=0; jthread_num) - min(stat.m_rangeNum, settings->thread_num); if (disparity > settings->above_threads_size_tolerance) { REPORT("ERROR: '%s (f=%d|e=%d)': |#ranges(%llu)-#threads(%llu)|=%llu > %llu=tolerance\n", - rangeName, int(settings->provide_feedback), int(settings->ensure_non_empty_size), stat.m_rangeNum, + rangeName, int(settings->provide_feedback), int(settings->ensure_non_empty_size), stat.m_rangeNum, settings->thread_num, disparity, uint64_t(settings->above_threads_size_tolerance)); ASSERT(disparity <= settings->above_threads_size_tolerance, "Incorrect number of range " "objects was created before work balancing phase started"); diff --git a/src/test/test_pipeline.cpp b/src/test/test_pipeline.cpp index 7fa6e571..4e6542aa 100644 --- a/src/test/test_pipeline.cpp +++ b/src/test/test_pipeline.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -64,11 +64,11 @@ static unsigned out_of_order_count; class BaseFilter: public tbb::filter { bool* const my_done; - const bool my_is_last; + const bool my_is_last; bool my_is_running; public: tbb::atomic current_token; - BaseFilter( tbb::filter::mode type, bool done[], bool is_last ) : + BaseFilter( tbb::filter::mode type, bool done[], bool is_last ) : filter(type), my_done(done), my_is_last(is_last), @@ -78,7 +78,7 @@ public: virtual Buffer* get_buffer( void* item ) { current_token++; return static_cast(item); - } + } /*override*/void* operator()( void* item ) { Harness::ConcurrencyTracker ct; if( is_serial() ) @@ -87,7 +87,7 @@ public: Buffer* b = get_buffer(item); if( b ) { if( is_ordered() ) { - if( b->sequence_number == Buffer::unused ) + if( b->sequence_number == Buffer::unused ) b->sequence_number = current_token-1; else ASSERT( b->sequence_number==current_token-1, "item arrived out of order" ); @@ -95,8 +95,8 @@ public: if( b->sequence_number != current_token-1 && b->sequence_number != Buffer::unused ) out_of_order_count++; } - ASSERT( b->id < StreamSize, NULL ); - ASSERT( !my_done[b->id], "duplicate processing of token?" ); + ASSERT( b->id < StreamSize, NULL ); + ASSERT( !my_done[b->id], "duplicate processing of token?" ); ASSERT( b->is_busy, NULL ); my_done[b->id] = true; if( my_is_last ) { @@ -106,7 +106,7 @@ public: } } my_is_running = false; - return b; + return b; } }; @@ -121,12 +121,12 @@ public: {} /*override*/Buffer* get_buffer( void* ) { unsigned long next_input; - unsigned free_buffer = 0; + unsigned free_buffer = 0; { // lock protected scope tbb::spin_mutex::scoped_lock lock(input_lock); if( current_token>=StreamSize ) return NULL; - next_input = current_token++; + next_input = current_token++; // once in a while, emulate waiting for input; this only makes sense for serial input if( is_serial() && WaitTest.required() ) WaitTest.probe( ); @@ -139,9 +139,9 @@ public: } } ASSERT( free_bufferid == Buffer::unused, NULL); b->id = next_input; ASSERT( b->sequence_number == Buffer::unused, NULL); @@ -190,8 +190,8 @@ bool do_hacking_tests = true; const tbb::internal::Token tokens_before_wraparound = 0xF; void TestTrivialPipeline( unsigned nthread, unsigned number_of_filters ) { - // There are 3 filter types: parallel, serial_in_order and serial_out_of_order - static const tbb::filter::mode filter_table[] = { tbb::filter::parallel, tbb::filter::serial_in_order, tbb::filter::serial_out_of_order}; + // There are 3 filter types: parallel, serial_in_order and serial_out_of_order + static const tbb::filter::mode filter_table[] = { tbb::filter::parallel, tbb::filter::serial_in_order, tbb::filter::serial_out_of_order}; const unsigned number_of_filter_types = sizeof(filter_table)/sizeof(filter_table[0]); REMARK( "testing with %lu threads and %lu filters\n", nthread, number_of_filters ); ASSERT( number_of_filters<=MaxFilters, "too many filters" ); @@ -234,7 +234,7 @@ void TestTrivialPipeline( unsigned nthread, unsigned number_of_filters ) { } } // Account for clipping of parallelism. - if( parallelism_limit>nthread ) + if( parallelism_limit>nthread ) parallelism_limit = nthread; if( parallelism_limit>ntokens ) parallelism_limit = (unsigned)ntokens; @@ -259,7 +259,7 @@ void TestTrivialPipeline( unsigned nthread, unsigned number_of_filters ) { StreamSize = StreamSize*8/3; } } - if( Harness::ConcurrencyTracker::PeakParallelism() < parallelism_limit ) + if( Harness::ConcurrencyTracker::PeakParallelism() < parallelism_limit ) REMARK( "nthread=%lu ntokens=%lu MaxParallelism=%lu parallelism_limit=%lu\n", nthread, ntokens, Harness::ConcurrencyTracker::PeakParallelism(), parallelism_limit ); for( unsigned i=0; i < number_of_filters; ++i ) { diff --git a/src/test/test_pipeline_with_tbf.cpp b/src/test/test_pipeline_with_tbf.cpp index 509dcfe0..96380f62 100644 --- a/src/test/test_pipeline_with_tbf.cpp +++ b/src/test/test_pipeline_with_tbf.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -72,11 +72,11 @@ static unsigned out_of_order_count; template class BaseFilter: public T { bool* const my_done; - const bool my_is_last; + const bool my_is_last; bool my_is_running; public: tbb::atomic current_token; - BaseFilter( tbb::filter::mode type, bool done[], bool is_last ) : + BaseFilter( tbb::filter::mode type, bool done[], bool is_last ) : T(type), my_done(done), my_is_last(is_last), @@ -86,9 +86,9 @@ public: virtual Buffer* get_buffer( void* item ) { current_token++; return static_cast(item); - } + } /*override*/void* operator()( void* item ) { - // Check if work is done only on one thread when ntokens==1 or + // Check if work is done only on one thread when ntokens==1 or // when pipeline has only one filter that is serial and non-thread-bound if( is_serial_execution && !this->is_bound() ) { // Get id of current thread @@ -97,7 +97,7 @@ public: // Serialized execution is expected, so there should be no race. if( thread_id == id0 ) thread_id = id; - // Check if work is done on one thread + // Check if work is done on one thread ASSERT( thread_id == id, "non-thread-bound stages executed on different threads when must be executed on a single one"); } Harness::ConcurrencyTracker ct; @@ -118,7 +118,7 @@ public: } } if( this->is_ordered() ) { - if( b->sequence_number == Buffer::unused ) + if( b->sequence_number == Buffer::unused ) b->sequence_number = current_token-1; else ASSERT( b->sequence_number==current_token-1, "item arrived out of order" ); @@ -126,8 +126,8 @@ public: if( b->sequence_number != current_token-1 && b->sequence_number != Buffer::unused ) out_of_order_count++; } - ASSERT( b->id < StreamSize, NULL ); - ASSERT( !my_done[b->id], "duplicate processing of token?" ); + ASSERT( b->id < StreamSize, NULL ); + ASSERT( !my_done[b->id], "duplicate processing of token?" ); ASSERT( b->is_busy, NULL ); my_done[b->id] = true; if( my_is_last ) { @@ -137,7 +137,7 @@ public: } } my_is_running = false; - return b; + return b; } }; @@ -153,12 +153,12 @@ public: {} /*override*/Buffer* get_buffer( void* ) { unsigned long next_input; - unsigned free_buffer = 0; + unsigned free_buffer = 0; { // lock protected scope tbb::spin_mutex::scoped_lock lock(input_lock); if( this->current_token>=StreamSize ) return NULL; - next_input = this->current_token++; + next_input = this->current_token++; // once in a while, emulate waiting for input; this only makes sense for serial input if( this->is_serial() && WaitTest.required() ) WaitTest.probe( ); @@ -171,9 +171,9 @@ public: } } ASSERT( free_bufferid == Buffer::unused, NULL); b->id = next_input; ASSERT( b->sequence_number == Buffer::unused, NULL); @@ -243,10 +243,10 @@ void clear_global_state() { class PipelineTest { // There are 3 non-thread-bound filter types: serial_in_order and serial_out_of_order, parallel - static const tbb::filter::mode non_tb_filters_table[3]; // = { tbb::filter::serial_in_order, tbb::filter::serial_out_of_order, tbb::filter::parallel}; - // There are 2 thread-bound filter types: serial_in_order and serial_out_of_order - static const tbb::filter::mode tb_filters_table[2]; // = { tbb::filter::serial_in_order, tbb::filter::serial_out_of_order }; - + static const tbb::filter::mode non_tb_filters_table[3]; // = { tbb::filter::serial_in_order, tbb::filter::serial_out_of_order, tbb::filter::parallel}; + // There are 2 thread-bound filter types: serial_in_order and serial_out_of_order + static const tbb::filter::mode tb_filters_table[2]; // = { tbb::filter::serial_in_order, tbb::filter::serial_out_of_order }; + static const unsigned number_of_non_tb_filter_types = sizeof(non_tb_filters_table)/sizeof(non_tb_filters_table[0]); static const unsigned number_of_tb_filter_types = sizeof(tb_filters_table)/sizeof(tb_filters_table[0]); static const unsigned number_of_filter_types = number_of_non_tb_filter_types + number_of_tb_filter_types; @@ -282,11 +282,11 @@ const tbb::filter::mode PipelineTest::non_tb_filters_table[3] = { tbb::filter::serial_in_order, // 0 tbb::filter::serial_out_of_order, // 2 tbb::filter::parallel // 4 -}; +}; const tbb::filter::mode PipelineTest::tb_filters_table[2] = { tbb::filter::serial_in_order, // 1 tbb::filter::serial_out_of_order // 3 -}; +}; #include "harness_cpu.h" @@ -334,7 +334,7 @@ double PipelineTest::TestOneConfiguration(unsigned numeral, unsigned nthread, un ASSERT(number_of_tb_filters,NULL); clear_global_state(); // Account for clipping of parallelism. - if( parallelism_limit>nthread ) + if( parallelism_limit>nthread ) parallelism_limit = nthread; if( parallelism_limit>ntokens ) parallelism_limit = (unsigned)ntokens; @@ -360,7 +360,7 @@ double PipelineTest::TestOneConfiguration(unsigned numeral, unsigned nthread, un for( unsigned j=0; j1: - // one iteration for ntokens=1 and second for ntokens=max_tokens - // Iteration for ntokens=1 is required in each test case to check if pipeline run only on one thread - unsigned max_iteration = max_tokens > 1 ? 2 : 1; + // one iteration for ntokens=1 and second for ntokens=max_tokens + // Iteration for ntokens=1 is required in each test case to check if pipeline run only on one thread + unsigned max_iteration = max_tokens > 1 ? 2 : 1; tbb::internal::Token ntokens = 1; for( unsigned iteration = 0; iteration < max_iteration; iteration++) { - if( iteration > 0 ) + if( iteration > 0 ) ntokens = max_tokens; // Count maximum iterations number unsigned limit = 1; @@ -511,8 +511,8 @@ int TestMain () { // Test pipelines with 1 and maximal number of filters for( unsigned n=1; n<=MaxFilters; n*=MaxFilters ) { - // Thread-bound stages are serviced by user-created threads; those - // don't run the pipeline and don't service non-thread-bound stages + // Thread-bound stages are serviced by user-created threads; those + // don't run the pipeline and don't service non-thread-bound stages PipelineTest::TestTrivialPipeline(nthread,n); } diff --git a/src/test/test_priority_queue_node.cpp b/src/test/test_priority_queue_node.cpp index 640426e1..2f01ffe3 100644 --- a/src/test/test_priority_queue_node.cpp +++ b/src/test/test_priority_queue_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -78,7 +78,7 @@ struct parallel_put_get : NoAssign { parallel_put_get( tbb::flow::priority_queue_node &q ) : my_q(q) {} void operator()(int tid) const { for ( int i = 0; i < N; i+=C ) { - int j_end = ( N < i + C ) ? N : i + C; + int j_end = ( N < i + C ) ? N : i + C; // dump about C values into the Q for ( int j = i; j < j_end; ++j ) { ASSERT( my_q.try_put( T (N*tid + j ) ) == true, NULL ); @@ -115,23 +115,23 @@ int test_reservation(int) { T v=bogus_value, w=bogus_value; ASSERT( q.try_reserve(v) == true, NULL ); - ASSERT( v == T(3), NULL ); + ASSERT( v == T(3), NULL ); ASSERT( q.try_release() == true, NULL ); v = bogus_value; g.wait_for_all(); ASSERT( q.try_reserve(v) == true, NULL ); - ASSERT( v == T(3), NULL ); + ASSERT( v == T(3), NULL ); ASSERT( q.try_consume() == true, NULL ); v = bogus_value; g.wait_for_all(); - + ASSERT( q.try_get(v) == true, NULL ); - ASSERT( v == T(2), NULL ); + ASSERT( v == T(2), NULL ); v = bogus_value; g.wait_for_all(); ASSERT( q.try_reserve(v) == true, NULL ); - ASSERT( v == T(1), NULL ); + ASSERT( v == T(1), NULL ); ASSERT( q.try_reserve(w) == false, NULL ); ASSERT( w == bogus_value, NULL ); ASSERT( q.try_get(w) == false, NULL ); @@ -140,7 +140,7 @@ int test_reservation(int) { v = bogus_value; g.wait_for_all(); ASSERT( q.try_reserve(v) == true, NULL ); - ASSERT( v == T(1), NULL ); + ASSERT( v == T(1), NULL ); ASSERT( q.try_consume() == true, NULL ); v = bogus_value; g.wait_for_all(); @@ -230,7 +230,7 @@ int test_parallel(int num_threads) { // Tests // // Predecessors cannot be registered -// Empty Q rejects item requests +// Empty Q rejects item requests // Single serial sender, items in FIFO order // Chained Qs ( 2 & 3 ), single sender, items at last Q in FIFO order // @@ -331,7 +331,7 @@ int test_serial() { return 0; } -int TestMain() { +int TestMain() { tbb::tick_count start = tbb::tick_count::now(), stop; for (int p = 2; p <= 4; ++p) { tbb::task_scheduler_init init(p); @@ -339,7 +339,7 @@ int TestMain() { test_reservation(p); test_reservation >(p); test_parallel(p); - } + } stop = tbb::tick_count::now(); REMARK("Priority_Queue_Node Time=%6.6f\n", (stop-start).seconds()); REMARK("Testing resets\n"); diff --git a/src/test/test_queue_node.cpp b/src/test/test_queue_node.cpp index f20450fb..8aeaa32c 100644 --- a/src/test/test_queue_node.cpp +++ b/src/test/test_queue_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -71,14 +71,14 @@ struct touches { int my_num_threads; touches( int num_threads ) : my_num_threads(num_threads) { - my_last_touch = new T* [my_num_threads]; - my_touches = new bool* [my_num_threads]; + my_last_touch = new T* [my_num_threads]; + my_touches = new bool* [my_num_threads]; for ( int p = 0; p < my_num_threads; ++p) { my_last_touch[p] = new T[my_num_threads]; - for ( int p2 = 0; p2 < my_num_threads; ++p2) + for ( int p2 = 0; p2 < my_num_threads; ++p2) my_last_touch[p][p2] = -1; - my_touches[p] = new bool[N*my_num_threads]; + my_touches[p] = new bool[N*my_num_threads]; for ( int n = 0; n < N*my_num_threads; ++n) my_touches[p][n] = false; } @@ -103,8 +103,8 @@ struct touches { printf("Error: value seen in wrong order by local thread\n"); return false; } - my_last_touch[tid][v_tid] = v; - my_touches[tid][v] = true; + my_last_touch[tid][v_tid] = v; + my_touches[tid][v] = true; return true; } @@ -112,7 +112,7 @@ struct touches { bool *all_touches = new bool[N*my_num_threads]; for ( int n = 0; n < N*my_num_threads; ++n) all_touches[n] = false; - + for ( int p = 0; p < my_num_threads; ++p) { for ( int n = 0; n < N*my_num_threads; ++n) { if ( my_touches[p][n] == true ) { @@ -161,7 +161,7 @@ struct parallel_put_get : NoAssign { void operator()(int tid) const { for ( int i = 0; i < N; i+=C ) { - int j_end = ( N < i + C ) ? N : i + C; + int j_end = ( N < i + C ) ? N : i + C; // dump about C values into the Q for ( int j = i; j < j_end; ++j ) { ASSERT( my_q.try_put( T (N*tid + j ) ) == true, NULL ); @@ -193,31 +193,31 @@ int test_reservation() { q.try_put(T(1)); q.try_put(T(2)); q.try_put(T(3)); - + T v; ASSERT( q.reserve_item(v) == true, NULL ); - ASSERT( v == T(1), NULL ); + ASSERT( v == T(1), NULL ); ASSERT( q.release_reservation() == true, NULL ); v = bogus_value; g.wait_for_all(); ASSERT( q.reserve_item(v) == true, NULL ); - ASSERT( v == T(1), NULL ); + ASSERT( v == T(1), NULL ); ASSERT( q.consume_reservation() == true, NULL ); v = bogus_value; g.wait_for_all(); - + ASSERT( q.try_get(v) == true, NULL ); - ASSERT( v == T(2), NULL ); + ASSERT( v == T(2), NULL ); v = bogus_value; g.wait_for_all(); - + ASSERT( q.reserve_item(v) == true, NULL ); - ASSERT( v == T(3), NULL ); + ASSERT( v == T(3), NULL ); ASSERT( q.release_reservation() == true, NULL ); v = bogus_value; g.wait_for_all(); ASSERT( q.reserve_item(v) == true, NULL ); - ASSERT( v == T(3), NULL ); + ASSERT( v == T(3), NULL ); ASSERT( q.consume_reservation() == true, NULL ); v = bogus_value; g.wait_for_all(); @@ -333,7 +333,7 @@ int test_parallel(int num_threads) { // Tests // // Predecessors cannot be registered -// Empty Q rejects item requests +// Empty Q rejects item requests // Single serial sender, items in FIFO order // Chained Qs ( 2 & 3 ), single sender, items at last Q in FIFO order // @@ -446,7 +446,7 @@ int test_serial() { return 0; } -int TestMain() { +int TestMain() { tbb::tick_count start = tbb::tick_count::now(), stop; for (int p = 2; p <= 4; ++p) { tbb::task_scheduler_init init(p); @@ -454,7 +454,7 @@ int TestMain() { test_serial >(); test_parallel(p); test_parallel >(p); - } + } stop = tbb::tick_count::now(); REMARK("Queue_Node Time=%6.6f\n", (stop-start).seconds()); REMARK("Testing resets\n"); diff --git a/src/test/test_range_based_for.h b/src/test/test_range_based_for.h index d668e0e1..136df546 100644 --- a/src/test/test_range_based_for.h +++ b/src/test/test_range_based_for.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_reader_writer_lock.cpp b/src/test/test_reader_writer_lock.cpp index 3beb16e0..8945d36b 100644 --- a/src/test/test_reader_writer_lock.cpp +++ b/src/test/test_reader_writer_lock.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_runtime_loader.cpp b/src/test/test_runtime_loader.cpp index 1c862e56..127d3f0b 100644 --- a/src/test/test_runtime_loader.cpp +++ b/src/test/test_runtime_loader.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_rwm_upgrade_downgrade.cpp b/src/test/test_rwm_upgrade_downgrade.cpp index cde95d67..bfd99601 100644 --- a/src/test/test_rwm_upgrade_downgrade.cpp +++ b/src/test/test_rwm_upgrade_downgrade.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -66,7 +66,7 @@ int TestMain () { for( int p=MinThread; p<=MaxThread; ++p ) { REMARK("Testing on %d threads", p); Count = 0; - NativeParallelFor( p, Hammer(QRW_mutex) ); + NativeParallelFor( p, Hammer(QRW_mutex) ); Count = 0; NativeParallelFor( p, Hammer(SRW_mutex) ); } diff --git a/src/test/test_semaphore.cpp b/src/test/test_semaphore.cpp index 0a57d392..c55bd582 100644 --- a/src/test/test_semaphore.cpp +++ b/src/test/test_semaphore.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_sequencer_node.cpp b/src/test/test_sequencer_node.cpp index 692fedf7..ae1af088 100644 --- a/src/test/test_sequencer_node.cpp +++ b/src/test/test_sequencer_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -73,11 +73,11 @@ struct touches { int my_num_threads; touches( int num_threads ) : my_num_threads(num_threads) { - my_last_touch = new T[my_num_threads]; - my_touches = new bool* [my_num_threads]; + my_last_touch = new T[my_num_threads]; + my_touches = new bool* [my_num_threads]; for ( int p = 0; p < my_num_threads; ++p) { my_last_touch[p] = T(-1); - my_touches[p] = new bool[N]; + my_touches[p] = new bool[N]; for ( int n = 0; n < N; ++n) my_touches[p][n] = false; } @@ -100,8 +100,8 @@ struct touches { printf("Error: value seen in wrong order by local thread\n"); return false; } - my_last_touch[tid] = v; - my_touches[tid][v] = true; + my_last_touch[tid] = v; + my_touches[tid][v] = true; return true; } @@ -109,7 +109,7 @@ struct touches { bool *all_touches = new bool[N]; for ( int n = 0; n < N; ++n) all_touches[n] = false; - + for ( int p = 0; p < my_num_threads; ++p) { for ( int n = 0; n < N; ++n) { if ( my_touches[p][n] == true ) { @@ -141,7 +141,7 @@ struct parallel_gets : NoAssign { void operator()(int tid) const { for (int j = tid; j < N; j+=my_num_threads) { T v; - spin_try_get( my_q, v ); + spin_try_get( my_q, v ); my_touches.check( tid, v ); } } @@ -154,10 +154,10 @@ struct parallel_put_get : NoAssign { tbb::flow::sequencer_node &my_s1; tbb::flow::sequencer_node &my_s2; int my_num_threads; - tbb::atomic< int > &my_counter; - touches &my_touches; + tbb::atomic< int > &my_counter; + touches &my_touches; - parallel_put_get( tbb::flow::sequencer_node &s1, tbb::flow::sequencer_node &s2, int num_threads, + parallel_put_get( tbb::flow::sequencer_node &s1, tbb::flow::sequencer_node &s2, int num_threads, tbb::atomic &counter, touches &t ) : my_s1(s1), my_s2(s2), my_num_threads(num_threads), my_counter(counter), my_touches(t) {} void operator()(int tid) const { @@ -172,7 +172,7 @@ struct parallel_put_get : NoAssign { for (int i = i_start; i < i_end; ++i) { T v; - spin_try_get( my_s2, v ); + spin_try_get( my_s2, v ); my_touches.check( tid, v ); } } @@ -180,7 +180,7 @@ struct parallel_put_get : NoAssign { }; -// +// // Tests // // multiple parallel senders, multiple receivers, properly sequenced (relative to receiver) at output @@ -244,7 +244,7 @@ int test_parallel(int num_threads) { } -// +// // Tests // // No predecessors can be registered @@ -388,13 +388,13 @@ int test_serial() { return 0; } -int TestMain() { +int TestMain() { tbb::tick_count start = tbb::tick_count::now(), stop; for (int p = 2; p <= 4; ++p) { tbb::task_scheduler_init init(p); test_serial(); test_parallel(p); - } + } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES test_buffer_extract >().run_tests(); #endif diff --git a/src/test/test_source_node.cpp b/src/test/test_source_node.cpp index c7c0291c..dee8b44f 100644 --- a/src/test/test_source_node.cpp +++ b/src/test/test_source_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,13 +34,13 @@ class test_push_receiver : public tbb::flow::receiver { public: - test_push_receiver() { - for (int i = 0; i < N; ++i ) + test_push_receiver() { + for (int i = 0; i < N; ++i ) my_counters[i] = 0; } int get_count( int i ) { - int v = my_counters[i]; + int v = my_counters[i]; return v; } @@ -73,7 +73,7 @@ class source_body { tbb::atomic my_count; int *ninvocations; - + public: source_body() : ninvocations(NULL) { my_count = 0; } @@ -86,7 +86,7 @@ public: return true; else return false; - } + } }; @@ -97,15 +97,15 @@ class function_body { public: - function_body( tbb::atomic *counters ) : my_counters(counters) { - for (int i = 0; i < N; ++i ) + function_body( tbb::atomic *counters ) : my_counters(counters) { + for (int i = 0; i < N; ++i ) my_counters[i] = 0; } bool operator()( T v ) { ++my_counters[(int)v]; return true; - } + } }; @@ -119,7 +119,7 @@ void test_single_dest() { tbb::flow::make_edge( src, dest ); g.wait_for_all(); for (int i = 0; i < N; ++i ) { - ASSERT( dest.get_count(i) == 1, NULL ); + ASSERT( dest.get_count(i) == 1, NULL ); } // push only @@ -131,10 +131,10 @@ void test_single_dest() { g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); } - // push & pull + // push & pull tbb::flow::source_node src2(g, source_body() ); tbb::atomic counters2[N]; function_body b2( counters2 ); @@ -149,7 +149,7 @@ void test_single_dest() { g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters2[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); } // test copy constructor @@ -158,7 +158,7 @@ void test_single_dest() { ASSERT( src_copy.register_successor(dest_c), NULL ); g.wait_for_all(); for (int i = 0; i < N; ++i ) { - ASSERT( dest_c.get_count(i) == 1, NULL ); + ASSERT( dest_c.get_count(i) == 1, NULL ); } } @@ -176,7 +176,7 @@ void test_reset() { // check the array for each value. for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); counters3[i] = 0; } g.reset(tbb::flow::rf_reset_bodies); // <-- re-initializes the counts. @@ -185,7 +185,7 @@ void test_reset() { // check output queue again. Should be the same contents. for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); counters3[i] = 0; } g.reset(); // doesn't reset the source_node_body to initial state, but does spawn a task @@ -195,7 +195,7 @@ void test_reset() { // array should be all zero for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 0, NULL ); + ASSERT( v == 0, NULL ); } remove_edge(src3, dest3); @@ -205,7 +205,7 @@ void test_reset() { g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 0, NULL ); + ASSERT( v == 0, NULL ); } // run graph @@ -214,7 +214,7 @@ void test_reset() { // check output for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); counters3[i] = 0; } g.reset(tbb::flow::rf_reset_bodies); // <-- reinitializes the counts @@ -222,7 +222,7 @@ void test_reset() { g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 0, NULL ); + ASSERT( v == 0, NULL ); } // start it up @@ -230,7 +230,7 @@ void test_reset() { g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 1, NULL ); + ASSERT( v == 1, NULL ); counters3[i] = 0; } g.reset(); // doesn't reset the source_node_body to initial state, and doesn't @@ -240,14 +240,14 @@ void test_reset() { // array should be all zero for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 0, NULL ); + ASSERT( v == 0, NULL ); } src_inactive.activate(); // source_node_body is already in final state, so source_node will not forward a message. g.wait_for_all(); for (int i = 0; i < N; ++i ) { int v = counters3[i]; - ASSERT( v == 0, NULL ); + ASSERT( v == 0, NULL ); } } @@ -258,7 +258,7 @@ void test_extract() { tbb::flow::graph g; typedef tbb::flow::source_node snode_type; typedef snode_type::successor_list_type successor_list_type; - snode_type s0(g, source_body(counts), /*is_active*/false ); + snode_type s0(g, source_body(counts), /*is_active*/false ); tbb::flow::join_node< tbb::flow::tuple, tbb::flow::reserving > j0(g); tbb::flow::join_node< tbb::flow::tuple, tbb::flow::reserving > j1(g); tbb::flow::join_node< tbb::flow::tuple, tbb::flow::reserving > j2(g); @@ -397,7 +397,7 @@ void test_extract() { } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ -int TestMain() { +int TestMain() { if( MinThread<1 ) { REPORT("number of threads must be positive\n"); exit(1); diff --git a/src/test/test_split_node.cpp b/src/test/test_split_node.cpp index 7710f6d1..5f80d56f 100644 --- a/src/test/test_split_node.cpp +++ b/src/test/test_split_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_static_assert.cpp b/src/test/test_static_assert.cpp index d659ebfc..0d2cccca 100644 --- a/src/test/test_static_assert.cpp +++ b/src/test/test_static_assert.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_std_thread.cpp b/src/test/test_std_thread.cpp index 2ab41031..ea5d9f60 100644 --- a/src/test/test_std_thread.cpp +++ b/src/test/test_std_thread.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_tagged_msg.cpp b/src/test/test_tagged_msg.cpp index 2ea789e3..ebb607a2 100644 --- a/src/test/test_tagged_msg.cpp +++ b/src/test/test_tagged_msg.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -134,7 +134,7 @@ void RunTests() { ASSERT(ref_i == 4, "assign to i did not affect ref_i"); ASSERT( z == 3, "Error retrieving value from i"); - + //updating and retrieving tags ASSERT(j.tag() == 2, "Error retrieving tag for j"); j.set_tag(10); @@ -144,7 +144,7 @@ void RunTests() { k.set_tag('b'); ASSERT(k.tag() == 'b', "Error updating char tag"); - tagged_msg_type double_tagged_msg(3, 8.0); + tagged_msg_type double_tagged_msg(3, 8.0); ASSERT(is_a(double_tagged_msg), "Wrong type for double_tagged_msg (== double)"); ASSERT(!is_a(double_tagged_msg), "Wrong type for double_tagged_msg (!= char)"); ASSERT(!is_a(double_tagged_msg), "Wrong type for double_tagged_msg (!= int)"); @@ -152,7 +152,7 @@ void RunTests() { ASSERT(is_a(copytype), "Wrong type for double_tagged_msg (== double)"); ASSERT(!is_a(copytype), "Wrong type for double_tagged_msg (!= char)"); ASSERT(!is_a(copytype), "Wrong type for double_tagged_msg (!= int)"); - tagged_msg_type default_tagged_msg; + tagged_msg_type default_tagged_msg; ASSERT(!(is_a(default_tagged_msg)), "wrong type for default ( != double)"); ASSERT(!(is_a(default_tagged_msg)), "wrong type for default ( != int)"); ASSERT(!(is_a(default_tagged_msg)), "wrong type for default ( != bool)"); diff --git a/src/test/test_task.cpp b/src/test/test_task.cpp index ddb380f6..026d5a88 100644 --- a/src/test/test_task.cpp +++ b/src/test/test_task.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_task_arena.cpp b/src/test/test_task_arena.cpp index 16ed312f..7e84df6a 100644 --- a/src/test/test_task_arena.cpp +++ b/src/test/test_task_arena.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -77,7 +77,7 @@ void InitializeAndTerminate( int maxthread ) { ASSERT(!arena.is_active(), "arena should not be active; it was terminated"); break; } - case 0: { + case 0: { tbb::task_arena arena( 1 ); ASSERT(!arena.is_active(), "arena should not be active until initialized"); arena.initialize( std::rand() % maxthread + 1 ); // change the parameters @@ -151,7 +151,7 @@ class ArenaObserver : public tbb::task_scheduler_observer { old_id.local() = 0; } public: - ArenaObserver(tbb::task_arena &a, int maxConcurrency, int numReservedSlots, int id) + ArenaObserver(tbb::task_arena &a, int maxConcurrency, int numReservedSlots, int id) : tbb::task_scheduler_observer(a) , myId(id) , myMaxConcurrency(maxConcurrency) @@ -557,6 +557,126 @@ void TestArenaConcurrency( int p ) { } } +//--------------------------------------------------// +// Test creation/initialization of a task_arena that references an existing arena (aka attach). +// This part of the test uses the knowledge of task_arena internals + +typedef tbb::interface7::internal::task_arena_base task_arena_internals; + +struct TaskArenaValidator : public task_arena_internals { + int my_slot_at_construction; + TaskArenaValidator( const task_arena_internals& other ) + : task_arena_internals(other) /*copies the internal state of other*/ { + my_slot_at_construction = tbb::task_arena::current_thread_index(); + } + // Inspect the internal state + int concurrency() { return my_max_concurrency; } + int reserved_for_masters() { return (int)my_master_slots; } + + // This method should be called in task_arena::execute() for a captured arena + // by the same thread that created the validator. + void operator()() { + ASSERT( tbb::task_arena::current_thread_index()==my_slot_at_construction, + "Current thread index has changed since the validator construction" ); + } +}; + +void ValidateAttachedArena( tbb::task_arena& arena, bool expect_activated, + int expect_concurrency, int expect_masters ) { + ASSERT( arena.is_active()==expect_activated, "Unexpected activation state" ); + if( arena.is_active() ) { + TaskArenaValidator validator( arena ); + ASSERT( validator.concurrency()==expect_concurrency, "Unexpected arena size" ); + ASSERT( validator.reserved_for_masters()==expect_masters, "Unexpected # of reserved slots" ); + if( tbb::task_arena::current_thread_index()!=-1 ) { + // for threads already in arena, check that the thread index remains the same + arena.execute( validator ); + } + // Ideally, there should be a check for having the same internal arena object, + // but that object is not easily accessible for implicit arenas. + } +} + +struct TestAttachBody : NoAssign { + mutable int my_idx; // safe to modify and use within the NativeParallelFor functor + const int maxthread; + TestAttachBody( int max_thr ) : maxthread(max_thr) {} + + // The functor body for NativeParallelFor + void operator()( int idx ) const { + my_idx = idx; + int default_threads = tbb::task_scheduler_init::default_num_threads(); + + tbb::task_arena arena = tbb::task_arena( tbb::task_arena::attach() ); + ValidateAttachedArena( arena, false, -1, -1 ); // Nothing yet to attach to + + { // attach to an arena created via task_scheduler_init + tbb::task_scheduler_init init( idx+1 ); + + tbb::task_arena arena2 = tbb::task_arena( tbb::task_arena::attach() ); + ValidateAttachedArena( arena2, true, idx+1, 1 ); + + arena.initialize( tbb::task_arena::attach() ); + } + ValidateAttachedArena( arena, true, idx+1, 1 ); + + arena.terminate(); + ValidateAttachedArena( arena, false, -1, -1 ); + + // Check default behavior when attach cannot succeed + switch (idx%2) { + case 0: + { // construct as attached, then initialize + tbb::task_arena arena2 = tbb::task_arena( tbb::task_arena::attach() ); + ValidateAttachedArena( arena2, false, -1, -1 ); + arena2.initialize(); // must be initialized with default parameters + ValidateAttachedArena( arena2, true, default_threads, 1 ); + } + break; + case 1: + { // default-construct, then initialize as attached + tbb::task_arena arena2; + ValidateAttachedArena( arena2, false, -1, -1 ); + arena2.initialize( tbb::task_arena::attach() ); // must use default parameters + ValidateAttachedArena( arena2, true, default_threads, 1 ); + } + break; + } // switch + + // attach to an auto-initialized arena + tbb::empty_task& tsk = *new (tbb::task::allocate_root()) tbb::empty_task; + tbb::task::spawn_root_and_wait(tsk); + tbb::task_arena arena2 = tbb::task_arena( tbb::task_arena::attach() ); + ValidateAttachedArena( arena2, true, default_threads, 1 ); + + // attach to another task_arena + arena.initialize( maxthread, min(maxthread,idx) ); + arena.execute( *this ); + } + + // The functor body for task_arena::execute above + void operator()() const { + tbb::task_arena arena2 = tbb::task_arena( tbb::task_arena::attach() ); + ValidateAttachedArena( arena2, true, maxthread, min(maxthread,my_idx) ); + } + + // The functor body for tbb::parallel_for + void operator()( const Range& r ) const { + for( int i = r.begin(); iset_ref_count(1); for( int n = MinThread; n <= MaxThread; ++n ) { REMARK("%d masters, %d requested workers\r", n, p-1); @@ -305,10 +305,10 @@ void TestDequeueByMaster () { REMARK("Testing task dequeuing by master\n"); tbb::task_scheduler_init init(1); Harness::SpinBarrier bar(2); - tbb::task &r = *new ( tbb::task::allocate_root() ) tbb::empty_task; + tbb::task &r = *new ( tbb::task::allocate_root() ) tbb::empty_task; r.set_ref_count(3); - tbb::task::enqueue( *new(r.allocate_child()) BlockingTask(bar) ); - tbb::task::enqueue( *new(r.allocate_child()) BlockingTask(bar) ); + tbb::task::enqueue( *new(r.allocate_child()) BlockingTask(bar) ); + tbb::task::enqueue( *new(r.allocate_child()) BlockingTask(bar) ); r.wait_for_all(); tbb::task::destroy(r); } @@ -325,7 +325,7 @@ struct Functor : NoAssign { Harness::SpinBarrier &my_barrier; Functor(Harness::SpinBarrier &a_barrier) : my_barrier(a_barrier) { } - void operator()(const tbb::blocked_range& r) const + void operator()(const tbb::blocked_range& r) const { ASSERT(r.size() == 1, NULL); // allocate_root() uses current context of parallel_for which is destroyed when it finishes. @@ -356,13 +356,26 @@ void TestWakeups() tbb::parallel_for(tbb::blocked_range(0, NUM_TASKS), Functor(barrier)); // auto } +#define TBB_PREVIEW_GLOBAL_CONTROL 1 +#include "tbb/global_control.h" + int TestMain () { + TestWakeups(); // 1st because requests oversubscription - TestCascadedEnqueue(); // needs oversubscription - TestDequeueByMaster(); // no oversubscription needed - for( int p=MinThread; p<=MaxThread; ++p ) { - TestEnqueue(p); - TestSharedRoot(p); + for (int i=0; i<2; i++) { + tbb::global_control *c = i? + new tbb::global_control(tbb::global_control::max_allowed_parallelism, 1) : NULL; + if (i) // decrease workload for max_allowed_parallelism == 1 + NumRepeats = 10; + + TestCascadedEnqueue(); // needs oversubscription + if (!c) + TestDequeueByMaster(); // no oversubscription needed + for( int p=MinThread; p<=MaxThread; ++p ) { + TestEnqueue(p); + TestSharedRoot(p); + } + delete c; } return Harness::Done; } diff --git a/src/test/test_task_group.cpp b/src/test/test_task_group.cpp index 02d1c4cb..a2c48436 100644 --- a/src/test/test_task_group.cpp +++ b/src/test/test_task_group.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_task_leaks.cpp b/src/test/test_task_leaks.cpp index 5e757361..9e4e3fe1 100644 --- a/src/test/test_task_leaks.cpp +++ b/src/test/test_task_leaks.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -18,15 +18,15 @@ reasons why the executable file might be covered by the GNU General Public License. */ -/* The test uses "single produces multiple consumers" (SPMC )pattern to check - if the memory of the tasks stolen by consumer threads is returned to the +/* The test uses "single produces multiple consumers" (SPMC )pattern to check + if the memory of the tasks stolen by consumer threads is returned to the producer thread and is reused. The test consists of a series of iterations, which execute a task tree. the test fails is the memory consumption is not stabilized during some number of iterations. - After the memory consumption stabilized the memory state is perturbed by + After the memory consumption stabilized the memory state is perturbed by switching producer thread, and the check is repeated. */ @@ -227,7 +227,7 @@ void TestTaskReclamation() { int last_error_iteration = 0, producer_switch_iteration = 0, producer_switches = 0; - bool switchProducer = false, + bool switchProducer = false, checkProducer = false; for( int i=0; i < MaxIterations; ++i ) { // These iterations check for excessive memory use and unreasonable task count diff --git a/src/test/test_task_priority.cpp b/src/test/test_task_priority.cpp index 5fbda703..5da2a3c4 100644 --- a/src/test/test_task_priority.cpp +++ b/src/test/test_task_priority.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -46,7 +46,7 @@ int BaseDepth = 0; const int DesiredNumThreads = 12; const int NumTests = 8; -const int TestRepeats = 4; +int TestSwitchBetweenMastersRepeats = 4; int g_NumMasters = 0; volatile intptr_t *g_LeavesExecuted = NULL; @@ -151,7 +151,7 @@ protected: parent_node->set_ref_count(NumLeafTasks + 1); --m_depth; for ( int i = 0; i < NumLeafTasks; ++i ) { - task *t = m_depth ? (task*) new(parent_node->allocate_child()) NodeType(m_tid, m_depth, m_opts, m_root) + task *t = m_depth ? (task*) new(parent_node->allocate_child()) NodeType(m_tid, m_depth, m_opts, m_root) : (task*) new(parent_node->allocate_child()) LeafTask(m_tid, m_opts); task::spawn(*t); } @@ -300,7 +300,7 @@ void TestPrioritySwitchBetweenTwoMasters () { } REMARK( "Stress tests: %s / %s \n", Low == tbb::priority_low ? "Low" : "Normal", High == tbb::priority_normal ? "Normal" : "High" ); PrepareGlobals( 2 ); - for ( int i = 0; i < TestRepeats; ++i ) { + for ( int i = 0; i < TestSwitchBetweenMastersRepeats; ++i ) { for ( BaseDepth = MinBaseDepth; BaseDepth <= MaxBaseDepth; ++BaseDepth ) { RunPrioritySwitchBetweenTwoMasters( 0, NoPriorities ); RunPrioritySwitchBetweenTwoMasters( 1, TestPreemption ); @@ -315,7 +315,7 @@ void TestPrioritySwitchBetweenTwoMasters () { } } #if __TBB_TASK_PRIORITY - const int NumRuns = TestRepeats * (MaxBaseDepth - MinBaseDepth + 1); + const int NumRuns = TestSwitchBetweenMastersRepeats * (MaxBaseDepth - MinBaseDepth + 1); for ( int i = 0; i < NumTests; ++i ) { if ( g_TestFailures[i] ) REMARK( "Test %d: %d failures in %d runs\n", i, g_TestFailures[i], NumRuns ); @@ -370,6 +370,9 @@ void EmulateWork( int ) { class PeriodicActivitiesBody { public: + static const int parallelIters[2]; + static const int seqIters[2]; + static int mode; void operator() ( int id ) const { tbb::task_group_context ctx; #if __TBB_TASK_PRIORITY @@ -377,13 +380,17 @@ public: #else /* !__TBB_TASK_PRIORITY */ (void)id; #endif /* !__TBB_TASK_PRIORITY */ - for ( int i = 0; i < 5; ++i ) { + for ( int i = 0; i < seqIters[mode]; ++i ) { tbb::task_scheduler_init init; - tbb::parallel_for( 1, 10000, &EmulateWork, ctx ); + tbb::parallel_for( 1, parallelIters[mode], &EmulateWork, ctx ); } } }; +const int PeriodicActivitiesBody::parallelIters[] = {10000, 100}; +const int PeriodicActivitiesBody::seqIters[] = {5, 2}; +int PeriodicActivitiesBody::mode = 0; + void TestPeriodicConcurrentActivities () { REMARK( "TestPeriodicConcurrentActivities: %s / %s \n", Low == tbb::priority_low ? "Low" : "Normal", High == tbb::priority_normal ? "Normal" : "High" ); NativeParallelFor ( 2, PeriodicActivitiesBody() ); @@ -562,14 +569,8 @@ void TestTGContextOnNewThread() { #include "harness_concurrency.h" #endif -int TestMain () { -#if !__TBB_TEST_SKIP_AFFINITY - Harness::LimitNumberOfThreads( DesiredNumThreads ); -#endif -#if !__TBB_TASK_PRIORITY - REMARK( "Priorities disabled: Running as just yet another task scheduler test\n" ); -#else - test_propagation::TestSetPriority(); // TODO: move down when bug 1996 is fixed +int RunTests () { +#if __TBB_TASK_PRIORITY TestEnqueueOrder(); #endif /* __TBB_TASK_PRIORITY */ TestPriorityAssertions(); @@ -592,9 +593,30 @@ int TestMain () { PreemptionActivatorId = 1; TestPrioritySwitchBetweenTwoMasters(); regression::TestTGContextOnNewThread(); + return Harness::Done; } +#define TBB_PREVIEW_GLOBAL_CONTROL 1 +#include "tbb/global_control.h" + +int TestMain () { +#if !__TBB_TEST_SKIP_AFFINITY + Harness::LimitNumberOfThreads( DesiredNumThreads ); +#endif +#if !__TBB_TASK_PRIORITY + REMARK( "Priorities disabled: Running as just yet another task scheduler test\n" ); +#else + test_propagation::TestSetPriority(); // TODO: move down when bug 1996 is fixed +#endif /* __TBB_TASK_PRIORITY */ + + RunTests(); + tbb::global_control c(tbb::global_control::max_allowed_parallelism, 1); + PeriodicActivitiesBody::mode = 1; + TestSwitchBetweenMastersRepeats = 1; + return RunTests(); +} + #else /* !__TBB_TASK_GROUP_CONTEXT */ int TestMain () { diff --git a/src/test/test_task_scheduler_init.cpp b/src/test/test_task_scheduler_init.cpp index 574624c1..3a1c612a 100644 --- a/src/test/test_task_scheduler_init.cpp +++ b/src/test/test_task_scheduler_init.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -135,14 +135,14 @@ public: } }; -/** The test will fail in particular if task_scheduler_init mistakenly hooks up +/** The test will fail in particular if task_scheduler_init mistakenly hooks up auto-initialization mechanism. **/ void AssertExplicitInitIsNotSupplanted () { int hardwareConcurrency = tbb::task_scheduler_init::default_num_threads(); tbb::task_scheduler_init init(1); Harness::ConcurrencyTracker::Reset(); tbb::parallel_for( Range(0, hardwareConcurrency * 2, 1), ConcurrencyTrackingBody(), tbb::simple_partitioner() ); - ASSERT( Harness::ConcurrencyTracker::PeakParallelism() == 1, + ASSERT( Harness::ConcurrencyTracker::PeakParallelism() == 1, "Manual init provided more threads than requested. See also the comment at the beginning of main()." ); } diff --git a/src/test/test_task_scheduler_observer.cpp b/src/test/test_task_scheduler_observer.cpp index 93ceec28..89783f7f 100644 --- a/src/test/test_task_scheduler_observer.cpp +++ b/src/test/test_task_scheduler_observer.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -357,7 +357,7 @@ void TestObserver( int M, int T, uintptr_t testMode ) { theTestMode = testMode; NativeParallelFor( M, TestBody(T) ); // When T (number of threads in arena, i.e. master + workers) is less than P - // (hardware concurrency), more than T-1 workers can visit the same arena. This + // (hardware concurrency), more than T-1 workers can visit the same arena. This // is possible in case of imbalance or when other arenas are activated/deactivated // concurrently). ASSERT( !theNumObservers, "Unexpected alive observer(s)" ); diff --git a/src/test/test_task_steal_limit.cpp b/src/test/test_task_steal_limit.cpp index d41fb4a5..b7ea23b0 100644 --- a/src/test/test_task_steal_limit.cpp +++ b/src/test/test_task_steal_limit.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -34,7 +34,7 @@ using tbb::task; // that the stealing limiting heuristic used by the task scheduler does not // switch off stealing when a large amount of TLS data is reserved. #if _MSC_VER -__declspec(thread) +__declspec(thread) #elif __linux__ || ((__MINGW32__ || __MINGW64__) && __TBB_GCC_VERSION >= 40500) __thread #endif diff --git a/src/test/test_tbb_condition_variable.cpp b/src/test/test_tbb_condition_variable.cpp index 696a2e08..8f438637 100644 --- a/src/test/test_tbb_condition_variable.cpp +++ b/src/test/test_tbb_condition_variable.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_tbb_fork.cpp b/src/test/test_tbb_fork.cpp index 4fb19341..bf779245 100644 --- a/src/test/test_tbb_fork.cpp +++ b/src/test/test_tbb_fork.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_tbb_header.cpp b/src/test/test_tbb_header.cpp index 68aa61c6..6a3f4d0c 100644 --- a/src/test/test_tbb_header.cpp +++ b/src/test/test_tbb_header.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -97,7 +97,7 @@ struct Body3 { template void TestExceptionClassExports ( const E& exc, tbb::internal::exception_id eid ) { - // The assertion here serves to shut up warnings about "eid not used". + // The assertion here serves to shut up warnings about "eid not used". ASSERT( eid ); TestTypeDefinitionPresence2(concurrent_lru_cache ); + #if __TBB_FLOW_GRAPH_CPP11_FEATURES + TestTypeDefinitionPresence2( flow::composite_node, tbb::flow::tuple > ); + #endif TestTypeDefinitionPresence( static_partitioner ); } #endif #if __TBB_TEST_SECONDARY -/* This mode is used to produce a secondary object file that is linked with +/* This mode is used to produce a secondary object file that is linked with the main one in order to detect "multiple definition" linker error. */ void secondary() diff --git a/src/test/test_tbb_thread.cpp b/src/test/test_tbb_thread.cpp index b7f82d4f..68856565 100644 --- a/src/test/test_tbb_thread.cpp +++ b/src/test/test_tbb_thread.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/src/test/test_tbb_version.cpp b/src/test/test_tbb_version.cpp index 1258df57..bfe01167 100644 --- a/src/test/test_tbb_version.cpp +++ b/src/test/test_tbb_version.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -197,7 +197,7 @@ int main(int argc, char *argv[] ) { REPORT( "Error (step 1):Internal test error (stderr open)\n" ); exit( 1 ); } - + while( !feof( stream_err ) ) { if( fgets( psBuffer, psBuffer_len, stream_err ) != NULL ){ if (strstr( psBuffer, "TBBmalloc: " )) { @@ -236,19 +236,21 @@ int main(int argc, char *argv[] ) { } -// Fill dictionary with version strings for platforms +// Fill dictionary with version strings for platforms void initialize_strings_vector(std::vector * vector) { vector->push_back(string_pair("TBB: VERSION\t\t4.4", required)); // check TBB_VERSION - vector->push_back(string_pair("TBB: INTERFACE VERSION\t9002", required)); // check TBB_INTERFACE_VERSION + vector->push_back(string_pair("TBB: INTERFACE VERSION\t9003", required)); // check TBB_INTERFACE_VERSION vector->push_back(string_pair("TBB: BUILD_DATE", required)); vector->push_back(string_pair("TBB: BUILD_HOST", required)); vector->push_back(string_pair("TBB: BUILD_OS", required)); #if _WIN32||_WIN64 #if !__MINGW32__ vector->push_back(string_pair("TBB: BUILD_CL", required)); -#endif vector->push_back(string_pair("TBB: BUILD_COMPILER", required)); +#else + vector->push_back(string_pair("TBB: BUILD_GCC", required)); +#endif #elif __APPLE__ vector->push_back(string_pair("TBB: BUILD_KERNEL", required)); vector->push_back(string_pair("TBB: BUILD_CLANG", required)); @@ -266,10 +268,11 @@ void initialize_strings_vector(std::vector * vector) vector->push_back(string_pair("TBB: BUILD_COMPILER", optional)); //if( getenv("COMPILER_VERSION") ) #if __ANDROID__ vector->push_back(string_pair("TBB: BUILD_NDK", optional)); + vector->push_back(string_pair("TBB: BUILD_LD", optional)); #else vector->push_back(string_pair("TBB: BUILD_LIBC", required)); -#endif // !__ANDROID__ vector->push_back(string_pair("TBB: BUILD_LD", required)); +#endif // !__ANDROID__ #endif // OS vector->push_back(string_pair("TBB: BUILD_TARGET", required)); vector->push_back(string_pair("TBB: BUILD_COMMAND", required)); diff --git a/src/test/test_thread.h b/src/test/test_thread.h index b6b3a580..31618f01 100644 --- a/src/test/test_thread.h +++ b/src/test/test_thread.h @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -54,9 +54,9 @@ class Base { protected: Base() : copy_throws(100) {++BaseCount;} Base( const Base& c ) : copy_throws(c.copy_throws) { - if( --copy_throws<=0 ) + if( --copy_throws<=0 ) __TBB_THROW(0); - ++BaseCount; + ++BaseCount; } ~Base() {--BaseCount;} }; @@ -84,7 +84,7 @@ public: void operator()(){ real_ids[0] = THIS_THREAD::get_id(); init_barrier.wait(); - + sum.fetch_and_add(1); } void operator()(int num){ @@ -93,7 +93,7 @@ public: sum.fetch_and_add(num); } - void operator()(int num, Data<0> dx) { + void operator()(int num, Data<0> dx) { real_ids[num] = THIS_THREAD::get_id(); const double WAIT = .1; @@ -138,7 +138,7 @@ void CheckRelations( const THREAD::id ids[], int n, bool duplicates_allowed ) { for( int k=0; k x(0); @@ -167,7 +167,7 @@ void CheckExceptionSafety() { if( i&4 ) y.copy_throws = d; bool exception_caught = false; for( int j=0; j<3; ++j ) { - try { + try { switch(j) { case 0: {THREAD t(f); t.join();} break; case 1: {THREAD t(f,x); t.join();} break; @@ -175,7 +175,7 @@ void CheckExceptionSafety() { } } catch(...) { exception_caught = true; - } + } ASSERT( !exception_caught||(i&((1<<(j+1))-1))!=0, NULL ); } } @@ -199,13 +199,13 @@ void RunTests() { Data<0> d100(100), d1(1), d0(0); const THREAD::id id_zero; THREAD::id id0, uniq_ids[THRDS]; - + THREAD thrs[THRDS]; THREAD thr; THREAD thr0(t); THREAD thr1(t, 2); THREAD thr2(t, 1, d100); - + ASSERT( thr0.get_id() != id_zero, NULL ); id0 = thr0.get_id(); tbb::move(thrs[0], thr0); @@ -270,11 +270,11 @@ void RunTests() { ASSERT( BaseCount==4, "object leak detected" ); #if TBB_USE_EXCEPTIONS - CheckExceptionSafety(); + CheckExceptionSafety(); #endif // Note: all tests involving BaseCount should be put before the tests - // involing detached threads, because there is no way of knowing when + // involing detached threads, because there is no way of knowing when // a detached thread destroys its arguments. THREAD thr_detach_0(t, d0); diff --git a/src/test/test_tick_count.cpp b/src/test/test_tick_count.cpp index e9c96aae..68f08681 100644 --- a/src/test/test_tick_count.cpp +++ b/src/test/test_tick_count.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -20,6 +20,12 @@ #include "tbb/tick_count.h" #include "harness_assert.h" +#if __TBB_WIN8UI_SUPPORT + const char* GetEnv( const char* ) { return NULL; } +#else + #include + const char* GetEnv( const char* str ) { return std::getenv( str ); } +#endif //! Assert that two times in seconds are very close. void AssertNear( double x, double y ) { @@ -183,10 +189,14 @@ void TestResolution() { #include "tbb/tbb_thread.h" int TestMain () { + // Increased tolerance for Virtual Machines + double tolerance_multiplier = GetEnv( "VIRTUAL_MACHINE" ) ? 50. : 1.; + REMARK( "tolerance_multiplier = %g \n", tolerance_multiplier ); + tbb::tick_count t0 = tbb::tick_count::now(); - TestSimpleDelay(/*ntrial=*/1000000,/*duration=*/0, /*tolerance=*/2E-6); + TestSimpleDelay(/*ntrial=*/1000000,/*duration=*/0, /*tolerance=*/2E-6 * tolerance_multiplier); tbb::tick_count t1 = tbb::tick_count::now(); - TestSimpleDelay(/*ntrial=*/1000, /*duration=*/0.001,/*tolerance=*/5E-6); + TestSimpleDelay(/*ntrial=*/1000, /*duration=*/0.001,/*tolerance=*/5E-6 * tolerance_multiplier); tbb::tick_count t2 = tbb::tick_count::now(); TestArithmetic(t0,t1,t2); diff --git a/src/test/test_tuple.cpp b/src/test/test_tuple.cpp index 8097d331..3b54b3f6 100644 --- a/src/test/test_tuple.cpp +++ b/src/test/test_tuple.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -68,7 +68,7 @@ void RunOneComparisonTest() { ASSERT(!(t_tuple((T1)2,(T2)1,(T3)1) == u_tuple((U1)1,(U2)1,(U3)1)),NULL); ASSERT(!(t_tuple((T1)1,(T2)2,(T3)1) == u_tuple((U1)1,(U2)1,(U3)1)),NULL); ASSERT(!(t_tuple((T1)1,(T2)1,(T3)2) == u_tuple((U1)1,(U2)1,(U3)1)),NULL); - + ASSERT(!(t_tuple((T1)1,(T2)1,(T3)1) < u_tuple((U1)1,(U2)1,(U3)1)),NULL); ASSERT(!(t_tuple((T1)1,(T2)1,(T3)1) > u_tuple((U1)1,(U2)1,(U3)1)),NULL); ASSERT(!(t_tuple((T1)1,(T2)1,(T3)1) != u_tuple((U1)1,(U2)1,(U3)1)),NULL); @@ -177,7 +177,7 @@ void RunTests() { ASSERT(!(mixed_tuple_left(1,2.f,1,1) == mixed_tuple_right(1.f,1,1,1)),NULL); ASSERT(!(mixed_tuple_left(1,1.f,2,1) == mixed_tuple_right(1.f,1,1,1)),NULL); ASSERT(!(mixed_tuple_left(1,1.f,1,2) == mixed_tuple_right(1.f,1,1,1)),NULL); - + ASSERT(!(mixed_tuple_left(1,1.f,1,1) < mixed_tuple_right(1.f,1,1,1)),NULL); ASSERT(!(mixed_tuple_left(1,1.f,1,1) > mixed_tuple_right(1.f,1,1,1)),NULL); ASSERT(!(mixed_tuple_left(1,1.f,1,1) != mixed_tuple_right(1.f,1,1,1)),NULL); diff --git a/src/test/test_write_once_node.cpp b/src/test/test_write_once_node.cpp index cb21a602..8af17d24 100644 --- a/src/test/test_write_once_node.cpp +++ b/src/test/test_write_once_node.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -23,7 +23,7 @@ #include "tbb/task_scheduler_init.h" #define N 300 -#define T 4 +#define T 4 #define M 4 template< typename R > @@ -48,7 +48,7 @@ void simple_read_write_tests() { for (int i = 0; i < M; ++i) { tbb::flow::make_edge( n, r[i] ); } - + if ( t%2 ) { for (int i = 0; i < M; ++i) { size_t c = r[i].my_count; @@ -60,7 +60,7 @@ void simple_read_write_tests() { R v1(static_cast(i)); bool result = n.try_put( v1 ); - if ( !(t%2) && i == 1 ) + if ( !(t%2) && i == 1 ) ASSERT( result == true, NULL ); else ASSERT( result == false, NULL ); @@ -70,9 +70,9 @@ void simple_read_write_tests() { for (int j = 0; j < N; ++j ) { R v2(0); ASSERT( n.try_get( v2 ), NULL ); - if ( t%2 ) + if ( t%2 ) ASSERT( R(N+1) == v2, NULL ); - else + else ASSERT( R(1) == v2, NULL ); } } @@ -152,7 +152,7 @@ void parallel_read_write_tests() { } } -int TestMain() { +int TestMain() { simple_read_write_tests(); simple_read_write_tests(); for( int p=MinThread; p<=MaxThread; ++p ) { diff --git a/src/test/test_yield.cpp b/src/test/test_yield.cpp index 4c95c90e..0156f3d7 100644 --- a/src/test/test_yield.cpp +++ b/src/test/test_yield.cpp @@ -1,5 +1,5 @@ /* - Copyright 2005-2015 Intel Corporation. All Rights Reserved. + Copyright 2005-2016 Intel Corporation. All Rights Reserved. This file is part of Threading Building Blocks. Threading Building Blocks is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -38,7 +38,7 @@ struct RoundRobin: NoAssign { void operator()( long k ) const { tbb::tick_count t0 = tbb::tick_count::now(); for( long i=0; i<10000; ++i ) { - // Wait for previous thread to notify us + // Wait for previous thread to notify us for( int j=0; CyclicCounter!=k && !Quit; ++j ) { __TBB_Yield(); if( j%100==0 ) { @@ -50,7 +50,7 @@ struct RoundRobin: NoAssign { } } } - // Notify next thread that it can run + // Notify next thread that it can run CyclicCounter = (k+1)%number_of_threads; } } -- GitLab