From 3095e71da5ed4691dba038f5595171e28299094b Mon Sep 17 00:00:00 2001 From: tbbdev Date: Thu, 15 Sep 2016 14:58:36 +0300 Subject: [PATCH] Committing Intel(R) TBB 4.4 Update 2 source code --- CHANGES | 29 + README.md | 4 +- build/Makefile.test | 9 + build/SunOS.suncc.inc | 2 + build/linux.icc.inc | 7 +- build/linux.inc | 2 + build/macos.clang.inc | 18 +- build/macos.icc.inc | 13 +- build/macos.inc | 11 +- build/mic.icc.inc | 5 + build/test_launcher.sh | 7 +- build/windows.inc | 2 + doc/Release_Notes.txt | 4 +- doc/html/a00009.html | 2 +- doc/html/a00010.html | 84 +- doc/html/a00011.html | 4 +- doc/html/a00012.html | 6 +- doc/html/a00013.html | 4 +- doc/html/a00014.html | 8 +- doc/html/a00015.html | 6 +- doc/html/a00016.html | 6 +- doc/html/a00017.html | 6 +- doc/html/a00018.html | 62 +- doc/html/a00018.png | Bin 1267 -> 0 bytes doc/html/a00019.html | 147 +- doc/html/a00019.png | Bin 3785 -> 1337 bytes doc/html/a00020.html | 271 +- doc/html/a00020.png | Bin 595 -> 7848 bytes doc/html/a00021.html | 41 +- doc/html/a00021.png | Bin 688 -> 595 bytes doc/html/a00022.html | 39 +- doc/html/a00022.png | Bin 490 -> 688 bytes doc/html/a00023.html | 33 +- doc/html/a00023.png | Bin 0 -> 490 bytes doc/html/a00024.html | 32 +- doc/html/a00024.png | Bin 2213 -> 0 bytes doc/html/a00025.html | 42 +- doc/html/a00025.png | Bin 1561 -> 2213 bytes doc/html/a00026.html | 307 +-- doc/html/a00026.png | Bin 0 -> 1561 bytes doc/html/a00027.html | 309 ++- doc/html/a00028.html | 111 +- doc/html/a00029.html | 85 +- doc/html/a00030.html | 245 +- doc/html/a00030.png | Bin 1883 -> 0 bytes doc/html/a00031.html | 251 +- doc/html/a00031.png | Bin 1110 -> 1883 bytes doc/html/a00032.html | 576 +---- doc/html/a00032.png | Bin 5251 -> 1110 bytes doc/html/a00033.html | 589 ++++- doc/html/a00033.png | Bin 1158 -> 5251 bytes doc/html/a00034.html | 136 +- doc/html/a00034.png | Bin 0 -> 1158 bytes doc/html/a00035.html | 95 +- doc/html/a00036.html | 54 +- doc/html/a00037.html | 176 +- doc/html/a00037.png | Bin 835 -> 0 bytes doc/html/a00038.html | 68 +- doc/html/a00038.png | Bin 0 -> 1103 bytes doc/html/a00039.html | 27 +- doc/html/a00039.png | Bin 0 -> 1106 bytes doc/html/a00040.html | 234 +- doc/html/a00040.png | Bin 2624 -> 835 bytes doc/html/a00041.html | 129 +- doc/html/a00041.png | Bin 2180 -> 0 bytes doc/html/a00042.html | 91 +- doc/html/a00042.png | Bin 2303 -> 0 bytes doc/html/a00043.html | 98 +- doc/html/a00043.png | Bin 0 -> 2624 bytes doc/html/a00044.html | 414 +-- doc/html/a00044.png | Bin 766 -> 2180 bytes doc/html/a00045.html | 1084 +------- doc/html/a00045.png | Bin 1052 -> 2303 bytes doc/html/a00046.html | 44 +- doc/html/a00046.png | Bin 1068 -> 0 bytes doc/html/a00047.html | 587 ++--- doc/html/a00047.png | Bin 0 -> 766 bytes doc/html/a00048.html | 1109 +++++++- doc/html/a00048.png | Bin 872 -> 1052 bytes doc/html/a00049.html | 125 +- doc/html/a00049.png | Bin 2163 -> 1068 bytes doc/html/a00050.html | 599 ++++- doc/html/a00051.html | 248 +- doc/html/a00051.png | Bin 2174 -> 872 bytes doc/html/a00052.html | 157 +- doc/html/a00052.png | Bin 2109 -> 2163 bytes doc/html/a00053.html | 151 +- doc/html/a00053.png | Bin 2095 -> 0 bytes doc/html/a00054.html | 147 +- doc/html/a00054.png | Bin 0 -> 2174 bytes doc/html/a00055.html | 834 +----- doc/html/a00055.png | Bin 1057 -> 2109 bytes doc/html/a00056.html | 168 +- doc/html/a00056.png | Bin 1888 -> 2095 bytes doc/html/a00057.html | 64 +- doc/html/a00058.html | 828 +++++- doc/html/a00058.png | Bin 2370 -> 1057 bytes doc/html/a00059.html | 253 +- doc/html/a00059.png | Bin 996 -> 1888 bytes doc/html/a00060.html | 63 +- doc/html/a00060.png | Bin 621 -> 0 bytes doc/html/a00061.html | 144 +- doc/html/a00061.png | Bin 0 -> 2370 bytes doc/html/a00062.html | 235 +- doc/html/a00062.png | Bin 1053 -> 996 bytes doc/html/a00063.html | 233 +- doc/html/a00063.png | Bin 1259 -> 621 bytes doc/html/a00064.html | 108 +- doc/html/a00064.png | Bin 757 -> 1261 bytes doc/html/a00065.html | 54 +- doc/html/a00066.html | 81 +- doc/html/a00067.html | 57 +- doc/html/a00068.html | 95 +- doc/html/a00068.png | Bin 0 -> 1053 bytes doc/html/a00069.html | 210 +- doc/html/a00069.png | Bin 0 -> 1259 bytes doc/html/a00070.html | 191 +- doc/html/a00070.png | Bin 2953 -> 757 bytes doc/html/a00071.html | 68 +- doc/html/a00072.html | 312 +-- doc/html/a00072.png | Bin 596 -> 0 bytes doc/html/a00073.html | 94 +- doc/html/{a00067.png => a00073.png} | Bin doc/html/a00074.html | 142 +- doc/html/a00074.png | Bin 14421 -> 0 bytes doc/html/a00075.html | 66 +- doc/html/a00076.html | 120 +- doc/html/a00076.png | Bin 495 -> 2953 bytes doc/html/a00077.html | 56 +- doc/html/a00077.png | Bin 1376 -> 0 bytes doc/html/a00078.html | 320 ++- doc/html/a00078.png | Bin 989 -> 1020 bytes doc/html/a00079.html | 103 +- doc/html/a00079.png | Bin 1034 -> 0 bytes doc/html/a00080.html | 105 +- doc/html/a00080.png | Bin 1111 -> 16854 bytes doc/html/a00081.html | 85 +- doc/html/a00082.html | 53 +- doc/html/a00082.png | Bin 1209 -> 495 bytes doc/html/a00083.html | 48 +- doc/html/a00083.png | Bin 1259 -> 1376 bytes doc/html/a00084.html | 50 +- doc/html/a00084.png | Bin 1300 -> 989 bytes doc/html/a00085.html | 50 +- doc/html/a00085.png | Bin 1322 -> 1034 bytes doc/html/a00086.html | 50 +- doc/html/a00086.png | Bin 1351 -> 1111 bytes doc/html/a00087.html | 91 +- doc/html/{a00081.png => a00087.png} | Bin doc/html/a00088.html | 53 +- doc/html/a00088.png | Bin 638 -> 1209 bytes doc/html/a00089.html | 50 +- doc/html/a00089.png | Bin 0 -> 1259 bytes doc/html/a00090.html | 84 +- doc/html/a00090.png | Bin 1992 -> 1300 bytes doc/html/a00091.html | 51 +- doc/html/a00091.png | Bin 1706 -> 1322 bytes doc/html/a00092.html | 51 +- doc/html/a00092.png | Bin 1724 -> 1351 bytes doc/html/a00093.html | 319 +-- doc/html/a00093.png | Bin 1884 -> 0 bytes doc/html/a00094.html | 36 +- doc/html/a00094.png | Bin 671 -> 638 bytes doc/html/a00095.html | 133 +- doc/html/a00096.html | 133 +- doc/html/a00096.png | Bin 0 -> 1992 bytes doc/html/a00097.html | 67 +- doc/html/a00097.png | Bin 0 -> 1706 bytes doc/html/a00098.html | 48 +- doc/html/a00098.png | Bin 489 -> 1724 bytes doc/html/a00099.html | 191 +- doc/html/a00099.png | Bin 960 -> 0 bytes doc/html/a00100.html | 109 +- doc/html/a00101.html | 130 +- doc/html/a00102.html | 314 ++- doc/html/a00102.png | Bin 1052 -> 1884 bytes doc/html/a00103.html | 56 +- doc/html/a00103.png | Bin 704 -> 671 bytes doc/html/a00104.html | 146 +- doc/html/a00104.png | Bin 724 -> 0 bytes doc/html/a00105.html | 82 +- doc/html/a00106.html | 279 +- doc/html/a00107.html | 46 +- doc/html/a00107.png | Bin 625 -> 489 bytes doc/html/a00108.html | 193 +- doc/html/a00108.png | Bin 612 -> 960 bytes doc/html/a00109.html | 167 +- doc/html/{a00100.png => a00109.png} | Bin doc/html/a00110.html | 132 +- doc/html/{a00101.png => a00110.png} | Bin doc/html/a00111.html | 409 +-- doc/html/a00111.png | Bin 4094 -> 1052 bytes doc/html/a00112.html | 389 +-- doc/html/a00112.png | Bin 4409 -> 704 bytes doc/html/a00113.html | 54 +- doc/html/a00113.png | Bin 754 -> 724 bytes doc/html/a00114.html | 64 +- doc/html/a00114.png | Bin 776 -> 0 bytes doc/html/a00115.html | 189 +- doc/html/a00115.png | Bin 657 -> 0 bytes doc/html/a00116.html | 23 +- doc/html/a00117.html | 22 +- doc/html/a00118.html | 82 +- doc/html/a00119.html | 89 +- doc/html/a00119.png | Bin 0 -> 1144 bytes doc/html/a00120.html | 121 +- doc/html/a00121.html | 57 +- doc/html/a00122.html | 31 +- doc/html/a00123.html | 47 +- doc/html/a00124.html | 43 +- doc/html/a00124.png | Bin 0 -> 693 bytes doc/html/a00125.html | 175 +- doc/html/a00125.png | Bin 0 -> 1018 bytes doc/html/a00126.html | 170 +- doc/html/a00126.png | Bin 4584 -> 1139 bytes doc/html/a00127.html | 114 +- doc/html/a00127.png | Bin 766 -> 0 bytes doc/html/a00128.html | 34 +- doc/html/a00128.png | Bin 0 -> 1395 bytes doc/html/a00129.html | 34 +- doc/html/a00129.png | Bin 0 -> 1387 bytes doc/html/a00130.html | 316 +-- doc/html/a00130.png | Bin 616 -> 1729 bytes doc/html/a00131.html | 121 +- doc/html/a00131.png | Bin 0 -> 855 bytes doc/html/a00132.html | 279 +- doc/html/{a00106.png => a00132.png} | Bin doc/html/a00133.html | 55 +- doc/html/a00133.png | Bin 574 -> 625 bytes doc/html/a00134.html | 134 +- doc/html/a00134.png | Bin 651 -> 612 bytes doc/html/a00135.html | 109 +- doc/html/a00135.png | Bin 798 -> 0 bytes doc/html/a00136.html | 94 +- doc/html/a00136.png | Bin 594 -> 0 bytes doc/html/a00137.html | 86 +- doc/html/a00138.html | 403 ++- doc/html/a00138.png | Bin 542 -> 4094 bytes doc/html/a00139.html | 97 +- doc/html/a00139.png | Bin 604 -> 1828 bytes doc/html/a00140.html | 111 +- doc/html/a00140.png | Bin 645 -> 1782 bytes doc/html/a00141.html | 495 +++- doc/html/a00141.png | Bin 655 -> 4409 bytes doc/html/a00142.html | 55 +- doc/html/a00142.png | Bin 743 -> 754 bytes doc/html/a00143.html | 73 +- doc/html/a00143.png | Bin 839 -> 776 bytes doc/html/a00144.html | 239 +- doc/html/a00144.png | Bin 4585 -> 657 bytes doc/html/a00145.html | 346 +-- doc/html/a00146.html | 206 +- doc/html/a00146.png | Bin 1766 -> 0 bytes doc/html/a00147.html | 141 +- doc/html/a00147.png | Bin 729 -> 0 bytes doc/html/a00148.html | 195 +- doc/html/a00148.png | Bin 777 -> 0 bytes doc/html/a00149.html | 124 +- doc/html/a00150.html | 76 +- doc/html/a00151.html | 20 +- doc/html/a00152.html | 340 +-- doc/html/a00153.html | 85 +- doc/html/a00154.html | 73 +- doc/html/a00155.html | 138 +- doc/html/a00155.png | Bin 0 -> 4584 bytes doc/html/a00156.html | 80 +- doc/html/a00156.png | Bin 538 -> 1337 bytes doc/html/a00157.html | 110 +- doc/html/a00157.png | Bin 620 -> 766 bytes doc/html/a00158.html | 167 +- doc/html/a00159.html | 221 +- doc/html/a00160.html | 300 ++- doc/html/a00160.png | Bin 906 -> 616 bytes doc/html/a00161.html | 125 +- doc/html/a00162.html | 28 +- doc/html/a00163.html | 184 +- doc/html/a00163.png | Bin 1423 -> 594 bytes doc/html/a00164.html | 94 +- doc/html/{a00137.png => a00164.png} | Bin doc/html/a00165.html | 218 +- doc/html/a00165.png | Bin 0 -> 655 bytes doc/html/a00166.html | 136 +- doc/html/a00166.png | Bin 757 -> 645 bytes doc/html/a00167.html | 127 +- doc/html/a00167.png | Bin 794 -> 651 bytes doc/html/a00168.html | 68 +- doc/html/a00168.png | Bin 815 -> 574 bytes doc/html/a00169.html | 77 +- doc/html/a00169.png | Bin 857 -> 798 bytes doc/html/a00170.html | 52 +- doc/html/a00170.png | Bin 1409 -> 604 bytes doc/html/a00171.html | 61 +- doc/html/a00171.png | Bin 0 -> 743 bytes doc/html/a00172.html | 71 +- doc/html/a00172.png | Bin 0 -> 542 bytes doc/html/a00173.html | 57 +- doc/html/a00173.png | Bin 0 -> 839 bytes doc/html/a00174.html | 97 +- doc/html/a00174.png | Bin 468 -> 4585 bytes doc/html/a00175.html | 74 +- doc/html/a00175.png | Bin 1711 -> 1309 bytes doc/html/a00176.html | 347 ++- doc/html/{a00145.png => a00176.png} | Bin doc/html/a00177.html | 399 ++- doc/html/a00177.png | Bin 2518 -> 1766 bytes doc/html/a00178.html | 171 +- doc/html/a00178.png | Bin 638 -> 729 bytes doc/html/a00179.html | 200 +- doc/html/a00179.png | Bin 679 -> 777 bytes doc/html/a00180.html | 173 ++ doc/html/{a00149.png => a00180.png} | Bin doc/html/a00181.html | 118 + doc/html/{a00150.png => a00181.png} | Bin doc/html/a00182.html | 56 + doc/html/a00183.html | 386 +++ doc/html/{a00152.png => a00183.png} | Bin doc/html/a00184.html | 127 + doc/html/{a00153.png => a00184.png} | Bin doc/html/a00185.html | 114 + doc/html/{a00154.png => a00185.png} | Bin doc/html/{a00286.html => a00186.html} | 17 +- doc/html/a00187.html | 91 + doc/html/a00187.png | Bin 0 -> 538 bytes doc/html/{a00266.html => a00188.html} | 36 +- doc/html/a00188.png | Bin 0 -> 620 bytes doc/html/a00189.html | 215 ++ doc/html/{a00158.png => a00189.png} | Bin doc/html/a00190.html | 269 ++ doc/html/{a00159.png => a00190.png} | Bin doc/html/a00191.html | 185 ++ doc/html/a00191.png | Bin 0 -> 906 bytes doc/html/a00192.html | 160 ++ doc/html/a00193.html | 88 + doc/html/a00194.html | 226 ++ doc/html/a00194.png | Bin 0 -> 1423 bytes doc/html/a00195.html | 117 + doc/html/a00196.html | 185 ++ doc/html/a00197.html | 331 +-- doc/html/a00197.png | Bin 0 -> 757 bytes doc/html/a00198.html | 96 + doc/html/a00198.png | Bin 0 -> 794 bytes doc/html/a00199.html | 109 +- doc/html/a00199.png | Bin 0 -> 815 bytes doc/html/a00200.html | 103 + doc/html/a00200.png | Bin 0 -> 857 bytes doc/html/a00201.html | 80 + doc/html/a00201.png | Bin 0 -> 1409 bytes doc/html/a00202.html | 101 + doc/html/a00203.html | 91 + doc/html/a00204.html | 69 + doc/html/a00205.html | 66 + doc/html/{a00281.html => a00206.html} | 41 +- doc/html/a00206.png | Bin 0 -> 468 bytes doc/html/a00207.html | 91 + doc/html/a00207.png | Bin 0 -> 1711 bytes doc/html/{a00263.html => a00208.html} | 17 +- doc/html/a00209.html | 318 +++ doc/html/a00209.png | Bin 0 -> 2518 bytes doc/html/a00210.html | 133 + doc/html/a00210.png | Bin 0 -> 638 bytes doc/html/a00211.html | 102 + doc/html/a00211.png | Bin 0 -> 679 bytes doc/html/a00229.html | 283 ++ doc/html/a00232.html | 99 + doc/html/a00238.html | 116 - doc/html/a00241.html | 689 ----- doc/html/{a00218.html => a00251.html} | 52 +- doc/html/a00256.html | 2012 --------------- doc/html/a00257.html | 67 - doc/html/a00258.html | 382 --- doc/html/a00259.html | 125 - doc/html/a00260.html | 52 - doc/html/a00261.html | 52 - doc/html/a00264.html | 65 - doc/html/a00268.html | 71 - doc/html/a00269.html | 68 - doc/html/a00270.html | 70 - doc/html/a00271.html | 107 +- doc/html/a00274.html | 686 ++++- doc/html/a00275.html | 66 - doc/html/a00276.html | 90 - doc/html/a00277.html | 134 - doc/html/a00278.html | 60 - doc/html/a00279.html | 73 - doc/html/a00280.html | 63 - doc/html/a00283.html | 60 - doc/html/a00284.html | 64 - doc/html/a00289.html | 2277 ++++++++++++++++- doc/html/a00290.html | 59 +- doc/html/a00291.html | 372 ++- doc/html/a00292.html | 108 +- doc/html/a00293.html | 38 +- doc/html/a00294.html | 38 +- doc/html/a00295.html | 64 - doc/html/a00296.html | 21 +- doc/html/a00297.html | 22 +- doc/html/a00298.html | 27 +- doc/html/a00299.html | 11 +- doc/html/a00300.html | 13 +- doc/html/a00301.html | 22 +- doc/html/a00302.html | 27 +- doc/html/a00303.html | 27 +- doc/html/a00304.html | 42 +- doc/html/a00305.html | 18 +- doc/html/a00306.html | 14 +- doc/html/a00307.html | 22 +- doc/html/a00308.html | 28 +- doc/html/a00309.html | 51 +- doc/html/a00310.html | 107 +- doc/html/a00311.html | 11 +- doc/html/a00312.html | 26 +- doc/html/a00313.html | 14 +- doc/html/a00314.html | 22 +- doc/html/a00315.html | 13 +- doc/html/a00316.html | 14 +- doc/html/a00317.html | 15 +- doc/html/a00318.html | 10 +- doc/html/a00319.html | 8 +- doc/html/a00320.html | 8 +- doc/html/a00321.html | 12 +- doc/html/a00322.html | 12 +- doc/html/a00323.html | 25 +- doc/html/a00324.html | 31 +- doc/html/a00325.html | 25 +- doc/html/a00326.html | 16 +- doc/html/a00327.html | 21 +- doc/html/a00328.html | 30 +- doc/html/a00329.html | 39 +- doc/html/a00330.html | 62 +- doc/html/a00331.html | 55 +- doc/html/a00332.html | 24 +- doc/html/a00333.html | 35 +- doc/html/a00334.html | 17 +- doc/html/a00335.html | 46 +- doc/html/a00336.html | 14 +- doc/html/a00337.html | 24 +- doc/html/a00338.html | 38 +- doc/html/a00339.html | 27 +- doc/html/a00340.html | 39 +- doc/html/a00341.html | 39 +- doc/html/a00342.html | 71 +- doc/html/a00343.html | 85 +- doc/html/a00344.html | 53 +- doc/html/a00345.html | 106 +- doc/html/a00346.html | 17 +- doc/html/a00347.html | 68 + doc/html/a00348.html | 103 +- doc/html/a00349.html | 109 +- doc/html/a00350.html | 104 +- doc/html/a00351.html | 13 +- doc/html/a00352.html | 12 +- doc/html/a00353.html | 20 +- doc/html/a00354.html | 13 +- doc/html/a00355.html | 13 +- doc/html/a00356.html | 19 +- doc/html/a00357.html | 25 +- doc/html/a00358.html | 26 +- doc/html/a00359.html | 16 +- doc/html/a00360.html | 21 +- doc/html/a00361.html | 28 +- doc/html/a00362.html | 34 +- doc/html/a00363.html | 61 +- doc/html/a00364.html | 56 +- doc/html/a00365.html | 41 +- doc/html/a00366.html | 51 +- doc/html/a00367.html | 43 +- doc/html/a00368.html | 45 +- doc/html/a00369.html | 12 +- doc/html/a00370.html | 94 +- doc/html/a00371.html | 37 +- doc/html/a00372.html | 23 +- doc/html/a00373.html | 28 +- doc/html/a00374.html | 31 +- doc/html/a00375.html | 72 +- doc/html/a00376.html | 72 +- doc/html/a00377.html | 80 +- doc/html/a00378.html | 112 +- doc/html/a00379.html | 20 +- doc/html/a00381.html | 129 +- doc/html/a00382.html | 115 +- doc/html/a00383.html | 130 +- doc/html/a00384.html | 38 +- doc/html/a00385.html | 25 +- doc/html/a00386.html | 25 +- doc/html/a00387.html | 17 +- doc/html/a00388.html | 14 +- doc/html/a00389.html | 13 +- doc/html/a00390.html | 21 +- doc/html/a00391.html | 15 +- doc/html/a00392.html | 17 +- doc/html/a00393.html | 16 +- doc/html/a00394.html | 52 +- doc/html/a00395.html | 29 +- doc/html/a00396.html | 36 +- doc/html/a00397.html | 27 +- doc/html/a00398.html | 35 +- doc/html/a00399.html | 25 +- doc/html/a00400.html | 56 +- doc/html/a00401.html | 14 +- doc/html/a00402.html | 26 +- doc/html/a00403.html | 50 +- doc/html/a00404.html | 40 +- doc/html/a00405.html | 32 +- doc/html/a00406.html | 27 +- doc/html/a00407.html | 29 +- doc/html/a00408.html | 17 +- doc/html/a00409.html | 51 +- doc/html/a00410.html | 26 +- doc/html/a00411.html | 17 +- doc/html/a00412.html | 12 +- doc/html/a00413.html | 22 +- doc/html/a00414.html | 36 +- doc/html/a00415.html | 22 +- doc/html/a00416.html | 12 +- doc/html/a00417.html | 12 +- doc/html/a00418.html | 15 +- doc/html/a00419.html | 17 +- doc/html/a00420.html | 14 +- doc/html/a00421.html | 26 +- doc/html/a00422.html | 19 +- doc/html/a00423.html | 34 +- doc/html/a00424.html | 58 + doc/html/a00425.html | 58 + doc/html/a00426.html | 58 + doc/html/a00427.html | 60 + doc/html/a00428.html | 69 + doc/html/a00429.html | 59 + doc/html/a00430.html | 59 + doc/html/a00431.html | 64 + doc/html/a00432.html | 61 + doc/html/a00433.html | 62 + doc/html/a00434.html | 143 ++ doc/html/a00435.html | 66 + doc/html/a00436.html | 57 + doc/html/{a00288.html => a00437.html} | 15 +- doc/html/a00438.html | 60 + doc/html/a00439.html | 68 + doc/html/a00440.html | 66 + doc/html/a00441.html | 84 + doc/html/a00442.html | 65 + doc/html/a00443.html | 60 + doc/html/{a00380.html => a00444.html} | 64 +- doc/html/a00445.html | 83 + doc/html/a00446.html | 66 + doc/html/a00447.html | 83 + doc/html/a00448.html | 83 + doc/html/a00449.html | 70 + doc/html/a00450.html | 61 + doc/html/{a00282.html => a00451.html} | 17 +- doc/html/a00452.html | 58 + doc/html/{a00265.html => a00453.html} | 9 +- doc/html/a00454.html | 65 + doc/html/{a00273.html => a00455.html} | 12 +- doc/html/a00456.html | 61 + doc/html/a00457.html | 60 + doc/html/a00458.html | 96 + doc/html/a00459.html | 73 + doc/html/a00460.html | 80 + doc/html/{a00272.html => a00461.html} | 8 +- doc/html/a00462.html | 67 + doc/html/a00463.html | 57 + doc/html/a00464.html | 58 + doc/html/a00465.html | 58 + doc/html/{a00285.html => a00466.html} | 10 +- doc/html/a00467.html | 65 + doc/html/a00468.html | 72 + doc/html/a00469.html | 71 + doc/html/a00470.html | 67 + doc/html/a00471.html | 67 + doc/html/a00472.html | 58 + doc/html/a00473.html | 71 + doc/html/a00474.html | 63 + doc/html/a00475.html | 65 + doc/html/a00476.html | 58 + doc/html/{a00287.html => a00477.html} | 8 +- doc/html/a00478.html | 67 + doc/html/a00479.html | 65 + doc/html/{a00267.html => a00480.html} | 15 +- doc/html/a00481.html | 58 + doc/html/a00482.html | 61 + doc/html/a00483.html | 62 + doc/html/a00484.html | 63 + doc/html/a00485.html | 75 + doc/html/a00486.html | 68 + doc/html/a00487.html | 83 + doc/html/annotated.html | 358 +-- doc/html/classes.html | 130 +- .../dir_87119f26c7695cbc270003e99bc7f49f.html | 116 +- doc/html/files.html | 6 +- doc/html/functions.html | 70 +- doc/html/functions_0x62.html | 25 +- doc/html/functions_0x63.html | 76 +- doc/html/functions_0x64.html | 50 +- doc/html/functions_0x65.html | 74 +- doc/html/functions_0x66.html | 18 +- doc/html/functions_0x67.html | 20 +- doc/html/functions_0x68.html | 2 +- doc/html/functions_0x69.html | 58 +- doc/html/functions_0x6a.html | 2 +- doc/html/functions_0x6c.html | 24 +- doc/html/functions_0x6d.html | 32 +- doc/html/functions_0x6e.html | 12 +- doc/html/functions_0x6f.html | 61 +- doc/html/functions_0x70.html | 30 +- doc/html/functions_0x71.html | 6 +- doc/html/functions_0x72.html | 114 +- doc/html/functions_0x73.html | 78 +- doc/html/functions_0x74.html | 103 +- doc/html/functions_0x75.html | 16 +- doc/html/functions_0x76.html | 10 +- doc/html/functions_0x77.html | 10 +- doc/html/functions_0x7e.html | 67 +- doc/html/functions_enum.html | 8 +- doc/html/functions_eval.html | 18 +- doc/html/functions_func.html | 62 +- doc/html/functions_func_0x62.html | 22 +- doc/html/functions_func_0x63.html | 68 +- doc/html/functions_func_0x64.html | 34 +- doc/html/functions_func_0x65.html | 52 +- doc/html/functions_func_0x66.html | 10 +- doc/html/functions_func_0x67.html | 20 +- doc/html/functions_func_0x68.html | 2 +- doc/html/functions_func_0x69.html | 46 +- doc/html/functions_func_0x6a.html | 2 +- doc/html/functions_func_0x6c.html | 22 +- doc/html/functions_func_0x6d.html | 24 +- doc/html/functions_func_0x6e.html | 8 +- doc/html/functions_func_0x6f.html | 53 +- doc/html/functions_func_0x70.html | 22 +- doc/html/functions_func_0x71.html | 6 +- doc/html/functions_func_0x72.html | 104 +- doc/html/functions_func_0x73.html | 60 +- doc/html/functions_func_0x74.html | 101 +- doc/html/functions_func_0x75.html | 16 +- doc/html/functions_func_0x77.html | 10 +- doc/html/functions_func_0x7e.html | 67 +- doc/html/functions_rela.html | 12 +- doc/html/functions_type.html | 81 +- doc/html/functions_vars.html | 32 +- doc/html/globals.html | 22 +- doc/html/globals_func.html | 22 +- doc/html/hierarchy.html | 530 ++-- doc/html/modules.html | 12 +- doc/html/namespacemembers.html | 36 +- doc/html/namespacemembers_enum.html | 4 +- doc/html/namespacemembers_eval.html | 8 +- doc/html/namespacemembers_func.html | 20 +- doc/html/namespacemembers_type.html | 4 +- doc/html/namespaces.html | 4 +- examples/common/gui/xvideo.cpp | 13 +- examples/graph/cholesky/Makefile | 51 + examples/graph/cholesky/Makefile.windows | 48 + examples/graph/cholesky/cholesky.cpp | 714 ++++++ examples/graph/cholesky/index.html | 69 + examples/graph/cholesky/init.cpp | 138 + examples/graph/cholesky/msvs/cholesky.sln | 26 + examples/graph/cholesky/msvs/cholesky.vcxproj | 202 ++ .../xcode/cholesky.xcodeproj/project.pbxproj | 309 +++ examples/graph/fgbzip2/fgbzip2.cpp | 8 +- examples/graph/index.html | 2 + examples/pipeline/square/Makefile.windows | 2 +- include/serial/tbb/parallel_for.h | 39 +- include/tbb/concurrent_vector.h | 2 +- include/tbb/flow_graph.h | 302 ++- include/tbb/flow_graph_opencl_node.h | 2082 +++++++++++++++ include/tbb/internal/_flow_graph_impl.h | 61 +- .../tbb/internal/_flow_graph_indexer_impl.h | 3 + .../internal/_flow_graph_item_buffer_impl.h | 2 +- include/tbb/internal/_flow_graph_join_impl.h | 125 + include/tbb/internal/_flow_graph_node_impl.h | 85 +- .../internal/_flow_graph_tagged_buffer_impl.h | 2 +- include/tbb/internal/_flow_graph_trace_impl.h | 33 +- include/tbb/internal/_flow_graph_types_impl.h | 62 +- include/tbb/internal/_template_helpers.h | 2 + include/tbb/machine/macos_common.h | 2 +- include/tbb/parallel_do.h | 41 +- include/tbb/parallel_for.h | 56 +- include/tbb/parallel_reduce.h | 50 +- include/tbb/partitioner.h | 453 ++-- include/tbb/task.h | 7 +- include/tbb/task_arena.h | 17 +- include/tbb/task_group.h | 1 + include/tbb/tbb_config.h | 13 +- include/tbb/tbb_profiling.h | 13 + include/tbb/tbb_stddef.h | 2 +- src/rml/server/rml_server.cpp | 2 +- src/tbb/arena.cpp | 52 +- src/tbb/arena.h | 39 +- src/tbb/dynamic_link.cpp | 63 +- src/tbb/lin32-tbb-export.lst | 3 + src/tbb/lin64-tbb-export.lst | 3 + src/tbb/lin64ipf-tbb-export.lst | 1 + src/tbb/mac32-tbb-export.lst | 1 + src/tbb/mac64-tbb-export.lst | 1 + src/tbb/market.cpp | 28 +- src/tbb/market.h | 4 +- src/tbb/private_server.cpp | 2 +- src/tbb/scheduler.cpp | 36 +- src/tbb/tbb_main.cpp | 31 +- src/tbb/tbb_misc.h | 6 +- src/tbb/tbb_misc_ex.cpp | 105 +- src/tbb/win32-tbb-export.lst | 3 + src/tbb/win64-gcc-tbb-export.lst | 1 + src/tbb/win64-tbb-export.lst | 3 + src/tbb/winrt-tbb-export.lst | 1 + src/test/harness.h | 25 + src/test/harness_defs.h | 26 +- src/test/harness_graph.h | 2 +- src/test/test_async_node.cpp | 580 ++++- src/test/test_atomic.cpp | 6 +- src/test/test_concurrent_hash_map.cpp | 4 +- src/test/test_concurrent_unordered_map.cpp | 4 +- src/test/test_concurrent_unordered_set.cpp | 4 +- src/test/test_concurrent_vector.cpp | 18 +- src/test/test_enumerable_thread_specific.cpp | 3 +- src/test/test_flow_graph_whitebox.cpp | 14 +- src/test/test_join_node.cpp | 180 +- src/test/test_malloc_overload.cpp | 9 +- src/test/test_malloc_whitebox.cpp | 2 +- src/test/test_opencl_kernel_32.spir | Bin 0 -> 1440 bytes src/test/test_opencl_kernel_64.spir | Bin 0 -> 1468 bytes src/test/test_opencl_node.cl | 189 ++ src/test/test_opencl_node.cpp | 799 ++++++ .../test_opencl_precompiled_kernel_gpu.clbin | Bin 0 -> 4486 bytes src/test/test_openmp.cpp | 72 +- src/test/test_parallel_sort.cpp | 7 +- src/test/test_partitioner_whitebox.cpp | 91 +- src/test/test_partitioner_whitebox.h | 21 +- src/test/test_task_arena.cpp | 244 +- src/test/test_tbb_header.cpp | 6 + src/test/test_tbb_version.cpp | 8 +- src/test/test_tuple.cpp | 4 + 732 files changed, 35624 insertions(+), 23992 deletions(-) delete mode 100644 doc/html/a00018.png create mode 100644 doc/html/a00023.png delete mode 100644 doc/html/a00024.png create mode 100644 doc/html/a00026.png delete mode 100644 doc/html/a00030.png create mode 100644 doc/html/a00034.png delete mode 100644 doc/html/a00037.png create mode 100644 doc/html/a00038.png create mode 100644 doc/html/a00039.png delete mode 100644 doc/html/a00041.png delete mode 100644 doc/html/a00042.png create mode 100644 doc/html/a00043.png delete mode 100644 doc/html/a00046.png create mode 100644 doc/html/a00047.png delete mode 100644 doc/html/a00053.png create mode 100644 doc/html/a00054.png delete mode 100644 doc/html/a00060.png create mode 100644 doc/html/a00061.png create mode 100644 doc/html/a00068.png create mode 100644 doc/html/a00069.png delete mode 100644 doc/html/a00072.png rename doc/html/{a00067.png => a00073.png} (100%) delete mode 100644 doc/html/a00074.png delete mode 100644 doc/html/a00077.png delete mode 100644 doc/html/a00079.png rename doc/html/{a00081.png => a00087.png} (100%) create mode 100644 doc/html/a00089.png delete mode 100644 doc/html/a00093.png create mode 100644 doc/html/a00096.png create mode 100644 doc/html/a00097.png delete mode 100644 doc/html/a00099.png delete mode 100644 doc/html/a00104.png rename doc/html/{a00100.png => a00109.png} (100%) rename doc/html/{a00101.png => a00110.png} (100%) delete mode 100644 doc/html/a00114.png delete mode 100644 doc/html/a00115.png create mode 100644 doc/html/a00119.png create mode 100644 doc/html/a00124.png create mode 100644 doc/html/a00125.png delete mode 100644 doc/html/a00127.png create mode 100644 doc/html/a00128.png create mode 100644 doc/html/a00129.png create mode 100644 doc/html/a00131.png rename doc/html/{a00106.png => a00132.png} (100%) delete mode 100644 doc/html/a00135.png delete mode 100644 doc/html/a00136.png delete mode 100644 doc/html/a00146.png delete mode 100644 doc/html/a00147.png delete mode 100644 doc/html/a00148.png create mode 100644 doc/html/a00155.png rename doc/html/{a00137.png => a00164.png} (100%) create mode 100644 doc/html/a00165.png create mode 100644 doc/html/a00171.png create mode 100644 doc/html/a00172.png create mode 100644 doc/html/a00173.png rename doc/html/{a00145.png => a00176.png} (100%) create mode 100644 doc/html/a00180.html rename doc/html/{a00149.png => a00180.png} (100%) create mode 100644 doc/html/a00181.html rename doc/html/{a00150.png => a00181.png} (100%) create mode 100644 doc/html/a00182.html create mode 100644 doc/html/a00183.html rename doc/html/{a00152.png => a00183.png} (100%) create mode 100644 doc/html/a00184.html rename doc/html/{a00153.png => a00184.png} (100%) create mode 100644 doc/html/a00185.html rename doc/html/{a00154.png => a00185.png} (100%) rename doc/html/{a00286.html => a00186.html} (72%) create mode 100644 doc/html/a00187.html create mode 100644 doc/html/a00187.png rename doc/html/{a00266.html => a00188.html} (55%) create mode 100644 doc/html/a00188.png create mode 100644 doc/html/a00189.html rename doc/html/{a00158.png => a00189.png} (100%) create mode 100644 doc/html/a00190.html rename doc/html/{a00159.png => a00190.png} (100%) create mode 100644 doc/html/a00191.html create mode 100644 doc/html/a00191.png create mode 100644 doc/html/a00192.html create mode 100644 doc/html/a00193.html create mode 100644 doc/html/a00194.html create mode 100644 doc/html/a00194.png create mode 100644 doc/html/a00195.html create mode 100644 doc/html/a00196.html create mode 100644 doc/html/a00197.png create mode 100644 doc/html/a00198.html create mode 100644 doc/html/a00198.png create mode 100644 doc/html/a00199.png create mode 100644 doc/html/a00200.html create mode 100644 doc/html/a00200.png create mode 100644 doc/html/a00201.html create mode 100644 doc/html/a00201.png create mode 100644 doc/html/a00202.html create mode 100644 doc/html/a00203.html create mode 100644 doc/html/a00204.html create mode 100644 doc/html/a00205.html rename doc/html/{a00281.html => a00206.html} (55%) create mode 100644 doc/html/a00206.png create mode 100644 doc/html/a00207.html create mode 100644 doc/html/a00207.png rename doc/html/{a00263.html => a00208.html} (76%) create mode 100644 doc/html/a00209.html create mode 100644 doc/html/a00209.png create mode 100644 doc/html/a00210.html create mode 100644 doc/html/a00210.png create mode 100644 doc/html/a00211.html create mode 100644 doc/html/a00211.png create mode 100644 doc/html/a00229.html create mode 100644 doc/html/a00232.html delete mode 100644 doc/html/a00238.html delete mode 100644 doc/html/a00241.html rename doc/html/{a00218.html => a00251.html} (90%) delete mode 100644 doc/html/a00256.html delete mode 100644 doc/html/a00257.html delete mode 100644 doc/html/a00258.html delete mode 100644 doc/html/a00259.html delete mode 100644 doc/html/a00260.html delete mode 100644 doc/html/a00261.html delete mode 100644 doc/html/a00264.html delete mode 100644 doc/html/a00268.html delete mode 100644 doc/html/a00269.html delete mode 100644 doc/html/a00270.html delete mode 100644 doc/html/a00275.html delete mode 100644 doc/html/a00276.html delete mode 100644 doc/html/a00277.html delete mode 100644 doc/html/a00278.html delete mode 100644 doc/html/a00279.html delete mode 100644 doc/html/a00280.html delete mode 100644 doc/html/a00283.html delete mode 100644 doc/html/a00284.html delete mode 100644 doc/html/a00295.html create mode 100644 doc/html/a00347.html create mode 100644 doc/html/a00424.html create mode 100644 doc/html/a00425.html create mode 100644 doc/html/a00426.html create mode 100644 doc/html/a00427.html create mode 100644 doc/html/a00428.html create mode 100644 doc/html/a00429.html create mode 100644 doc/html/a00430.html create mode 100644 doc/html/a00431.html create mode 100644 doc/html/a00432.html create mode 100644 doc/html/a00433.html create mode 100644 doc/html/a00434.html create mode 100644 doc/html/a00435.html create mode 100644 doc/html/a00436.html rename doc/html/{a00288.html => a00437.html} (51%) create mode 100644 doc/html/a00438.html create mode 100644 doc/html/a00439.html create mode 100644 doc/html/a00440.html create mode 100644 doc/html/a00441.html create mode 100644 doc/html/a00442.html create mode 100644 doc/html/a00443.html rename doc/html/{a00380.html => a00444.html} (74%) create mode 100644 doc/html/a00445.html create mode 100644 doc/html/a00446.html create mode 100644 doc/html/a00447.html create mode 100644 doc/html/a00448.html create mode 100644 doc/html/a00449.html create mode 100644 doc/html/a00450.html rename doc/html/{a00282.html => a00451.html} (50%) create mode 100644 doc/html/a00452.html rename doc/html/{a00265.html => a00453.html} (71%) create mode 100644 doc/html/a00454.html rename doc/html/{a00273.html => a00455.html} (59%) create mode 100644 doc/html/a00456.html create mode 100644 doc/html/a00457.html create mode 100644 doc/html/a00458.html create mode 100644 doc/html/a00459.html create mode 100644 doc/html/a00460.html rename doc/html/{a00272.html => a00461.html} (73%) create mode 100644 doc/html/a00462.html create mode 100644 doc/html/a00463.html create mode 100644 doc/html/a00464.html create mode 100644 doc/html/a00465.html rename doc/html/{a00285.html => a00466.html} (69%) create mode 100644 doc/html/a00467.html create mode 100644 doc/html/a00468.html create mode 100644 doc/html/a00469.html create mode 100644 doc/html/a00470.html create mode 100644 doc/html/a00471.html create mode 100644 doc/html/a00472.html create mode 100644 doc/html/a00473.html create mode 100644 doc/html/a00474.html create mode 100644 doc/html/a00475.html create mode 100644 doc/html/a00476.html rename doc/html/{a00287.html => a00477.html} (74%) create mode 100644 doc/html/a00478.html create mode 100644 doc/html/a00479.html rename doc/html/{a00267.html => a00480.html} (54%) create mode 100644 doc/html/a00481.html create mode 100644 doc/html/a00482.html create mode 100644 doc/html/a00483.html create mode 100644 doc/html/a00484.html create mode 100644 doc/html/a00485.html create mode 100644 doc/html/a00486.html create mode 100644 doc/html/a00487.html create mode 100644 examples/graph/cholesky/Makefile create mode 100644 examples/graph/cholesky/Makefile.windows create mode 100644 examples/graph/cholesky/cholesky.cpp create mode 100644 examples/graph/cholesky/index.html create mode 100644 examples/graph/cholesky/init.cpp create mode 100644 examples/graph/cholesky/msvs/cholesky.sln create mode 100644 examples/graph/cholesky/msvs/cholesky.vcxproj create mode 100644 examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj create mode 100644 include/tbb/flow_graph_opencl_node.h create mode 100644 src/test/test_opencl_kernel_32.spir create mode 100644 src/test/test_opencl_kernel_64.spir create mode 100644 src/test/test_opencl_node.cl create mode 100644 src/test/test_opencl_node.cpp create mode 100644 src/test/test_opencl_precompiled_kernel_gpu.clbin diff --git a/CHANGES b/CHANGES index 942f7df5e3..1421c43323 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,35 @@ The list of most significant changes made over time in Intel(R) Threading Building Blocks (Intel(R) TBB). +Intel TBB 4.4 Update 2 +TBB_INTERFACE_VERSION == 9002 + +Changes (w.r.t. Intel TBB 4.4 Update 1): + +- Improved interoperability with Intel(R) OpenMP RTL (libiomp) on Linux: + OpenMP affinity settings do not affect the default number of threads + used in the task scheduler. Intel(R) C++ Compiler 16.0 Update 1 + or later is required. +- Added a new flow graph example with different implementations of the + Cholesky Factorization algorithm. + +Preview Features: + +- Added template class opencl_node to the flow graph API. It allows a + flow graph to offload computations to OpenCL* devices. +- Extended join_node to use type-specified message keys. It simplifies + the API of the node by obtaining message keys via functions + associated with the message type (instead of node ports). +- Added static_partitioner that minimizes overhead of parallel_for and + parallel_reduce for well-balanced workloads. +- Improved template class async_node in the flow graph API to support + user settable concurrency limits. + +Bugs fixed: + +- Fixed a possible crash in the GUI layer for library examples on Linux. + +------------------------------------------------------------------------ Intel TBB 4.4 Update 1 TBB_INTERFACE_VERSION == 9001 diff --git a/README.md b/README.md index 19088d19c4..4051868f72 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Intel(R) Threading Building Blocks 4.4 Update 1 +# Intel(R) Threading Building Blocks 4.4 Update 2 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 1 is licensed under [GPLv2] (COPYING) with the runtime exception. +Intel(R) TBB 4.4 Update 2 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/Makefile.test b/build/Makefile.test index 1ecb764a62..13e1ef6c71 100644 --- a/build/Makefile.test +++ b/build/Makefile.test @@ -232,6 +232,15 @@ test_tbb_cilk: @echo "Intel(R) Cilk(TM) Plus is not available" endif +test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB) + +ifeq (windows,$(tbb_os)) +ifneq (gcc,$(compiler)) +test_opencl_node.$(TEST_EXT): override CXXFLAGS += /bigobj +test_join_node.$(TEST_EXT): override CXXFLAGS += /bigobj +endif +endif + $(TEST_TBB_PLAIN.EXE): WARNING_KEY += $(TEST_WARNING_KEY) # Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user) diff --git a/build/SunOS.suncc.inc b/build/SunOS.suncc.inc index 4d8819256a..5a6c6d90a1 100644 --- a/build/SunOS.suncc.inc +++ b/build/SunOS.suncc.inc @@ -33,6 +33,8 @@ tbb_strict=0 CPLUS = CC CONLY = cc + +OPENMP_FLAG = -xopenmp LIB_LINK_FLAGS = -G -R . -M$(tbb_root)/build/suncc.map.pause LINK_FLAGS += -M$(tbb_root)/build/suncc.map.pause LIBS = -lpthread -lrt -R . diff --git a/build/linux.icc.inc b/build/linux.icc.inc index 8a25a73ac8..4d1da053c0 100644 --- a/build/linux.icc.inc +++ b/build/linux.icc.inc @@ -40,7 +40,6 @@ else CPLUS_FLAGS = $(ITT_NOTIFY) -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG endif -OPENMP_FLAG = -openmp LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) LIBS += -lpthread -lrt LINK_FLAGS = -rdynamic @@ -50,6 +49,12 @@ ifneq (,$(shell icc -dumpversion | egrep "^1[1-9]\.")) CPP11_FLAGS = -std=c++0x -D_TBB_CPP0X endif +ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\.")) +OPENMP_FLAG = -qopenmp +else +OPENMP_FLAG = -openmp +endif + # ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus ifneq (,$(shell icc -dumpversion | egrep "^1[2-9]\.")) CILK_AVAILABLE = yes diff --git a/build/linux.inc b/build/linux.inc index 631c52065d..0fae348538 100644 --- a/build/linux.inc +++ b/build/linux.inc @@ -136,3 +136,5 @@ RML.DLL = $(RML_NO_VERSION.DLL).1 RML.LIB = $(RML_NO_VERSION.DLL) TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs) + +OPENCL.LIB = -lOpenCL diff --git a/build/macos.clang.inc b/build/macos.clang.inc index 51173b10ce..b56d86cafa 100644 --- a/build/macos.clang.inc +++ b/build/macos.clang.inc @@ -87,9 +87,21 @@ ifeq (ppc32,$(arch)) endif ifeq (armv7,$(arch)) - CPLUS_FLAGS += -arch armv7 - LINK_FLAGS += -arch armv7 - LIB_LINK_FLAGS += -arch armv7 + 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 endif ifdef SDKROOT diff --git a/build/macos.icc.inc b/build/macos.icc.inc index 3d67c7518c..cadeb1d860 100644 --- a/build/macos.icc.inc +++ b/build/macos.icc.inc @@ -31,7 +31,6 @@ DYLIB_KEY = -dynamiclib EXPORT_KEY = -Wl,-exported_symbols_list, LIBDL = -ldl -OPENMP_FLAG = -openmp LIBS = -lpthread LINK_FLAGS = LIB_LINK_FLAGS = -dynamiclib -static-intel -install_name @rpath/$(BUILDING_LIBRARY) @@ -41,6 +40,12 @@ ifneq (,$(shell icc -dumpversion | egrep "^1[1-9]\.")) CPP11_FLAGS = -std=c++0x -D_TBB_CPP0X endif +ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\.")) +OPENMP_FLAG = -qopenmp +else +OPENMP_FLAG = -openmp +endif + # ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus ifneq (,$(shell icc -dumpversion | egrep "^1[2-9]\.")) CILK_AVAILABLE = yes @@ -63,10 +68,12 @@ ifneq (00,$(lambdas)$(cpp0x)) endif # ICC 14.0 and higher support usage of libc++, clang standard library +# Extending minimal deployment version of official binaries to unsupported 10.8 +# per customer requests. TODO: make a dedicated variable for this ifneq (,$(shell icc -dumpversion | egrep "^1[4-9]\.")) ifneq (,$(stdlib)) - CPLUS_FLAGS += -stdlib=$(stdlib) - LIB_LINK_FLAGS += -stdlib=$(stdlib) + CPLUS_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8 + LIB_LINK_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8 endif endif diff --git a/build/macos.inc b/build/macos.inc index 396413d777..e386826c6c 100644 --- a/build/macos.inc +++ b/build/macos.inc @@ -22,9 +22,10 @@ ifeq (icc,$(compiler)) export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version') ifneq (,$(findstring IA-32, $(COMPILER_VERSION))) export arch:=ia32 - endif - ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) - export arch:=intel64 + else + ifneq (,$(findstring Intel(R) 64, $(COMPILER_VERSION))) + export arch:=intel64 + endif endif ifeq (,$(arch)) $(warning "Unknown Intel compiler") @@ -68,7 +69,7 @@ endif native_compiler := clang export compiler ?= clang -debugger ?= gdb +debugger ?= lldb export stdlib ?= libc++ @@ -113,3 +114,5 @@ MALLOCPROXY.LIB = $(MALLOCPROXY.DLL) LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB) TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs) + +OPENCL.LIB = -framework OpenCL diff --git a/build/mic.icc.inc b/build/mic.icc.inc index 3c8cfcdfa8..448f1a225a 100644 --- a/build/mic.icc.inc +++ b/build/mic.icc.inc @@ -48,7 +48,12 @@ ifneq (,$(codecov)) CPLUS_FLAGS += -prof-genx endif +ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\.")) +OPENMP_FLAG = -qopenmp +else OPENMP_FLAG = -openmp +endif + LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) LIBS += -lpthread -lrt C_FLAGS = $(CPLUS_FLAGS) diff --git a/build/test_launcher.sh b/build/test_launcher.sh index 02f7686194..882e36c94b 100644 --- a/build/test_launcher.sh +++ b/build/test_launcher.sh @@ -71,13 +71,18 @@ stressed() { echo Doing stress testing. Press Ctrl-C to terminate # repeated() { # i=0; while [ "$i" -lt $repeat ]; do i=`expr $i + 1`; echo $i of $repeat:; $*; done # } # +# DYLD_LIBRARY_PATH can be purged on OS X 10.11, set it again +if [ `uname` = 'Darwin' -a -z "$DYLD_LIBRARY_PATH" ] ; then # + DYLD_LIBRARY_PATH=. # + export DYLD_LIBRARY_PATH # +fi # # Run the command line passed via parameters [ $verbose ] && echo Running $run_prefix $* # if [ -n "$LD_PRELOAD" ] ; then # export LD_PRELOAD # elif [ -n "$DYLD_INSERT_LIBRARIES" ] ; then # export DYLD_INSERT_LIBRARIES # -fi +fi # exec 4>&1 # extracting exit code of the first command in pipeline needs duplicated stdout # custom redirection needs eval, otherwise shell cannot parse it err=`eval '( $run_prefix $* || echo \$? >&3; )' ${OUTPUT} 3>&1 >&4` # diff --git a/build/windows.inc b/build/windows.inc index 3f81f1fe17..0ada045e16 100644 --- a/build/windows.inc +++ b/build/windows.inc @@ -107,3 +107,5 @@ MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(subst \,/,$(tbb_root))/build MAKE_TBBVARS = cmd /C "$(subst /,\,$(tbb_root))\build\generate_tbbvars.bat" TEST_LAUNCHER = $(subst /,\,$(tbb_root))\build\test_launcher.bat $(largs) + +OPENCL.LIB = OpenCL.$(LIBEXT) diff --git a/doc/Release_Notes.txt b/doc/Release_Notes.txt index cb795750a3..6a47fa0bc9 100644 --- a/doc/Release_Notes.txt +++ b/doc/Release_Notes.txt @@ -133,8 +133,8 @@ Library Issues OMP_PROC_BIND, as well as programmatically setting thread affinity before Intel TBB task scheduler is initialized. An affinity mask set for a thread that initializes Intel TBB - limits the number of worker threads used by default in the task - scheduler. + may limit the number of worker threads used by default + in the task scheduler. - If an open source version of Intel TBB is installed to a system folder like /usr/lib64 on Linux OS, examples may fail to link diff --git a/doc/html/a00009.html b/doc/html/a00009.html index 649205b99b..19f5f52434 100644 --- a/doc/html/a00009.html +++ b/doc/html/a00009.html @@ -34,7 +34,7 @@
+List of all members
__TBB_malloc_proxy_caller Struct Reference
diff --git a/doc/html/a00010.html b/doc/html/a00010.html index e4a725025c..547432d53d 100644 --- a/doc/html/a00010.html +++ b/doc/html/a00010.html @@ -33,14 +33,14 @@
+List of all members
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
@@ -56,7 +56,7 @@
-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 @@ 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 @@ pointer  - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

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> >>
diff --git a/doc/html/a00011.html b/doc/html/a00011.html index 1249dc58d2..df96603c15 100644 --- a/doc/html/a00011.html +++ b/doc/html/a00011.html @@ -33,13 +33,13 @@

+List of all members
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference
diff --git a/doc/html/a00012.html b/doc/html/a00012.html index 8cded18e90..e3c0ad23f5 100644 --- a/doc/html/a00012.html +++ b/doc/html/a00012.html @@ -33,13 +33,13 @@
+List of all members
tbb::interface6::aggregator Class Reference
@@ -70,7 +70,7 @@ 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...
diff --git a/doc/html/a00013.html b/doc/html/a00013.html index ac018c470c..e039fd3f6d 100644 --- a/doc/html/a00013.html +++ b/doc/html/a00013.html @@ -33,14 +33,14 @@
+List of all members
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
diff --git a/doc/html/a00014.html b/doc/html/a00014.html index 14d769f659..f9b945c914 100644 --- a/doc/html/a00014.html +++ b/doc/html/a00014.html @@ -33,7 +33,7 @@
@@ -41,7 +41,7 @@ Public Types | Public Member Functions | Friends | -List of all members
+List of all members
tbb::interface6::aggregator_operation Class Reference
@@ -52,8 +52,8 @@
-tbb::interface6::internal::basic_operation_base -tbb::interface6::internal::basic_operation< Body > +tbb::interface6::internal::basic_operation_base +tbb::interface6::internal::basic_operation< Body >
diff --git a/doc/html/a00015.html b/doc/html/a00015.html index 753898ee87..6f33cfd437 100644 --- a/doc/html/a00015.html +++ b/doc/html/a00015.html @@ -33,15 +33,15 @@
+List of all members
-
tbb::aligned_space< T, N > Class Template Reference
+
tbb::aligned_space< T, N > Class Template Reference
diff --git a/doc/html/a00016.html b/doc/html/a00016.html index e442ccaae3..258670d2e2 100644 --- a/doc/html/a00016.html +++ b/doc/html/a00016.html @@ -33,13 +33,13 @@
+List of all members
tbb::flow::interface8::allocate_buffer< T > Struct Template Reference
@@ -52,7 +52,7 @@
 

The documentation for this struct was generated from the following file:
diff --git a/doc/html/a00017.html b/doc/html/a00017.html index 198c5d9e7e..a4b763c755 100644 --- a/doc/html/a00017.html +++ b/doc/html/a00017.html @@ -33,13 +33,13 @@
+List of all members
tbb::flow::interface8::allocate_buffer< queueing > Struct Template Reference
@@ -52,7 +52,7 @@  
The documentation for this struct was generated from the following file:
diff --git a/doc/html/a00018.html b/doc/html/a00018.html index 0b75d324e0..0bc4673b6f 100644 --- a/doc/html/a00018.html +++ b/doc/html/a00018.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::async_gateway< Output > Class Template Reference +tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Class Template Reference @@ -33,59 +33,45 @@
+List of all members
-
tbb::flow::interface8::internal::async_gateway< Output > Class Template Referenceabstract
+
tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Class Template Reference
- -

Pure virtual template class that defines interface for async communication. - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::internal::async_gateway< Output >:
-
-
- - -tbb::flow::interface8::async_node< Input, Output, Allocator > - -
- - + +

Public Types

-typedef Output output_type
 
+typedef AsyncGateway async_gateway_type
 
- - - - - - - + + + + + + + + + +

Public Member Functions

-virtual bool async_try_put (const output_type &i)=0
 Submit signal from Async Activity to FG.
 
-virtual void async_reserve ()=0
 
-virtual void async_commit ()=0
 
async_body (const Body &body, async_gateway_type *gateway)
 
async_body (const async_body &other)
 
+void operator() (const Input &v, Ports &)
 
+Body get_body ()
 
+void set_async_gateway (async_gateway_type *gateway)
 
-

Detailed Description

-

template<typename Output>
-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:

diff --git a/doc/html/a00018.png b/doc/html/a00018.png deleted file mode 100644 index 1143e3873df8c703093bcdc6d90a48522ab91c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzE12~w00V8#$xmnTSk((Wyt}KYQu^Wf z*6JEQrc}Z2U++kN?$4UAH}n08|9#Vx&;5+EmpWwp-KP1`Wtj%6pzJKZxX$e5_A`7B z>qnc%tYd3v6|4TyQEj`baNUd4Id}4P*H62)`IRnjak=%kAA5N(h|SFsd;D^HoaAiP zJN*-N#o0?kRo~=T`(2fYJzg=H|IwX-{NT6Uk^37CN0~%Q?|yUH_D=E2eh~+K^F!f< zCywgKpZ%Qbdt=9Z>3d5`rpYsBxLN$3e$o44_PLAGInGPe_kZ{}Gxw0%-iu#%-aCBk z?y?Zstm0S4TXsLF{FS@+hxqq`;Ig*myVsYWPPUtK@2!@hqRooc-(MN1tobCEEihXt ze|@k1wTG|H<>W7Z)n?>5lY6Y?MH0X@Z?^rLrmKAQx-93p zYi;3#mkTDH`fk{|Yhkew@A2$|%AURRRKD~8lNhhs;YiO(7ta<<+H%F5d3#^;J7O$LHNPuUlG)o26M-TeB~|;cM5CyzOqm0=u&}XWdLVe0PHk_9b0k`uwPE4&RgCoX=nOa`c~nU&O!NHLqmXS-F_d&ZigU&TaTUOKwS} z?6#+SPO3Q@rv<;Ze3<#}vsFy&%D+1`rayhul;wLax~k;wHS^CebAs~oORPJK4R3kh zm)mw~%hR%XzgHFK<#O;(vaDHsN7eMcPsF5u(Y?#mJ>vuAvqk@!W_wmS+P8mDSowF> z%d%A}w!zOg^L(1MRb}r2dFLN{8 -tbb::flow::interface8::async_node< Input, Output, Allocator > Class Template Reference +tbb::flow::interface8::internal::async_gateway< Output > Class Template Reference @@ -33,154 +33,61 @@
-
tbb::flow::interface8::async_node< Input, Output, Allocator > Class Template Reference
+
tbb::flow::interface8::internal::async_gateway< Output > Class Template Referenceabstract
-

Implements a async node. +

Pure virtual template class that defines interface for async communication. More...

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::async_node< Input, Output, Allocator >:
+Inheritance diagram for tbb::flow::interface8::internal::async_gateway< Output >:
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::internal::async_gateway< Output > + + +tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >
- - - - - - - - - - - - - - - - - - - +

Public Types

-typedef Input input_type
 
+
typedef Output output_type
 
-typedef async_node< input_type,
-output_type, Allocator > 
my_class
 
-typedef sender< input_type > predecessor_type
 
-typedef receiver< output_type > successor_type
 
-typedef
-internal::async_gateway
-< output_type > 
async_gateway_type
 
-typedef internal::async_input
-< input_type, Allocator,
-async_gateway_type
async_input_type
 
-typedef
-internal::function_output
-< output_type > 
async_output_type
 
- Public Types inherited from tbb::flow::interface8::internal::async_gateway< Output >
-typedef Output output_type
 
 
- - - - - - - - - - - - - - -

Public Member Functions

-template<typename Body >
 async_node (graph &g, Body body)
 Constructor.
 
async_node (const async_node &src)
 Copy constructor.
 
-async_gateway_typeasync_gateway ()
 
-void set_name (const char *name)
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - - - - - - - - -

-Protected Member Functions

-void reset_node (reset_flags f)
 
-void extract ()
 
-internal::broadcast_cache
-< output_type > & 
successors ()
 
-bool async_try_put (const output_type &i)
 Submit signal from Async Activity to FG.
 
-void async_reserve ()
 
-void async_commit ()
 
- - - - - - - - - - -

-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
 
+virtual bool async_try_put (const output_type &i)=0
 Submit signal from an asynchronous activity to FG.
 
+virtual void async_reserve ()=0
 Increment reference count of graph to prevent premature return from wait_for_all.
 
+virtual void async_commit ()=0
 Decrement reference count of graph to allow return from wait_for_all.
 

Detailed Description

-

template<typename Input, typename Output, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::async_node< Input, Output, Allocator >

+

template<typename Output>
+class tbb::flow::interface8::internal::async_gateway< Output >

-

Implements a async node.

+

Pure virtual template class that defines interface for async communication.


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

diff --git a/doc/html/a00019.png b/doc/html/a00019.png index 83dff9a537a1bfc8b1f87d10cc7ca90c6c8b0790..13eb15e11469692294f108fea28cc03632b82145 100644 GIT binary patch literal 1337 zcmbVMe>Bqz6#vfjOD(VW^stgst$G|kqKy`E^v0Sb8^vp)&MHJr&vej`bS!7hM1F)x zZ7UWNYv#wavGb#KQXa*dx9&Cs`+;@)+$s)in$Xl=18{ou8T|B)t+kn2gSS((XIcRMt*OPGm zfq-G?AM0%oas~k7ml%{+Py$HHP+U{lZdyat@@MrA$cJ74V`FbICr*E0W-io2j9^=D z2jhHg?%{klqm0&rgrQzwG4xpW+D>r7)|7HN*80x z+&zbIu5F&~m1q)EH1+C0BsnFtknMz2yH1c$1U@%IcuT6uNcejBooz8;XkRp86^nfC zQf0L$s=81dq34EYNMjP_%kDU>ds-?ha#`2-r=rnwTBoKc5$)+eyVXwGL*_=c1LH)uG<$NMIblItUNV;NBl4*e;z1&8#lXwPl2fZBt8vMJ zLQQLIasG?4`DYYeY-`QXE;+AT!#>Obf^{A6ETcRs(ZO`N4N1HBB_+FPdf~^nusEOH zbjPO!tUsk$M&-nH*Cuj$}z0)B9BS%Y7dZ0QW5zj~vD z?oDqFeL;5*iNh1G1tH5biA-aydb*IMV#9&KK6@yTdQ8)DX5&guZ(QvcC48@9>3lyp z#AA!4xI$SZjf$+h0@@VsBf&fNV48cLqjMah-DM;!Mx9t6 z;7UsOdxCJlb3F7XT)Iz{Px#+v*P(CNxxExmL7)D=a( zlGZkyUsY?>$Eb06Z{1rGEg!h6SDda(od0X-LX?Wz6KAK4kzM4B<*;V&%`Ebl2LfZmUG_|8a#CJda@g+w9FAQ&^Fe=}8L=*jf zU-EH!?#5?dZAp4RS($aGvT?qB${B;N7&z&Z+sjBlIbcv_L_p?sP1F7evO<63A!vd5EH8?*!vabx-UD8VL9U*= ztB}+mBPc`F>TG!{{Q7bwj*(yR zkg`(#0mK;IrqvN1)tJvsJQn&g6Ub>&_=&megdyGXE~eX)tRon;3>%WGYr4b@Zxc%% z9h09^ZWj=;lq`i6zoK&{>;&gkLwsJXl$fjELh~9?96DJFyT4DK&Fa6TDupGZS3)Cr z!@M0OYcWX~Ute1o^TVh^8?sr|Z)iw{s#GURAEihSq&K=L7Wz`SZA#lb*h<&df62fE mnxiskxTDtY;f3Gw`=>lL2rRwu4Pb8ga{$KMAH_X#_U7NiNsaCR literal 3785 zcmc&%dsLFy7Pn~{t(%(Iq$x(J)ikB{n93JYsYy9XX86EY=9HNaQt^c%IW;0Jl_4v8 zC`{v33nMZ`Qd7E#k2D`eiZ6ViDQ1e#5Cyp(qBHld+kbP{y}z~2$KmX~_C9By{eAnl ziKm<$)Ys{)Q&CY-KLNKpt)ij|0_G`dtAXcCn{O5HqkHPdGxl=19GD6}%|?-4{R+&M z#>O^zO!t(zTcXp z#0MUwTfSPlwOmy+UP^0&b6ZB3pBp5Apfy*Qb!PtDB1kRu)3Y=3qRH=9bWnFg|t! zfVGdY8xq%#MFIYIEc>tU0M?*sUy6hyAer5@thXIhK%2k0d`=J%iNu{;GWznuzg>XZ zkG^O{v^Q*+uvEr{01=!^E{7;O_rK-`a|!iqo&)r8f4e;x_-l&Y5qNo|m5p;eTlZ zd*jBU%Y8lpgJ60doa~?CubZrqn+gPs@94@0WaAyoHdJvNDy9ZV$8V8H{$>XtVb36= z0>MN&a}%A}mTh+~m_GZxB3mmI$t(r|f;M3KS66FOIQ#1Qm z%yt#gY4b*S5E0MShI|Lo%yDq_H3AX*V|&{d7$liNPZNuD&`Q3~GO3DQr8?|aYgHR% z!>C1bry!Nndk3Z@0xeVb;ajGN_o!fb+kTMdt^)~D8@c6zHa@IIS#~lBI z*W6UJG;&KcYyJJ>0*RI>dOF|l30@?_bz8yS2zeJfW7BTsC2W!Hn`p45(O!@G8%`4P zt!y5=P8nG1o!qQ}#qRHw;ph1sZb%uq{J4NEB=Yi_@AW+=Q0@uhay{8u2fIcD13|kD zu;AF?w;7QZd?4oKaVcUj9TWP-ud>3iQ&5lP3%;(g}7m6GIhkr`?`fskn~$R z^RpSzcfmjSJjGuf~ETtwN{ zy&=sRB{-aTfS$UT_z>QGxvW6nH%nYR=LcyuYc8RE6!8y&{&IypZRbf^&$Nw;B z&SNN<1+(z1ghWT<#6+K9y3DcHUQpZoqR=2LZJ{o_?lDfb6|^&3SOR}x&5PhjR-sck z3*%@@dF15VqEtp;d}V1UBUy0uxImo0z_t@)Hvxe_Ls7ns5 z+ZsDtzBM7oE><$(-k3^;;bi54mya}{-oNwwP=Ce<1s&G4J8AAIId);B=O9QFv2=ba zu#tE{CU=-G+Ao>o#gLzSNTqX`cd7jqyFenX6w*c_wcN*IDh}%d`#Zxn%w=Q9<1Tz@4cr% z#nicUS&t9Z7p3WmE{+GuxS6;ubsvrg)A@}7iqENRbx~15%1z)ybl=3NkoHk0%=1GH z8l|z&Xw>sagwu9HB74h%-jgU|e}G7QY?j3~kg&(aX`D9HXai3+T{4d4K9sXu*dfM= z;8Ax)?L`HTh4ZaI?wcgm1S>m1zz#tW9s=R-`vla_gK;KuqwOHC;IW{`Gxe_8K0zgP zW(lUYJA}@3@;wBC)wiPb*;}mTsNm3{CUPtY~G!6!evyrHG&rdCGTPkj9VQ+mrs?hSSS5s)YimDwYzoC`73YCI0nk$9? z71_zL-U18L&_9pO)Eu(y3H-;q%d^_gJLV1D*&8!?3r4BvJv$o1z-DH(tF>dC3YSS| zbTeG~{JDQct8UU={miRoGDDE2PL5Tto!~O%S0&@DEy<;8R5^(7@+h^W>2(km$s&3& zU}g=$i=f%WPLD|+P4Ff4<^i8r;neGq1{ln;_8sO?gHiuf*&7%eXVWaW+*E!yBw-(R z3vqY+y)lEtZOgni^ilz#(k4#-L(MJ|)6($81e+;Lpk?ID$cLIi2Dchh=!$8oMI>h( z2np59X9bhzW`!NjZsH%h7G}tOJC|FFjv;tf9?u-KX@q%WH&EJ^1uJ5iU|Fj$H=ra;gpAf3OZ=7+80 zDB~)9H3XM_5)F9VsU9pAF+S9zj1%=)1!Qvxr6a~EIg1mQ)|$iF~}@<4`GiX z)*7RS5luI_V5JlDLQmr-Aw%Xd#WC%s%Q24XbQ4M18<>?SSzt~-K4ZCym=7t~jevsj zeS}SsmEME@Dk=*p5aWbY`sX96E4|e_w+Dzv28u2q -tbb::atomic< T > Struct Template Reference +tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,51 +33,274 @@
-
tbb::atomic< T > Struct Template Reference
+
tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > Class Template Reference
-

Primary template for atomic. +

Implements async node. More...

-

#include <atomic.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::atomic< T >:
+Inheritance diagram for tbb::flow::interface8::async_node< Input, 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
+ + + +

+Classes

struct  try_put_functor
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef Input input_type
 
+typedef Output output_type
 
+typedef sender< input_type > predecessor_type
 
+typedef receiver< output_type > successor_type
 
+typedef
+internal::async_gateway
+< output_type > 
async_gateway_type
 
+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 Types inherited from tbb::flow::interface8::multifunction_node< Input, tuple< Output >, Policy, Allocator >
+typedef Input input_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.
 
+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

-constexpr atomic (T arg)
 
-T operator= (T rhs)
 
-atomic< T > & operator= (const atomic< T > &rhs)
 
+template<typename Body >
 async_node (graph &g, size_t concurrency, Body body)
 
async_node (const async_node &other)
 
+async_gateway_typeasync_gateway ()
 
+bool async_try_put (const output_type &i)
 Implements async_gateway::async_try_put for an external activity to submit a message to FG.
 
+void async_reserve ()
 Increment reference count of graph to prevent premature return from wait_for_all.
 
+void async_commit ()
 Decrement reference count of graph to allow return from wait_for_all.
 
+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.
 
+template<typename Body >
Body copy_function_object ()
 
+built_successors_typebuilt_successors ()
 
+void internal_add_built_successor (successor_type &r)
 
+void internal_delete_built_successor (successor_type &r)
 
+void copy_successors (successor_list_type &l)
 
+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)
 
+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
 
+ + + + + +

+Protected Types

+typedef multifunction_node
+< Input, tuple< Output >
+, Policy, Allocator > 
base_type
 
+typedef
+internal::multifunction_input
+< Input, typename
+base_type::output_ports_type,
+Allocator > 
mfn_input_type
 
+ + + + + + +

+Protected Member Functions

+void reset_node (reset_flags f)
 
- 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 >
+static const int N
 

Detailed Description

-

template<typename T>
-struct tbb::atomic< T >

+

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

-

Primary template for atomic.

-

See the Reference for details.

-

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

    Implements async node.

    +

The documentation for this class was generated from the following file:
diff --git a/doc/html/a00020.png b/doc/html/a00020.png index 257e92316a0f929b71f361a432c540790e3aa7f3..b3f21e1d0a898727b5e325d75d4cadc3cfd68284 100644 GIT binary patch literal 7848 zcmdT}4O~)by0;J4t#-IhB!IlU3Q=c7*mWd_D~f4u}aZ)Nn>1L~dq`yzK)tyW+- zs-D47f4B^cY@fS#?>e9Fg8+a2`t&DZ2b_S5K=V*a9q9WfAsRHt}KX16nN2jxkL1y6%^boC@2I^{FoAl#E0jD zUrMhhJU!eR%@)c+hd-LCD{y0dfk)K#H;|3NUdD#>=0s=2z^U8Fu{xK1g zeby0eKckgTU$yQPQ&-Ku{i-{!xL?xGoqg5+SHN%<+=Dp+_-FL&mc|7Se==&qO#Yv6 zxqn5B1XqEJlN_-tGtcwx&jpBDS?HN(JBVE5@8W+_J>soBo;PiWls7|jvZY^_EeGZH zR55Wk1g{5=Rz(GU>0z)c02vRI0j<3Z^a{2IZ?YZwG`{EEpA^d`OGWS}wxf!mTEECv zr)(8W%Cna>Jtma4mqzK-ahQ#0A)RqXb%@HzoUIG+osRRn79diwfHG zlZ9eY;I#1sKid+*D=2V*ANf*1Ftv#iO-W=*8Xvy3{TS0av5#N;l`R&{F}c@hgUUM% z=rT;yJ&AL0y0-K|&K64yAvk^L%{Wg04&@yip5+=={{b&l*g7$ZeP1LJ*PhTtxKf2y zSzuyfT6Wesa_?C4@{v3q+?+LGteLm2HZ;Q(U&BT$$`otK97>MVnLVU8;|L&P2oe*QX>pF4&i>tQF9ox!SHKCE5G zB-Vek5m*UJD2Q{WsX?6|jkFe9`FU6NDldf9P|FmT!jR?en^6zgg&yIkIlrR%y4eJS zVn9Dtkc{x7s@4RqlV|oz=zKTX^-ioySxRa^;2S3rePyO9d91$b62qAU(T{v}`ume^ zO#>>jfNFRvi_I|?Am;ND6IpUrTWAyD5C@^mnKEHjILdVwfnsdD-t8Wqz`L{+TeHPh z0V*jev`E@KBcHD6PB1ja;mghra9#4K93_STJq~p)8pkg)wOlJp>(&j57?tIo)Z=lsoey8|Yfs(sa}Ww2xf;tr8N)&N)z9FGR$) z^K@;!zS!5Jfg!J(o$DIwZ)_u0qo+cKw9}**6X&t{o$+!oCIks!3Sf%qaus(Vt)L)= z?$6M2D_F8LJU0%L#V;pTn__EnaQOvwGaZ5LyNcc9aTm4h`?zxu(KC)Xdbr9gx*TR@ zAL_?;*0b~-^@=UlQYm^hqIQ`@uQ8lAnmcB)GKx|1Au5lO5rwFK@KTbt3QlCoe0kW( znVX$WB*xGT_QWag_oLuUQkMa(ktG|B^&)-1_}Jx$52V1IfI&Q+9DQ0b8c9r)rdEr( zIe#K5(VNjJLAA5p1mSc<-rzWFmbErr7xLbaN-N;vq@E6=vg_4CVH= z{~{W==<0ygD5k$9D0vDwr^xQqJ$iDr5tE`^`DC(AI0n=xqu~}%frd3xRYWtskNH3m z!U|7QDLM7)l-#-s@|dbIn`eU;zMVRtyt-Fer`FS8TN`4SDl#RooVNkPGaMzS?|}ss zMLo3vd@>FK0z6}2+~Zs2&mpdx@$cakw3^NO_%~R`tNG;^c9pFO+Dn-Za|FqW8UX^K zLam!gPs2Xlk*CUsnNy*e2Tk?t-N$;rnfPQqi1U`0aTbdDdey!&;j;It<-Q37Gm;*M z!*_NYli5mmghtRd@E#3)UFN1u;C9xI4>ZLhj+|jc2YoAS+ZlAE67rj|XUQYEuySJr zWF$H20ygL&;}599Sc*V1ptsDfP7^R#9&K82h2-|6%(@$)8HSnrHxMf?aigMbt_hQ=5sJ@xIUWMwks?MsJj8k$-@Jj$)TMxB;4K9LTkfgzXiGmstfEIiNnQ{tsQ+)rt6)vH>xQq6=dmUay=E*u+rLBW$D+?y{nq( z87_SSjlJ=5Q}QR}=Q92#Y?{mkXA;|Ig8IpWWwe3<2(Mh9a{QE9({h!^{`1zU-R7_V zV4hw|Zb=r4=8r;H-L7eD#BF3*%*jL_8T-|Vv#j1i+GjkuhZlgb#NJ4Z$FtM72{Io- za8^u3H+1czaKof4t63z1PMtNHznJl_nI)~@zZ8gISN+AFx)-RO{21u6N|5LRv>IT$ zikC}pBv6Lca+_DSmJV(K((DA-*8i^2uF*cz_Jl0{=~m~TpcS~dlsHLEk4@pMKFcb- zg`Wtkyld>rM5b0FA(A5ol6hDV8$fh{S&tq2yUnjwg`x6fZ6?N z+w*}m^>w*kt1k>=g~C5vdf-=4%D8%QW;)#saEZPE>~ks*$Yw>XxGv`0NY0G z`NlJI&}8gz@egji;jm4b2JzIYn!J8cmp&j=&k?<-BkHbeHQrpI~nJA>1&vl*VoFKyTk!sg1)>*Sl~1yrH9#wz|3NZbYc0S7IilLo$U`O@o zjXk<)N(_F@kFv246#bMUGFy&LR`8E7sqbUm z`x@YvuGX<|HN0pGuxNGFwxyYeQ@kQPV1nQr)o$~*Z&Tkqe&E#BQK2BT+SNm0eRn+= zBCC@Zd$uCRFrN2AeXb0|%Vx)MeIQuhFMx&V$gGhq?IYfbTRfg^;S3X7al$rfNK;C3 zBOz~nl&nsTe}{3lQxftuDyr}Fw1*BNnj&%IF35z4@n@y_-AqN}$}mh`OJ{wSA6jvU znk>)5d@PCDPm7h=!h?KO@RyAcU&^|7mFM$REffCX95oW&r_l#+d zfO1v;MHtP!*VAcLAbkUcrolsKBR6>Mb*kJbFIMWNzM1MEQ;DIaiA20!-ss_C4*eW) zWhC@dO616?C`iQ*ab*(d8M;AiTDvjCN0#`UTU&s;~(2wciv{t&#qzHAKh?-{eB%Ek!O2VSi{j>Kxko2=tcwreFODONk*A zCdr)Jn2c~6P1qOp+xdtetvA{SSa7pjE%~>piha@PQkL@2$X6rh_*!GbEiRPbm`xk( zu_dQ&t-0nSV~LT0b{!cQz@|e2C9dj&CSkXdfu>SIUkmcis}$TYiJPef0U|8`q;DMz zvIOl@sNRMJ*GlEvD3?{RHg=XV{)+1}Ov~wmTHZm#_fxgy;eubWP>W$HINs;3&)|p4 zc`MTnU4s^R)^Y5C^f6^i1U!vwI*fFK2;``ttEc@?=56yKLhe?9=RzC_#-N_}T`--p z_Bj9>_yRV>H!2R$&{L`n7umT}5l-;E3hDuK)s|MgY~`T-J?dQ6{>kqj_1+KI|fXr36=~Q^^|_G5ZKV*8681%r*nK$I5imWev@%G z8+&j_lX0Ly4wx2zobM77vyhEQ7R8%)I^Fzst=lMPShE%Yx+075SW6egKHHHm_^bO0 zF{zJ`g`F%ncc))rSDFQWK;f3Uv+L~1So0EwNfvSkwkMU?5SUCYHiQ=S1*OSu2W45v zzBUwLNkBH*P&Dpn2s;c2`Cmj&yhY^8rtG6vS6W=9?R%q4%oE13K!j^VI}47kY|ZY?QDzKGnjMc4A9vD+G0PSIpa=TX89Nau(mvqwFNTl+)W*w3jugr zD9GFF=jF@w6?Nc@wz+<3#-J44hdY|8LEdRU15~nTyYah{eksV`?B|k_cyZx8;E>IU zUv#B<18APjuwOLqR_i}!UckDQIsU)!VLs>2fP!lOUlBUs-SdBoQ8umS{QTy^*_jA# z-J29Mw}Ak%iyYh$$7|<$KYadjw`m-F6H!SZslR*9nd1rIyUku6T<;*&l>y*;IdvR_ z=wQ9QOy}j~$HK?Vd~McS^r3+S{*~Ga-J|8>TOdVWgcJK(b5`F=Ag=j=)6eSYZdE;? z?>a+l$yMI$4p>FL?X$^2rq%6>oe`P@O_-2S^EKP0_;3$n6NEGS8DS!hYMQ+r^`Vi4*sQ(%Ry#A3@AsbVBj1{ArzZ;de2Ybb1 z89W(Bai#uBreJog%Y;j-um8<5y5^CkA>iW3xQCy3IQc0x1?9tu`-V|><$j&UM7F?G zOP#HB*1NCUnIA=$oA6TR%1cU*Ncdy2K+eCyUlmItB5KFg+c>eAWCF){9>*ZIOkJM&@gW zl&Vcd_%h9Cg*rV0Ynf4p=5Yr?C-DZw1poe!gjc5+BFI-ht?0((8L~zc+=I%Gxdme; zXJt4!*3|bbt&d(U!NG*-u*m_OFBlh8mgmb@qaL#7XU0u)NG&4D#5tt(pS>`*#IfT9 zvuk1|aCS0(zy)ltTD%ThgGrt#JuA2=SlDj^X@F{Hn>Az>*NWFD&=ansu8W@U>%lPj u-%8?y==>x32{-LZiU5`*V}o@`+udKi<-SY48TeV*DR@`dN35OkXZ`~>VTJGj delta 549 zcmZ2sdznSCGr-TCmrII^fq{Y7)59eQNY4S{01jp#dE4jBhKY(+^^A`^T^vIy7~jqf zocv0G$IU*(S2NP#rE~;(Z(Efg^W{h+F>bKJOzkBC5f9L%BP~o|?^Ao-ogIRgroW=cz@c5ooGJscKwh1(r%glP^0p_hDDQfK5dCPv-9`N zJu`~;MI|$~wY)#SE~@>YywdcQVV=Jj{NH}_+j&#|zfsX7lTBOZsLWmVL`Bp2q-Ril z+v+(pZ!Ti^qbS}G8X5VnDDp;L>dw`-ca?dc4&BQ1M8mRyN0oiT!Y2$yQ)C?4CNZA~ zC}NQG;!|)w$(Vv9`NzK~Ep2rZ;~Gz>c>0rd#@jqM@0`5v<)msxra4b^ix`aO*)9<- z`ul%b?dP&$=6B22UzM(|7JsnL{KQt>-`jq_6+3$)>)pcDk$z9k$-WmpF13xv+41we z(hVGMg{#(|`1Gh$D<&E%p4WPY8i1jamrr>mdKI;Vst03_lC9smFU diff --git a/doc/html/a00021.html b/doc/html/a00021.html index 88d4fe610a..7c70d4ae0d 100644 --- a/doc/html/a00021.html +++ b/doc/html/a00021.html @@ -4,7 +4,7 @@ -tbb::atomic< void * > Struct Template Reference +tbb::atomic< T > Struct Template Reference @@ -33,48 +33,49 @@
-
tbb::atomic< void * > Struct Template Reference
+
tbb::atomic< T > Struct Template Reference
-

Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->. +

Primary template for atomic. More...

#include <atomic.h>

-Inheritance diagram for tbb::atomic< void * >:
+Inheritance diagram for tbb::atomic< T >:
- - + +
- - - - - - + + + + + +

Public Member Functions

-constexpr atomic (void *arg)
 
-void * operator= (void *rhs)
 
-atomic< void * > & operator= (const atomic< void * > &rhs)
 
+constexpr atomic (T arg)
 
+T operator= (T rhs)
 
+atomic< T > & operator= (const atomic< T > &rhs)
 

Detailed Description

-

template<>
-struct tbb::atomic< void * >

+

template<typename T>
+struct tbb::atomic< T >

-

Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->.

+

Primary template for atomic.

+

See the Reference for details.


The documentation for this struct was generated from the following file:
  • atomic.h
diff --git a/doc/html/a00021.png b/doc/html/a00021.png index c5aaf08d4cf2f1620041e8af25c242a2ccda892d..257e92316a0f929b71f361a432c540790e3aa7f3 100644 GIT binary patch delta 549 zcmdnMdYMJBGr-TCmrII^fq{Y7)59eQNY4S{01jp#dE4jBhKY(+^^A`^T^vIy7~jqf zocv0G$IU*(S2NP#rE~;(Z(Efg^W{h+F>bKJOzkBC5f9L%BP~o|?^Ao-ogIRgroW=cz@c5ooGJscKwh1(r%glP^0p_hDDQfK5dCPv-9`N zJu`~;MI|$~wY)#SE~@>YywdcQVV=Jj{NH}_+j&#|zfsX7lTBOZsLWmVL`Bp2q-Ril z+v+(pZ!Ti^qbS}G8X5VnDDp;L>dw`-ca?dc4&BQ1M8mRyN0oiT!Y2$yQ)C?4CNZA~ zC}NQG;!|)w$(Vv9`NzK~Ep2rZ;~Gz>c>0rd#@jqM@0`5v<)msxra4b^ix`aO*)9<- z`ul%b?dP&$=6B22UzM(|7JsnL{KQt>-`jq_6+3$)>)pcDk$z9k$-WmpF13xv+41we z(hVGMg{#(|`1Gh$D<&E%p4WPY8i1jamrr>mdKI;Vst0KOXp?f?J) delta 643 zcmcc2vVm2xGr-TCmrII^fq{Y7)59eQNbdyV01jp#S!AK2GEvd0p2^azr{QrM^b%?^k($+xZ%QN2;Ex5F0&asF%L*v;(K9kgzoKe-BZZv&KjM?W} z#{YUxZ&-4?%bVLNS+dVi>dBwrV$Z7MGZV9WbpKBh`Cz%9-R9iwOxZ6v`r^|&oIe=- zmHH&}etDcV|K*%Xzc*aFmE2bU=;EHUax8yhXC5ld&0 zVaDfkcQzhBlG1lgq&Q`g{Wfo%Ckq|oqklIYd)B{yaqViJc-{Fkeiub?KbpEzrQF7S z-?_>a`wJ|WyyUjrpYTub`6Qj9n>N>WuD`eM+6ca*D1-t7rD{vll4FnP^ldAaLpR)Y7po%@~HS@y7>uRN=G z>#?fW8auylx%ThN>C|eo=Vvqb=G=GA(dFjeJ}b_E|8UInyi02(7d&>_$}<0gXlhMm zW%tCN-B$LG|8@TS#P#pGjntO(y+-VJKHmGw{5f)8)PXw}CFhv`Pdn#4cfQH{Py4nU zE3Lcwd&$qj{K&K0`f_&{+-iQl-dpmmF2nQ{+wD=jW^+#^Elv0n`{~(P- -tbb::bad_last_alloc Class Reference +tbb::atomic< void * > Struct Template Reference @@ -33,41 +33,50 @@
-
tbb::bad_last_alloc Class Reference
+
tbb::atomic< void * > Struct Template Reference
-

Exception for concurrent containers. +

Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->. More...

-

#include <tbb_exception.h>

+

#include <atomic.h>

-Inheritance diagram for tbb::bad_last_alloc:
+Inheritance diagram for tbb::atomic< void * >:
- - + +
- - + + + + + +

Public Member Functions

-const char * what () const throw ()
 
+constexpr atomic (void *arg)
 
+void * operator= (void *rhs)
 
+atomic< void * > & operator= (const atomic< void * > &rhs)
 

Detailed Description

-

Exception for concurrent containers.

-

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

    template<>
    +struct tbb::atomic< void * >

    + +

    Specialization for atomic<void*>, for sake of not allowing arithmetic or operator->.

    +

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

    diff --git a/doc/html/a00022.png b/doc/html/a00022.png index 6cb758af9ddd44d28dd181d94f81aba158247ead..c5aaf08d4cf2f1620041e8af25c242a2ccda892d 100644 GIT binary patch delta 643 zcmaFGyn$7*Gr-TCmrII^fq{Y7)59eQNbdyV01jp#S!AK2GEvd0p2^azr{QrM^b%?^k($+xZ%QN2;Ex5F0&asF%L*v;(K9kgzoKe-BZZv&KjM?W} z#{YUxZ&-4?%bVLNS+dVi>dBwrV$Z7MGZV9WbpKBh`Cz%9-R9iwOxZ6v`r^|&oIe=- zmHH&}etDcV|K*%Xzc*aFmE2bU=;EHUax8yhXC5ld&0 zVaDfkcQzhBlG1lgq&Q`g{Wfo%Ckq|oqklIYd)B{yaqViJc-{Fkeiub?KbpEzrQF7S z-?_>a`wJ|WyyUjrpYTub`6Qj9n>N>WuD`eM+6ca*D1-t7rD{vll4FnP^ldAaLpR)Y7po%@~HS@y7>uRN=G z>#?fW8auylx%ThN>C|eo=Vvqb=G=GA(dFjeJ}b_E|8UInyi02(7d&>_$}<0gXlhMm zW%tCN-B$LG|8@TS#P#pGjntO(y+-VJKHmGw{5f)8)PXw}CFhv`Pdn#4cfQH{Py4nU zE3Lcwd&$qj{K&K0`f_&{+-iQl-dpmmF2nQ{+wD=jW^+#^Elv0n`{~(P-+h*(ZnYHC0-KA~&G;RueQDP>7s<*bZ#=WyO{E$=gAm~sS_q*rfSUpe;HH2AxGA6jZVD)X zn*s`OATzVs!T{zfpa5>V7P>U$t@Z=WQ!Kr26I*fu)pIE{9iHXqVX70Sf6m?iXgX-I z=hrpe3SDEeznN(Y%1zg)4DCef@On74xiq8YZM|J+>)LEgyObm7&Ytc;AD7nvn(TRB zn!EMS(2=V(ytTZCdzy#rx~F~h=6{sZOUP~Y=Am@en;b8z7hsmoK=Vftpw+$yC{KK4 m0NfN%05{zaznR%w{Q%515=E_E9 -tbb::interface6::internal::basic_handler Class Reference +tbb::bad_last_alloc Class Reference @@ -33,26 +33,41 @@
-
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

diff --git a/doc/html/a00023.png b/doc/html/a00023.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb758af9ddd44d28dd181d94f81aba158247ead GIT binary patch literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^B|sd&!3-q-S1vRKQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;`x%6qO{EwA*f{#Y0i!%{LFJWUgb<^340?_u|^#jXG`jd;df){MHfS7oL^n zU}U#2`^ZC%zJ;2po^emt^prj?xRK0v-&BQyieqQeYUXV>TDVP)#3@$&N+N`7hG_4AG?NsO)A43kpKqsyZrlS-i-On ZaK_AaZJgZ3P+-I`c)I$ztaD0e0stVj;yM5T literal 0 HcmV?d00001 diff --git a/doc/html/a00024.html b/doc/html/a00024.html index f4152343a2..1beaae1a92 100644 --- a/doc/html/a00024.html +++ b/doc/html/a00024.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
  • diff --git a/doc/html/a00024.png b/doc/html/a00024.png deleted file mode 100644 index cadf33aedd5b7cd17f7b012f1bad70f6bc772756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2213 zcmb`JdstH07Qnrh(^zUl_A(tGXf%w8NtTV7k1Je7iHe7>6vl$g%zRfM#Z{+dYDxvv z@Li*rsNtB^Mbl`=F=Pyrq%sxF5Fde*G18bg$6Mcb?;rg+=ljk%>#V)@TIZ~_etVxE z_hW)AS8iHqVq#*63PxZ}Oia;$%=~g0a0N#rXuxgbel#ArxVQ+26R-6ddB5fZ(tl5p zNM!copabyuWjYpvGXad2j{a^u98h_p5CQnp|IiFgvr6x-@qdhDHxDmf%1hd~oLP|j z%2rnQs3|9-xJIMB_gjh`JH@W+i+s`3pFkiK;sFe5oz8+I5iKZg6`KPEU)$Tgyu2C> z0wrQ06E2hs%%g00z?LDn<(&F`9eASW8|HJbjP;NE4SE4M8?>>Rc z3!<`OVFVk#6K-gp@MjdS6T**$T7L*N(#TPR+Eo8_-}6UT6vPVx!^u&JU`jSab`ZYz zO|4gthToST@9};hhsZ4{4d#w0bfp~M=Fq>*A`osN?iFnW6(A6=n>lqHEDIa*d^3=) zU0}+$H5?e0$7DKVdDxIi@aL3=T;<7(ic0=ePi-7E#>4BiuxuF|+( zVZTqSuT=WfyGdikaBJR#3*R?i_w$g?b!{f;c+?Sl{F(A0v#^_t^XNbu?KE-jc0>8M zq(!ChWJM4M+s)`cOQs=eC-tKorMLXr3 zbRPOn`H8+k_rmxy&ZQ4qjOC0SbT{ddRr-fvdmMQ9~dzSe(O zf-5~ZEn{WE8~0of(yHW6;4nK$%RP}hDlJX5KSWQzf)?xjE8ia~h$)(URq+*nB+b>G zUo5yhDqEX&Fj?y(dt>)*>h|FDp-O3F?W8tGeF+afu_2NJtinh$A42Qom}sSnMb;UQ2zBtS+Aq8lFqjagdOf~wIqoW9R0I|)2sX(Zcq zrBt3ni?>-wwpoaMbqAsyvjm1^=AOaas*418DUMTRjGZDSZzJk`}P|pLn?E4*Es%IA4%*` zWF?+5Boy>tX{8P9`&u&|kfEGEB!|ydO-(nDONyz+qTz*g{>`>r`z_w>L|L=$Zce9K zlYkvbK25kKe_llkvq_Vm64udJ;lH0j?U1xgbVQN8aDk?Kr#$a;2=$hP^ke1b$Ga-uH%QGP9Jgfl&ul%nF(+2JDQ8W7^$9A zkZLjPHqz<#M`^*pW_Z_z%Xd{Gcm$3i)eu$Gv;HJZ=yAJ3zYDHmjMk^x76R+?5vPxc zWculhqqbay{S)W8x0C-~*9LD~h%oDk;@zU=i#!A_J2vM$O~`=eaj<5U2dM|z=@}M` z@ta+nF*2VndY7O;P){7c(b*tRU+ot5op95=fj3h3>q|QXDKmn>7=v1ujn3IA_Ei1u zG$lx)Gkyhj0LjC29}@7IpD&|CoV}Ck+l#Va-y)gK!T=q>irskr3mx^tYF)*aV9C2b SK)^qR2?~ip-1z7B*?$3cL@}8F diff --git a/doc/html/a00025.html b/doc/html/a00025.html index 07017f9e68..cca6e96805 100644 --- a/doc/html/a00025.html +++ b/doc/html/a00025.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 @@ agg_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:
  • aggregator.h
  • diff --git a/doc/html/a00025.png b/doc/html/a00025.png index 0f94299e82ac6d9c147a19a509648b78560c3d88..cadf33aedd5b7cd17f7b012f1bad70f6bc772756 100644 GIT binary patch literal 2213 zcmb`JdstH07Qnrh(^zUl_A(tGXf%w8NtTV7k1Je7iHe7>6vl$g%zRfM#Z{+dYDxvv z@Li*rsNtB^Mbl`=F=Pyrq%sxF5Fde*G18bg$6Mcb?;rg+=ljk%>#V)@TIZ~_etVxE z_hW)AS8iHqVq#*63PxZ}Oia;$%=~g0a0N#rXuxgbel#ArxVQ+26R-6ddB5fZ(tl5p zNM!copabyuWjYpvGXad2j{a^u98h_p5CQnp|IiFgvr6x-@qdhDHxDmf%1hd~oLP|j z%2rnQs3|9-xJIMB_gjh`JH@W+i+s`3pFkiK;sFe5oz8+I5iKZg6`KPEU)$Tgyu2C> z0wrQ06E2hs%%g00z?LDn<(&F`9eASW8|HJbjP;NE4SE4M8?>>Rc z3!<`OVFVk#6K-gp@MjdS6T**$T7L*N(#TPR+Eo8_-}6UT6vPVx!^u&JU`jSab`ZYz zO|4gthToST@9};hhsZ4{4d#w0bfp~M=Fq>*A`osN?iFnW6(A6=n>lqHEDIa*d^3=) zU0}+$H5?e0$7DKVdDxIi@aL3=T;<7(ic0=ePi-7E#>4BiuxuF|+( zVZTqSuT=WfyGdikaBJR#3*R?i_w$g?b!{f;c+?Sl{F(A0v#^_t^XNbu?KE-jc0>8M zq(!ChWJM4M+s)`cOQs=eC-tKorMLXr3 zbRPOn`H8+k_rmxy&ZQ4qjOC0SbT{ddRr-fvdmMQ9~dzSe(O zf-5~ZEn{WE8~0of(yHW6;4nK$%RP}hDlJX5KSWQzf)?xjE8ia~h$)(URq+*nB+b>G zUo5yhDqEX&Fj?y(dt>)*>h|FDp-O3F?W8tGeF+afu_2NJtinh$A42Qom}sSnMb;UQ2zBtS+Aq8lFqjagdOf~wIqoW9R0I|)2sX(Zcq zrBt3ni?>-wwpoaMbqAsyvjm1^=AOaas*418DUMTRjGZDSZzJk`}P|pLn?E4*Es%IA4%*` zWF?+5Boy>tX{8P9`&u&|kfEGEB!|ydO-(nDONyz+qTz*g{>`>r`z_w>L|L=$Zce9K zlYkvbK25kKe_llkvq_Vm64udJ;lH0j?U1xgbVQN8aDk?Kr#$a;2=$hP^ke1b$Ga-uH%QGP9Jgfl&ul%nF(+2JDQ8W7^$9A zkZLjPHqz<#M`^*pW_Z_z%Xd{Gcm$3i)eu$Gv;HJZ=yAJ3zYDHmjMk^x76R+?5vPxc zWculhqqbay{S)W8x0C-~*9LD~h%oDk;@zU=i#!A_J2vM$O~`=eaj<5U2dM|z=@}M` z@ta+nF*2VndY7O;P){7c(b*tRU+ot5op95=fj3h3>q|QXDKmn>7=v1ujn3IA_Ei1u zG$lx)Gkyhj0LjC29}@7IpD&|CoV}Ck+l#Va-y)gK!T=q>irskr3mx^tYF)*aV9C2b SK)^qR2?~ip-1z7B*?$3cL@}8F literal 1561 zcmc&!Yf#cz9Q|w7qKlR_rQ)Ml(R2(WTQ$paTvWtN2sKk9*WD;zyD2{MMVh*llPODx zsjF#weigbMHNO?wQ|*bAG>*i}ge4 z>p}DY0MJK!d*A>-3#!3aKpQmY&DuLW&1H=B4e(T})fzZGt4u8Dp=i+O-PP5#F?V#Q z<_Su``S}AH(x)Zq4{!j0jlZKk+yj!e=E|n>>k(VLHs54)s4W#b2-RIM1>S#p&>nT4 zaLT|w18vLL#h_VJV78QMXt+1kwTA*r$$_GmKuGF~IDxq3$osw5j>JWG9;G>?&=|qcIO<5jtH0-f<$dvOe4>7V);VrDY2O1a@osjid>Vu zYK5G`JGpATb;Rx9aOksz^!XzA(@{cpsQpTqGLBdz30LA(NHXjdsyQtV`wiN{`AsaE z+goc~avqq!$~;HpDAm!(!6Rlg?;%|^8;V}@{QqLyFNMZBdf*{d}M9c^?N!LJ7;8$W?TGsdD2tl_c zaYRIPw)(^O+*9{qF8go4RgLwEb-PDGedplp{yjHprA>HwDwbu~I%RFX939OS$}(Aw z$j(F03^@~4qS+QF-l0J9&KeW(nS-qc{6Xy4DNZk4beR6QeSx$)4{Xj`&8n=E42>2; zhr7#x{45!;kX&saLi<_$0cD@l!qj`tS&IgY~;}}Q?=J68e z{9r}y#)Vu*o$*CCW9?O!F9n^9j0mP%oum^?{zt=oY#Es6zv6su>Y%CGXvkJgA6kOZ zRFp9lR)Bz^EiP9QNUE@xOqj3APJWh_bzI!Qf}2T*mR7f`20W>$<(4rhH)h7!2w892 z!@s-T%U7g!3O>s@a(|3hl znA>x~KWiWXf@GAEE`dFY9oqth%*or^(gYIC#815>mo~T);0~D9a2{7#5o6i+=728& z8K|te?i0lm$|l<6kTrRvSHh0d&j;+ITY3J3)$kH6{eHU#DPIpv;p-Ip&xDRS^wWH1 zLRR@A6geNC-i?(+MK+e@%NYV)_WCT8Jwhq&o6hOnJ_ea4BaGj{p0H+^m5Vv-VIdxw zggO1px(X9_xMTnFFY(j&#jjifOd;i;6Jc?w{rC=LT=sI1EI65eZ0Q&-|J~3+8Lxp) zea&m&-CF8xyC8kh?*>K>DSkMx6P;S>c0OW#nXr$ -tbb::blocked_range< Value > Class Template Reference +tbb::interface6::internal::basic_operation_base Class Reference @@ -33,285 +33,58 @@
-
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

diff --git a/doc/html/a00026.png b/doc/html/a00026.png new file mode 100644 index 0000000000000000000000000000000000000000..0f94299e82ac6d9c147a19a509648b78560c3d88 GIT binary patch literal 1561 zcmc&!Yf#cz9Q|w7qKlR_rQ)Ml(R2(WTQ$paTvWtN2sKk9*WD;zyD2{MMVh*llPODx zsjF#weigbMHNO?wQ|*bAG>*i}ge4 z>p}DY0MJK!d*A>-3#!3aKpQmY&DuLW&1H=B4e(T})fzZGt4u8Dp=i+O-PP5#F?V#Q z<_Su``S}AH(x)Zq4{!j0jlZKk+yj!e=E|n>>k(VLHs54)s4W#b2-RIM1>S#p&>nT4 zaLT|w18vLL#h_VJV78QMXt+1kwTA*r$$_GmKuGF~IDxq3$osw5j>JWG9;G>?&=|qcIO<5jtH0-f<$dvOe4>7V);VrDY2O1a@osjid>Vu zYK5G`JGpATb;Rx9aOksz^!XzA(@{cpsQpTqGLBdz30LA(NHXjdsyQtV`wiN{`AsaE z+goc~avqq!$~;HpDAm!(!6Rlg?;%|^8;V}@{QqLyFNMZBdf*{d}M9c^?N!LJ7;8$W?TGsdD2tl_c zaYRIPw)(^O+*9{qF8go4RgLwEb-PDGedplp{yjHprA>HwDwbu~I%RFX939OS$}(Aw z$j(F03^@~4qS+QF-l0J9&KeW(nS-qc{6Xy4DNZk4beR6QeSx$)4{Xj`&8n=E42>2; zhr7#x{45!;kX&saLi<_$0cD@l!qj`tS&IgY~;}}Q?=J68e z{9r}y#)Vu*o$*CCW9?O!F9n^9j0mP%oum^?{zt=oY#Es6zv6su>Y%CGXvkJgA6kOZ zRFp9lR)Bz^EiP9QNUE@xOqj3APJWh_bzI!Qf}2T*mR7f`20W>$<(4rhH)h7!2w892 z!@s-T%U7g!3O>s@a(|3hl znA>x~KWiWXf@GAEE`dFY9oqth%*or^(gYIC#815>mo~T);0~D9a2{7#5o6i+=728& z8K|te?i0lm$|l<6kTrRvSHh0d&j;+ITY3J3)$kH6{eHU#DPIpv;p-Ip&xDRS^wWH1 zLRR@A6geNC-i?(+MK+e@%NYV)_WCT8Jwhq&o6hOnJ_ea4BaGj{p0H+^m5Vv-VIdxw zggO1px(X9_xMTnFFY(j&#jjifOd;i;6Jc?w{rC=LT=sI1EI65eZ0Q&-|J~3+8Lxp) zea&m&-CF8xyC8kh?*>K>DSkMx6P;S>c0OW#nXr$ -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

diff --git a/doc/html/a00028.html b/doc/html/a00028.html index f9770260dc..fc3e5a0231 100644 --- a/doc/html/a00028.html +++ b/doc/html/a00028.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

diff --git a/doc/html/a00029.html b/doc/html/a00029.html index 2f31755e52..3feaee30d7 100644 --- a/doc/html/a00029.html +++ b/doc/html/a00029.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,16 +33,91 @@
+
-
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

diff --git a/doc/html/a00030.html b/doc/html/a00030.html index b42b0b098b..0417c2c4df 100644 --- a/doc/html/a00030.html +++ b/doc/html/a00030.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,251 +33,16 @@
-
-
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:

diff --git a/doc/html/a00030.png b/doc/html/a00030.png deleted file mode 100644 index a7f7e8e6154c8ae0e05bdb4ad587ca57ed049710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1883 zcmb_dYgAKL77h_hS_hIcYZRv`ff04t!6FJ`EpU;CXemU2+YCd2U};cLAc7LY<06ak zQIH^vmBBWV&Ioz~1Ph1;As}L;ior+7fXEvY!XpU~2r;>5ZrU|Jrt@ponzPn9_dEOS zyZ3k2+2=bK4uu8VzW4k02n2%d!2^Ne1OgG@_&jM1J_diE;fH@54t*XO1c1e^n$@4; z-7m$_&%L9gW9@|@8a^dugoi~Ca3@QX{}j2CKzK)eFmPWa$7=5NG`HXYW&hZfll(N0 z>HY8`>zT^sS+V)1%|EKEN{T|0ggL$ngJ9Hi{oQUlo;3&?l804Udj$02LgB?H-t zJ1H}ONgLc&2AutPCNb#RL!Ec0(v{EC$EG;U5suouWWtdA03k^+2N7 z=6Cn`H;_B)Q8Zw%TZF1h3z@V6*F1j;5TeFE6bUE~fPrSgn{Yg&1ZjrvvF53+ADF|5 zdd+hon$(-t%*q}`QO}iP-J@|J+5$d#qO3vHc8)qg?jGY7NvlC9fZXQq$babRW%~Gj z3CoMOu7b)Q2AtcyrpuHMMCZGD-y!eU*#XGwC6=AjbS(YD<$)^gLd{)smFf`t6KY7w z#CP?tUgW52nojQF&oFp9Vq*4J@^7H(^())4P%YQuqG$b$TL95Ps=gQIl~uy=brMX&R%4{(R2pQTpm)mu0{cY_v&@W zM&Wfg;bp#A^5NNFGjhf{&Q;e^4ZMLY_1^S_s~&l1+dQbn909#Wh>D-SFd>`;Wgw?6 zDk3-QaLPLEUx+e2fF8uZe_n5oBpabwpvyin<5tH{H3!Ass7mVjYE^=&cSAFP9@gGA zm~{KmHRK}zj#BF-PI(D9Lu9y%QPUoKe@4`PRn)ZnZDar9t@`T%xEw{dJ8D5sx#acn zy-lwYhF9k&S1N#8>1fertba+f3>t3I?E?kWJ|^E}vHE=U|H{xjUGX>S>sz$E(%23|(H=P`{d#yD6{T)!(T?FbBe zWhLl@=x}M_sK^M(7LvirE3g;=>*IRHw^}1!Kr|JGiBRKV`vPbNf#sUAZaQfkG4TKl zn=kze+hLm1tuZ{0BFU?{(>`Ss59j=?i&nYilnkn+Q2W>uB7~&gVhjAK%?)Iv0D8G!89&hF5(R z!@j^kZY!fK%>t=Z8f?IuY9pzS7L`Nl+oYormkyZD5q#_|DrLFO|D#EC#NljJh?AdU zNsXta{CAX-3rwUEYnFGNim3kP>+)Q;Kkf4HY_Yu;o-KUAdX1F`Xcg}R=b>e=IBplQ zJ~U;%B4jGvBoVveF{wU=C#7#S&t%)89qpBt`*T=%DC5Q*YRP6PJ4`WmYz$nNiuD)4KRI^j2ou|eWzI72F#NHxtSN&KmDu))n{O-O%DRL#JrV_#gE z#N~SJMW77KlY_gGWMJd^Pw&u=Vo$VjY-{6uy;`4S`YomkDa55m10a9}snhrN*7{cN zVl>~6r quBgAfLBG;&i<~D|j_X=Fw)StH9&8=S!3KW`2?vA10_**m1^)upB -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference +tbb::flow::interface8::broadcast_node< T > Class Template Reference @@ -33,56 +33,251 @@
-
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:

diff --git a/doc/html/a00031.png b/doc/html/a00031.png index 9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05..a7f7e8e6154c8ae0e05bdb4ad587ca57ed049710 100644 GIT binary patch literal 1883 zcmb_dYgAKL77h_hS_hIcYZRv`ff04t!6FJ`EpU;CXemU2+YCd2U};cLAc7LY<06ak zQIH^vmBBWV&Ioz~1Ph1;As}L;ior+7fXEvY!XpU~2r;>5ZrU|Jrt@ponzPn9_dEOS zyZ3k2+2=bK4uu8VzW4k02n2%d!2^Ne1OgG@_&jM1J_diE;fH@54t*XO1c1e^n$@4; z-7m$_&%L9gW9@|@8a^dugoi~Ca3@QX{}j2CKzK)eFmPWa$7=5NG`HXYW&hZfll(N0 z>HY8`>zT^sS+V)1%|EKEN{T|0ggL$ngJ9Hi{oQUlo;3&?l804Udj$02LgB?H-t zJ1H}ONgLc&2AutPCNb#RL!Ec0(v{EC$EG;U5suouWWtdA03k^+2N7 z=6Cn`H;_B)Q8Zw%TZF1h3z@V6*F1j;5TeFE6bUE~fPrSgn{Yg&1ZjrvvF53+ADF|5 zdd+hon$(-t%*q}`QO}iP-J@|J+5$d#qO3vHc8)qg?jGY7NvlC9fZXQq$babRW%~Gj z3CoMOu7b)Q2AtcyrpuHMMCZGD-y!eU*#XGwC6=AjbS(YD<$)^gLd{)smFf`t6KY7w z#CP?tUgW52nojQF&oFp9Vq*4J@^7H(^())4P%YQuqG$b$TL95Ps=gQIl~uy=brMX&R%4{(R2pQTpm)mu0{cY_v&@W zM&Wfg;bp#A^5NNFGjhf{&Q;e^4ZMLY_1^S_s~&l1+dQbn909#Wh>D-SFd>`;Wgw?6 zDk3-QaLPLEUx+e2fF8uZe_n5oBpabwpvyin<5tH{H3!Ass7mVjYE^=&cSAFP9@gGA zm~{KmHRK}zj#BF-PI(D9Lu9y%QPUoKe@4`PRn)ZnZDar9t@`T%xEw{dJ8D5sx#acn zy-lwYhF9k&S1N#8>1fertba+f3>t3I?E?kWJ|^E}vHE=U|H{xjUGX>S>sz$E(%23|(H=P`{d#yD6{T)!(T?FbBe zWhLl@=x}M_sK^M(7LvirE3g;=>*IRHw^}1!Kr|JGiBRKV`vPbNf#sUAZaQfkG4TKl zn=kze+hLm1tuZ{0BFU?{(>`Ss59j=?i&nYilnkn+Q2W>uB7~&gVhjAK%?)Iv0D8G!89&hF5(R z!@j^kZY!fK%>t=Z8f?IuY9pzS7L`Nl+oYormkyZD5q#_|DrLFO|D#EC#NljJh?AdU zNsXta{CAX-3rwUEYnFGNim3kP>+)Q;Kkf4HY_Yu;o-KUAdX1F`Xcg}R=b>e=IBplQ zJ~U;%B4jGvBoVveF{wU=C#7#S&t%)89qpBt`*T=%DC5Q*YRP6PJ4`WmYz$nNiuD)4KRI^j2ou|eWzI72F#NHxtSN&KmDu))n{O-O%DRL#JrV_#gE z#N~SJMW77KlY_gGWMJd^Pw&u=Vo$VjY-{6uy;`4S`YomkDa55m10a9}snhrN*7{cN zVl>~6r quBgAfLBG;&i<~D|j_X=Fw)StH9&8=S!3KW`2?vA10_**m1^)upBUahsm^YyW@g z_Y)j+emYz#+qGY8@Gh`ljv~zO2SONG|Btv?WWX6E#H95SA_FW+_d z=l%WVzdt7}yz!0wgYPxl^{*JF-La3TE0y0O|Lt+vjLr4(54_jxn{!P+hoPo5eBboi zwa)Ax_+=|L#=-P+JZ~iw~c}Lx{cJ*ADhnv3zRX^Srw_EMc z%FAjpR`oBdudR;mbpLwqua)0tm(Be78F$5Fmn5I>PFj^S?fh@SZ);hO6)&(CdgNbt zW#Q7FpJtlMY-x4mG3M-C)%s2M{y&HJ)v`6;8JX53mu@%`W7Ro{|GdE?iT5AEdV=@A zx&Qg@w|B?ig-e7GSqez%70;)~B$m%gaAli&TGnfb%@%5=ZW2kMQb)Z_n8 zGWef%|F)V{neu@XuX@d&eG%T}Z}&euuufLE!8G#w_w#3deLwzb);>nAhI#18cy_+= g=0j(6nEx}rTx0ZndR^#RU?ITZ>FVdQ&MBb@06g76xBvhE diff --git a/doc/html/a00032.html b/doc/html/a00032.html index c9c8a896c5..ae6ac2507c 100644 --- a/doc/html/a00032.html +++ b/doc/html/a00032.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,574 +33,56 @@
-
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

diff --git a/doc/html/a00032.png b/doc/html/a00032.png index 012b7704743d2b4944e6b0274216eadac763aa52..9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05 100644 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yV0;f`2XHV0N%lRwuYr_AfKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M^c)7srqa#Uahsm^YyW@g z_Y)j+emYz#+qGY8@Gh`ljv~zO2SONG|Btv?WWX6E#H95SA_FW+_d z=l%WVzdt7}yz!0wgYPxl^{*JF-La3TE0y0O|Lt+vjLr4(54_jxn{!P+hoPo5eBboi zwa)Ax_+=|L#=-P+JZ~iw~c}Lx{cJ*ADhnv3zRX^Srw_EMc z%FAjpR`oBdudR;mbpLwqua)0tm(Be78F$5Fmn5I>PFj^S?fh@SZ);hO6)&(CdgNbt zW#Q7FpJtlMY-x4mG3M-C)%s2M{y&HJ)v`6;8JX53mu@%`W7Ro{|GdE?iT5AEdV=@A zx&Qg@w|B?ig-e7GSqez%70;)~B$m%gaAli&TGnfb%@%5=ZW2kMQb)Z_n8 zGWef%|F)V{neu@XuX@d&eG%T}Z}&euuufLE!8G#w_w#3deLwzb);>nAhI#18cy_+= g=0j(6nEx}rTx0ZndR^#RU?ITZ>FVdQ&MBb@06g76xBvhE literal 5251 zcmc&&4OA1?wg&vIfO^#y@rP(FYO8{Ps7NGQwP;0Xl@ZEcKu}Z^M2I9p0);A10i#j@ z`AJ%}qJx07Lih;;q=JYr1%x0b1PCxdgh0j+Ac5R73D~#Zd+XkH*X_FRtTma*%s%^^ zv(Mh&{`R@@jibHcyk+xrbaV_4?B9D>M`sobJde(u0e;jP>;Ndd6?jN`Is_2oC;WP9m6{&CVmQni|ZJRgC0T2!q#X{wrkuvIt?3 z$^jp}JwcU649h+gRBZ*8#f>4SqsY*FwvZul7B?c|)VDV|&8_A)v@76Qp3ctODhirh zJT+H7T4>A2Yi?bsoS5#<25SlL3@&sJI2)pQ_e##kfJJz&G6P**-4IhGJ1;*)JL9ie zK*~ZZb&CiFI`)53{a+kvh%sI&y(?8RjQIz`Jo)?h6rrUobx>JK-m_Mypz~(a zA;=lpLEl1oKlre+;5+c?kE%nUrs$jCtNR|A2b6cYs}MeI_;0?{ z?=G|zIPwe?VTminA%TqIbO@qkg;TpGFJ-}jwS`|nO&qQn!f#}I^|~|9@966hAS;=< z+iV&Jj7T06W4W!7dCfT-KErEM3QCfnZzG>jLr`A)B}^4}e}ekFb5GkUM44b5S?^cf zsIKOlyFk`5dl}Ixz`Pb~lnC=j#(bTa7jg%%aavnXw+AGTOscKiN^3jT>SVN0*z;V* zRlAO<>>S(2{}wX()aD&mWjVTGLGk=KW~6K3*Z4MP7f34?+tCY57%ZlUcuCUS{Wag; z8IqsQt-;Vf_U^Z8u4?<*!2$(WGQK`mmBBYWn(nycV|i#px1ce##x!Ta1#a7D`!6+0 z)6C=iIj6D>10%O0Z@KBYx#G0r$xX>wN1KL5k})nsoNYh&i_gGn^AuFPAs}>H#CM)w z?C9+q=xjXmmHKM2Ia1$OVO8nmGsIl#d1`ba1m((Gi3BAT?)vpoMM-u5|1B+2(kj1z zmQCm{uv;`cZiFK#?-O5JX*B;BX-sL)+@f+gnVlEpYKFLT)9rJ`eZpE=%V zg&Wp$LVl=riOT9v(~>UA>Wrk)p+ z+JeaB49|eG{q>im-D8t-LigDHB1EQ&-esPS-XhmE=EUdU|GDtM@4bp--eZ>+*zDm^ z_LfIGyF?l21fRMYWj<-FY$P(TA=Ox42Ml`!JS0ka_jeQDrFLQ5z^B2)i}QNN?hRkE zr1-HSqa3*Dnz9UPntCyRADW8mfI+L3Jgc_ftf#h)fed zYGL@VCLRN^;;~sYMt2RZfD-iP-0#; zPzTYWK}pU~$;)UOi<*Mg7>lD>pVEove>>sURUaMjjT1+SoIEV_ zr%eW@8zIHOkH^Pb6ka3fK?4qMy&FV=0e10yVSsuk{Ej9(>DyA(cp!ESniX$?$-KAGN`?UPyX=|hoLNTv_K^z6(z z?g0b0yDwh{DzaD8a$vU#Wfx5(f|s=&4GM;ueiyw08EwKE2bg6yfj(>Qw*ZJ3Y&_{T z|Jh4}ML+$uFDv|6N-b9YErvLSm7mV8?^TvEOQp(vehqYyA|Q%%e2%Vu%{?E(+gl#3 zPP{zpc-iC24$GRaAE;PndCIjeF!`ej8F<*U)-d43J)hmin{g>?zXn_?39}J7Ed3-| zD+@&QUq($U!bKj$8%-9BQTSm zuSwn(#^zu$uWm8Qj#+wvES$1oBI>yx7o^$EF5|j!)l>~{V!sz-g2p~^R;W;1!~D!2IyPyHM($WQvHd+IG_2H9I@_XT1v`f*HD=pvzbFje8TRzpxs00F-~Bp< zEGjox6eN%g8L9j!PIih_m9b)W;5U`S<@Mj+D34B)5DW6J-SF3!`l)EF$Q8X>xz??S zGS_Dj^DRmwb0*D^7zwc!^AX-FXe6?8Md*J8tv!>#DH_ zTn#sG=F>@6Lo}AaCbl4%b@N-pax-EChcJOpCnLr@Zw0AqBDS!k^4!D&9N{arYc-0P zG69{%Sl`kexJ2kHs1&aJ4D){4^>}B?POdFGylvYTiuN61B01MW@Jzn-BUwOJs+J1& zRow}Bq1~%6iG7$VI@k5I!4#AG$6Nb;#wUrxU*d$gZ_dWG;!A*36*eqzb*R(_-V#EY z;ypN{YBwCv5G(J48pSiuoaG#3Yn;+|>czlsb$vK*oq1-1*0;&4f^mKw^%wZ~5aU9z z&bc8L@dXae7MF}trDi#O|*w0$sPXBBfNUH|`d;{R#Q>NU%1%^T0q5=NP zQHtQJUxgK9FqTJ9gnm^+Eg2#+e+Uxxo2OIIMk2^WyBM=dc;aeHro1X(goD*JyO;SOuH4K*zJRTEP(f_DEj&X&&Ot}B& z+ZbcZZ!nw-0H~e5;%+@f$$5z~E5dtZ_uokEN>7>d4BC#zddAL3CRFXLlBDOyhTT=D z$G)G>B)Za6cEq3SZO2EKATGw9($M~{BDDCeX;?_Ga0gi>+r~7fwvb8$cW7;$qTfcj ziJ*Eb5HCrnSWX3@ZTKmL7URWqa$zar5iUKMjI8wVePZ+QxjaMN+n@X>o@vN#2$s-T zh`&jZ)%cpA$!GP|F=tA*BWbGeB$lG$HU!Z7pY!+XYAgc{mgaH~)wcV1rJ#o?^)4Y2-JL6-f^BhMp4_sGrrZX%h_>%T%?INHoUS{=sk&n*etz zma41jOT2~xXeM^eTa30j1r-g|2@mO(CZW}fAHkA=f}Q)D$M_UXH6Dp{Vx?9ex*NzM zF0NT1igc<8#U`cj>CQo+d|)(>7|F7rMvF6TFS;dWZgsPKP zMg1?M9@;=8((vEsl8$jB*O|0^np|98JU%*T%=>kYwE9mbG}v|LZY}n#{O#C^xQ@>H z=JiHMlECnHpV|z68vRbD|7KOViAP^I%}b5%8KLeG+%M6%Gzs@(y+sc%qwKTg&z1PU<$d~7Qpe6?^Ht3e1CMgmyZVNYS+TL+k zM6vfn&IPE+mqdHLtq#x{^P8IfG4&7N@ePv~KzK}E1%TaVe+QIZDcbVNY9^Pt_bzcq?Ge=AM@zjtmwB&Uniro{lZNHYOo>YbPZuBk)<@MrqK1P87U2P~kr{cwVih2xaw ze1%*aq5-Kv=~~-LRG_+GlLhx5RSfNinh;^hI2tp^gZnQkI~oDt;b${O-87!XUB5(A zrO!{LPc$g{OlK2xD{ev71qpU*2VZmH{)bZp!jV;FyyC){*4MVE!Oe*8f<0Be ztqPJ(pmfkfRc~LG5l=#}Fue?|2_z^@ZM{(xtQ0g$nyoKY$t%{NH3>(V=EG_b0%=Ra zQqjh|(v?%B!)-kd5i}FF#aYQ{d)K_=HJo)qk4`lfkz1fRwsS1~0i3E`NMUIrdc=Ru zm9(|t>HIWe7-Su+2&9g;&x<9p36mX#h>W_7s55d2Un^t zCluSR7nh%`_6dI+P7SjQj_6A5l{~4BArrjQ(P7g%cZgDQC^}-@8wkRtZ0~}BUCv{_ ze*(6nWKdTV2Pu+lOt6v%5VG^q*wo<}2anVIsn6y;g>XM}YJc(Y{BXGRPd%w$TRI%y eRn{;$L;k&c;@vOX+`x&U&VhZ7dvm_@j{ZBNY)&%( diff --git a/doc/html/a00033.html b/doc/html/a00033.html index 0bdf176300..4fc3c4c4d1 100644 --- a/doc/html/a00033.html +++ b/doc/html/a00033.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,63 +33,574 @@
-
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:
diff --git a/doc/html/a00033.png b/doc/html/a00033.png index ec16bbca9206adc1b725040c422de04630c7f54e..012b7704743d2b4944e6b0274216eadac763aa52 100644 GIT binary patch literal 5251 zcmc&&4OA1?wg&vIfO^#y@rP(FYO8{Ps7NGQwP;0Xl@ZEcKu}Z^M2I9p0);A10i#j@ z`AJ%}qJx07Lih;;q=JYr1%x0b1PCxdgh0j+Ac5R73D~#Zd+XkH*X_FRtTma*%s%^^ zv(Mh&{`R@@jibHcyk+xrbaV_4?B9D>M`sobJde(u0e;jP>;Ndd6?jN`Is_2oC;WP9m6{&CVmQni|ZJRgC0T2!q#X{wrkuvIt?3 z$^jp}JwcU649h+gRBZ*8#f>4SqsY*FwvZul7B?c|)VDV|&8_A)v@76Qp3ctODhirh zJT+H7T4>A2Yi?bsoS5#<25SlL3@&sJI2)pQ_e##kfJJz&G6P**-4IhGJ1;*)JL9ie zK*~ZZb&CiFI`)53{a+kvh%sI&y(?8RjQIz`Jo)?h6rrUobx>JK-m_Mypz~(a zA;=lpLEl1oKlre+;5+c?kE%nUrs$jCtNR|A2b6cYs}MeI_;0?{ z?=G|zIPwe?VTminA%TqIbO@qkg;TpGFJ-}jwS`|nO&qQn!f#}I^|~|9@966hAS;=< z+iV&Jj7T06W4W!7dCfT-KErEM3QCfnZzG>jLr`A)B}^4}e}ekFb5GkUM44b5S?^cf zsIKOlyFk`5dl}Ixz`Pb~lnC=j#(bTa7jg%%aavnXw+AGTOscKiN^3jT>SVN0*z;V* zRlAO<>>S(2{}wX()aD&mWjVTGLGk=KW~6K3*Z4MP7f34?+tCY57%ZlUcuCUS{Wag; z8IqsQt-;Vf_U^Z8u4?<*!2$(WGQK`mmBBYWn(nycV|i#px1ce##x!Ta1#a7D`!6+0 z)6C=iIj6D>10%O0Z@KBYx#G0r$xX>wN1KL5k})nsoNYh&i_gGn^AuFPAs}>H#CM)w z?C9+q=xjXmmHKM2Ia1$OVO8nmGsIl#d1`ba1m((Gi3BAT?)vpoMM-u5|1B+2(kj1z zmQCm{uv;`cZiFK#?-O5JX*B;BX-sL)+@f+gnVlEpYKFLT)9rJ`eZpE=%V zg&Wp$LVl=riOT9v(~>UA>Wrk)p+ z+JeaB49|eG{q>im-D8t-LigDHB1EQ&-esPS-XhmE=EUdU|GDtM@4bp--eZ>+*zDm^ z_LfIGyF?l21fRMYWj<-FY$P(TA=Ox42Ml`!JS0ka_jeQDrFLQ5z^B2)i}QNN?hRkE zr1-HSqa3*Dnz9UPntCyRADW8mfI+L3Jgc_ftf#h)fed zYGL@VCLRN^;;~sYMt2RZfD-iP-0#; zPzTYWK}pU~$;)UOi<*Mg7>lD>pVEove>>sURUaMjjT1+SoIEV_ zr%eW@8zIHOkH^Pb6ka3fK?4qMy&FV=0e10yVSsuk{Ej9(>DyA(cp!ESniX$?$-KAGN`?UPyX=|hoLNTv_K^z6(z z?g0b0yDwh{DzaD8a$vU#Wfx5(f|s=&4GM;ueiyw08EwKE2bg6yfj(>Qw*ZJ3Y&_{T z|Jh4}ML+$uFDv|6N-b9YErvLSm7mV8?^TvEOQp(vehqYyA|Q%%e2%Vu%{?E(+gl#3 zPP{zpc-iC24$GRaAE;PndCIjeF!`ej8F<*U)-d43J)hmin{g>?zXn_?39}J7Ed3-| zD+@&QUq($U!bKj$8%-9BQTSm zuSwn(#^zu$uWm8Qj#+wvES$1oBI>yx7o^$EF5|j!)l>~{V!sz-g2p~^R;W;1!~D!2IyPyHM($WQvHd+IG_2H9I@_XT1v`f*HD=pvzbFje8TRzpxs00F-~Bp< zEGjox6eN%g8L9j!PIih_m9b)W;5U`S<@Mj+D34B)5DW6J-SF3!`l)EF$Q8X>xz??S zGS_Dj^DRmwb0*D^7zwc!^AX-FXe6?8Md*J8tv!>#DH_ zTn#sG=F>@6Lo}AaCbl4%b@N-pax-EChcJOpCnLr@Zw0AqBDS!k^4!D&9N{arYc-0P zG69{%Sl`kexJ2kHs1&aJ4D){4^>}B?POdFGylvYTiuN61B01MW@Jzn-BUwOJs+J1& zRow}Bq1~%6iG7$VI@k5I!4#AG$6Nb;#wUrxU*d$gZ_dWG;!A*36*eqzb*R(_-V#EY z;ypN{YBwCv5G(J48pSiuoaG#3Yn;+|>czlsb$vK*oq1-1*0;&4f^mKw^%wZ~5aU9z z&bc8L@dXae7MF}trDi#O|*w0$sPXBBfNUH|`d;{R#Q>NU%1%^T0q5=NP zQHtQJUxgK9FqTJ9gnm^+Eg2#+e+Uxxo2OIIMk2^WyBM=dc;aeHro1X(goD*JyO;SOuH4K*zJRTEP(f_DEj&X&&Ot}B& z+ZbcZZ!nw-0H~e5;%+@f$$5z~E5dtZ_uokEN>7>d4BC#zddAL3CRFXLlBDOyhTT=D z$G)G>B)Za6cEq3SZO2EKATGw9($M~{BDDCeX;?_Ga0gi>+r~7fwvb8$cW7;$qTfcj ziJ*Eb5HCrnSWX3@ZTKmL7URWqa$zar5iUKMjI8wVePZ+QxjaMN+n@X>o@vN#2$s-T zh`&jZ)%cpA$!GP|F=tA*BWbGeB$lG$HU!Z7pY!+XYAgc{mgaH~)wcV1rJ#o?^)4Y2-JL6-f^BhMp4_sGrrZX%h_>%T%?INHoUS{=sk&n*etz zma41jOT2~xXeM^eTa30j1r-g|2@mO(CZW}fAHkA=f}Q)D$M_UXH6Dp{Vx?9ex*NzM zF0NT1igc<8#U`cj>CQo+d|)(>7|F7rMvF6TFS;dWZgsPKP zMg1?M9@;=8((vEsl8$jB*O|0^np|98JU%*T%=>kYwE9mbG}v|LZY}n#{O#C^xQ@>H z=JiHMlECnHpV|z68vRbD|7KOViAP^I%}b5%8KLeG+%M6%Gzs@(y+sc%qwKTg&z1PU<$d~7Qpe6?^Ht3e1CMgmyZVNYS+TL+k zM6vfn&IPE+mqdHLtq#x{^P8IfG4&7N@ePv~KzK}E1%TaVe+QIZDcbVNY9^Pt_bzcq?Ge=AM@zjtmwB&Uniro{lZNHYOo>YbPZuBk)<@MrqK1P87U2P~kr{cwVih2xaw ze1%*aq5-Kv=~~-LRG_+GlLhx5RSfNinh;^hI2tp^gZnQkI~oDt;b${O-87!XUB5(A zrO!{LPc$g{OlK2xD{ev71qpU*2VZmH{)bZp!jV;FyyC){*4MVE!Oe*8f<0Be ztqPJ(pmfkfRc~LG5l=#}Fue?|2_z^@ZM{(xtQ0g$nyoKY$t%{NH3>(V=EG_b0%=Ra zQqjh|(v?%B!)-kd5i}FF#aYQ{d)K_=HJo)qk4`lfkz1fRwsS1~0i3E`NMUIrdc=Ru zm9(|t>HIWe7-Su+2&9g;&x<9p36mX#h>W_7s55d2Un^t zCluSR7nh%`_6dI+P7SjQj_6A5l{~4BArrjQ(P7g%cZgDQC^}-@8wkRtZ0~}BUCv{_ ze*(6nWKdTV2Pu+lOt6v%5VG^q*wo<}2anVIsn6y;g>XM}YJc(Y{BXGRPd%w$TRI%y eRn{;$L;k&c;@vOX+`x&U&VhZ7dvm_@j{ZBNY)&%( literal 1158 zcmeAS@N?(olHy`uVBq!ia0y~yV2lK^12~w0WJ}1msX$61z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opN{{Mgc zu64MU|YI$B-t+i>=l!Z##o|15emD=uavY+aA zSr*>m)tA3)Exc*{-_4%$TqiBrx9-`Ser0XX-M6gj(z_;=gf6$tzT9`dzHQpd(!8RT zw&wk(XT~+pU$(r|Y8$(`VMp=jznd!}&m7t_y|T8xud6SvOU1Kx?qu2XhfB27;?{*O z`*3Fewd;SZzm>QjQR#Nv#=Q7u%0{{ReA%zhC+gkN6E7-rHj~@%P0cDIF#XQ9+T=S& zCTG@0$t~xbHTz-Y67QV%6aN0YowNVG`~SP^G`_4U^Q|u5tG7=2#*Eg|cMPBV=DBxG z4V<)V*UZiP6pnO=7cET}xLtlX=dsfduRG# z$D8|k-?>$No>!V`Bll_Lq+joMUOKNIUv@ppdftN@bukc|BJ^NlikHenD)0I4f z;*Y1OzFc_6aQc(^uZt%y*}tgALo=mZ@6Y8}d94#wXM|4vYxS_S+%5C5_p{$*mC{g4 zZBJFthng6n{%eA%vG&ZFd$k+t-S#thG3c*8!KCuy`g$ks5Bs`w9GdJBxOES_*4o5i zskM#)7+JK%zqX&4HFN5jGjU>U0ZbL4u3`$#$e8=)`Ru<>dHHUvmtA`@UF1O6{aHJW zU)j8$Ckw(;n#f2*|Nukug!jg0@_ z_@}=4`R?oU{}M@e_bRfs9edhdY-ZAX+xEX?w443q?e(T9v9}Ex4f2wA?21~>^5Z$% z&F+oUJCAGfWX})Z+gI|&>0IB3XV)hkKYjXa>dSoH=hG}MeO<@<`bNUTKR-6V;;rq; z;M}2}_avp(xGZIJY)Z+K{<=N9ho)55{MmY`?91d`kJFEvvpKrA$#NY}*?nN%(LAvm zso#}u{uG+g-hY4d@2{_W)_gAZDBEDI7csl**|}GnZ`@0Wyri9S{C~CO>(57ezdY1? zn!}uFo<7^& -tbb::cache_aligned_allocator< T > Class Template Reference +tbb::flow::interface8::buffer_node< T, A >::buffer_operation Class Reference @@ -33,107 +33,63 @@
-
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:

diff --git a/doc/html/a00034.png b/doc/html/a00034.png new file mode 100644 index 0000000000000000000000000000000000000000..ec16bbca9206adc1b725040c422de04630c7f54e GIT binary patch literal 1158 zcmeAS@N?(olHy`uVBq!ia0y~yV2lK^12~w0WJ}1msX$61z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opN{{Mgc zu64MU|YI$B-t+i>=l!Z##o|15emD=uavY+aA zSr*>m)tA3)Exc*{-_4%$TqiBrx9-`Ser0XX-M6gj(z_;=gf6$tzT9`dzHQpd(!8RT zw&wk(XT~+pU$(r|Y8$(`VMp=jznd!}&m7t_y|T8xud6SvOU1Kx?qu2XhfB27;?{*O z`*3Fewd;SZzm>QjQR#Nv#=Q7u%0{{ReA%zhC+gkN6E7-rHj~@%P0cDIF#XQ9+T=S& zCTG@0$t~xbHTz-Y67QV%6aN0YowNVG`~SP^G`_4U^Q|u5tG7=2#*Eg|cMPBV=DBxG z4V<)V*UZiP6pnO=7cET}xLtlX=dsfduRG# z$D8|k-?>$No>!V`Bll_Lq+joMUOKNIUv@ppdftN@bukc|BJ^NlikHenD)0I4f z;*Y1OzFc_6aQc(^uZt%y*}tgALo=mZ@6Y8}d94#wXM|4vYxS_S+%5C5_p{$*mC{g4 zZBJFthng6n{%eA%vG&ZFd$k+t-S#thG3c*8!KCuy`g$ks5Bs`w9GdJBxOES_*4o5i zskM#)7+JK%zqX&4HFN5jGjU>U0ZbL4u3`$#$e8=)`Ru<>dHHUvmtA`@UF1O6{aHJW zU)j8$Ckw(;n#f2*|Nukug!jg0@_ z_@}=4`R?oU{}M@e_bRfs9edhdY-ZAX+xEX?w443q?e(T9v9}Ex4f2wA?21~>^5Z$% z&F+oUJCAGfWX})Z+gI|&>0IB3XV)hkKYjXa>dSoH=hG}MeO<@<`bNUTKR-6V;;rq; z;M}2}_avp(xGZIJY)Z+K{<=N9ho)55{MmY`?91d`kJFEvvpKrA$#NY}*?nN%(LAvm zso#}u{uG+g-hY4d@2{_W)_gAZDBEDI7csl**|}GnZ`@0Wyri9S{C~CO>(57ezdY1? zn!}uFo<7^& -tbb::cache_aligned_allocator< void > Class Template Reference +tbb::cache_aligned_allocator< T > Class Template Reference @@ -33,46 +33,105 @@
-
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
diff --git a/doc/html/a00036.html b/doc/html/a00036.html index 2cf18e6799..4ff1aefbee 100644 --- a/doc/html/a00036.html +++ b/doc/html/a00036.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,36 +33,48 @@
-
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

diff --git a/doc/html/a00037.html b/doc/html/a00037.html index 27add3336a..ffe6de31df 100644 --- a/doc/html/a00037.html +++ b/doc/html/a00037.html @@ -4,7 +4,7 @@ -tbb::captured_exception Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference @@ -33,174 +33,36 @@
-
tbb::captured_exception Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
- -

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:
-
-
- - -tbb::tbb_exception - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +

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)
 
call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
+void dismiss ()
 
+ + +

+Public Attributes

+concurrent_hash_mapmy_ch_map
 
-

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
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

diff --git a/doc/html/a00037.png b/doc/html/a00037.png deleted file mode 100644 index 131abf604d940965927a6b649f954dbc6663df1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmeAS@N?(olHy`uVBq!ia0vp^lYqE`gBeI#zi@H{QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;Dc%M#ly{>*TGmAp@`UewZf^W~VZQ;*jy(gh&&2`@kXTM~ha!1y@W~%i&cA(++J_q=NEv*0Z zcGk?=)&L{p&l$m*OQ+0YdLS9ckb807rPo*I1Xp|Q4b1lA)jHb8{DD)Ip+A7>0|x=h ze(jag*y~~?ldcFYRPmGpVfm?-B9>{J>w5BKdwW_vaG$Dj^7&+--`_9!FZE06aA4K0 z$?dX9`=&atn-P7@((_iag?HryOP!@$M`fl=JvCv;rZ>{wT3z2CT`QOoSLa*2;bO?8 zsBgWhqE8K%KHMC7YG-_~R{nMA2Z2k?yPs9)`kwxMBx={vEq9~3PwbVQ9=&d-wAZ9B zJmLHs)@${8|M)EV8OVQfVZkJoSj8zSCzXMCarmoU>$15T(kmFZxK?|u4=?t6tNGP! zt)=M-5o^8!>QfkOoH!3C6QKTW3G&k1%F4Mw6{=Wlsok1z2KJhDg-?H86Kq`cXPwZ2 zzDP}Z_P^I>Xl3!6Pn(c`*8TVt%~w+n_ne$#|1Q-!!_<3czom|GcuQ{GxidFIS9-{O z3wnNU?~bG`Z{J*NW?s20E8KFrchc?C`#wf4{kY)&l90PP|Cev`%CFkF_RG7UTCYxP z?YwOfK4sO`FV|ELMt#%I+dggC)7m86y}`HM?bvy5SNJulo%ff{j<(Kwxv*->>E+*z z)%RXL{n+cVkRHET!>svXOa&DooDXh8V_Twc?UbOb&id4sr83%Uf~0{dp25@A&t;uc GLK6U^wt%|; diff --git a/doc/html/a00038.html b/doc/html/a00038.html index f4bcab3f58..dceb3f048e 100644 --- a/doc/html/a00038.html +++ b/doc/html/a00038.html @@ -4,7 +4,7 @@ -tbb::combinable< T > Class Template Reference +tbb::flow::interface8::callback< Callback, T > Class Template Reference @@ -33,64 +33,38 @@
-
tbb::combinable< T > Class Template Reference
+
tbb::flow::interface8::callback< Callback, T > Class Template Reference
- -

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

- -

#include <combinable.h>

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

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)
 
callback (graph &g, Callback c, const T &t)
 
+void call () const
 
-

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
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00038.png b/doc/html/a00038.png new file mode 100644 index 0000000000000000000000000000000000000000..d4d69067fab426f1deda506dfe36b4178b15b71e GIT binary patch literal 1103 zcmeAS@N?(olHy`uVBq!ia0y~yU}OifJ2;qudhF?i6_WPf zcdSp&)R{9|r>K0tlX!7OO^#RM#Lu@UZJo7a_y6eFx9xoGwtR&Vo4lE?$6DGvZrS}i zbQfoPY|Rf2KJ|Cq-Tg<8%G|jdpE38`@q&ss|39C$vQS$-=?Mcp5zBc zL0VcQkbIPoHtp*J1D?YQjDNQLWAb=pko-ei;E{kKM~j7qACn3wkuW=e(+EQfk(|3t z&YDX-TA4n46k;zFU~kYVTw!6e>8)n0dTmg&>)j_8xf9l>r?B0~p5?H4Td2jcAK$I@ zw=++;q|JAJx^UmhSu&GehwM9^sN?m!U{~?-t06Xb7bvf=yuB@7Cr18|NAkspjsIqQ zEh~KXeMTx@=~b(^&8r?C*={XgBr*H^V$qJw)7z%zd@Vh_ROLI**1}t%(~f!HG&;F~ z`D8-6)pm)p^R6?BzRGe%XMO3sJ(uUQMEZ6^>sdQLKf3vC-n>_LzBx1e&Xt+=c*DGV zUv+dpt~{K$_SC+W(!v7hmk*U%&Snzij7`qWC=*f2P!|c;7wu>Z-Hn?)Q8@TBi5x^QG>G3v;;l zZd_A&`pD;keZ}hA-dHgFN!uIoYHi-nGZAqQ|}Q*1z;*(_$a_j^HP0&?3E;k TufCIjxu3z))z4*}Q$iB}G}sQV literal 0 HcmV?d00001 diff --git a/doc/html/a00039.html b/doc/html/a00039.html index 3ffb18efe9..1ed0fc4b06 100644 --- a/doc/html/a00039.html +++ b/doc/html/a00039.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference +tbb::flow::interface8::callback_base Class Reference @@ -33,16 +33,35 @@
+
-
tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference
+
tbb::flow::interface8::callback_base Class Referenceabstract
+
+Inheritance diagram for tbb::flow::interface8::callback_base:
+
+
+ + +tbb::flow::interface8::callback< Callback, T > + +
+ + + + +

+Public Member Functions

+virtual void call () const =0
 

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

diff --git a/doc/html/a00039.png b/doc/html/a00039.png new file mode 100644 index 0000000000000000000000000000000000000000..6650f1591a879f68d5c40ef8501f77878d311bb0 GIT binary patch literal 1106 zcmeAS@N?(olHy`uVBq!ia0y~yU}OifJ2;quq7srqa#Xg#zrxn>B!Bp@DJtu4&GjO#a__ zyYJiDeTA}{PM&$g6?^94w`A`^{hfBXq4^y%Z~kAs`me!*4aXJvqDwO$RfY3?w@FMZ zn|iP1u%3MlOS|y*qel}94S{B|Yu)}S!MFYM{{J&)>fio+^mbLaeazm~+aD*SePilu zw&-Y{89Bv5gimv+3ge!r{|qXH5r%(+ISM~WusF#us4NiM$>=aioX^8?LRAyMHHQ-;T9se2d+GZr`Hwdd>NLT{5@UZHn8zdY_L>Vb13F zKN9bHF~w(v-e2-Mb(c8g2;MG7C+#Tf6adX7Pwo)J6mC3r z`UO)#uIblb+wSRZmj1Z=JL`e?>+>HNJUe-+GN(>Ag;G_WzKB71)wm&fNz5FGq*7vf>-UuJd=YPP#-#(|f zPpG}kdDiJ)Xa6p}V)A3(x$Q>U&*yyidMvlUea>d>y~l1lt^4`q$?q-q*z;KO zlvjD=UHB=}zEg9~;g=`x21>VEFTS0AGySRQ;@Q%t#kXI&V^Th)-uv{XbHCoKKC$qv z*6Y&UY<@LWpA_3Gf9#4nb#r>uRr8g9-=0{jdah(|-ECjdYus1ULd%&BCZwxT(VS@Y`VC*2yRlzf*7mn%W%B;-elINfr_`=1^d-0@wfm literal 0 HcmV?d00001 diff --git a/doc/html/a00040.html b/doc/html/a00040.html index 6864a3a4e5..1e7873a39e 100644 --- a/doc/html/a00040.html +++ b/doc/html/a00040.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::captured_exception Class Reference @@ -33,106 +33,174 @@
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
+
tbb::captured_exception Class Reference
+ +

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::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> >:
+Inheritance diagram for tbb::captured_exception:
- - -tbb::flow::interface8::graph_node + + +tbb::tbb_exception
- - - - - -

-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
 
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

+

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:
diff --git a/doc/html/a00040.png b/doc/html/a00040.png index e2672430d7e1c3e4c614a89d0a040fa8fd14c3b0..131abf604d940965927a6b649f954dbc6663df1c 100644 GIT binary patch literal 835 zcmeAS@N?(olHy`uVBq!ia0vp^lYqE`gBeI#zi@H{QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;Dc%M#ly{>*TGmAp@`UewZf^W~VZQ;*jy(gh&&2`@kXTM~ha!1y@W~%i&cA(++J_q=NEv*0Z zcGk?=)&L{p&l$m*OQ+0YdLS9ckb807rPo*I1Xp|Q4b1lA)jHb8{DD)Ip+A7>0|x=h ze(jag*y~~?ldcFYRPmGpVfm?-B9>{J>w5BKdwW_vaG$Dj^7&+--`_9!FZE06aA4K0 z$?dX9`=&atn-P7@((_iag?HryOP!@$M`fl=JvCv;rZ>{wT3z2CT`QOoSLa*2;bO?8 zsBgWhqE8K%KHMC7YG-_~R{nMA2Z2k?yPs9)`kwxMBx={vEq9~3PwbVQ9=&d-wAZ9B zJmLHs)@${8|M)EV8OVQfVZkJoSj8zSCzXMCarmoU>$15T(kmFZxK?|u4=?t6tNGP! zt)=M-5o^8!>QfkOoH!3C6QKTW3G&k1%F4Mw6{=Wlsok1z2KJhDg-?H86Kq`cXPwZ2 zzDP}Z_P^I>Xl3!6Pn(c`*8TVt%~w+n_ne$#|1Q-!!_<3czom|GcuQ{GxidFIS9-{O z3wnNU?~bG`Z{J*NW?s20E8KFrchc?C`#wf4{kY)&l90PP|Cev`%CFkF_RG7UTCYxP z?YwOfK4sO`FV|ELMt#%I+dggC)7m86y}`HM?bvy5SNJulo%ff{j<(Kwxv*->>E+*z z)%RXL{n+cVkRHET!>svXOa&DooDXh8V_Twc?UbOb&id4sr83%Uf~0{dp25@A&t;uc GLK6U^wt%|; literal 2624 zcmb7GdsvcL8kZO}EpumbH!qnxPk5OglN=QnY4Nd|TuRZY)J#(*Ek{8u$vdKt&aB&d zYv@VZ5lgeQQi9o5(GbO2t%iV1Ma^4khy{ul)VzRuzRzrW_OIQS^YNYUJMVelbKdv; z{l0T4faGIpVr61rU|>r8%b{Zi2A_#Q|8JX-;2--Ux*pst0(?(=v$nPdx)bX8q~b@H zK@Yw}A`$A+fGv33eDN6RxB*atr2E$sUmF-0%ZP`(PoyFy2PaRx@Nf;$ZS*U3#4&Ti*b#&C4Bl&*!g_$dYq-@!UqDDD28nM6 z1_!3gx>hu1W`4}9(~!$|xvZ$V0q)DxC0sK*2&`r4#BZ-TFV9ZuQjjHRTZ*Wh?2|do ztSymk!ZKC2!B+6_Vr-kxH41j+%&RJ~oK?pU7wQN$wEl;%*W_*^46(VwmdqUJfH$#f z_bjjdtpjl?b#TaRA93n?*s7lSCM9#A9=*heLqo_W9wYvf16G~fm2LOQuF+S~{jtyt z)04~-Oll1xH^;`E{88Dh-NGGi);U00-Wi(!+2sv(gF+RLzP*de1+R_3LcG0OD^uSF zZ-ECYfRzst_h&G)F0F^Jmv0Dpw|~Hf@P2Y|+>qX<+s!wG`Uds}c{IV!eg-_Qi*?$D z@tmB({TtT3|9A7Nfq9Qd0zO>43NhL`vcL*%rnu+0XbIGm=StwpI>MB=k!jKpnzXSF zuCL_I>~#hCdX4!Zu}ZePk{wEc>&(NnmrawiY4IF*`rzu*?833xg`UKfhF3g-a-6&P zV4OWCe}7)4+akj$Ioz;FDbCg(l*3iDV2QP9;oX^IBdYgStC~2N2sr}Ztehzj>r1~3lMit(T6VB$ zdPk62`kAPmUe{P_dWBrk&Oaz+-eRPSNTwk|HcKqF^JeLKe6I6rWnpR|H5H$k)}FqZ zCFOAcMbF16SG}PE{x_wRB)&;XpeR`xd1#_;I-3(p8>0WdcwX9FbhQoP(GwCUAS_pr zQjYg#+dXTE9=zAq-d_YtDbWX+>_O&wiP2?p8A4DyXx1CM7QAU;A(yV zob-BxZk)jwskNGT(Nt8-=e&7oh7ZH-2eVBeyk1azZoE$yg==^FGOfL^?u^kY^0#ZxxIX1NgpUp#GexE4g;pKieux6kOKVcV`qYm^F9l39`f|VrT_RW*v3v0SPjS5i#FvS0)Nq7cuPIF`mRv)?(r>| zQH|`L6@>jW8%QbsbvITxb*+oa!n> zDNXt_P0CpZXsIDpilazzd^wEh`2U)mX52e+{!d*WE^74WJeT%6aO>S>PH%HHH&>4U zfML4;i^M~;(>q54@WrR4$F`P}VZN*aI4%@wYXHhKo8X%t#3rSHM(TU$0C}yCA-3@V zSmsrLmw*}$18NXJ05t`g0RhwdAj=W}YU&-B6!IX_iU&kMJ_s1u+RfEmhlvVYq7AI96n*JTrqvGYsUjY7H zT#HMK@IzT;EiJO@Fk$TtQO#+M=6urV(oIdNRKv&|7(KlsPuE^nCJh;QtvkwHz)Wcp zxxv99gWKt3r3>bZG%Iy|WrC>uwb@DEiOySu7AO0qwAcvyr4_wuw=7g1?Yt0<4YRpG z_YGpXg<)z|Puuc6-{@Rc2JxXcmK8^DM97UBX#T1*-~FP-j|YmdyL6)(D5Vz@4n&L( z`Tez|bMf3U%-(Gcjna9%b&zaa_e zHj6Kr;2t+dp+fteAl}FZyuoUz)twTNWRI8k0&LA(4m8E)x9)Jx#31s`6gt;s*=Dup zc!Y6pLZMz4Y6Q**(-Z_=C$Q$tTLusJs7~sRh%E9Iv9A|xo9E}WlXyXMtG{#Rm27@~ zc;S@vvGD$*=16^_h(Xb6vY@0?w*5fJqGY{)T5DS^Fl!ZNXU<&MkLfY%PI^VypIIhs zqiIW1lK1PS0$JiDt5jIa{$LZ O1L8NNL-!AmbN&Oh^ZTg) diff --git a/doc/html/a00041.html b/doc/html/a00041.html index e4e98de26a..9f1877ea52 100644 --- a/doc/html/a00041.html +++ b/doc/html/a00041.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference +tbb::combinable< T > Class Template Reference @@ -33,99 +33,64 @@
-
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference
+
tbb::combinable< T > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
-
-
- - -tbb::flow::interface8::graph_node - -
+ +

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

+ +

#include <combinable.h>

- - - -

-Public Types

-typedef tbb::flow::tuple
-< receiver< InputTypes > &... > 
input_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)
 
-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 ()
 
-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
 
+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)
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    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

diff --git a/doc/html/a00041.png b/doc/html/a00041.png deleted file mode 100644 index e22b5a1acb65ffcae93c46072fc197e7bd36180e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2180 zcmb_eYgALm77igTK`fjiFA*eIgk`NfOQWJ8B8rHDJOW607DWXmDlZ}75gI`&ntGK- zEyD74DVGxvMIeA262QV*JOrg7mXJ`P0pxWE5d#FmosjG5pZ>Xb-M!At*=P35p1t?% zZ_l}Y!rSAs4W=6~7|ds$N8J4|7#sxnYj{o2pKF;|122;k#{v$mt*O|F>4hX#>yLn2 zZ#*9Flj}nk;1i$d=k1RHlT^g-3~&TPn>^hQ1YFUW5zT~5HW_`=cbhlbxaL9%ZocO? z)F^89=yCt_;km&_Mb5IIxXMFumB)3k*?|;83gymG0@(_J;cX1eZSue1A8=TA>;w2q zeLSSigyAD_qs$++yL+zEy=I5_N!P{xzH ziw)wS9lreJ;UEfy8;;fZ?lHNZuYA-=J)Nnb57xqyMD>>U!@I_s?vS&xQjeSA<%sYM zRs(CDPd-Z#rT{L+i9#qon!egpMJrt9(n}QkVmv5(YChQhOJFW361LdRz&KC|H8M6F z+Yv`wUlTr^E89IGblL}r$nw9PFE>lEqc zp`L{=>ifS>vrgGFH!@pQUjgwgwl(hsL8EU*5{e|)$U zzb9h6nk&v@JQ+&ZGn%myr8?#O*)Jv$IhEQ;KFcr2-M{+tK;=}sS0NjQhf$!b!8*5R zA$@qrYdM21lnpwTH0({I))zOEqRm?O6We!IQeV-~;h|#2#kAjKG|EgNG8I$h1rp=K zFW9IGQJn0NNyqnXj25`9Eh(q&0-75;e6s-f&zCz7C}F9Cu|6JnC8Cp{@Q5jWS2RNN zZ8OIL-zJsgS|!Oq)UzE@8sKFsUvX`rmzmEQPyEN&WD~vF1$yHOss-Y@wo#i&)O>5j z=mUmyRZl!7(tceGE{`VEh!yQy@-rF)eYB>5JLLLXbGb}6Y!vsYsM#7yLsw~g41a%z zhQR z9=%D@(yI*)bItXQ!Gce@R7}g{?9hAwPwK_H9>zY9i$@#hU3HlKd*_!yd@Xh{E-v{5 z@|V*^rIQ|>g!f{_CKg{QV{_$VqACkmwyy1=Tu;@)@q%^S1J^v%$VcQ`)!2V8rm0H< zaCN;nBoWMXa}R>nRuRbP3yFIb689{-0U?vkEF(iykix#`^3vBBan`%#i7Ps(!W!mM z=l53F7yr-#1HtP9Qd8~!pzOu`UN>INI=~vh(*N=+9MFhFBH12Zy_d`z@&j7!ff^j{ zm@NaNp>fBH0O0%QNA3U9@PUuDa>M`+*_U@?t{v05_P2e5gP)qN+)f`*S(M6%n7N2zaLn>PV;az&aw#Eda zRhwl{8QVf1`yHP7G@0s=0w;_YFJ#x+79msT(TdGt;ozVi6Y;HzK1aQqDLdtIU4EFe zN`8}ST_KLPqVtPVzOZCqq*a=47ix8xGUWwp@duI-emvDhJW@#xZrsRU=>1{Jyilye z~_k8a~ZwuIvW-ZP%hl>3KyKHFVh$ zvNaav#h2kb@)ltS^zcCtWC!RmyR(1CZtvcX2Emi3&r=hS=enZ~Hd|+#!*p{^PWH&T z^y-IeFGaattdwBUDLnK3nY6815zb?x-Qe=uhik1KEVk)8?bMCPaHc!c{q>>?PiOL* z#GyX)^DcJu(am}s6F8brttA=>J4&agN%w3D!>b0^zC+#(t41!pHU9lmhO6xMjlX~l zPr0u<97jgYdSvmO*H>Mah`q`dHn^ZNVhP1Yh`@M7i?jtlu337^@Cvw1ar7aU4sH>p zSKqapS(|a%4iWwsbu^ER`AGx%Nf-Lte(K#vSkAfbx0TGYOzqx*Uj~flA#eA`Zjssl E25n5{yZ`_I diff --git a/doc/html/a00042.html b/doc/html/a00042.html index 3c9cc39cd4..036f5ec0c1 100644 --- a/doc/html/a00042.html +++ b/doc/html/a00042.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference +tbb::flow::interface8::composite_node< InputTuple, OutputTuple > Class Template Reference @@ -33,99 +33,16 @@
-
-
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, 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<>, 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:

diff --git a/doc/html/a00042.png b/doc/html/a00042.png deleted file mode 100644 index c8701d6fd9352b9bab7358f314dae9249c5216a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2303 zcmcguc~q0f76%M8VJAgJL?9BeT3M_%5h9Qf6;PV8RgonUK!gaCHG~ful5~>x-*-;mKX1;=mpOOty>r*!gnHJ? zT}$0iT}eqvi%4+wR#HOY!9E|o1ANh=KeND(!C6lqH#p`U#|0i@E6?SvpJE1a@&VYVv-;qj&y&2Z2qqd=<@ z9^c))Y6r|Jpd0KB9BKlFO?I(@3E$_+HV2ji8J^5^tBmGUZ%A}kA?qCe13a%0yxc4I zU=79%7LlN#Z;*{_6sn!+rv+@)vG1e7u*u=S@2VmicNMYP52Ta}%}^+mD{w$X#n{%k z5UZ=JYrp^(pin=}e5*&qpwVbe55=*Z#o=;x)?XvY9ULjfNYek4XyBOlY)V(LDE>{a z1He3<$EVQvl+4s{d2*p4t_NYAPr>71xB`wg!wpiF3+VUZuVEPEdYR?!Tmc`3VNd`p z#8{s2`|wyw9sOT|nYEbMxa!=k+r9O?b1Z~CWV|%$7{APl%a}D{AyOTpLi;T)4NXOE zku-ZChEDj*LgfMrA^xedly^R-Q>>Z!d!X8CMzbSnThPs;h2AVJ?z1C@cyKS5ayOWF zT;8Vl3iS|4aUe5pyf3liE-+lXelNCmY>P^gH8dv0wkJM@;WRzcPAvD+65rt&cB_t1 zEKTZ<;ikW9K=@zTrrU?Hb0|f>L>gKF-})zWT;8s?b3egzA{JW57C`w-p9~@VGQBm{ zZuo<+FY5Uh?;C9UUo|hWh*{%Ixfdt@ZL5>peaRP(Pg|Buh$dX#N{(rZBgBSSq*g+| zy^(2-w`2gnBI)!^A42;`+tzou#_h%2&b|Q?=P>@`Vd0>KJ(>zE-;be&!;c3IjB=#9uZ3CScrf@zo6E&Rt3jDCU@|Q ziJ(5j?#-AL7i>Ag_me|`&gc9W8tmKutw0EWr=q-Y@t+!L%h%Ct*O*$jm|E5B6X<-g z01Y}mizDy%qMIomr=2F*Ml>QOAGBEwpw;au_%`c8gsZoTydxiGqdG0jO~Jrobyqlg z3ZjCH>Yh<30uAU7I&vEHq8wG6I7e{G*WzuR0lomKi$&lnrV-AxoyB5x@p!zznVH1)42ZD+(-76E4@_S3)&N>Vo$l=d zu$!Y?5CAY%U(GdIS;fZNK(|U2J;K!Qj!KgKV~I@j5U|6?XA<>eALUUd%f;hQ%)~)b zUSUS^=JsIq_xv$tjDU$4cWjYA1d3lg$E~tgMN?Z-4V%5Ex0mRfE52+CJbUJ_U^a9@ z8b4wE6tG$Qt50X_N-LvTzWnw0YT4d6$J~H_o+!EUhF$k?Ohg}wHa=Dz)beqSc6;gi z>%=k#!PRF_rT-?E)NFLjeo|T``xTls2np^=;jEDT1jT&ZwlfH}xeLZJA|*&GBGsas z;?LixrvwMin&q*OT!@wsN~(NS!#EW7TJn=+%eB=ul8s5LgUI}b^aYgc5{4Y8bq*8k z>-(-*EXV#r7Pj4w`{jL_YRjQ#Lq4{NR}+__hRMmA2Lp0C`9ZXEkFGE}gkRVlVwRN3 zUO~n=of`+v;2MS6M~}1}l|NWLEdXR9HK`F|n+kGZhz9k?>jIB-eXPLp<));0s?Aok zE~W*|RO60re@K=UlDg&SZVvcn;!faa&3qq@7@^Bo4bSho30XDxC)yy_vnE~_rl};8?r0 zjRE_*x(~>_qPb*;umozq!(y~vwIM*rH4YtrH?|B;91B?wPbt6kNz7I9Y+d(MV!g)iC% ztk~2h?Z&Pk+a+yV&2(ndLGbw6-Lp0Y)!I<-G>c&2#Q98p$Noo3%6kuK=D$)w#r}0T i7!U&{c(NU2J5uu2DfOp5Y6SmQl!$I#u652Aum1rgL@VI{ diff --git a/doc/html/a00043.html b/doc/html/a00043.html index b9790f6c91..a65c2170d5 100644 --- a/doc/html/a00043.html +++ b/doc/html/a00043.html @@ -4,7 +4,7 @@ -tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,16 +33,106 @@
+
-
tbb::interface6::internal::concrete_filter< T, U, Body > 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< 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:

diff --git a/doc/html/a00043.png b/doc/html/a00043.png new file mode 100644 index 0000000000000000000000000000000000000000..e2672430d7e1c3e4c614a89d0a040fa8fd14c3b0 GIT binary patch literal 2624 zcmb7GdsvcL8kZO}EpumbH!qnxPk5OglN=QnY4Nd|TuRZY)J#(*Ek{8u$vdKt&aB&d zYv@VZ5lgeQQi9o5(GbO2t%iV1Ma^4khy{ul)VzRuzRzrW_OIQS^YNYUJMVelbKdv; z{l0T4faGIpVr61rU|>r8%b{Zi2A_#Q|8JX-;2--Ux*pst0(?(=v$nPdx)bX8q~b@H zK@Yw}A`$A+fGv33eDN6RxB*atr2E$sUmF-0%ZP`(PoyFy2PaRx@Nf;$ZS*U3#4&Ti*b#&C4Bl&*!g_$dYq-@!UqDDD28nM6 z1_!3gx>hu1W`4}9(~!$|xvZ$V0q)DxC0sK*2&`r4#BZ-TFV9ZuQjjHRTZ*Wh?2|do ztSymk!ZKC2!B+6_Vr-kxH41j+%&RJ~oK?pU7wQN$wEl;%*W_*^46(VwmdqUJfH$#f z_bjjdtpjl?b#TaRA93n?*s7lSCM9#A9=*heLqo_W9wYvf16G~fm2LOQuF+S~{jtyt z)04~-Oll1xH^;`E{88Dh-NGGi);U00-Wi(!+2sv(gF+RLzP*de1+R_3LcG0OD^uSF zZ-ECYfRzst_h&G)F0F^Jmv0Dpw|~Hf@P2Y|+>qX<+s!wG`Uds}c{IV!eg-_Qi*?$D z@tmB({TtT3|9A7Nfq9Qd0zO>43NhL`vcL*%rnu+0XbIGm=StwpI>MB=k!jKpnzXSF zuCL_I>~#hCdX4!Zu}ZePk{wEc>&(NnmrawiY4IF*`rzu*?833xg`UKfhF3g-a-6&P zV4OWCe}7)4+akj$Ioz;FDbCg(l*3iDV2QP9;oX^IBdYgStC~2N2sr}Ztehzj>r1~3lMit(T6VB$ zdPk62`kAPmUe{P_dWBrk&Oaz+-eRPSNTwk|HcKqF^JeLKe6I6rWnpR|H5H$k)}FqZ zCFOAcMbF16SG}PE{x_wRB)&;XpeR`xd1#_;I-3(p8>0WdcwX9FbhQoP(GwCUAS_pr zQjYg#+dXTE9=zAq-d_YtDbWX+>_O&wiP2?p8A4DyXx1CM7QAU;A(yV zob-BxZk)jwskNGT(Nt8-=e&7oh7ZH-2eVBeyk1azZoE$yg==^FGOfL^?u^kY^0#ZxxIX1NgpUp#GexE4g;pKieux6kOKVcV`qYm^F9l39`f|VrT_RW*v3v0SPjS5i#FvS0)Nq7cuPIF`mRv)?(r>| zQH|`L6@>jW8%QbsbvITxb*+oa!n> zDNXt_P0CpZXsIDpilazzd^wEh`2U)mX52e+{!d*WE^74WJeT%6aO>S>PH%HHH&>4U zfML4;i^M~;(>q54@WrR4$F`P}VZN*aI4%@wYXHhKo8X%t#3rSHM(TU$0C}yCA-3@V zSmsrLmw*}$18NXJ05t`g0RhwdAj=W}YU&-B6!IX_iU&kMJ_s1u+RfEmhlvVYq7AI96n*JTrqvGYsUjY7H zT#HMK@IzT;EiJO@Fk$TtQO#+M=6urV(oIdNRKv&|7(KlsPuE^nCJh;QtvkwHz)Wcp zxxv99gWKt3r3>bZG%Iy|WrC>uwb@DEiOySu7AO0qwAcvyr4_wuw=7g1?Yt0<4YRpG z_YGpXg<)z|Puuc6-{@Rc2JxXcmK8^DM97UBX#T1*-~FP-j|YmdyL6)(D5Vz@4n&L( z`Tez|bMf3U%-(Gcjna9%b&zaa_e zHj6Kr;2t+dp+fteAl}FZyuoUz)twTNWRI8k0&LA(4m8E)x9)Jx#31s`6gt;s*=Dup zc!Y6pLZMz4Y6Q**(-Z_=C$Q$tTLusJs7~sRh%E9Iv9A|xo9E}WlXyXMtG{#Rm27@~ zc;S@vvGD$*=16^_h(Xb6vY@0?w*5fJqGY{)T5DS^Fl!ZNXU<&MkLfY%PI^VypIIhs zqiIW1lK1PS0$JiDt5jIa{$LZ O1L8NNL-!AmbN&Oh^ZTg) literal 0 HcmV?d00001 diff --git a/doc/html/a00044.html b/doc/html/a00044.html index b36323d005..6cab969651 100644 --- a/doc/html/a00044.html +++ b/doc/html/a00044.html @@ -4,7 +4,7 @@ -tbb::concurrent_bounded_queue< T, A > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Class Template Reference @@ -33,371 +33,99 @@
-
tbb::concurrent_bounded_queue< T, A > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > 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 >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> >:
- - + + +tbb::flow::interface8::graph_node
- - - - - - - - - - - - - - - - - - - - - - + +

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
 
+typedef tbb::flow::tuple
+< receiver< InputTypes > &... > 
input_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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
 
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)
 
+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 ()
 
+void extract ()
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - -

-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

+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
 
-
- -

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:
diff --git a/doc/html/a00044.png b/doc/html/a00044.png index 3dc03c333709697a42cb92d8e57a8cb283aa9e6c..e22b5a1acb65ffcae93c46072fc197e7bd36180e 100644 GIT binary patch literal 2180 zcmb_eYgALm77igTK`fjiFA*eIgk`NfOQWJ8B8rHDJOW607DWXmDlZ}75gI`&ntGK- zEyD74DVGxvMIeA262QV*JOrg7mXJ`P0pxWE5d#FmosjG5pZ>Xb-M!At*=P35p1t?% zZ_l}Y!rSAs4W=6~7|ds$N8J4|7#sxnYj{o2pKF;|122;k#{v$mt*O|F>4hX#>yLn2 zZ#*9Flj}nk;1i$d=k1RHlT^g-3~&TPn>^hQ1YFUW5zT~5HW_`=cbhlbxaL9%ZocO? z)F^89=yCt_;km&_Mb5IIxXMFumB)3k*?|;83gymG0@(_J;cX1eZSue1A8=TA>;w2q zeLSSigyAD_qs$++yL+zEy=I5_N!P{xzH ziw)wS9lreJ;UEfy8;;fZ?lHNZuYA-=J)Nnb57xqyMD>>U!@I_s?vS&xQjeSA<%sYM zRs(CDPd-Z#rT{L+i9#qon!egpMJrt9(n}QkVmv5(YChQhOJFW361LdRz&KC|H8M6F z+Yv`wUlTr^E89IGblL}r$nw9PFE>lEqc zp`L{=>ifS>vrgGFH!@pQUjgwgwl(hsL8EU*5{e|)$U zzb9h6nk&v@JQ+&ZGn%myr8?#O*)Jv$IhEQ;KFcr2-M{+tK;=}sS0NjQhf$!b!8*5R zA$@qrYdM21lnpwTH0({I))zOEqRm?O6We!IQeV-~;h|#2#kAjKG|EgNG8I$h1rp=K zFW9IGQJn0NNyqnXj25`9Eh(q&0-75;e6s-f&zCz7C}F9Cu|6JnC8Cp{@Q5jWS2RNN zZ8OIL-zJsgS|!Oq)UzE@8sKFsUvX`rmzmEQPyEN&WD~vF1$yHOss-Y@wo#i&)O>5j z=mUmyRZl!7(tceGE{`VEh!yQy@-rF)eYB>5JLLLXbGb}6Y!vsYsM#7yLsw~g41a%z zhQR z9=%D@(yI*)bItXQ!Gce@R7}g{?9hAwPwK_H9>zY9i$@#hU3HlKd*_!yd@Xh{E-v{5 z@|V*^rIQ|>g!f{_CKg{QV{_$VqACkmwyy1=Tu;@)@q%^S1J^v%$VcQ`)!2V8rm0H< zaCN;nBoWMXa}R>nRuRbP3yFIb689{-0U?vkEF(iykix#`^3vBBan`%#i7Ps(!W!mM z=l53F7yr-#1HtP9Qd8~!pzOu`UN>INI=~vh(*N=+9MFhFBH12Zy_d`z@&j7!ff^j{ zm@NaNp>fBH0O0%QNA3U9@PUuDa>M`+*_U@?t{v05_P2e5gP)qN+)f`*S(M6%n7N2zaLn>PV;az&aw#Eda zRhwl{8QVf1`yHP7G@0s=0w;_YFJ#x+79msT(TdGt;ozVi6Y;HzK1aQqDLdtIU4EFe zN`8}ST_KLPqVtPVzOZCqq*a=47ix8xGUWwp@duI-emvDhJW@#xZrsRU=>1{Jyilye z~_k8a~ZwuIvW-ZP%hl>3KyKHFVh$ zvNaav#h2kb@)ltS^zcCtWC!RmyR(1CZtvcX2Emi3&r=hS=enZ~Hd|+#!*p{^PWH&T z^y-IeFGaattdwBUDLnK3nY6815zb?x-Qe=uhik1KEVk)8?bMCPaHc!c{q>>?PiOL* z#GyX)^DcJu(am}s6F8brttA=>J4&agN%w3D!>b0^zC+#(t41!pHU9lmhO6xMjlX~l zPr0u<97jgYdSvmO*H>Mah`q`dHn^ZNVhP1Yh`@M7i?jtlu337^@Cvw1ar7aU4sH>p zSKqapS(|a%4iWwsbu^ER`AGx%Nf-Lte(K#vSkAfbx0TGYOzqx*Uj~flA#eA`Zjssl E25n5{yZ`_I delta 722 zcmV;@0xkW75&i`siBL{Q4GJ0x0000DNk~Le0002<0000`2m=5B0Q;b`O_3owe*%q3 zL_t(|0qvdL(yJg0MHe^Ue*ZTi^C%wo2I_S^s6=lOP?t?@ygYev;978ajkKH8AW(Y>^{<9W8bAnRQ|&*chB z(y9KdZkq~{3e$SYt@d?$Gq=u1b$g4jD_6?~_|5OLr0oBVF~7k)m!Bmef6Xy-LrE%i zZXrpB8hMr^{~FAa#Mc5YF@C%C9}%byy})7#wVt?4Zch;S=b(s{ckeI8JlLyeb&?-E-O{F+NR!$mAfv{ z@;U9??AUwz{Su^g&&}-KHsR7uIiSh2?O3bo^OMH-H4RO+Tg;j1e`}dz5qXN)xK^2M z@VVD6Sw&4-dN0qjHNKVSA~i*x%ixVXuYm15+v9a*x?5Rk@9q70E>Cd#JRjP(&a-8% zp67ktUISMvwJo_@Y+INQ>h{W!PGq}o*Da3gc1q{Lm+zpQ1N?^WPw&*@t;}-~spJEo zrQGkf_ql_^JOecKDD%t!FV -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference +tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference @@ -33,1049 +33,99 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+
tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Class Template Reference
- -

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

- -

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
+Inheritance diagram for tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> >:
- - + + +tbb::flow::interface8::graph_node
- - - - - - - - - - - - - - - - -

-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 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
 
+typedef tbb::flow::tuple
+< sender< OutputTypes > &... > 
output_ports_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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
 
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 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
 
+void reset_node (reset_flags)
 
- - - - - - - - - - - - - - - - - - - -

-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 &)
 
-

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

+Additional Inherited Members

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

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:
diff --git a/doc/html/a00045.png b/doc/html/a00045.png index 3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808..c8701d6fd9352b9bab7358f314dae9249c5216a0 100644 GIT binary patch literal 2303 zcmcguc~q0f76%M8VJAgJL?9BeT3M_%5h9Qf6;PV8RgonUK!gaCHG~ful5~>x-*-;mKX1;=mpOOty>r*!gnHJ? zT}$0iT}eqvi%4+wR#HOY!9E|o1ANh=KeND(!C6lqH#p`U#|0i@E6?SvpJE1a@&VYVv-;qj&y&2Z2qqd=<@ z9^c))Y6r|Jpd0KB9BKlFO?I(@3E$_+HV2ji8J^5^tBmGUZ%A}kA?qCe13a%0yxc4I zU=79%7LlN#Z;*{_6sn!+rv+@)vG1e7u*u=S@2VmicNMYP52Ta}%}^+mD{w$X#n{%k z5UZ=JYrp^(pin=}e5*&qpwVbe55=*Z#o=;x)?XvY9ULjfNYek4XyBOlY)V(LDE>{a z1He3<$EVQvl+4s{d2*p4t_NYAPr>71xB`wg!wpiF3+VUZuVEPEdYR?!Tmc`3VNd`p z#8{s2`|wyw9sOT|nYEbMxa!=k+r9O?b1Z~CWV|%$7{APl%a}D{AyOTpLi;T)4NXOE zku-ZChEDj*LgfMrA^xedly^R-Q>>Z!d!X8CMzbSnThPs;h2AVJ?z1C@cyKS5ayOWF zT;8Vl3iS|4aUe5pyf3liE-+lXelNCmY>P^gH8dv0wkJM@;WRzcPAvD+65rt&cB_t1 zEKTZ<;ikW9K=@zTrrU?Hb0|f>L>gKF-})zWT;8s?b3egzA{JW57C`w-p9~@VGQBm{ zZuo<+FY5Uh?;C9UUo|hWh*{%Ixfdt@ZL5>peaRP(Pg|Buh$dX#N{(rZBgBSSq*g+| zy^(2-w`2gnBI)!^A42;`+tzou#_h%2&b|Q?=P>@`Vd0>KJ(>zE-;be&!;c3IjB=#9uZ3CScrf@zo6E&Rt3jDCU@|Q ziJ(5j?#-AL7i>Ag_me|`&gc9W8tmKutw0EWr=q-Y@t+!L%h%Ct*O*$jm|E5B6X<-g z01Y}mizDy%qMIomr=2F*Ml>QOAGBEwpw;au_%`c8gsZoTydxiGqdG0jO~Jrobyqlg z3ZjCH>Yh<30uAU7I&vEHq8wG6I7e{G*WzuR0lomKi$&lnrV-AxoyB5x@p!zznVH1)42ZD+(-76E4@_S3)&N>Vo$l=d zu$!Y?5CAY%U(GdIS;fZNK(|U2J;K!Qj!KgKV~I@j5U|6?XA<>eALUUd%f;hQ%)~)b zUSUS^=JsIq_xv$tjDU$4cWjYA1d3lg$E~tgMN?Z-4V%5Ex0mRfE52+CJbUJ_U^a9@ z8b4wE6tG$Qt50X_N-LvTzWnw0YT4d6$J~H_o+!EUhF$k?Ohg}wHa=Dz)beqSc6;gi z>%=k#!PRF_rT-?E)NFLjeo|T``xTls2np^=;jEDT1jT&ZwlfH}xeLZJA|*&GBGsas z;?LixrvwMin&q*OT!@wsN~(NS!#EW7TJn=+%eB=ul8s5LgUI}b^aYgc5{4Y8bq*8k z>-(-*EXV#r7Pj4w`{jL_YRjQ#Lq4{NR}+__hRMmA2Lp0C`9ZXEkFGE}gkRVlVwRN3 zUO~n=of`+v;2MS6M~}1}l|NWLEdXR9HK`F|n+kGZhz9k?>jIB-eXPLp<));0s?Aok zE~W*|RO60re@K=UlDg&SZVvcn;!faa&3qq@7@^Bo4bSho30XDxC)yy_vnE~_rl};8?r0 zjRE_*x(~>_qPb*;umozq!(y~vwIM*rH4YtrH?|B;91B?wPbt6kNz7I9Y+d(MV!g)iC% ztk~2h?Z&Pk+a+yV&2(ndLGbw6-Lp0Y)!I<-G>c&2#Q98p$Noo3%6kuK=D$)w#r}0T i7!U&{c(NU2J5uu2DfOp5Y6SmQl!$I#u652Aum1rgL@VI{ delta 1010 zcmew_IEO>AGr-TCmrII^fq{Y7)59f*fq}6T$PVCO29md3EALEHw5n%b?djqeQo;Ck z?(MQARy?fU{E@%^|Nl`^JT>1zeRAuGz&0tV_yb`#KWV3>bNdQtkidUEY8E^pyUB8?~1a-?RhH4opmHG;`*duG<`f3KTWT$ML;TAnHH zxSq}X_tvA@x4Exw)o-hRuvf_1S~vN&QjA+s|GRt3R@lDO_blwle>64V+3m*8oxb;7 zF4k90Sd!6VzOj9~_-iZXt!lIWO%j>7e8!8XKaaW06Q1MF&>0;= zFe9|Pb(K(xL40$pYrEvpyYuGD-UnDZjxdD=4ZNb z`hB?v(O;_P&6M~i@6Yu>{sXrfpY_zK$JP3_GRYWtIA?#n{qgmEo4DuILSO3Y=ZPKM zBy>-;`0~@6_g6_y4J|#qwB+yktwr7I-dvM>@~i8abE?4inct4|_>}B>b!f9#ez2z7 zF8^1%I(PaP-q!oSf#=-ujr($g--eWOO+Q&0{kC$$i*4q&qJ6YiR<)jAczcqzeO=a~ z@1fh>u04AC`LV@U^Yo3+PQMBHzV>*~g|w|!^#`Yhz6;yGQh(d`M@kEhD$JTGA{<*6 zZ~BnG@7Lvn?u&kym9^aH0~Idu7&l-kNn%Uu2WZ4ZpMf88kd^97d_t1Q-AmGX4{K1^Q_mU`Cec6;%#S|e!TI;->+tNKCIIa zk$>Ci$7Oe>-tTYmA~VCRjWw@|%2q9}O<7d#cO~%G2^Z;xxYSy|lAI}OyPhBUeO+kg zrxRZ{&#wOUW=o3h^sc|1cc)BkeL7Dg`fc-6V$1Noi&J{~0-de`u^{aoPdQ#tfdWelF{r G5}E*?FX8zB diff --git a/doc/html/a00046.html b/doc/html/a00046.html index b9c3980c78..355c2b6209 100644 --- a/doc/html/a00046.html +++ b/doc/html/a00046.html @@ -4,7 +4,7 @@ -tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference +tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference @@ -33,52 +33,16 @@
-
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
+
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
-
-Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
-
-
- - - -
- - - - -

-Public Types

-typedef handle_object handle
 
- - - - - -

-Public Member Functions

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 >
 

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

diff --git a/doc/html/a00046.png b/doc/html/a00046.png deleted file mode 100644 index 856b3afbc688a7b01023a31c6da442bf2c88844f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmeAS@N?(olHy`uVBq!ia0y~yV0-~&2XHV0$)^colYo>&fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M_ZA7srqa#Vd*}=@b`cH z9?zPWK5y>wY?xMcOf-6vi&xIXI#s1ZE-pR1ik@zh+>SYUUt)>K@SMfKt?MbAuuwIV zN#~2o@9h^RnJ_-)lI^;FEoo=&-stE5em^q&F+{^q#x?5E4PAzw84~Y|tn)L33 z+U=m#lP~RkSvBR|^XArROE@KLc_wrG^?34pzKW@Y)zrBcT^*+{Y1{~M15kt70TefW z5U>KdpNIEA$sY!ZhK(C9Fg*VJIe95#+i@r6p7YM>+PnrA2F?u^7=S^@2y`&B z&jGzJkIQV9zJI-Z>s@Qbi?z%Jv-YJo@cmtw-xCv)SAL)2`Afd{t?TdBUVE*+aJSg+ z*L#4{U6HMI(h&`FRy)~W{_t`CiYaqePXBlQo3{V;l-h4P&ezMTPTPvFKh>E1{@dgp zuUCi6R&2OeHm~#xZV&)2F|?lz-bl zOI!PA`~Ec>t}L1|?bh>UayN8de3g=7^t@Xlnzi@bt>-QO+<{uI2L5=m)#62Z>piV+ zdgtRZuDK=uVqIv=oZfow`Ucr;;hv`#?a|+%Bk@)9-nYnQ&SpEMzS|mKZ>@V=nj3TO zh1-+K3gP$nua=CBWL>l%eb>C`sq0?V$WMO7JC(~c`)Lhwk;z;baqldrjYdhpTSL1f~svT=rpC}KS(tq@- z)Rj|bx1W)*K3g8l@!_QQgt*8T3~CDl!(QLp&vAD88HShzPenb}|Brle{9?^N#+O&$ zvFJpS1Nvo?dLtDnm{r-UW|As6>Z diff --git a/doc/html/a00047.html b/doc/html/a00047.html index 8862006109..aefad45b19 100644 --- a/doc/html/a00047.html +++ b/doc/html/a00047.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference +tbb::concurrent_bounded_queue< T, A > Class Template Reference @@ -33,7 +33,7 @@ +Friends | +List of all members
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
+
tbb::concurrent_bounded_queue< T, A > Class Template Reference
-

Concurrent priority queue. +

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

-

#include <concurrent_priority_queue.h>

+

#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 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 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_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.
 
+
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_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.
 
 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, typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-class tbb::interface5::concurrent_priority_queue< T, Compare, A >

+

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

-

Concurrent priority queue.

-

Constructor & Destructor Documentation

- +

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- - - - - -
+template<typename T , class A = cache_aligned_allocator<T>> - - - - - +
tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (const concurrent_priority_queue< T, Compare, A > & src)typedef std::ptrdiff_t tbb::concurrent_bounded_queue< T, A >::size_type
-
-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.

+

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear void tbb::concurrent_bounded_queue< T, A >::pop ()T & destination)
@@ -325,27 +247,25 @@

Member Function Documentation

-

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.

+

Dequeue item from head of queue.

+

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

- +
-template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
-
-template<typename... Args>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace void tbb::concurrent_bounded_queue< T, A >::set_capacity (Args &&... args)size_type new_capacity)
@@ -356,22 +276,22 @@

Member Function Documentation

-

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.

+

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + + - - + + - - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + @@ -384,25 +304,25 @@

Member Function Documentation

bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty size_type tbb::concurrent_bounded_queue< T, A >::size ( ) const
-

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.

+

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= bool tbb::concurrent_bounded_queue< T, A >::try_pop (const concurrent_priority_queue< T, Compare, A > & src)T & destination)
@@ -413,140 +333,25 @@

Member Function Documentation

-

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.

+

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap bool tbb::concurrent_bounded_queue< T, A >::try_push (concurrent_priority_queue< T, Compare, A > & q)const T & source)
@@ -557,25 +362,25 @@

Member Function Documentation

-

Swap this queue with another; not thread-safe.

-

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

+

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 , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+template<typename T , class A = cache_aligned_allocator<T>>
- + - - + +
bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop bool tbb::concurrent_bounded_queue< T, A >::try_push (reference elem)T && source)
@@ -586,13 +391,13 @@

Member Function Documentation

-

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.

+

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_priority_queue.h
  • +
  • concurrent_queue.h

diff --git a/doc/html/a00047.png b/doc/html/a00047.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc03c333709697a42cb92d8e57a8cb283aa9e6c GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^pMf}lgBeKvUa;90NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~^?JHEhEy=VoqPAvY6Tuwar66i|IO{f zLOK+({Qs+6cqw*KWdp~NXeW+^#)2vyp=gI$Llm$E~M4w0ryWpH`nAm!Hb%OL#Kh(&+1;9O`r_U#+aFhM+pX|A*6#dMF7Hb#|ETZI6%l=cCU;DI z*>>K2J_eCDb+_KdPnK`*ytz^R`>)WF((`BE z+%tQ4$=7nh$<1#gR=@f@`PdIrUf*reXJ)?4o|!CI*>!VA*v#AyJFn|Sy81>}>7UaOU>%=d5qR_gf|{I-$5wf)@Y)OGWo*WQg|4%gnQ zyE8f`dItZiZ>J{urR>hTuG{yz%F*cJVgA$h&j0^ykO~__uIbj uY(8wmZ1VN<83z4puwW7{=1}~ywEpkH{#!B&T4w+gD}$%2pUXO@geCw7e1)R` literal 0 HcmV?d00001 diff --git a/doc/html/a00048.html b/doc/html/a00048.html index 687d6e1a2d..7395eb8723 100644 --- a/doc/html/a00048.html +++ b/doc/html/a00048.html @@ -4,7 +4,7 @@ -tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference @@ -33,168 +33,804 @@
-
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
-

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

Unordered map from Key to T. More...

-

#include <concurrent_queue.h>

+

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
+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
 
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + - +internal::hash_map_range
+< iterator >  + + + + +

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 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::concurrent_queue_iterator
-< concurrent_queue, T > 
iterator
 
+internal::hash_map_iterator
+< concurrent_hash_map, const
+value_type > 
const_iterator
 
typedef
-internal::concurrent_queue_iterator
-< concurrent_queue, const T > 
const_iterator
 
range_type
 
+typedef
+internal::hash_map_range
+< const_iterator > 
const_range_type
 
+typedef Allocator allocator_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

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
 
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

+
template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
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 T, typename A = cache_aligned_allocator<T>>
-class tbb::strict_ppl::concurrent_queue< 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 >

-

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

-

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

+

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 T , typename A = cache_aligned_allocator<T>>
+template<typename Key , typename T , typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> >>
@@ -204,13 +840,242 @@
- + - - + + + + + + + + + + + +
bool tbb::strict_ppl::concurrent_queue< T, A >::try_pop bool tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::insert (T & result)const_accessorresult,
const value_type & value 
)
-

Attempt to dequeue an item from head of queue.

-

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

+

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_queue.h
  • +
  • concurrent_hash_map.h

diff --git a/doc/html/a00048.png b/doc/html/a00048.png index c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b..3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808 100644 GIT binary patch delta 1010 zcmaFCHitv8Gr-TCmrII^fq{Y7)59f*fq}6T$PVCO29md3EALEHw5n%b?djqeQo;Ck z?(MQARy?fU{E@%^|Nl`^JT>1zeRAuGz&0tV_yb`#KWV3>bNdQtkidUEY8E^pyUB8?~1a-?RhH4opmHG;`*duG<`f3KTWT$ML;TAnHH zxSq}X_tvA@x4Exw)o-hRuvf_1S~vN&QjA+s|GRt3R@lDO_blwle>64V+3m*8oxb;7 zF4k90Sd!6VzOj9~_-iZXt!lIWO%j>7e8!8XKaaW06Q1MF&>0;= zFe9|Pb(K(xL40$pYrEvpyYuGD-UnDZjxdD=4ZNb z`hB?v(O;_P&6M~i@6Yu>{sXrfpY_zK$JP3_GRYWtIA?#n{qgmEo4DuILSO3Y=ZPKM zBy>-;`0~@6_g6_y4J|#qwB+yktwr7I-dvM>@~i8abE?4inct4|_>}B>b!f9#ez2z7 zF8^1%I(PaP-q!oSf#=-ujr($g--eWOO+Q&0{kC$$i*4q&qJ6YiR<)jAczcqzeO=a~ z@1fh>u04AC`LV@U^Yo3+PQMBHzV>*~g|w|!^#`Yhz6;yGQh(d`M@kEhD$JTGA{<*6 zZ~BnG@7Lvn?u&kym9^aH0~Idu7&l-kNn%Uu2WZ4ZpMf88kd^97d_t1Q-AmGX4{K1^Q_mU`Cec6;%#S|e!TI;->+tNKCIIa zk$>Ci$7Oe>-tTYmA~VCRjWw@|%2q9}O<7d#cO~%G2^Z;xxYSy|lAI}OyPhBUeO+kg zrxRZ{&#wOUW=o3h^sc|1cc)BkeL7Dg`fc-6V$1Noi&J{~0-de`u^{aoPdQ#tfdWelF{r G5}E)R7U9b)WglZ?~gLa+kgJ2Dc67smjW}v~uNr zlnC`UQJql}mE+#{>E^s4Z-QA?n)v$d*2~O;x3YzCN#5DSnT194IWH3f^4t@u>U&Op zEIuLkMy@USP3*-~ABgH`45~d(j&pvIua|S~jR!gJ8MUwJS=fH@ot#Tbe_lQEQHkaw zeXH8HbM7m`Jl#I$O`M;cbKBc}ug%Tc_TFwoKH64kJ2n7SZ!hM4@u;^K57k$C2kv~j zC8<{DdoD>os87BBGvsS?+B=OTjbsfasnxZGBy}`%E=jR8$t5Y4Cb=ZV(n6k6N)ZL{ zF?|7qR9Nz_uc+u@$rtdTf9P?^XKx3Hrb!MEOOqTRmL@qsEKPENSeoPju{6m6Vrh~C z#L^@Oh^0vm5KEIBAeJUMKrBsifS*@NDTNdXAfP5WKrBsifLJo*%b)ze6O4W6m>Naw z9g%$KV{h8GT)j$u?ec@bOwe==3EnQXV+=l--S z`*l_}Z`-bRbHBJs?^E*a_3j4ATxQtRhZ#>$UG~-+%(3cP*-cfhypQaqOYTzP1Jzc$ z^LaQw)EtR+L)M@>Yg1SIuE~#__sJd58M!yTCO>NUpOSB_>4MxFtxx9-t?78~j9!uZ z0RO|BH?QdByfr$>fB8|bmpOMQ)?%MlWPQ#@$nJKu!;5O)&bhA$^K^F3J^A>Y*S*~| zHutLBVaL6_EbMjjebDFJTh+b2nES=U-dgtn{?D8PT -tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference @@ -33,127 +33,52 @@
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
-Inheritance diagram for tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

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 handle_object handle
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +

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_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 >
 

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

diff --git a/doc/html/a00049.png b/doc/html/a00049.png index 0e3c40436b0749b06f4880bfe7bb6a5d63b2a463..856b3afbc688a7b01023a31c6da442bf2c88844f 100644 GIT binary patch delta 1026 zcmew?u!cjiGr-TCmrII^fq{Y7)59f*fr0S_kR8Cm3?!c>h)tTPXjRX=+tbA{q=ND7 z+?#!m4R~0(4>0`wU%$t*=B3Y@yF44FRUH$J-sIwyGqFxp>5z*{53i!9+a$MRPTrST zA~HN@F>vd83MVX7&1BN~qVjwDg-IrikGW*Ku3t;qnY%ao`M=+f41df}^gL|1;e!54 zG1<*lvO$k;O;{o*X}MV1X}$im`o6#0twScUC7LaiUs}EPs^`mX7bca2&w3@h)?}{k z7L~hG%bnUo;>4mRy*r_HJ81RfOM72dO?mgcxpmqSP6=C{$sB(@o;;tgVk%)Zb?!x1 z$LUKNH-a1i)Sz|%#gQKbtUw;%;XP3Dhe4uYeHm`w| znA8EF~lcx%i}VerSD%a-+I?t@nS7=!K{7h4SatW=J&+Ja>_ee3$Wwbx#&FWfEm`}H26bXR0+opeOQoYhYDmp^>mzhcUqmDB&7|EBGKJ*D=W zj`Q`hs?)aO>rXXizyCJ5$LrN0vlScemCY-CR?lb|HYYM_+q|5uv-bJlRC_KPZ+>}8 zFh{|yZ0*J3;N#mWXEUJ$LJQ z%RhIZmaBpFKb~y0c#+mHZp#+-ZM_GGd``2GE>C1WF57cEHNH7|PVx>q&wlV9;p z+73C-)wtcgYRB5uC(47S^dG${b>-CA?Pp}H&z1*sd^o8+AujR-gWAHtu-EtYbDW)i zh9PFbQ&Erg|07=Dbj!NARHz$hk_z@%exfW@Yzufsr4(D^gFmA&qz0FQsRz--On M>FVdQ&MBb@05}Td{r~^~ literal 2163 zcmc(fc{JPU8pnUBHq+Kx>%FQfe=yYHRemw1Q?5hACIo zUaHZSQmTonl4xx$VhhI7SZmZ8N+xx0&$)lyGymP^ocDb{?{nVoInVo^_xq#}Y|JGO zD;)*^KoVzRY6k#fG!YXHiizer0th5p6bKiHSfNlT!kLA&NNV#hBH9~GO-%<uq15tloP7RF!HWt-OM3|EfLE_9r*wISKM4S+z zZ#C+(%*S$5mI=!#IF0Wv;Yeq`i!wvud~%{;)Y*3ac(?Dx-4K2N`EJKnt46*#i|Id> zFA%oeN0eyH?!^5L?YTUMLwayL-=BD7fot>2ft#aXi6{GJ+SEU{j095RRGA|ghy(4K zf*1bQp;#QI>=O;v2^-ty%66g~BpqCCzg{ekjM%R5bS^LNGt%X}BlFwBLdCk6xl40wdk(KPJY2VdbHfZ6q*+B684+~Xw zDOSl{s^3EtuX$WLbtq^peE(@o4t)+!m>OjVqS_u%n#*=MU~W)p^@Jk6F*)g#g?@43 z%sTv;cMfzhe1Bp2(5`ad&nNqyyewtACUqo#FkEQm8kI!XEAH%~S76c`ki>$+)+0M% zoGR9Hdp?X=eFjB=v^F*_ZP3^W}p7Fc?Xt z+`+p(T@&ibN7p?rN|T}w=GDTHSI%rvxm4B&xu4i2nfxlm@1-TiS_(4gP$R8@+#2A9 zU7Du2Rm)Z@g|x@|eQ}OkN#ow!e1J4FWGYi;(Nge1I2O3VCc_e-UZQFc5bq#FtfR~); z_yKy+TnnS`N0AV3c(Gzb%_PG4N%MNcdCSIJ{|4LVM@kCs44@}eAw^Yn0+YgEt6bz+ zqqz^Kjug*-Et)?7Y$<%vv*-KRCL(eMqgEk$k)CUZKl+Pwo>*4t|{FO5` z3v<^;$#b~W#4D|nmFf>-Om1;`rV15f3wjf~A$l)u(zrccw`)5`S3K>r0(4@Lh`#*E z%*v{{rCmYD&y#QJgNp2S*Z9$oc8inc|n-H;Vxnp z%M3B5GnO|B-SLy$1)+}d4OxC5RCq@@gV3gVBU71oLe*bsjJ6H4XJzjbtj{cYDxA9j z`~{EtU@hr1kzK0=1kyK~ds`weK>_eMxf2G6c>xklrj-_7;qNPas_LPy3Ab+v6$>lb zCO{#f+?fV|n}Bz1G5fUuu$QhQA_1fYR6l`(BoaWsr9<{qLH}0y`e64d0AgClP%mO(V+jzeUAe2QhCRq8Pf%crr`b zPT?7`71RQV;0`73R05U!_DOlptLh;t-|v?5aElM=Zo^sbxeiWx)lka(%(_EI1?K&K zwYAla#opGRo*qMjH|pWi^qNddqSEkZOxj^ZWmmIf_{s67dytX}fZtb

%&D`n!k)nmRBRw>7L!JTTtgbUH4Ud1^Y1<(emkCvDEoqcbB3* z#(ZgcNZZ3aW)XUfNaI}Oq`G$K*Vv~guV-1-J~i7MCjmZ zXE*hJ_Y*~!dUzcRKUAn6G-5~6+zffc{wiN`$4aHHGh*WK*t6?3Kak`s$&~B>C}ya$ zYqv%iB%b?3Um=$CF9-2}<@c2g>wgw(Sr@TSPei5)1RkD!V>>I$HGJhkuLd|~pw1cV zz8Ekp2#Zn$XAnbEeR_b=3_T*Esp@yjHQB+&2*xcG_@s^DlnUreOr=EvtD|jtcT?;- zjg};?D@<3;0NOM)EE0~RWXFYX`F-2-YcGc}KVlP9{)*djrLkFd6l96K{oXJCxC|Rv Wl{ldK-4|&<6gaGnDdW7?KmG)aA@ZgG diff --git a/doc/html/a00050.html b/doc/html/a00050.html index 094d29423b..c6bbe0776e 100644 --- a/doc/html/a00050.html +++ b/doc/html/a00050.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference @@ -33,67 +33,566 @@

-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
+ +

Concurrent priority queue. + More...

+ +

#include <concurrent_priority_queue.h>

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

-Classes

class  value_compare
 

+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.
 
- - - - - - - - - - - -

-Protected Types

enum  { allow_multimapping = Allow_multimapping - }
 
-typedef std::pair< const Key, T > value_type
 
-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)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Protected Attributes

-hash_compare my_hash_compare
 

+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
+
+ +

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_unordered_map.h
  • +
  • concurrent_priority_queue.h

diff --git a/doc/html/a00051.html b/doc/html/a00051.html index 2c841eb146..e0b2c6ccca 100644 --- a/doc/html/a00051.html +++ b/doc/html/a00051.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference +tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference @@ -33,118 +33,184 @@
-
tbb::interface5::concurrent_unordered_multimap< 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_multimap< 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_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)
 
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

diff --git a/doc/html/a00051.png b/doc/html/a00051.png index 6fa3b58c9af6e07c385a119cbebb0f48e002ea6d..c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b 100644 GIT binary patch delta 829 zcmV-D1H%0N5ab)WglZ?~gLa+kgJ2Dc67smjW}v~uNr zlnC`UQJql}mE+#{>E^s4Z-QA?n)v$d*2~O;x3YzCN#5DSnT194IWH3f^4t@u>U&Op zEIuLkMy@USP3*-~ABgH`45~d(j&pvIua|S~jR!gJ8MUwJS=fH@ot#Tbe_lQEQHkaw zeXH8HbM7m`Jl#I$O`M;cbKBc}ug%Tc_TFwoKH64kJ2n7SZ!hM4@u;^K57k$C2kv~j zC8<{DdoD>os87BBGvsS?+B=OTjbsfasnxZGBy}`%E=jR8$t5Y4Cb=ZV(n6k6N)ZL{ zF?|7qR9Nz_uc+u@$rtdTf9P?^XKx3Hrb!MEOOqTRmL@qsEKPENSeoPju{6m6Vrh~C z#L^@Oh^0vm5KEIBAeJUMKrBsifS*@NDTNdXAfP5WKrBsifLJo*%b)ze6O4W6m>Naw z9g%$KV{h8GT)j$u?ec@bOwe==3EnQXV+=l--S z`*l_}Z`-bRbHBJs?^E*a_3j4ATxQtRhZ#>$UG~-+%(3cP*-cfhypQaqOYTzP1Jzc$ z^LaQw)EtR+L)M@>Yg1SIuE~#__sJd58M!yTCO>NUpOSB_>4MxFtxx9-t?78~j9!uZ z0RO|BH?QdByfr$>fB8|bmpOMQ)?%MlWPQ#@$nJKu!;5O)&bhA$^K^F3J^A>Y*S*~| zHutLBVaL6_EbMjjebDFJTh+b2nES=U-dgtn{?D8PT^g(Ul_8`ubcL+?h}&I zKIOLX0G{?Jt!~^AU+ij|5k)=DKF@AAgK}@LY!ur2M{cB>yHOCekPCdq`0eTQ2iaO? zne7TLe6)*fH#qMfFw%0&DESjLm+h=eHnqqadJy76r66IFL8?d+2KPU`995ew+t+B- zg=m*;(frr2!Hxwzo-wXF-;yw$wWTmKF+;*QGW!3xDeXdr`F=v7RZO` znbPxm&1#=b47%K^dT|l+l5K047(Uc7Hyd@t_1iH8F}~iJS4fC74SZd5!lwhOXgn{-e6Ho1Czy*P>IQyz50wYVp%CsdP3<#6;)4N=>vBF*7vYpr)` z2#a<1@BVnsDRAp(%(&=h0c0hneG_s*&gis|ZT?gcq!RrF-{P5v^X=i5G$adYmV!=3 zAT%gK)%PL)YV#aF%ZX$~8fa!B1gbaSQc7X$gMdiQD9^_D8l2%est^O^^WZV%AM6+}K7^Rai{53H3xNX0 zcnHCbgW1sgQFN^zHs9m6*_Wl3uhW@TSFdq)sIkZpb3L^Vu#{#u?JW28~ARg_;!gGXD1Qz*oYQ52b zuG0poS7IDV@gR5{dygOaOWVSPn-uVhxxQ1|I9R7UTu!-F$x)t>_w&2gjUoW%VKxgC zU`C>7@idl^r;v~aDi*^wA)wrs#0wMrN4#`~AkE9eJUiXX9hIGCy&QmyJ)MD^0Msrk zrN@g@K~S}O;g>*1X)%%TPokpe%ywls0I^!lgjNCY%a4!V09I519zw!0D`3S5!}W;E zN>%`P$Pz2@Zx(0|0Jt%Dhb1cXZz|{>|6l5~Y{}WQyxq-tXBY_0^V2s*QYo- zv+(GnJD~FCPDRJI#XE4sDqoR17d>w5Lk0daWTY^`d$cTnYHpemaTI_gZ32Gih7p(q z;?#w*Iu&MkdPR7oG9BWC#9Z#{Fxh+{35kbEwqCyz{bcoL!m{a@4)PQ~F1aR`JR9vu z`DQ<&v#6lkYIXWu@Q8cc@tu?)AkFKDWk|ND=R^Zp@0c ztaV7)Ex({KC_T$>Wr!V1^+Ql5ej(3Sj+xWlNpvI1{Fe&ZYj!8E==DL|md>ZdbB|jt z`e+5|xFj0G`TVpp_;)e&0R6Ce7M2W?d807CF~b3}M;bMkN+*(h$^tWc|JcO8Gz)$B zOABSvoRY)O5Y+Q@)IBY5VWH-&@-x(ZN;;)%^6J7p^Eab!?yWGXt;-3Eiut2Y_i8n* z2AL>uNUBhW{30*d5jx7c47qa?{(4+hJXAs+c?cgWzLGjY$m49k8QL8xE==AfA%qA2 zS|UrEqOY#4lwPx18#Ko5Py;IOD!fT&Picvod#BEmhVy=xvPx1L31@FcbZs^56BhHa z%TWD6sG}b90h9`=-^B`{&*l zIZ{$U8%tE(rY*_y|4kG5VX)l={-oQM(BUane90%frEugwpDc)-Mh}X=8KDpQx~Pb| zo=T61^W`WtgZk=H`_r(m`=*znl+$e@J+vmgu$sPVfx5Ie`;?~@CsE3DG~RAX3K=ux zSlmmWr4*&RI9@tw;m-o}YA1Ft(0KeE9#7ZgR{Ss8OGTpYEPm(z6g_WDuk!H9>sbza QXaE>k*8?sEdrw^XH_eaiEdT%j diff --git a/doc/html/a00052.html b/doc/html/a00052.html index 6bc200d140..6c96c886f0 100644 --- a/doc/html/a00052.html +++ b/doc/html/a00052.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,118 +33,127 @@
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_unordered_map< 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_map< Key, T, Hasher, Key_equality, Allocator >:
- - + +
- - - + - - - - + + + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - +

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_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_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_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_set.h
  • +
  • concurrent_unordered_map.h

diff --git a/doc/html/a00052.png b/doc/html/a00052.png index 3ef6d1904236c3649eed742e1ffccb737f059db0..0e3c40436b0749b06f4880bfe7bb6a5d63b2a463 100644 GIT binary patch literal 2163 zcmc(fc{JPU8pnUBHq+Kx>%FQfe=yYHRemw1Q?5hACIo zUaHZSQmTonl4xx$VhhI7SZmZ8N+xx0&$)lyGymP^ocDb{?{nVoInVo^_xq#}Y|JGO zD;)*^KoVzRY6k#fG!YXHiizer0th5p6bKiHSfNlT!kLA&NNV#hBH9~GO-%<uq15tloP7RF!HWt-OM3|EfLE_9r*wISKM4S+z zZ#C+(%*S$5mI=!#IF0Wv;Yeq`i!wvud~%{;)Y*3ac(?Dx-4K2N`EJKnt46*#i|Id> zFA%oeN0eyH?!^5L?YTUMLwayL-=BD7fot>2ft#aXi6{GJ+SEU{j095RRGA|ghy(4K zf*1bQp;#QI>=O;v2^-ty%66g~BpqCCzg{ekjM%R5bS^LNGt%X}BlFwBLdCk6xl40wdk(KPJY2VdbHfZ6q*+B684+~Xw zDOSl{s^3EtuX$WLbtq^peE(@o4t)+!m>OjVqS_u%n#*=MU~W)p^@Jk6F*)g#g?@43 z%sTv;cMfzhe1Bp2(5`ad&nNqyyewtACUqo#FkEQm8kI!XEAH%~S76c`ki>$+)+0M% zoGR9Hdp?X=eFjB=v^F*_ZP3^W}p7Fc?Xt z+`+p(T@&ibN7p?rN|T}w=GDTHSI%rvxm4B&xu4i2nfxlm@1-TiS_(4gP$R8@+#2A9 zU7Du2Rm)Z@g|x@|eQ}OkN#ow!e1J4FWGYi;(Nge1I2O3VCc_e-UZQFc5bq#FtfR~); z_yKy+TnnS`N0AV3c(Gzb%_PG4N%MNcdCSIJ{|4LVM@kCs44@}eAw^Yn0+YgEt6bz+ zqqz^Kjug*-Et)?7Y$<%vv*-KRCL(eMqgEk$k)CUZKl+Pwo>*4t|{FO5` z3v<^;$#b~W#4D|nmFf>-Om1;`rV15f3wjf~A$l)u(zrccw`)5`S3K>r0(4@Lh`#*E z%*v{{rCmYD&y#QJgNp2S*Z9$oc8inc|n-H;Vxnp z%M3B5GnO|B-SLy$1)+}d4OxC5RCq@@gV3gVBU71oLe*bsjJ6H4XJzjbtj{cYDxA9j z`~{EtU@hr1kzK0=1kyK~ds`weK>_eMxf2G6c>xklrj-_7;qNPas_LPy3Ab+v6$>lb zCO{#f+?fV|n}Bz1G5fUuu$QhQA_1fYR6l`(BoaWsr9<{qLH}0y`e64d0AgClP%mO(V+jzeUAe2QhCRq8Pf%crr`b zPT?7`71RQV;0`73R05U!_DOlptLh;t-|v?5aElM=Zo^sbxeiWx)lka(%(_EI1?K&K zwYAla#opGRo*qMjH|pWi^qNddqSEkZOxj^ZWmmIf_{s67dytX}fZtb

%&D`n!k)nmRBRw>7L!JTTtgbUH4Ud1^Y1<(emkCvDEoqcbB3* z#(ZgcNZZ3aW)XUfNaI}Oq`G$K*Vv~guV-1-J~i7MCjmZ zXE*hJ_Y*~!dUzcRKUAn6G-5~6+zffc{wiN`$4aHHGh*WK*t6?3Kak`s$&~B>C}ya$ zYqv%iB%b?3Um=$CF9-2}<@c2g>wgw(Sr@TSPei5)1RkD!V>>I$HGJhkuLd|~pw1cV zz8Ekp2#Zn$XAnbEeR_b=3_T*Esp@yjHQB+&2*xcG_@s^DlnUreOr=EvtD|jtcT?;- zjg};?D@<3;0NOM)EE0~RWXFYX`F-2-YcGc}KVlP9{)*djrLkFd6l96K{oXJCxC|Rv Wl{ldK-4|&<6gaGnDdW7?KmG)aA@ZgG literal 2109 zcmc&!Ydq9z9{*cKxpb3g9Z@DyaxVu_rzDe1GBd7WB33Rlg}-s9%eb6cY9w}Xjz}@X zIFlqZF2iDCXpR^fj7u&tV=&C*&i*;OFZRuT_TBzIpXYhLzvuh>ZZE!1sw3ixqTHY5 z002;g+u1k)fHVkU$6eCUp6XV*MW{MnLtWn7+=Srdv;<6VdXn*exPQO)u|^x48r6%$C$PhCW1`rp)B-wg!|up9=WXAZN|O=WOxT?7$#- z`gNBMZ#=Tqs5CmVm|sB@hs1yOfUlYiH1+-k-&QH=|A}i6Qy6cUyEn>XQKKw@nGXZ2 z2@4xd9fh60R|tvSZ;%40(5i_ySg4!Tl3Wv|#!=6XL4fR~UT-+@0JSx`fKMSekKTwndLRkgW7~?5er9!IGO-*WRLEil3KzjUM5=Yemv9X(g5WqzGz*^Qpdyot-3S6NE5^83CL5tyaBpvj@NMAjkO zw75BaHdnjmBUYkr7A2_lA&_1td4!OF!H@ma5xsT}o$qAj%;PHkK)~*+)Q-92^z|MN zm#{90X%>CK1O`X+kSLuzN3d4DB6NE0V+>8L7`xkUPXKKfdt79_eEUdN8ca))mUVBH zF<}ucjkDj3CiPpi8KYUGY;TQ?DW%|xcw4Xodp+9Ht6sce^iX%8BS}CmEu{OjexF{b z9zgQqbDo5oQ9wL)ql+^-Ogyiz9H-?e50?H?4wj4FyWzv#UYK*$BUY^)dA>SdJ#Nu*bnm*mcj z$vvITpN^~UFcU=td_eOkwa*{k`I|2%&#HmKx6ra!+|V3jLOC_G7k|gd;lmuu_-`lD zP-Y52vrBDys)3Ypnnz~v=Mh?-kI3)i3u=jxOZvH!k6#b4>iGW0&SYBk6RIR3ufqu5 zhoWV1842_eN$Jn3-w1+sS6bW9f=+hMVvbIA&M4K|d}96S(BgN@`oWLB4=c&^`S~O@ zs+c$Bw-|UL`3#(#v6E3QYr77ws z5XG>eDouF0$QW0DXUVUCKH3|0s?IiC-Gymi^LX;605*l6XYZLQAtVg+FJv{Y-lqLq zRt!=GObb$&KZXM*K7*jiZ+uv*9r4+#!>%AC$yU413Uw%z{kM)CyJqt!H6`*iAT!)6 zl4Ss@fb^VCsRba70kr47rTfWZ00oAC$_Eq@rLq}WlX{k0lvf&hoA{yBe9MK(NI`*y z(&Rl*hD4|aAj1IK86;^#Kn5e@tez-k2tX}tC%OMesKOsb{(qrsh<^Evg)cb zRkY~8dhE4!1)1i%9T$)st@D`Q_@H3MQs41YWC2Ih?xrzs92m!7-hEo&r|R^!YUB;DjLvR&qDa@U93 zL3ot2XK(75y|LGzx{J}6SISr2<2UjG$FYU9;0o|9JcH6OhFAI$Tv_r957R4b{$zbI z?$-hu;;cBmT$L&)3~=xxonrSnc{deum8DRox}G}zy24O|F2|R{+u$4bM2oWG&pUa#7lrKv*8Df#xVs3BlZ&l~x+*Eum4GsVS~Z#0^3tE%80`(N zW+Nu{oH`K7yP~3c4l<&eE`XU@iYwu%oyhyP5$UQ;-&&vE0XsNGnZ)v1_{9R`8at46;Ecf x=)j>owCvpG+~}3q_dDFN7exP)zW!6+2~uHeYddU%TFwHH!7n3hC>Jpg{t2fK34#Cs diff --git a/doc/html/a00053.html b/doc/html/a00053.html index 827a0aa33e..5e3ddf525a 100644 --- a/doc/html/a00053.html +++ b/doc/html/a00053.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,118 +33,67 @@

-
tbb::interface5::concurrent_unordered_set< Key, 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_set< Key, 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 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
 
 
+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_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)
 

+Protected Attributes

+hash_compare my_hash_compare
 

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

diff --git a/doc/html/a00053.png b/doc/html/a00053.png deleted file mode 100644 index 9f9a0992510e41f62a52fb5849b985065586c9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2095 zcmc&!c{tnI8vYr*bTl5*Dzy~TQW`o}?blW{jS^B(OSnobv9=|ysfq|O(%MQ@tW(9b zmfDwxHnv3C(jbjiEFlEdmIk2|u|;llZvUNs?|GhczW03Ryytt*^PKmjIyu@(ODRbK z03Z#ugE#|#I97z64vULMj59x36cn6bt~NrUPy|0OZA4|hd>}&KI+aTON9v@SXnOdT zv!e?j+H}xH`d#$_K#~H5Si54xctsQb3uYilK5}zUs8;f8c%Cl!anIB8Ax5GKEid5T zDDttRey2~vAa_zz3dBx9FB8)>6rotlykb$%CmKpSz`tc4CY5V_TfFj$nXRENf)z~; zD^4?2@?DoIGuaAnW6yg)cl4(f>&iYDOm@>y(S31W=+JSW&7e4xnOfTOc>J7DmOva1 zgwD?&;ip`7N!FY-d`cWH9ojf&38e*7)-OAR6J%_@qROKEmrc2rvOd$<8fW}jn{HgW z4{+$p@|x!KSXW*|-e6c|Wxjk*7o*Jp%E-9@O z$R|mfIu@Q?c&1Bs&>B--4#${KhS64HtWw6PZCl;5L6ZWecMoUOMu?;zX}2O!Rrzl6 zmlm)Y$+(W3`AE>Sk(|6w)SVu$&_5aI;Ikd}B>%z^wd1_82*kX+cO1Fcer4gu`_3l4 zo-T+};8jcu-Deu#aHUuoMqmthni|e3+c!ktK>TjxGJsQwcJaa9Ktv*jaxrxUnLQ`& zwShDgs|=n$6U6!drYA@Up>JWC6Fxc8HKT|oN__%dYpiTJZT%q!nSOhzD}7&&0Ol}~ z7I$maDK7(KH@CgonL2wXf^nLZ|FCw;B)yi^wOE3fq0h=(&q~=%94q!pOU88gO0Rn` zp1p=UO{O_E=C|9HvqGy`PgHhwOYv`frJjvP91A2Z<{nMg{s_Z{TGy>Qc*C6o24w0v zH(lNkE;w)G-`apaPMSQj7M4@0OWMBlL`5mQJo;pScK63QFRVMfQHMN`?kK5Hwr9a^ z5@yfopD$o?PP*!l&vhDbrH9NOAPalzzw9utnZ>)v@-5|(Sm4<4iWif%YqhnHA}=Mg zI1nZ6=_U8+{cw|_Si!<)ElA<4IS3u){PADr^>kF6TfC3e3k#f=6?pPdCNKN9DfssM zVDT0_)xyLh8QZIiZoLY#dW4KZCq;UGWph}q5@&Ktys^Xp4KDv()kP@Q2yTWmX1`B+ zaZgqT#f386C=be!5g2j|{Z#<&0&Nj#{jP+zX7k3nE z2psoGgxLO7l5MOYXv;4*oC_spiF`KHxUSJ>N6ab<^*E^2XU8-Y*+pLjLzTXJG((1K z11U&3EPLQ&O~4n3R~G`H1hMmgLF4)XDCp_JkE$LdvcD&i*J>>RabIB0mn)_Kh@U@t zM1~3|B#5d25>x>8iYa~`knmN?`^FN9_;yTExuh=uqKXt8P%HfYqDnjbpQ&BB|GPU3 z(hWL%APq!aZ2CLN874VXw4_nX@;Vinjr*tviLC-LT$XKE`h3O@htl2(Rt?k{b7B%W z|DXP(NB$tV8+%;6179Jxr@}3AKX;K49T-%x?ufJ0A_o)S@m)s?%lY@29Z}Vpc!%-h z-iz^U(tNDWwcYWsfIr$VV8p0pOvC(1 zH=UGM5mtFLP~Ll911Xi?eY>TwoYjYoG6T^4g}2F{LP#Y7mkYJQK2lHj!BSN*BZ^)( z+RSwv8k8YvXA~QBA289Yx6SF=)t9lME=3*>XFn^!-WzSx5rr4nj8IGD(vr%VtqSJi zu)Q$io?^0H+Td_wyHedR8@U#q-bXLmT>G-^wi+%F+F|KFoOhnIOhp*M6a}|yh;D9S zsLq6K)iBM?*xCiVUlEp7kdmw^zvU&}bXuR$J#g?svMvR$DX7B+N}Y^7BJt82FSE z7O2QorJ_LYAmk$q#`sWz35_X^F;XLK@nmM8#Z6z7K1H2Y>}XsAc0?vZ_mR|=MuI{Z rVxYf$iQmnGv(r8O67rXe^?nxuRQP`4q8x|~h#J(!5mNuFZ{mLeEav7A diff --git a/doc/html/a00054.html b/doc/html/a00054.html index f0478f52ee..bf5c466cfe 100644 --- a/doc/html/a00054.html +++ b/doc/html/a00054.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference +tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,63 +33,118 @@
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, 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 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 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_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)
 

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

diff --git a/doc/html/a00054.png b/doc/html/a00054.png new file mode 100644 index 0000000000000000000000000000000000000000..6fa3b58c9af6e07c385a119cbebb0f48e002ea6d GIT binary patch literal 2174 zcmc&#X;hNi8vc|@D~AXxG|K_UN)ffRNX=3Vk2Yv%T1p{BYC={dDrz^&B*=j*OzU*W zL@Sj@PdVfmXk~dS$Hbu`XK_fuDdm28&i#AW{deEB_TJBa*M9b}*84o0ap-`X`YN4O z005|C_q%uj0E7kNL#hz4KLxDz0|)pak0Y)Mg#v{A!!l}eO$vyXT2)omaz=+9I90vq zb-)_{7cEBfyCc?MN*(Lse1xVXy)V8Z*`l_L$&o4)5*sYtSzi~8E+n4cm6?%;+OPch z)7I=Xg1fmW&FhAFcG}KEMsN4CQ;iT^g(Ul_8`ubcL+?h}&I zKIOLX0G{?Jt!~^AU+ij|5k)=DKF@AAgK}@LY!ur2M{cB>yHOCekPCdq`0eTQ2iaO? zne7TLe6)*fH#qMfFw%0&DESjLm+h=eHnqqadJy76r66IFL8?d+2KPU`995ew+t+B- zg=m*;(frr2!Hxwzo-wXF-;yw$wWTmKF+;*QGW!3xDeXdr`F=v7RZO` znbPxm&1#=b47%K^dT|l+l5K047(Uc7Hyd@t_1iH8F}~iJS4fC74SZd5!lwhOXgn{-e6Ho1Czy*P>IQyz50wYVp%CsdP3<#6;)4N=>vBF*7vYpr)` z2#a<1@BVnsDRAp(%(&=h0c0hneG_s*&gis|ZT?gcq!RrF-{P5v^X=i5G$adYmV!=3 zAT%gK)%PL)YV#aF%ZX$~8fa!B1gbaSQc7X$gMdiQD9^_D8l2%est^O^^WZV%AM6+}K7^Rai{53H3xNX0 zcnHCbgW1sgQFN^zHs9m6*_Wl3uhW@TSFdq)sIkZpb3L^Vu#{#u?JW28~ARg_;!gGXD1Qz*oYQ52b zuG0poS7IDV@gR5{dygOaOWVSPn-uVhxxQ1|I9R7UTu!-F$x)t>_w&2gjUoW%VKxgC zU`C>7@idl^r;v~aDi*^wA)wrs#0wMrN4#`~AkE9eJUiXX9hIGCy&QmyJ)MD^0Msrk zrN@g@K~S}O;g>*1X)%%TPokpe%ywls0I^!lgjNCY%a4!V09I519zw!0D`3S5!}W;E zN>%`P$Pz2@Zx(0|0Jt%Dhb1cXZz|{>|6l5~Y{}WQyxq-tXBY_0^V2s*QYo- zv+(GnJD~FCPDRJI#XE4sDqoR17d>w5Lk0daWTY^`d$cTnYHpemaTI_gZ32Gih7p(q z;?#w*Iu&MkdPR7oG9BWC#9Z#{Fxh+{35kbEwqCyz{bcoL!m{a@4)PQ~F1aR`JR9vu z`DQ<&v#6lkYIXWu@Q8cc@tu?)AkFKDWk|ND=R^Zp@0c ztaV7)Ex({KC_T$>Wr!V1^+Ql5ej(3Sj+xWlNpvI1{Fe&ZYj!8E==DL|md>ZdbB|jt z`e+5|xFj0G`TVpp_;)e&0R6Ce7M2W?d807CF~b3}M;bMkN+*(h$^tWc|JcO8Gz)$B zOABSvoRY)O5Y+Q@)IBY5VWH-&@-x(ZN;;)%^6J7p^Eab!?yWGXt;-3Eiut2Y_i8n* z2AL>uNUBhW{30*d5jx7c47qa?{(4+hJXAs+c?cgWzLGjY$m49k8QL8xE==AfA%qA2 zS|UrEqOY#4lwPx18#Ko5Py;IOD!fT&Picvod#BEmhVy=xvPx1L31@FcbZs^56BhHa z%TWD6sG}b90h9`=-^B`{&*l zIZ{$U8%tE(rY*_y|4kG5VX)l={-oQM(BUane90%frEugwpDc)-Mh}X=8KDpQx~Pb| zo=T61^W`WtgZk=H`_r(m`=*znl+$e@J+vmgu$sPVfx5Ie`;?~@CsE3DG~RAX3K=ux zSlmmWr4*&RI9@tw;m-o}YA1Ft(0KeE9#7ZgR{Ss8OGTpYEPm(z6g_WDuk!H9>sbza QXaE>k*8?sEdrw^XH_eaiEdT%j literal 0 HcmV?d00001 diff --git a/doc/html/a00055.html b/doc/html/a00055.html index 4f147626a8..4832f73092 100644 --- a/doc/html/a00055.html +++ b/doc/html/a00055.html @@ -4,7 +4,7 @@ -tbb::concurrent_vector< T, A > Class Template Reference +tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,770 +33,118 @@
-
tbb::concurrent_vector< T, A > Class Template Reference
+
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
- -

Concurrent vector container. - More...

- -

#include <concurrent_vector.h>

-Inheritance diagram for tbb::concurrent_vector< T, A >:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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
 
+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_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

-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
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_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)
 
-
-

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
-
- -

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

diff --git a/doc/html/a00055.png b/doc/html/a00055.png index 4ffff4fb1059c9d9a8a0874b4a005bb96fa0379a..3ef6d1904236c3649eed742e1ffccb737f059db0 100644 GIT binary patch literal 2109 zcmc&!Ydq9z9{*cKxpb3g9Z@DyaxVu_rzDe1GBd7WB33Rlg}-s9%eb6cY9w}Xjz}@X zIFlqZF2iDCXpR^fj7u&tV=&C*&i*;OFZRuT_TBzIpXYhLzvuh>ZZE!1sw3ixqTHY5 z002;g+u1k)fHVkU$6eCUp6XV*MW{MnLtWn7+=Srdv;<6VdXn*exPQO)u|^x48r6%$C$PhCW1`rp)B-wg!|up9=WXAZN|O=WOxT?7$#- z`gNBMZ#=Tqs5CmVm|sB@hs1yOfUlYiH1+-k-&QH=|A}i6Qy6cUyEn>XQKKw@nGXZ2 z2@4xd9fh60R|tvSZ;%40(5i_ySg4!Tl3Wv|#!=6XL4fR~UT-+@0JSx`fKMSekKTwndLRkgW7~?5er9!IGO-*WRLEil3KzjUM5=Yemv9X(g5WqzGz*^Qpdyot-3S6NE5^83CL5tyaBpvj@NMAjkO zw75BaHdnjmBUYkr7A2_lA&_1td4!OF!H@ma5xsT}o$qAj%;PHkK)~*+)Q-92^z|MN zm#{90X%>CK1O`X+kSLuzN3d4DB6NE0V+>8L7`xkUPXKKfdt79_eEUdN8ca))mUVBH zF<}ucjkDj3CiPpi8KYUGY;TQ?DW%|xcw4Xodp+9Ht6sce^iX%8BS}CmEu{OjexF{b z9zgQqbDo5oQ9wL)ql+^-Ogyiz9H-?e50?H?4wj4FyWzv#UYK*$BUY^)dA>SdJ#Nu*bnm*mcj z$vvITpN^~UFcU=td_eOkwa*{k`I|2%&#HmKx6ra!+|V3jLOC_G7k|gd;lmuu_-`lD zP-Y52vrBDys)3Ypnnz~v=Mh?-kI3)i3u=jxOZvH!k6#b4>iGW0&SYBk6RIR3ufqu5 zhoWV1842_eN$Jn3-w1+sS6bW9f=+hMVvbIA&M4K|d}96S(BgN@`oWLB4=c&^`S~O@ zs+c$Bw-|UL`3#(#v6E3QYr77ws z5XG>eDouF0$QW0DXUVUCKH3|0s?IiC-Gymi^LX;605*l6XYZLQAtVg+FJv{Y-lqLq zRt!=GObb$&KZXM*K7*jiZ+uv*9r4+#!>%AC$yU413Uw%z{kM)CyJqt!H6`*iAT!)6 zl4Ss@fb^VCsRba70kr47rTfWZ00oAC$_Eq@rLq}WlX{k0lvf&hoA{yBe9MK(NI`*y z(&Rl*hD4|aAj1IK86;^#Kn5e@tez-k2tX}tC%OMesKOsb{(qrsh<^Evg)cb zRkY~8dhE4!1)1i%9T$)st@D`Q_@H3MQs41YWC2Ih?xrzs92m!7-hEo&r|R^!YUB;DjLvR&qDa@U93 zL3ot2XK(75y|LGzx{J}6SISr2<2UjG$FYU9;0o|9JcH6OhFAI$Tv_r957R4b{$zbI z?$-hu;;cBmT$L&)3~=xxonrSnc{deum8DRox}G}zy24O|F2|R{+u$4bM2oWG&pUa#7lrKv*8Df#xVs3BlZ&l~x+*Eum4GsVS~Z#0^3tE%80`(N zW+Nu{oH`K7yP~3c4l<&eE`XU@iYwu%oyhyP5$UQ;-&&vE0XsNGnZ)v1_{9R`8at46;Ecf x=)j>owCvpG+~}3q_dDFN7exP)zW!6+2~uHeYddU%TFwHH!7n3hC>Jpg{t2fK34#Cs delta 1015 zcmdlhu#iKsGr-TCmrII^fq{Y7)59f*fq}6L$PVCO29gFvhwe{Qw5n&`;OXKRQo;Ck z?(3r03OsDnXO`{zUjKOVkG2B|yL~SS+Ij6&ykW$uJAMC>DVI)cs15SUO!1gxq8HYx z((Aoqf{J(xmuHb9jB#+8Qvc%um#>H2_ln=&SFanN`Oo82`0~B}t1U9WP7U-j3QrEL z2)Ovi|7>{vilkF7i|gh5CKt|}c>dw}^6SxQAJ=?cxxsK5=ViZh8IoCAlRkZo6Ln?( z?i}@QUA)?El#pD=6<#{V$K>_(Qkq4C%>+bs9*2BYxN?#W7BV`hdfz$?eprYnpH_a zW3w*Di>end+3t9?-)gQ&^`y`np%c}w-CxsXv?Cw44CdWmIzYnRcfvfR1)X0NseZVU04wU_dvrRvluuSm>SFt|E%iR%yfXYFpPnP zf$_jzAV-0rVycBU!=4X+f81Hf0#wED{>T#60>>3#9SjF}H##!zPzV93cVKwXc4GlU zjDQx3~aW{s=Y%!PU?nN01+ES8n^~|p~MCS*nIUZef(^X{kqBTn|f0zXW#YNPgiLy&N+3h_@Z?c@e#W!6Mx%cQv!*1Eugd9#L?JfI diff --git a/doc/html/a00056.html b/doc/html/a00056.html index 6258c8609b..cd93034d4f 100644 --- a/doc/html/a00056.html +++ b/doc/html/a00056.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference +tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -33,102 +33,118 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
+
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
- -

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

- -

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
+Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
- - -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 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

-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
 
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)
 
-

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

- -

Combines data access, locking, and garbage collection.

-

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

    diff --git a/doc/html/a00056.png b/doc/html/a00056.png index e861a116ac2abfa8cb7650d913490b2180287e83..9f9a0992510e41f62a52fb5849b985065586c9cb 100644 GIT binary patch literal 2095 zcmc&!c{tnI8vYr*bTl5*Dzy~TQW`o}?blW{jS^B(OSnobv9=|ysfq|O(%MQ@tW(9b zmfDwxHnv3C(jbjiEFlEdmIk2|u|;llZvUNs?|GhczW03Ryytt*^PKmjIyu@(ODRbK z03Z#ugE#|#I97z64vULMj59x36cn6bt~NrUPy|0OZA4|hd>}&KI+aTON9v@SXnOdT zv!e?j+H}xH`d#$_K#~H5Si54xctsQb3uYilK5}zUs8;f8c%Cl!anIB8Ax5GKEid5T zDDttRey2~vAa_zz3dBx9FB8)>6rotlykb$%CmKpSz`tc4CY5V_TfFj$nXRENf)z~; zD^4?2@?DoIGuaAnW6yg)cl4(f>&iYDOm@>y(S31W=+JSW&7e4xnOfTOc>J7DmOva1 zgwD?&;ip`7N!FY-d`cWH9ojf&38e*7)-OAR6J%_@qROKEmrc2rvOd$<8fW}jn{HgW z4{+$p@|x!KSXW*|-e6c|Wxjk*7o*Jp%E-9@O z$R|mfIu@Q?c&1Bs&>B--4#${KhS64HtWw6PZCl;5L6ZWecMoUOMu?;zX}2O!Rrzl6 zmlm)Y$+(W3`AE>Sk(|6w)SVu$&_5aI;Ikd}B>%z^wd1_82*kX+cO1Fcer4gu`_3l4 zo-T+};8jcu-Deu#aHUuoMqmthni|e3+c!ktK>TjxGJsQwcJaa9Ktv*jaxrxUnLQ`& zwShDgs|=n$6U6!drYA@Up>JWC6Fxc8HKT|oN__%dYpiTJZT%q!nSOhzD}7&&0Ol}~ z7I$maDK7(KH@CgonL2wXf^nLZ|FCw;B)yi^wOE3fq0h=(&q~=%94q!pOU88gO0Rn` zp1p=UO{O_E=C|9HvqGy`PgHhwOYv`frJjvP91A2Z<{nMg{s_Z{TGy>Qc*C6o24w0v zH(lNkE;w)G-`apaPMSQj7M4@0OWMBlL`5mQJo;pScK63QFRVMfQHMN`?kK5Hwr9a^ z5@yfopD$o?PP*!l&vhDbrH9NOAPalzzw9utnZ>)v@-5|(Sm4<4iWif%YqhnHA}=Mg zI1nZ6=_U8+{cw|_Si!<)ElA<4IS3u){PADr^>kF6TfC3e3k#f=6?pPdCNKN9DfssM zVDT0_)xyLh8QZIiZoLY#dW4KZCq;UGWph}q5@&Ktys^Xp4KDv()kP@Q2yTWmX1`B+ zaZgqT#f386C=be!5g2j|{Z#<&0&Nj#{jP+zX7k3nE z2psoGgxLO7l5MOYXv;4*oC_spiF`KHxUSJ>N6ab<^*E^2XU8-Y*+pLjLzTXJG((1K z11U&3EPLQ&O~4n3R~G`H1hMmgLF4)XDCp_JkE$LdvcD&i*J>>RabIB0mn)_Kh@U@t zM1~3|B#5d25>x>8iYa~`knmN?`^FN9_;yTExuh=uqKXt8P%HfYqDnjbpQ&BB|GPU3 z(hWL%APq!aZ2CLN874VXw4_nX@;Vinjr*tviLC-LT$XKE`h3O@htl2(Rt?k{b7B%W z|DXP(NB$tV8+%;6179Jxr@}3AKX;K49T-%x?ufJ0A_o)S@m)s?%lY@29Z}Vpc!%-h z-iz^U(tNDWwcYWsfIr$VV8p0pOvC(1 zH=UGM5mtFLP~Ll911Xi?eY>TwoYjYoG6T^4g}2F{LP#Y7mkYJQK2lHj!BSN*BZ^)( z+RSwv8k8YvXA~QBA289Yx6SF=)t9lME=3*>XFn^!-WzSx5rr4nj8IGD(vr%VtqSJi zu)Q$io?^0H+Td_wyHedR8@U#q-bXLmT>G-^wi+%F+F|KFoOhnIOhp*M6a}|yh;D9S zsLq6K)iBM?*xCiVUlEp7kdmw^zvU&}bXuR$J#g?svMvR$DX7B+N}Y^7BJt82FSE z7O2QorJ_LYAmk$q#`sWz35_X^F;XLK@nmM8#Z6z7K1H2Y>}XsAc0?vZ_mR|=MuI{Z rVxYf$iQmnGv(r8O67rXe^?nxuRQP`4q8x|~h#J(!5mNuFZ{mLeEav7A literal 1888 zcmcJQeN@tC8^?cWl4~<-a~fIZvSq&2@ohfoqn06N8KxpihAoqyHI;fMSowl(ol2RB zPNXR*)89jcC@#&HAk83_O|jWNzMH#O4MBCpT5Z8#i;2{srE#!xe%Bh!8^GDg3v zqoczte{hTOXikbmM*+s7ck5{v#sdK0)1k<{m~*hn3T1}!&RV2R73J=7`%E+8mzRpd zCnUqi+jTW5R58M&^>a2IdB6#8`@K+j=4`u%$AHQo_!}%?eAkNw4C&OAqhsCWgNqJN zuUrLfrlq^$LB_9*Wj)H^w{`(X)ufN1c(VinVJKzGZd>{z+?|_ zZF8_!F0c+r3R!Pq53K4?L?C}pr&~$?mvj({bigT}9x3=@o3R%m(Q6OzzA8~_J8{d~ z?B&#D|JKh&^{Zd+>vW+F0GDb_FG2D{BT7nE>Z5D(s~7StQTn5OF(}LajmhxWHVbAD z=R()jG-#v+{^ie(q1tIgc6(Jzj^*wKrC=$?Ac}u6X{U~}!?&mxp^s~`qR$Q_k%1)38d>;(2-kM_e`JkztSB9TGm5P*UM9Tfg#bN`H5te(Js!e=#2FDhr&*J24Z%jKfIH zOuN|yrF-xCLQ$g(Rq5noxHSXxV@ZbD=r=c##?;KA`xlQr*j`>@#U1U_xZ~Z$Xs)IyV!$Ylyc)9ja=o@q{wH1=i2wP%S2;upyzhlhNlMVtYBcRio4QZgetDB36~EGMh_8R0 zPMdb4@s-nWBR;^k)%X$XmUD3Ru8Cd8D-KOXd3~tc`StCEWXO*P&QA37LRNnMYjq5% z|L*T}eovTXO?UD%;`Dj(T#4b?qe>+vu<}59Jb9zfq(D@-HR2;b-_8E=?~WWQw)p{H z`qj);)I7F_|9t3sJkM7&keF&_bz^0irDfu^v0vaLL?wsb0( zRFXgBDQFpUfs%;7R^fuRhacT#1o-?p{}|NT7^j!ETp^YWlIl_Y&e`1>Y%USDd0gfr zK>MnBQV`4rQR?uv58B7o)RxbST*;@M{9P{e-fAN7tLsu+9Rw4lgj*@G6hAmOQ}>f| z_U(5TfQS9f0->A}yXR#1@KYex-F-kZ;SsiN!*JhxNO_sAtU#~04}$6!M^Wl~AT7|d zkr6@j!K_%Y9Pb(Gda0UY*7_~VQ=r_DYJ5*su@Oca`~|HDk!$x>1_8IT#{k^@kvcjI S diff --git a/doc/html/a00057.html b/doc/html/a00057.html index be8a60e968..6543958f40 100644 --- a/doc/html/a00057.html +++ b/doc/html/a00057.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::continue_msg Class Reference +tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -33,23 +33,63 @@
+
-
tbb::flow::interface8::continue_msg Class Reference
+
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
- -

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

- -

#include <flow_graph.h>

-

Detailed Description

-

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

-

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

    +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
     
    + + + +

    +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
     
    +
    The documentation for this class was generated from the following file:
      +
    • concurrent_unordered_set.h

diff --git a/doc/html/a00058.html b/doc/html/a00058.html index 573bf74da3..6255390b1f 100644 --- a/doc/html/a00058.html +++ b/doc/html/a00058.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::continue_node< Output > Class Template Reference +tbb::concurrent_vector< T, A > Class Template Reference @@ -33,132 +33,770 @@
-
tbb::flow::interface8::continue_node< Output > Class Template Reference
+
tbb::concurrent_vector< T, A > Class Template Reference
-

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

Concurrent vector container. More...

-

#include <flow_graph.h>

+

#include <concurrent_vector.h>

-Inheritance diagram for tbb::flow::interface8::continue_node< Output >:
+Inheritance diagram for tbb::concurrent_vector< T, A >:
- - -tbb::flow::interface8::graph_node + +
- - - - - - - - - - - + + - +internal::allocator_base< T, A >
+::allocator_type  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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
 
+internal::concurrent_vector_base_v3::size_type size_type
 
typedef
-internal::function_output
-< output_type > 
fOutput_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

-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)
 
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

-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 C , typename U >
class internal::vector_iterator
 

Detailed Description

-

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

+

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

-

Implements an executable node that supports continue_msg -> Output.

-

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

    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
+
+ +

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

diff --git a/doc/html/a00058.png b/doc/html/a00058.png index d8775967504b3755493a5c165a0791c2538966e7..4ffff4fb1059c9d9a8a0874b4a005bb96fa0379a 100644 GIT binary patch delta 1015 zcmX>kw2(uwGr-TCmrII^fq{Y7)59f*fq}6L$PVCO29gFvhwe{Qw5n&`;OXKRQo;Ck z?(3r03OsDnXO`{zUjKOVkG2B|yL~SS+Ij6&ykW$uJAMC>DVI)cs15SUO!1gxq8HYx z((Aoqf{J(xmuHb9jB#+8Qvc%um#>H2_ln=&SFanN`Oo82`0~B}t1U9WP7U-j3QrEL z2)Ovi|7>{vilkF7i|gh5CKt|}c>dw}^6SxQAJ=?cxxsK5=ViZh8IoCAlRkZo6Ln?( z?i}@QUA)?El#pD=6<#{V$K>_(Qkq4C%>+bs9*2BYxN?#W7BV`hdfz$?eprYnpH_a zW3w*Di>end+3t9?-)gQ&^`y`np%c}w-CxsXv?Cw44CdWmIzYnRcfvfR1)X0NseZVU04wU_dvrRvluuSm>SFt|E%iR%yfXYFpPnP zf$_jzAV-0rVycBU!=4X+f81Hf0#wED{>T#60>>3#9SjF}H##!zPzV93cVKwXc4GlU zjDQx3~aW{s=Y%!PU?nN01+ES8n^~|p~MCS*nIUZef(^X{kqBTn|f0zXW#YNPgiLy&N+3h_@Z?c@e#W!6Mx%cQv!*1Eugd9#L?JfI7 zU@)~-2hvj7Gne4;{>ZqPO==(!}bvxvqC9Hc}HV#w@kh z@MC?>7c7m(oacTmMAtX54hg8unF#V=`Vv{!-+b!^h@4T12*jr|TN zbVO2~XwqdXM&q8T<$_IR3oq|Z&)YjKif3mPmGe8oGwllRBC*^)j}xnA+*Xh9Iss1^=Q;C-)#+l>&may`RK!mNt|-aN`?{F{2-+hoGlkEHnuD zI%CWS%Rx^1V9%jMnIeBl&6W8AKd+!8O(M6`2Y|n@KJK(PEJzfM(idVDt~#^9-p>hc zO^DLJ30zyf_hCo^$`QoZ5x8JX^C1|nQY+f@{>}FNHAEMD1!%8SLtp~v*R8kz zZDyHA{)^3C6MDe-^6*s~i-k;@s3%QkNgH)Lp^6N{ZCYzPbTjZNQNAuaEztn@2p zp7$>4rOcUA87KaJ7H2!>)wgDQE~P7i)Emx0`m8wL#%EV}=T;x#*ij|sdB{u(3wn!b z9F0*vXssG93!8Z*8MdHj4QGsG57U-zfgU=B6gA&cMow^zcI$Tqx~oJ5c_B6LMJ*Bb zE~!qCy`6dLV9jp%?MDyyfWNi6czlZ2EZWpnrO4ks7Rjzo=}c}JujfsNgi4MwuaNs? zAW@s#n!4W9s5c0@wV@CpTv8S@*iy=OyQRRdau1HOSVB5Zp`u4O30vvM4^`uyN_gwlix0IN zI7Fkw#5@}6yd2PV#gIlNc)Qs6M#<+Czm9q~3){!4lsHb=K%shnJlh7rRo1)TMpO| zeuO!wPEd0&thp3oF`3NsjZ)LcL|2ddYZg5ry0)OEaLio^ri-xHef|rVPTwD z)3Iaca^3r1CMKd6VTI|@;sh-SXfkDM*DS(x{2*5Iv~TSE9W*pG^$g6Yx6oiRxF+T? zlC^;&AZHht8UaWD{rv#7`_CA%;^N{iHiI!bJw08n0f29r^9lf&n-?JS9{_*RrFv|D zjQl#|KOt5b{HJB@YceqeZRt_g9!-tmwKl1AhXi|*AUzzWDCwUrx6tT`Q%za5!Snfq z9HXFCyHljzqQxUwMk!B7Cz`s~TMs3T+`+Zg8)J&n`xkHtQRC9tYI)9zxT3z7@+&|! zntCI=Z-~K~vN=9A+q)yK?y4Gth@}6)pr?}KsY9h>xR2EEnChXyj~m%;weO14Kc);G zQMVn1-rKa$437+EMp|~N(l(AX_UyOAF+C6bmD#eCz{6D)tA>=(LPJAhXH>BX=oRDN z>z$z7Cg}+4Dpnil=hf^ei!$o${)zl^ac5T$BsUj+tM0yn*-WyZQFa ze%QLx73rllw41J3cw6{^v_f9lTNSBmEcVy};qx0eb~WW*(9bpVL8QI!uGgpaM7)sS z+_EHWrio;JQs!2 -tbb::flow::interface8::continue_receiver Class Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::flow::interface8::continue_receiver Class Referenceabstract
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
-

Base class for receivers of completion messages. +

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

-

#include <flow_graph.h>

+

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::flow::interface8::continue_receiver:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor:
- - -tbb::flow::interface8::receiver< continue_msg > + + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor
- - - - - - - - - - - - - - - - - - - - - + + +

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
 
+typedef const
+concurrent_hash_map::value_type 
value_type
 Type of value.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

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.
 
+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

-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 ()
 
+bool is_writer ()
 
- - - - - - - - - - + + + +

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
 
+nodemy_node
 
+hashcode_t my_hash
 
- - - - - - - - - - - - - - - + + + +

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
 
+class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
+class accessor
 

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 >.

+

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

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

    Combines data access, locking, and garbage collection.

    +

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

diff --git a/doc/html/a00059.png b/doc/html/a00059.png index 1fbcea13e9a28cf84f895908c4504c1bf67176c4..e861a116ac2abfa8cb7650d913490b2180287e83 100644 GIT binary patch literal 1888 zcmcJQeN@tC8^?cWl4~<-a~fIZvSq&2@ohfoqn06N8KxpihAoqyHI;fMSowl(ol2RB zPNXR*)89jcC@#&HAk83_O|jWNzMH#O4MBCpT5Z8#i;2{srE#!xe%Bh!8^GDg3v zqoczte{hTOXikbmM*+s7ck5{v#sdK0)1k<{m~*hn3T1}!&RV2R73J=7`%E+8mzRpd zCnUqi+jTW5R58M&^>a2IdB6#8`@K+j=4`u%$AHQo_!}%?eAkNw4C&OAqhsCWgNqJN zuUrLfrlq^$LB_9*Wj)H^w{`(X)ufN1c(VinVJKzGZd>{z+?|_ zZF8_!F0c+r3R!Pq53K4?L?C}pr&~$?mvj({bigT}9x3=@o3R%m(Q6OzzA8~_J8{d~ z?B&#D|JKh&^{Zd+>vW+F0GDb_FG2D{BT7nE>Z5D(s~7StQTn5OF(}LajmhxWHVbAD z=R()jG-#v+{^ie(q1tIgc6(Jzj^*wKrC=$?Ac}u6X{U~}!?&mxp^s~`qR$Q_k%1)38d>;(2-kM_e`JkztSB9TGm5P*UM9Tfg#bN`H5te(Js!e=#2FDhr&*J24Z%jKfIH zOuN|yrF-xCLQ$g(Rq5noxHSXxV@ZbD=r=c##?;KA`xlQr*j`>@#U1U_xZ~Z$Xs)IyV!$Ylyc)9ja=o@q{wH1=i2wP%S2;upyzhlhNlMVtYBcRio4QZgetDB36~EGMh_8R0 zPMdb4@s-nWBR;^k)%X$XmUD3Ru8Cd8D-KOXd3~tc`StCEWXO*P&QA37LRNnMYjq5% z|L*T}eovTXO?UD%;`Dj(T#4b?qe>+vu<}59Jb9zfq(D@-HR2;b-_8E=?~WWQw)p{H z`qj);)I7F_|9t3sJkM7&keF&_bz^0irDfu^v0vaLL?wsb0( zRFXgBDQFpUfs%;7R^fuRhacT#1o-?p{}|NT7^j!ETp^YWlIl_Y&e`1>Y%USDd0gfr zK>MnBQV`4rQR?uv58B7o)RxbST*;@M{9P{e-fAN7tLsu+9Rw4lgj*@G6hAmOQ}>f| z_U(5TfQS9f0->A}yXR#1@KYex-F-kZ;SsiN!*JhxNO_sAtU#~04}$6!M^Wl~AT7|d zkr6@j!K_%Y9Pb(Gda0UY*7_~VQ=r_DYJ5*su@Oca`~|HDk!$x>1_8IT#{k^@kvcjI S literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yU=#te12~w0dtRv;x2;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z+CL<;uuoF_;&8iO|PtYT&7!x{{Cu!WlIJpH%(Zk)?*HqxUK{)B zbbf?~dtQo6wGxt^wq*L%d5)9puFFn&ewJJM<`nOq_>a+({C-V)%6#fGuid`cm*3{D z(=U6wrheDi>+4Dv{L8VOJ@@av{XGHK6z2G>-n=^0Gj{XOcIK<9<`>@INU}WFtQfS7 z_4v~7x%YRzyLznl*+t`ZCgR#JPj1P$J7b#Jevh@SY*B_U_P*EM7CFx@PpxR1yp8Qq z%PCCO(|j(Pv?tZIr!AhkT=sXmh2U?iDazTmlw~GvxPK(z+2vgiAI{y!o@$;Da7@Hl z=e^U-eVaWtUawzwuW(7r^l58LA6)kM_<3d9N$rV7Pf{el1seEWN)OX{_A=Q&sJ^Of z@+=`|&g9J=&b!xW*8QsZSt9Sw|LgMdrRTYqpZ+qz>R$S0t(99}1gtjw;xXaD7s*S{ z-+h_5B!1<6?o{3F&P(~cV%$zmXqohD+Dm2BUo;{ zoAcQ2^9#xFS(_VkZ=21!_&hDc_7-2lD)Gz5V>`;;virZACC8d2jj7uX#W89l=riy<*+H`R-mZYn5M%tzt0V8ykFR z!*-|2sdk&!?C)^mTHAZ|sZuRZ+~1#WOMbk3{PeQ9^xpUW^QYOBA9pD*kX`PtJLTfb z;=*lj`)^t@8(fqXX^3C`-+s#0ihFZ5GURJ0!$SxfP#}t5W9gJhQg;6tRaRIknf+C; Q1ZGJFPgg&ebxsLQ07JvT7XSbN diff --git a/doc/html/a00060.html b/doc/html/a00060.html index 32db0ab7d0..166178d23c 100644 --- a/doc/html/a00060.html +++ b/doc/html/a00060.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4 Class Reference +tbb::flow::interface8::continue_msg Class Reference @@ -33,62 +33,23 @@
-
-
tbb::internal::critical_section_v4 Class Reference
+
tbb::flow::interface8::continue_msg Class Reference
-
-Inheritance diagram for tbb::internal::critical_section_v4:
-
-
- - - -
- - - - -

-Classes

class  scoped_lock
 
- - - - - - - - - -

-Public Member Functions

-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:
    -
  • critical_section.h
  • + +

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

    + +

    #include <flow_graph.h>

    +

    Detailed Description

    +

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

    +

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

diff --git a/doc/html/a00060.png b/doc/html/a00060.png deleted file mode 100644 index 835e586da28f510461f35f10ee6b875f87115368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;`0rLn;{G&VAeWT7k!KXax{RL!$l>xJq`cSn6sJFY6vPl4uDlWoIi%_@*P z+w6Tx%d;x@?~CQ7mrh)mw)^WPuZc_khq=G!fAKv&spMDOepB{eJO8P!Y_{{?zxucQ zvi%o}e~F$8|NS?6x%~3^d*=ODd78ZU{r1Jp-(}7JsO?qx8hXKdQh!t2q#BcpvuE~d zHSoV;G+5KNtlq}$nEb4|CV7eaoT`S2qUV@@XzXGC5Lm(gVDSgJ1MUxP8~P7bGsw4o zXRzaX&sZaJ4^6@RZ}-mRL?ki*y#kc|!eCc*(SQ2e;D0s$ITr+dPK+x0{^HKMYdj53 z*~dixp7rgQ+xBSs7l!4ttWrJaS3Ni06SGO*^!|Cym+`Z{gKnoEtWWXBWP7Z*-G!#8-uoewf*(z5{GoaYNcD(SWmlc zUNb#;{p)WGOPPLJ|NZ -tbb::flow::interface8::internal::edge_container< C > Class Template Reference +tbb::flow::interface8::continue_node< Output > Class Template Reference @@ -33,54 +33,132 @@
-
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
+
tbb::flow::interface8::continue_node< Output > Class Template Reference
+ +

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

+ +

#include <flow_graph.h>

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

Public Types

-typedef std::list< C
-*, tbb::tbb_allocator< C * > > 
edge_list_type
 
+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

-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)
 
+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
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Detailed Description

    +

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

    + +

    Implements an executable node that supports continue_msg -> Output.

    +

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

diff --git a/doc/html/a00061.png b/doc/html/a00061.png new file mode 100644 index 0000000000000000000000000000000000000000..d8775967504b3755493a5c165a0791c2538966e7 GIT binary patch literal 2370 zcmb_ed010d7EgeAL`?+I5ky0<1y`_G0|)^nDk4(|C_Is107W4X6pON&uoxAo6}3>7 zU@)~-2hvj7Gne4;{>ZqPO==(!}bvxvqC9Hc}HV#w@kh z@MC?>7c7m(oacTmMAtX54hg8unF#V=`Vv{!-+b!^h@4T12*jr|TN zbVO2~XwqdXM&q8T<$_IR3oq|Z&)YjKif3mPmGe8oGwllRBC*^)j}xnA+*Xh9Iss1^=Q;C-)#+l>&may`RK!mNt|-aN`?{F{2-+hoGlkEHnuD zI%CWS%Rx^1V9%jMnIeBl&6W8AKd+!8O(M6`2Y|n@KJK(PEJzfM(idVDt~#^9-p>hc zO^DLJ30zyf_hCo^$`QoZ5x8JX^C1|nQY+f@{>}FNHAEMD1!%8SLtp~v*R8kz zZDyHA{)^3C6MDe-^6*s~i-k;@s3%QkNgH)Lp^6N{ZCYzPbTjZNQNAuaEztn@2p zp7$>4rOcUA87KaJ7H2!>)wgDQE~P7i)Emx0`m8wL#%EV}=T;x#*ij|sdB{u(3wn!b z9F0*vXssG93!8Z*8MdHj4QGsG57U-zfgU=B6gA&cMow^zcI$Tqx~oJ5c_B6LMJ*Bb zE~!qCy`6dLV9jp%?MDyyfWNi6czlZ2EZWpnrO4ks7Rjzo=}c}JujfsNgi4MwuaNs? zAW@s#n!4W9s5c0@wV@CpTv8S@*iy=OyQRRdau1HOSVB5Zp`u4O30vvM4^`uyN_gwlix0IN zI7Fkw#5@}6yd2PV#gIlNc)Qs6M#<+Czm9q~3){!4lsHb=K%shnJlh7rRo1)TMpO| zeuO!wPEd0&thp3oF`3NsjZ)LcL|2ddYZg5ry0)OEaLio^ri-xHef|rVPTwD z)3Iaca^3r1CMKd6VTI|@;sh-SXfkDM*DS(x{2*5Iv~TSE9W*pG^$g6Yx6oiRxF+T? zlC^;&AZHht8UaWD{rv#7`_CA%;^N{iHiI!bJw08n0f29r^9lf&n-?JS9{_*RrFv|D zjQl#|KOt5b{HJB@YceqeZRt_g9!-tmwKl1AhXi|*AUzzWDCwUrx6tT`Q%za5!Snfq z9HXFCyHljzqQxUwMk!B7Cz`s~TMs3T+`+Zg8)J&n`xkHtQRC9tYI)9zxT3z7@+&|! zntCI=Z-~K~vN=9A+q)yK?y4Gth@}6)pr?}KsY9h>xR2EEnChXyj~m%;weO14Kc);G zQMVn1-rKa$437+EMp|~N(l(AX_UyOAF+C6bmD#eCz{6D)tA>=(LPJAhXH>BX=oRDN z>z$z7Cg}+4Dpnil=hf^ei!$o${)zl^ac5T$BsUj+tM0yn*-WyZQFa ze%QLx73rllw41J3cw6{^v_f9lTNSBmEcVy};qx0eb~WW*(9bpVL8QI!uGgpaM7)sS z+_EHWrio;JQs!2 -tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference +tbb::flow::interface8::continue_receiver Class Reference @@ -33,44 +33,237 @@
-
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
+
tbb::flow::interface8::continue_receiver Class Referenceabstract
+ +

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

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
+Inheritance diagram for tbb::flow::interface8::continue_receiver:
- - + + +tbb::flow::interface8::receiver< continue_msg >
+ + + + + + + + + + + + + + + + + + + + + + +

+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

element_construction_guard (pointer an_element)
 
-void dismiss ()
 
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.
 
+ + + + + + + + + + +

+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
 
- - - + + + + + + + + + + + + + + + +

-Public Attributes

-pointer element
 

+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
 
-
The documentation for this struct was generated from the following file:
-
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
+
tbb::internal::critical_section_v4 Class 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::internal::critical_section_v4:
- - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - + + +

-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
 

+Classes

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

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)
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+void lock ()
 
+bool try_lock ()
 
+void unlock ()
 
- - - - + + + + + + +

-Friends

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

+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

-

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:
    -
  • enumerable_thread_specific.h
  • +
    The documentation for this class was generated from the following file:
      +
    • critical_section.h

    diff --git a/doc/html/a00063.png b/doc/html/a00063.png index fba36b8c91269acd17d4473428f5d5e566a1b3e6..835e586da28f510461f35f10ee6b875f87115368 100644 GIT binary patch delta 576 zcmV-G0>Az13GDe*yeS zL_t(|0qvdbj_V){M31FP^Zsvqlae$*$j9E&x=3Czo5nG4I=IeX%*=)rCP{-T=q1TV zK`%)@3VKQMQ8#*%Jy)8Va30NrOUf!qdQ<)Ar*+cE(3ZRP(n^t}|5iuu59s$_Vs!dm zzcmN?x&9@ogFa8ctNS0OztMC0e-+MG`~7RDAE%$Zp8q7}W4-UUql5PyH~c2OB=uF$ zOOlU*UXpw?(VLl#Du55_0WhqFrhhy}#vht~f*%-vYNdWl5iU=QF%qvM)8? z&k5;YnzUx6P&T1VN$an{Dz{i-+hLngprm+F?S=QtQ5zH^zgd>fqZq~5QmSBfsY|P| zQnvLy`r^_E8&Inv+SUcje@3&cmt(K%_5h^<`8)mdtK6k>mQ}Cm6Ko#) zv-jl@?yBL8epflIW^qlwdU#s*_bR7FUp{`T?yDx0dsEWaJ*W8#S{q7HIjngWHj@Vc O0000_}MvGJte_0W+Blh5;aki)ZwgYu>O6AH?;Mhg2_FJB@# zJg+a|z=#cY*uy)yupFaXl^;adl5IRzKT6xg@YgLB8#Fz>oh%_fWUt9vVdkbr`R4$v zON7rmAS$X^$coM^IN=JT>WhAjS%LKTTx?Ofa+;!`bm?kYvF_|>&WYk@?oNplCA`1h zM<$orhQ?PLu8`%$*n0tzhPXPVr(%QOV7Vj`nX=}2_|;`r{<4HqE^pMkyz=%#+-h>q zy+@lq=2bFT<;>+e?-NC{bbY2UKc%~23Hva#ZD>&#@`$E##gke*T!Rcw7{ei8GF>bXXGz>z9#k4^^~U^Zoe%4n*o35g9CZfDN{ql$k&0! zOuxyU>|+J?w7zI`;w(vYc~hl5ZJ@f{!C>={Zqc@*h7&UHOKvZO7ligJgbp`!lRo); z-&sep+8iZ#nNa=%o4Z2$x?h5bN5nn-Ob4*#5(zLpluQWpEov=$F}0t~VjHcAGT)}3Ir54d`8ikJp$!O@}xf)CgQN>8ogY=IFNblAY|0)}A5f^T4i0`bP( zFvbvV+Lo#Oho|H`d46y%I@F!--W(Et=cRiU&8pYniB!HEF*mwzWFcgo}7Y7NlketqEa^QB`O!!FY1dk8z_@H2PI5Mk_vLFXvaK zE<$Wh=;ms9jE=da&8U#>f!5bQe~FfLngAru-1E3{{KK(}l>)ib$}sy)RMOqkgViri zikN0YP;JIC?$A)xjGT(ZQs~kF_^4F#WLd*Uet0KxpGwgFthB6VOdGvDY$=87l1IYx z&O0gzH47!hYJlY~+1^il`zFeI)*~#sgTz!p+|;Oh^9`Ap4*8tM|Q>{x=HIVkH0o diff --git a/doc/html/a00064.html b/doc/html/a00064.html index 245fac8d20..38f0907dcb 100644 --- a/doc/html/a00064.html +++ b/doc/html/a00064.html @@ -4,7 +4,7 @@ -tbb::filter Class Reference +tbb::flow::interface8::default_opencl_factory Class Reference @@ -33,106 +33,42 @@
-
tbb::filter Class Reference
+
tbb::flow::interface8::default_opencl_factory Class Reference
- -

A stage in a pipeline. - More...

- -

#include <pipeline.h>

-Inheritance diagram for tbb::filter:
+Inheritance diagram for tbb::flow::interface8::default_opencl_factory:
- - -tbb::thread_bound_filter + + +tbb::flow::interface8::opencl_factory< default_opencl_factory_device_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 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)
 
-

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
-
- -

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
  • +
  • flow_graph_opencl_node.h

diff --git a/doc/html/a00064.png b/doc/html/a00064.png index a4923e5f6f12f4fc6c995790a39ddc23f8d14425..e66950efeb2243f5a83b7fd24c0d7687bfa1bf55 100644 GIT binary patch literal 1261 zcmeAS@N?(olHy`uVBq!ia0y~yVB8I42XHV0$?eYCH-VHyfKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+151ski(^OyBoA3hmPoX_gW(Un9FK&9W-{-Q)(q);m4t07?3YsM1bJA~8lGaVnARkq0&#sjz z>Yj#MH*0@R|C{>HE7R)DjR)8Fc}=RCdRWl&Rf<|U_k80o2M(3qD-rHHY}Ni}V{!kD zyVCx9;*Fn9`KJBQ%1(CuX6dLOs=MPWK7a8OJv{l%yPpNWa2diq8 zcdre}J3al|v$$N@n`OqwE`Cy5sc7@)`!~&eQppPY^LhK$yxllu$-+9xHEGS;t3Lnv60Tk!ey?_^q^H#t`2=-OP0y-8 z%!n^dHut?eW!AFHF13dDSNR>d6y{8lb@2H6N5!V0!>f!zvDA6`2L>jsn~W}@lbAbJ zrmzbHpX5_m22=!0Jqt{sG>kWJ={xkWsn!AIv3D6Gtg~%B~`ZF z_FC?ryr(I@tuFZOT+8$#be7=dSJy(OGswMe)NNS()&C|ih34G%v0QrhrhU}s>N4kO zhVa)yW#4Od{MFyMc6piK2xf3?Sy&#qd9@!#}y zr+2fS|8|4_-@g@wYahQov-bFUlf_#X>y;b7IlO$*?feU`F74iY)r#YTXKa-5?e9{q z2l)7$E~`B|aIW#~#*2$j-o3OhZP!MoElfX_EZT6}>*=0e3*Ph!p^F`X+joIpa zH-7$I_@Lw@?~mm-a;G0H?CNoTa(Vsc+OX$-lfLxCnm^;ewteI0@(U}j{fsJ(GCtoG zvpco^{><5L-t3bOyX*e_?)Qzejk7AZul=@@yRP=Bs3 z^BlVC_;^m_<%j~)&F}78R0N*f^Qwd4Pwie^k&}E6Ht$kB{rCOO3Fea-`APykjNjjr r|GZjh7PeT;d*h|48tSEa@r(Ss@W@+X0;YF?WfOy^tDnm{r-UW|1GaR7 delta 713 zcmaFM`IS|%Gr-TCmrII^fq{Y7)59eQNKXXf4i07@dEx#~r-_PI^-L|EE{-7;jBn@O z?t5jx!*HDM(EtC(mruX2Bw){kV6p6{tDF_CA1u5T?&9LqIAbQOQtz2FHJ47DIin6@ zu=N~CkuL-7a^0eK&3O{=B1s;>MfBCAuyOFLvM9;r2fLrF-wQ z8YAQCZsT6LPcNqT##v-5*U$d8@cBiv=i)ufW}KNm^XvDw-%s3;@4a~8%Fj4sVp}xG5=3WUy%EcF;H^8LM}3${|T#r-M@-Niw=9E3-V9Y{>NCqy*!Slpcl}BR2*+ zNo9ulJ%SDX$2bnCC!z>%*p&`)VummVC#rT6qqTZMJ)r`LvzE0T^*1&kqIIDDj z?iM@4W&Noi%&OMKm0ruwK7B!6t}8G$cENtZTYEp%?KxJyHoE-wR(Iuw??0wo{A9(E zy2Zb|A>2~Af8YM>@9A$9H~-$u_Cf5Y7~=;|pi4}cz|>DgbtNH=hTt7cElP7PewFgo zoO4k{#7DD!Uf?{_hWQ={l~4^>sr@-2UYh9zx=W`RFIcgPO{q5|wDyum=+$)NNl(|^ zzjbw0XefWi+PeL*yFKRqNH`PTbIYl3qRy?$$M0lozFYmgXzhxxx9jg-dwE-H?WV6W zR#&#=)t|bRD8BesU`ToSU;XHt;=cQ&uZ!=_+$Hf?N+(D zTfd#z`Sk6=!1`76*BC9 -tbb::interface6::filter_t< T, U > Class Template Reference +tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference @@ -33,62 +33,26 @@
-
tbb::interface6::filter_t< T, U > Class Template Reference
+
tbb::flow::interface8::default_opencl_factory_device_filter Struct Reference
- -

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

- -

#include <pipeline.h>

- - - - - - - - - -

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_ > &)
 
+opencl_device_list operator() (const opencl_device_list &devices)
 
-

Detailed Description

-

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
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00066.html b/doc/html/a00066.html index 20465dbe26..8b1289e002 100644 --- a/doc/html/a00066.html +++ b/doc/html/a00066.html @@ -4,7 +4,7 @@ -tbb::final_scan_tag Struct Reference +tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference @@ -33,33 +33,76 @@
-
tbb::final_scan_tag Struct Reference
+
tbb::flow::interface8::dependency_msg< T, Factory > Class Template Reference
- -

Used to indicate that the final scan is being performed. - More...

- -

#include <parallel_scan.h>

- - - + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+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
 
-

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
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00067.html b/doc/html/a00067.html index 55a33d1b7b..0820202fbd 100644 --- a/doc/html/a00067.html +++ b/doc/html/a00067.html @@ -4,7 +4,7 @@ -tbb::interface6::fixed_pool Class Reference +tbb::flow::interface8::internal::edge_container< C > Class Template Reference @@ -33,39 +33,54 @@
-
tbb::interface6::fixed_pool Class Reference
+
tbb::flow::interface8::internal::edge_container< C > Class Template Reference
-
-Inheritance diagram for tbb::interface6::fixed_pool:
-
-
- - - -
+ + + +

+Public Types

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

Public Member Functions

fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 
+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 class was generated from the following file:

diff --git a/doc/html/a00068.html b/doc/html/a00068.html index a442c81cf2..bd23f2b05c 100644 --- a/doc/html/a00068.html +++ b/doc/html/a00068.html @@ -4,7 +4,7 @@ -tbb::interface6::flattened2d< Container > Class Template Reference +tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference @@ -33,85 +33,44 @@
-
tbb::interface6::flattened2d< Container > Class Template Reference
+
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
+
+Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
+
+
+ + + +
- - - - - - - - - - - - - - - - - - - - - - -

-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
 
element_construction_guard (pointer an_element)
 
+void dismiss ()
 
+ + +

+Public Attributes

+pointer element
 
-
The documentation for this class was generated from the following file:
    -
  • enumerable_thread_specific.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_vector.h

diff --git a/doc/html/a00068.png b/doc/html/a00068.png new file mode 100644 index 0000000000000000000000000000000000000000..0b05314963f9bf5563543dda942f32e1d95f8dc4 GIT binary patch literal 1053 zcmeAS@N?(olHy`uVBq!ia0y~yV7vfi2XHV0$$2hU;((MyfKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M?bB7srqa#v=P6oGN@-qrA=>G6;LTg>zFpRFnZ#2tXQ8^2`+Cig zNpW+Rx7_;qCu8C1I4#exnh6&Y`F$5o`tnKUa{k4zck9Amzf>!#efIovzzUVvf+cgD zRA0{BarVSh_n_K0*ZWr1f8yDC=8tl#*CcJASv@E&DioFyoao{b!SF$_hEatgHkDz#6%}Xpk4-`+ZmLDG#Uhf3OYo%5?r`g4U}3b zmHuexq^vZlgM*)=f#pCWnz0rw_xzsPH^>)XJooc)M14b%jqwWhdpUV_cQ2=&a9%u@ zU6h}}zu-o-?ZV0J{<$$LVec0p5uiMo(t8VYgQ7@9ec;>>lBqP>m`P+F-?kfezo}Iw< zx%P5yNoi>5y>hdyrPr=4`SU$!zr?dOI>w@tXU7Wf*Dv`wGiB>~?WZ3DHZD7~_`=t- zotIuF8H(O2vlFgz*%!ChXV0(8oPFbV(q+B)cJr#1rcYkIc(Vz09eI@hL8@FFQ z(>`#*`+PtHw_R47-KW+)y8{|jTA3;)AtlT_NHXI7#~7|J|H59(w+@(>89ZJ6T-G@y GGywo%=<6B) literal 0 HcmV?d00001 diff --git a/doc/html/a00069.html b/doc/html/a00069.html index 0cdb0b978c..5310f7542e 100644 --- a/doc/html/a00069.html +++ b/doc/html/a00069.html @@ -4,7 +4,7 @@ -tbb::interface6::flow_control Class Reference +tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference @@ -33,41 +33,221 @@
-
tbb::interface6::flow_control Class Reference
+
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference
-

input_filter control to signal end-of-input for parallel_pipeline +

The enumerable_thread_specific container. More...

-

#include <pipeline.h>

+

#include <enumerable_thread_specific.h>

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

+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

-void stop ()
 
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 T , typename U , typename Body >
class internal::concrete_filter
 
+template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 

Detailed Description

-

input_filter control to signal end-of-input for parallel_pipeline

+

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:
    -
  • pipeline.h
  • +
  • enumerable_thread_specific.h

diff --git a/doc/html/a00069.png b/doc/html/a00069.png new file mode 100644 index 0000000000000000000000000000000000000000..fba36b8c91269acd17d4473428f5d5e566a1b3e6 GIT binary patch literal 1259 zcmaJ>eN>WX6n{u#XmTt!!@|rhKaQ5!YLjMZ=Ft(BT4-ho*dcXu!AqhzhY6N$>JCcN zrYT~lrN{g(N#E3|WUFoYIW!z1l5LrSga?{TCIn7S>p8-%YY2LKq*Cd|oY9@g z6_Z2`2?I#czxM2D_f@e0`wm1|p2*)oI+r~VoG;&%R8X$RsGQ<`{0XFU!tSKqgAV8cFW=O{a+G07 zxff>1OgOZ0h`NU2t=OtosYYBYNk(|UT2?mm8EZQAU%iH8{%L1eL$MB9G+2iwU8Gli z(WA32kpGc~E-F_~kX7UkLoGAjlNHN8QvB4@HF>mz`}YU%*nCU>$Wp^alCl_m`-vISs&$1?J~feH zr``HW`CR%nv4>_PKVfrv6p7#T20}Y`3nwm*_Y3T#LR&lz1zfbs*E_Kp+M zfg?CrG>i8Gn?dREC9EUBfIjC{^k!fVUfJ->FbE;hq7!9~yxEeeeoLoxvEE648M@N@ zp8%{JL1gv-_B=B6bY%Ph(Scc{uvV!fzt$Mmq0}-9XmD$~tAIW`jP~6jB!wWxCWeIWAes6&dP1Q!x#H-v({*>)^IXxZ;KctJw z?X_}dSAN52nfz=;T0}>wT9&fnY|>=44_#kbZ_Em7zj%|Jk}>%6HWvOREVtjs=w(`2v!E?gXE^2(uY)P>epgHr7caq<{jz&iyN$ul+$y|^Y$iYo3<;?B HKY#TfaOiV_ literal 0 HcmV?d00001 diff --git a/doc/html/a00070.html b/doc/html/a00070.html index ab81fadbea..57c532d0ff 100644 --- a/doc/html/a00070.html +++ b/doc/html/a00070.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::filter Class Reference @@ -33,133 +33,106 @@
-
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::filter Class Reference
-

Implements a function node that supports Input -> Output. +

A stage in a pipeline. More...

-

#include <flow_graph.h>

+

#include <pipeline.h>

-Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
+Inheritance diagram for tbb::filter:
- - -tbb::flow::interface8::graph_node + + +tbb::thread_bound_filter
- - - - - - - - - - - - - - - -

-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)
 
- - - - - - - - - - -

-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
 

+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 Input, typename Output = continue_msg, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
-class tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >

+

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.

-

Implements a function node that supports Input -> Output.

-

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

diff --git a/doc/html/a00070.png b/doc/html/a00070.png index ec9684e5e2108704b1527bf10c6c2df23cdf3295..a4923e5f6f12f4fc6c995790a39ddc23f8d14425 100644 GIT binary patch delta 713 zcmeAa|H`V^8Q|y6%O%Cdz`(%k>ERLtq$dJ#2M05dym0@g(?mt9dZrdn7srqa#PxY%coyh60m1NuvqrfRn7|64;J1EcX4rQoH3JCsrSs8noB3noKXic z*m{nnNE+K({kpYpQ`yeMv~NbrZkId0zMHmsf8NnRapTS65?vRC7rSrlaC@Kr(!KXt zjgfJ6w{frBrx(+E<1Dh3>t}yk`23>TbMc;KGtNw(`SttT?E6xV;l$6lToG5bx-W@&=6>FSOS!nV*J4)QSZzAYR2CSU#DydYhXNQoK?C% zcZ;3jvi{T$W>xFrO0VT-pS~b3*A*BWyI{ZIt-YV>_8co;8(n^TtGjZ;_a9R(ezM|7 z-Qr)~5N@g5zi)r`_w=`ln}2U+`ylpHjPZjf&?P2JVCtu$x{?q_L+}o!7Nt2Cze@RP z&bg=};-gtVFL0h|!+Z~fN~i{`)c%|hFU|A<-KA5E7pz#trqmk}T6@VO^lG~Cq^Ild z-@3XgG?YJMZQcIZ-5zs)B%BHFx#iS1QRmj><9D((->rULw06bU+x2&^y}YfpcGK4w zt1H{`>QCKD6kmKRFr>WvuYUARao>H?*Tr{d?vnVbopV|KZPfLr>#B}Bo_D{UUTkMr zHObvx@@%;7d81vvmKh~me*8ba!vD|n$|rAcWmj(T-y{F|#laW<*5rPE(^itccB|an zt>4buI!GY6jO+9l6Eeq47rY|B#ap`WH4PsHzp~x-P*dSg~T*w zYQ}Bmp(N>$am-q1(qWS^Br`O_>~B%e)BbOtKhE=<_j%S@?^^Hs{=V;f*ZY0%?~0p? zqxu591xiXv>P`pt9ad6OL4bZ4GZ)+!?wS7%JapX-xjQHn3ZVWmG#*Xk-T>OnRa;v- z?+RiBUNKRJU5+RLCsf*ByIX*0U8jA!-D8zST>~Cp4r26t*A ztwL?Uy`fN(%HVrH;|q?iTD9s!iZ>4Dj!Ru9oUg1Lx(=`d=+pkG5Ni>p=hEU&`Uh*mSu0|&_Vt%%jD7#)daGP2xstA)- zm+ok;gCLU|v)BZIC$4MQE5dvR(>9vL5aDs{EAYMOgeS7V2OQ3iv_lHko;efYzXRkU z-+g9n2Y^xC{uP?e|@wfa!X}7pPh8Hetwn=P>X$!KB@{TMItQh#ZvdNEZ!v1|o?)%(-CtKiE|K)`y zb7#$c2#Pk;A;kRACvBk$-s|g=#WyH!tmZSP>^Yds$%fA4J5F_tq?18SgBhQ!^)t$} z2u1Yxz{M-ZSlMCLSw{VD%Y6|KvL#~Xf!APmZqQ-MOt*?iLUIZrQ7Z3uu6lkLiM_;!z&laQxagQQ`jyh$wjR-vRO zSbz~qg1b1=@+{}6-Mrxy5xvQ;bX_rzi8dkS~qS3d-!g5@tE=(mYK4tuf^%z}HQWvv6BI)|Paz-7J*m|dQ+G3O>3c+;F|j+kr{ z#__GfFnJ;a9XP>+>4zKFH#9_-)!WOSkQWb5ym)|?iR2u**;J3Jyr268l6FT(C_)ch zv^~~;D5R5NK=ts$MXS=#t;v>+PNk0SnocFk4pxK;CF5;llN}WCz1TD&ypx5;FpFhV zB`=^s4S#dQg?$G_t;;j+aC72Q#0y&%gKlvqlvfH37OpO+{d@_u2`}^*pmkFe>MeS} zsz|2(f}X12T=?r||8Gx=&R|v*ka`%1oAHq%2EUNOPrj+a;0s=TI1#_A_HOHHT`y~u zxd(#+jt^*E-)L}QG(P_R*3D0%F#9t#>dv+5qUN=~rUcj)Bsc{J9G!Jiez0Y8#jMMX zR_z}yyFwPB2@Zoa#1J{tcDz`N= zY4xZ*H=J&vx$%&{Nn^~8w_6fKiA&J_PQ=4r?*$!E@_6`7Q_ysL0W>S=CNh%1sM6e2x^`@*i4SdV8}y$}V^cOww$E4FMdO(t zJJv>4|A5H;{adT0S=*^;rMGrh>(}Ps6K9yh4s1Q`$Y&%emtd=pOSu{}dON5fx$*V~ z)~%&uH&}WbI(VYU@s1t~dS6V;URJYN#3W05U=ir}_FqDURt0kSe6NreO4TCdTy!lI zxpGCH7G&zg+o`$I$g#_UxgxEIS%MWTtempfClsYy7EHIL)~qCq`Ld`iXQS8UWDiT~ zG98|XxNycZ$f7>x2*J8oNA1kbZT-Q6lmC9PEVmybXfPYQuZ3kBC7umR@xkBnE2-8c z_+XRadPlNx9-u8B93?`Dr9C#|^V96+8WAU_h`(lc-};>K#*ruz5<}^(52*}#DQF|w z7!qDs)fDrtJbWKh`~x(cUe6`QDSbACLf>@tTaNpi`rlh|fBCU=_7^0{vtt*dH6 zW90O~6Yb`9O=xYGjIN|V3RiqcagjWayHS8s_*J5$Dd4tefrCA}Cfc=EGym93g8yDk pzFDK|BA5fn?6dDAH^5z?{Er+f5*4l*2E19x$-!mclRW_!{sixEoAdwx diff --git a/doc/html/a00071.html b/doc/html/a00071.html index 7fef722b81..509c39cd26 100644 --- a/doc/html/a00071.html +++ b/doc/html/a00071.html @@ -4,7 +4,7 @@ -tbb::interface9::global_control Class Reference +tbb::interface6::filter_t< T, U > Class Template Reference @@ -33,42 +33,62 @@
-
tbb::interface9::global_control Class Reference
+
tbb::interface6::filter_t< T, U > Class Template Reference
+ +

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

+ +

#include <pipeline.h>

- - - -

-Public Types

enum  parameter { max_allowed_parallelism, -thread_stack_size, -parameter_max - }
 
- - + + + + + + + + +

Public Member Functions

global_control (parameter p, size_t value)
 
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 ()
 
- - - + + + + + + + + + +

-Static Public Member Functions

-static size_t active_value (parameter p)
 

+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_ > &)
 
-
The documentation for this class was generated from the following file:
    -
  • global_control.h
  • +

    Detailed Description

    +

    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

diff --git a/doc/html/a00072.html b/doc/html/a00072.html index 246cb49603..eff985502d 100644 --- a/doc/html/a00072.html +++ b/doc/html/a00072.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph Class Reference +tbb::final_scan_tag Struct Reference @@ -33,315 +33,33 @@
-
tbb::flow::interface8::graph Class Reference
+
tbb::final_scan_tag Struct Reference
-

The graph class. +

Used to indicate that the final scan is being performed. More...

-

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::graph:
-
-
- - - -
+

#include <parallel_scan.h>

- - - - - -

-Public Types

-typedef graph_iterator< graph,
-graph_node
iterator
 
-typedef graph_iterator< const
-graph, const graph_node
const_iterator
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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)
 
- - - - - - + + +

-Friends

-class graph_node
 
-template<typename C , typename N >
class graph_iterator
 

+Static Public Member Functions

+static bool is_final_scan ()
 

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:
    -
  • flow_graph.h
  • +

    Used to indicate that the final scan is being performed.

    +

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

diff --git a/doc/html/a00072.png b/doc/html/a00072.png deleted file mode 100644 index 9b061dff8c16e7d4bb0fa6626283eb0970d85a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmeAS@N?(olHy`uVBq!ia0vp^3xGI)gBeJ!Z0=(NQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;!QR!z2m}JA{;Q8rAt;6J8=jp3g<*k(t z_L!!!SBL$9QNjO^&C8?o+!QB$X|myqW0+_8pYg$O>A(66*Y|38=D!qY@UQ-`yTN}> z(s{1`?`$iU{Ih%T=*BPgmH(dXO7GfVaKY61kC^u)cSa3QxxefV#+y4?KLp-oNW1o? zVf*bTEt{G3YKn#Z_&E%A9K&Rq26`^23~Wh1{%Ycts+cTuTl+KyA9>pf?0 zeU)Q%OpO22me+S(wEP8$<*JGE&I=*5n+1Qeqzgajwu-fi%*w1OP zW9xG!nLqD***HFUFmgNy1p0Byy`HqR&#%~>ZzcLmr@KA{CIJRdS3j3^P6 -tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference +tbb::interface6::fixed_pool Class Reference @@ -33,91 +33,39 @@
-
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
+
tbb::interface6::fixed_pool Class Reference
+
+Inheritance diagram for tbb::interface6::fixed_pool:
+
+
+ + + +
- - - - - - - - - - - - - -

-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_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
 
-class graph_node
 
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:

diff --git a/doc/html/a00067.png b/doc/html/a00073.png similarity index 100% rename from doc/html/a00067.png rename to doc/html/a00073.png diff --git a/doc/html/a00074.html b/doc/html/a00074.html index 7543772123..6dd164f063 100644 --- a/doc/html/a00074.html +++ b/doc/html/a00074.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::graph_node Class Reference +tbb::interface6::flattened2d< Container > Class Template Reference @@ -33,91 +33,85 @@
-
tbb::flow::interface8::graph_node Class Referenceabstract
+
tbb::interface6::flattened2d< Container > 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< TupleType, TupleType, rejecting, Allocator > -tbb::flow::interface8::async_node< Input, Output, 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 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

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 graph
 
-template<typename C , typename N >
class graph_iterator
 
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

-

The base of all graph nodes.

-

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:
      +
    • enumerable_thread_specific.h

diff --git a/doc/html/a00074.png b/doc/html/a00074.png deleted file mode 100644 index 0b52871b6aca1f70ad1ee02c2c1216c98a67e43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14421 zcmeHud0bQ1*0zY^4ArVQK|VFk42lXOL#}lyTA|J;LShl9h(u;WAW8Mwv__;2m554G zwMrEw5h{@>38fe@K*~i-FoXaB0+J9QKoT;2`#^B$XM20!_r2eH|7iH_UpP4@Cui@y z*4oc{p0&UJ)OY8MsSBo#8#iu-&&S*LjT<+CGj5#a%E^}C6MJ|>1$dkH=_d!an@lF~ zZ>M}PF74-Uz<(o+!{JQ)x)BBrC&%vd-9HXo1ik8?9dH>p&aKU7+m-`~77DTA>eY|S z&)2qh6b|V5nmwm-ns-i`wHduSAA9V<-}Vyf;$-ylmNP$^n{ejr*~w|;U9p?%%}sH~ z;@nyEb3&GH_I}XnSPRy!)a;lc96O!!XHVDBJKYjCXZb2OqCV|SEt>9^U3VAU?<8`@ zyxGaOtmLtq9fOEk?v6{XZTyew( zRCZn0z-_DPQ(1dQzZP_;ixsC6LtU)Hjy#Q1NnO`Zi79g!-<|^$aUYG z{8JZ8&3zF@_r@cicrtrpH)q|0Mxy>a)JOIWWHWfS(q9Q%%G_QJg9p!MT2p9sU9m|m z!FVTzzvRE{whTT{RaEN$Y&E1!7buI(?K0yxDk5b1EBpxA9)7L_EnP4y=5_C0C>=;`d)7hCbBQ)STc2j=6Q?4xT}u3R~9D;PZUOE(MymyW*V zZTL^eUW|0pma$ivuW{1Y^%Fg`|9`%qXK!9)O&n`>Teg&`J8AQ0%X9EYfQ=1@SxwZv zLe2%|Wz5`C#u}zf1m=Jb{ggpBhCmbZ=2BxBA|IAEpgq7NdMs)}C=49wH?Xj>{BqIK z0G0%wkm&{)t0O+DIPtMcbXt9TGt(xY zi%@QcJvJ1{3#(LxUibhjd2+RCzFO+XJR>Qpj%6>^WN#R`DfsD_t#i==fk8q2Uf0L{ zR^Y{3AGTBJ;q6DGJuEqom1V52cD68m1I>OdVgV!MRHR?gMQ(p{E9d73PMs$yCG8gN z)qu-+Xa*x{38j;TT)w9dMRAJL6F|2t*u+|nqEXJ_KZe|)lf96^!#i6JE!mwKkl%Hwj*@D5g-sLWNkmhJ$!g_FjkT%u znY%vm9-n$F--Z7VjAUzO=t1{@>F#KLJYSN#f;y>cr-W`;#L&%FIckU_-2{_?P1Gzm zsgMz-JYdy>{OLFWm#I0(v8KQ@{7&;Um7%e@b$BC5@u#Nky))c-X49fq<`zEz*rbVm z39{I=XTbnYow_5+vj7Dhel>d7cMIt_;t33o?PT$3YkWcfM2>U$;-HGH9DG*$4Am3L!e`8j5D=F6EUN?&-5&%V#R3NWF1+EerB%*G z6hlm(BtL^o!Ch4%JmvmW)j(JLA+o1OiC1*#`8280N{n{#!L_zOg$Ya=9~Zp1015MT z!7JA7BmF-?`L`a(qKQF)#; zk&3yUQ`3E>K%LwnQ)*ed)ay19S&>9m&Pii7JcZ{A;`;b^Xf`QP8q8I@j>nz`>0Onq zgr@!AhY(IsGT+98Ah#ue&O*avh~_xuoa~E7E*3Dc5j|Yk&LFh||GHhNQsaL`^_7?3 zMjC?Hh|J&0eC}<1eNSvd(i~d$DVDqbyKf}a;JsZk^eOkg{;CS5t{;ojnEEtx;FUXO z%)9@BP!`X&1wPwBYG3t#__C^u`qRIp^j<4O%DUoAO%4qSZo|XKJ{A^F(fJRznqjyJA@)RC7GNLD{U%x9<$!d@t@X_A|aieCNlT<*|y z>8uysOcxyvXV1{NLGE{vZ=uWjJLuudzC_O#phc<_7R7qC3yQa%TDKmd$sRuxE@pkr zZ|#-s_x>cmdr`g!Ke(~fMi|#mvA|9h>7OI{z#gFB0*<0l$S zLjc?iny-Ot?}ao_+=WgLW8{_JG)9bEFg*%+Lyh1@3> z<_t&IuBbeBxo%k{1-BF>OKqUiCdl(8Gv?{LA#-q^ENtn0xDT)2?A#!_su!l*tx=Rm zR8kYNY#MQaL&rL_ja0UyWxPi$BDz!~yAiN0W4{=^s?rdLFbxf15PpS)Ue&E-v>ga5 zdBu7!Pb^vQWi}<_Swhy~&XCJNlF%G|QGqf?AFq#Ui{tlKHPq@ZRb+QRiOxIKY0q{3 zvhjlI)%;wva{SO>CvgQv`-u&oRdO4y#hcAg&72U?a8)}V7hX-8>Oj#Y1EkrW}ITp0$WU z^oZ|6k%YYrMazj|eFeK&aO^gHb?<5vB2~&GIOeL(JgE34U`=RnPc^2h1tUE!6xAv% zhlUzVHZ-L_U91Gp#rx>xgY3^=S9-NYjnfxUBDF$1BHO71OZEn5mAZQ^G#Ii*D z{@Ks9zlLPst|v^Bv^VQ&Z7i^TYbh~dd@3BDYF-Z6i%~xPrc?ZSlc(TtK6+sm{MP4V zHW%b3J)`v@r&4RQ(d5&&(of7D^I&09wa`_BsLO#Ld42Vtw9r3TjsG8?_+JGU|I;oH zvIht(Dej!S8h-W8UGN65*(qox_zrmbWq9$)v2p(|jpSa-_)TnYM70`bAMe1&499w` z@uAvmdgtaWQhaGQO8TAwp~kuSDjK#(~IR z2_R>Jb?dqGw00b>Siw3V8#+Gs@9%;SB0*e}XrIDSwhkQ5h8MCItktA}o)mAf zj6eCbRWV$|7JnFvFmCEE3d3~BJ5#t`mz;O7o7~fC4gcV0C)?wu3Q0xFDnBs0{|;+m z-bUslQ^Df2NpnLjsU1h;SkF_K6=~}o^9SxlGgq=E3!hE_%L)`0bxJF_G>m$aH}q(i z`hl}$!MynHW?2;}Uot`NIdo&6O~AS3_d$m)aitGIi@JvQL{UsZR`R%vT#EqvWLt)e zS>dBf!eO4}?IZEeb%2;U_bVT{9E8J2A;AuJU!@vml{)6d9vSAnsOpa@m>1ndRZ!W1{8HLF1TGVes~6Q^ z&f23-N9`i(PBn*bMD?zLzWjUygGxa1JQmKCv5)oeO8l<>)=Kb~pZ$CMEb4ds%>GI8 zA`CW&tnF@Rz+&)v;0lLoC~!Q}9BA=QDA>X^OL~Pj;h2zh;+XJ5vX0ZR^eQCsxtovG zKSq(0TLj0NnD)ph6<}&53srr6C90w08DIa_>#B#c(5R@UI*#suI$)Oz9uP`kWj=e{ zGX7HS?Y#nKcel}%SFO-UpLSE*GxKk$?bI>0OG8zSF2ifj;8NS6%pi}ll?nLUz6H?Ho$XNPusV#iSf*&`(TWBeyII>sp(+Q*)a+@*f;}@hKmsNgc zjxA3B^3<;}rk+@qS^5UJHt<^d)8PSnk^z9N(%%7F;qL%3zx|e0-Qf90L7K;K?HF_& zO)gdM9>>S@jOCOY_UzwNx1oN+p1Molqregjvhn}?4EtYP2n()_f_H%7U(TF;zZRr_ z`vKqwkRK4KVAu*X$yP5t%#5Z4Y$fWtARuqP{8J z5b+9*=@0JU`H}S(&?PdJ>74e4t<2CNc0(}$RVqrcW2B`jx-`+>8d{5l9w=nfGxQ|6 zfTk)|YP&juXzJoYFxMnt2gMWQQi&)Hk3pC$sD@xeVMHV>6yGQdlvy&70z8|Z?OEb@ zxVij>XpX&aiEol9u5?)XxZz+}Ij*JBNmgawJNTR=&6gD;y2~9%VY|p~EG;$c>ykz} zD?vgi3kA7Z!W5xaInci|CFPpoTcqhHCBBU*OD*Q+7b{UNjmTkgi{Pns;uDW--E)CU@$rI)T8uq_W-(Oj_}ctpk&T@x0kHbv5k*(s5u z3#`Zy@^?aD0lmAO^~e!L8Dy0Fa@fMd=E!ptbKd*uT zS)>!mpjh%z+46isps5~Ld?JI_)xIQg4&ySfZ#e1LfwYrY?638E+Km``w1M1^#O&h^mlG`xnYL$QdKi z4xV{Zw`^_>#x=6w(Xk*AP2P%gL*Joht!I-&tJFcBh&qy$*c&JHqN&9<in1xONlFRg=N#1HxL)c446gxp}25tDjkwoy!7!DuFq~Dte{()Ql z1+)L9l=|I~M1ss$Kdj#%!6ynIddj-$6!+nn_(Uw+r>RI1NG?$&Jym)&@bCDNS0F-J z0LIZZPq2WD86yFa0Cg8+OL^OeNZsK|LJDRL+m0cTbKRO^$oe8PR#1Q>-gMg3*DX~V z_3@&VBd&l>zZ}&R=Y2*O*ASB_i@_QTj(uT6j69sUsc&=FX~E#DG->EzL+Og*>+7)` z!G7mUe5%rT-zMLIy2__XQ}gyCc%fu$9q-;_RvHzk3$ex|JNBzL zMXqZrh{g|AW@P75hldNM3rS%|=dP)g4|=Ifo|@?A#~37A%YumNICaj|l1*WAABeuv zH7CS4TbIgTM%*M4N{hNNJJd;ew&#tX3A+iUiFZKAa#<;fWT7x3CN!L z{`cFt{->w-M_(z;NYF30<2}-f{Dw3HAc(^|Ss!wf>qGINQ0Uvm^RR z7RAOKLwuzJrA~F!9ggYkSM2#>t^i;AC_4vnF(4Fu=s7YuPo=RvjQpgu%nD8r)UIkF%n6PC=eyk!3|CeJr^-PgqtdIWCz)fwP0##U-%#-FwLTDsR3qRe~}H zdW78wb!Q|FQHp<_AQ}Kq4Wk z>uV<)Dh?JTa9Aam#p4Tj2WyJMxB$KoUjc1nF2EMdRVbJ#39t7sYWdn^b;!&n@2ZSv z7=f0f5QOkUsC;&K25P zT_mg{Aercsmu7a@Jr*9OdSu4a!P5mNa;LSkPDH+?7bMP$3W_DIig_wM^(~tlMOw_< zuFLT&@EnYKmFm8JdS%hGVuBam2Y92#I=w20ojw*zfKQ~+FdQclvmPgU zIhVnEbu_3ohmb{dIMfz-5_2`FPbGtywXc_Mayb+* zK4VcRofv0GTIGDW4UK4!S~guR=~k;dRxbn@kD;8|r>Qp_g0hq5$rGJ ziK)S;DZ2_^vZ6Dwv%F_n*QUN#5n=Ot<-iy(#4bY6{J`^ts#+xZa^9WvxihQH5 z4dKdkc4DP6en|BVh8n3ZP5h<%5`4a&+2lU9@Sv-BN7=0E7sj{>iNH7pIBZrWty7nW zAX6WQC|iX33zP>ya`RHQeg~gFX0B%}u-}rhr&qr))O~Tjfsl={pQh@cg|-}eCG?~L zfY9~B;t?zW>0GdBkm`>Ds{f9j0QLtA{$2J|A?E4LtpVd*{eK45sYvv+?*@&jwY7}b zDnmFKVV>JQo1gQ*Vs|vY)LIxrESM1S<7;BV2}L6%vwi{`{p4SHt|e22&o(V5Hgpen z_1(9X+HUP}+>C#09WXs5@mX0vh`CnKxE&1OgN-po)L1EJnBi`5zPjMEmSSkrZR2l}QksTgX-=m9;SsNR?f~;}t!VMoTuYB#3_z~&t z_R!ikUYpoDcXBXU{|gX_OCDa_M{el88>vjsI$<2H!T}%sJ4AkOweVQvoza+vls!s7 zS8=(j8WFMKrN_HPH`l$c^(R$}wyCFdFjZ@NrKer{?{ZZtI*f*mD<)MW^d=4H3o;hk zY&i;)xWj$DmzPz-#)M?E zg0mr$SyfL27FfivRQ7N;FFRl+qe9_@3>~Hz&K&2@!=HXOEuUde$INIsI7vI>`r& zY>&i}7QrJdRWWq1WU>(U2}D)erE!Bnle*%MaGXq~(}gh^8M~8lXJiB~x&g6}p`}E_ ziswDjuWquEr?rof{9E8Bk_V~ecNDoa@L)MsN{{|ah%XFzQ7bwmGUzY9_VWS zWvQLP6=k~ysB&v`bt8EMG#kMdI{$OBiLuy#`ww|9k7jh;n8h>ml7>cJ9Ly=EApxcX zDt@f$0nr{Q>DWp+G91<9m`pjR+{s_P-nlmJZ1z(}){Sgsb97e2;S4zbkU4#xY&cX1 z016No{t6X;Qc?W3g$mev>4PhFg~TYMDqWid(555B8-OJW4&MHu{g=s^ zC89FfUiKWu4B3jxdFF`q#75Y1M)OdQ*AM^5(JBgb`?5sDBP(i(YbHgqov==-}2Gelq)B3U$;N4aQAT;<0tTNh+rf$-YUUU-6FQNJX$ok{Jir=%uQXeF*!ZZ za%kp7z#$HsH3K**|KzA%vLnye7%NX)EI~X%iwamu0JR6B6gIUsEryLwpMec~>an;}@fdFrKMI4ytUZ z$1X4&>h8bM3l?JxM}70B3sWv=4}q#J*j?aoYzWaBzZlWvkhk9u)}?k%2%mo1Kd&46 zYXSaUP2=C@RUYrvz60%~*a3pqKe@H)Tb7Fwlr$3_Zr7@L|<(9E`mkZXbUXj8BvK`H2zX7%O z9u)eY0IeLhrkhJw%_@FyBTY})Cigse2Phw4-SrGMnzD`Hh2>WvdO z9qt{2(vZdnJ91^G9CJ^rcW*OZwJW+k6xAGYllMX-D`AyR6JDrQ_Vleo@z5RZ2?M=> zPH2P=YYb&4Op;gJ#6BwMn1pmFYUomzp*wI{*#ZMLUoH`M@;*q;Or={6;Rd+;U`j?> z=@L|$q*8iUa&0W-W_zG`amfu)$Vzivp6w~q!tq0~lhWMuMe+Q6G3yp6m}z>~*=;A7 zS-V7EzP_0@Rj7Jt%D1?N4^TgJw%4CL%O#|QjV0E}2^{ak{NyjZe`#H{fNm@99$)&E z)DZV^2VI+5@^Rw@LUj$5Zp!Y0(KIhIiO119*)xO{&j_UkC)3}?q(jz56l}Mm#5WR6 zx*dDuBc6-bFDUoXgxUkdzxGy|>X_<`DUodqk))7i1TlTRBx&;C;A!vJ%-b-T_~(Su z2MM>rE@x6YH<#^i%djzO+K=U~*EyxP0X#mc0fYhU&TcQXMh<=^>g4Xl-{0obKkW^; zJhJ&1sKB_D9mBeQLeyC{45CRA$QppoRT(t0QV$3y0F8i5`Zr}=?{d(8x`g#Fx$(a~ zl3&jFJ)%FTSaK9vs-LFuQUFiVX`Wx>BSK0<1f5H%)Lp)=59i?eqJ8?AX3`GqVIY>b zaQ6XDKe&P>i5xBF-Plsno!mUsohNhQ%ZBu)fmY6H(5g#i#Yd~~r32-1)hco$$O82; zs7&Zb3lDDVKYr{M4aVV%iS0OZSsZa!=@l%_s2|AI(iPZE3AhH{i~XFS=Z-#BW)R^P z%gI<)=x7RAnK6kL{nI9ccVc~`O$)Yku%b})B`By7zAmV-nFI=I>>0eFjVSd4ZXy2h zfv_lJ497bSKZl|EhPcZsV#bKqzY+NdM@9Z@hw21=Q`5wVhw7v(nHFT;IlCOaZLUEJ z@g|_+ZJi{~pRGFTx$X4K?_~r#vS*@p=+k@=y@IMGa`)4+OPdBmp56ylHI_06kAr!O zYy?#`4uh&$?2)P(1J9*;YV^>rRMmG(v5MLKHO;4RhpaHvxdZt`>8kkbXQIoB%3kwa zd^t)<-G1YGT5lpG33GqHCOm$l*^5V=EgRHe556`ZJ42^g!#A(*+INqO-PPv2`Y&?) zpA^>r5kM+`Zzf&hMTU!#qf)guvXAS;TY$i7&V5X~MrznJPz@WJi7UzMEWySDTx)`s z<%NzTF88w$xLnF>mz&f4TbDb$(>qey^1QpkzN1)j7~nu^OLut{RbI5z$I1-%+>Uab z8vIMDmz?qAIk@o8A=2|!iu)BoIfBFf*Nw-DD;{dk=dMeh$!HG@lFZG9SAzW#qhc>u z!XrIHKA%g-9<8gX+OL|&*nY0V0vngEl7szK+38RAysoZU3#sjLfRw!o(Ov^m5+S7q zY!9i~I@j*yEXK@tMKAV(kzFhWp3)n0^O?k#;MYNIZ#Tg!;q%>`Cp=)S6D8qK2`RZl z+68zT#qC=lovWjc)$|TOPp~L%l7&1i-7d2c94Fndv2pthERriVholqby}`%v%iE5U zF&R!dDVdZbel>Hq)`;>)JdU@Nw_k}S5xlJNdvCyWk$a09MY5&h1bF55BYWb?Cjtrl z$X44mmHK*U-&Z(?e8OhL?ed^f7u-F-9<#SYdq@!VV;e7^t#o55HnhvmydUHDKYnYs c$1uV!@o`Wy_x1y@2XLIvcHeEeAED0vUm3UMF#rGn diff --git a/doc/html/a00075.html b/doc/html/a00075.html index d4433673a4..229cd82d69 100644 --- a/doc/html/a00075.html +++ b/doc/html/a00075.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3::id Class Reference +tbb::interface6::flow_control Class Reference @@ -33,59 +33,41 @@
-
tbb::internal::tbb_thread_v3::id Class Reference
+
tbb::interface6::flow_control Class Reference
+ +

input_filter control to signal end-of-input for parallel_pipeline + More...

+ +

#include <pipeline.h>

+ + + +

+Public Member Functions

+void stop ()
 
- - - - - - - - - - - - - - - - - - - - - - - + + +

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)
 
+template<typename T , typename U , typename Body >
class internal::concrete_filter
 
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +

    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

diff --git a/doc/html/a00076.html b/doc/html/a00076.html index 4494c54303..41a8790722 100644 --- a/doc/html/a00076.html +++ b/doc/html/a00076.html @@ -4,7 +4,7 @@ -tbb::improper_lock Class Reference +tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,41 +33,133 @@
-
tbb::improper_lock Class Reference
+
tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Class Template Reference
-

Exception for PPL locks. +

Implements a function node that supports Input -> Output. More...

-

#include <tbb_exception.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::improper_lock:
+Inheritance diagram for tbb::flow::interface8::function_node< Input, Output, Policy, Allocator >:
- - + + +tbb::flow::interface8::graph_node
+ + + + + + + + + + + + + + + +

+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

-const char * what () const throw ()
 
+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)
 
+ + + + + + + + + + +

+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

-

Exception for PPL locks.

+

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:

diff --git a/doc/html/a00076.png b/doc/html/a00076.png index 7f4f5571e678cab77f93f0ecf6ecf96ba1437811..ec9684e5e2108704b1527bf10c6c2df23cdf3295 100644 GIT binary patch literal 2953 zcmd5;dpK0<8mE*|xpYH>uI!GY6jO+9l6Eeq47rY|B#ap`WH4PsHzp~x-P*dSg~T*w zYQ}Bmp(N>$am-q1(qWS^Br`O_>~B%e)BbOtKhE=<_j%S@?^^Hs{=V;f*ZY0%?~0p? zqxu591xiXv>P`pt9ad6OL4bZ4GZ)+!?wS7%JapX-xjQHn3ZVWmG#*Xk-T>OnRa;v- z?+RiBUNKRJU5+RLCsf*ByIX*0U8jA!-D8zST>~Cp4r26t*A ztwL?Uy`fN(%HVrH;|q?iTD9s!iZ>4Dj!Ru9oUg1Lx(=`d=+pkG5Ni>p=hEU&`Uh*mSu0|&_Vt%%jD7#)daGP2xstA)- zm+ok;gCLU|v)BZIC$4MQE5dvR(>9vL5aDs{EAYMOgeS7V2OQ3iv_lHko;efYzXRkU z-+g9n2Y^xC{uP?e|@wfa!X}7pPh8Hetwn=P>X$!KB@{TMItQh#ZvdNEZ!v1|o?)%(-CtKiE|K)`y zb7#$c2#Pk;A;kRACvBk$-s|g=#WyH!tmZSP>^Yds$%fA4J5F_tq?18SgBhQ!^)t$} z2u1Yxz{M-ZSlMCLSw{VD%Y6|KvL#~Xf!APmZqQ-MOt*?iLUIZrQ7Z3uu6lkLiM_;!z&laQxagQQ`jyh$wjR-vRO zSbz~qg1b1=@+{}6-Mrxy5xvQ;bX_rzi8dkS~qS3d-!g5@tE=(mYK4tuf^%z}HQWvv6BI)|Paz-7J*m|dQ+G3O>3c+;F|j+kr{ z#__GfFnJ;a9XP>+>4zKFH#9_-)!WOSkQWb5ym)|?iR2u**;J3Jyr268l6FT(C_)ch zv^~~;D5R5NK=ts$MXS=#t;v>+PNk0SnocFk4pxK;CF5;llN}WCz1TD&ypx5;FpFhV zB`=^s4S#dQg?$G_t;;j+aC72Q#0y&%gKlvqlvfH37OpO+{d@_u2`}^*pmkFe>MeS} zsz|2(f}X12T=?r||8Gx=&R|v*ka`%1oAHq%2EUNOPrj+a;0s=TI1#_A_HOHHT`y~u zxd(#+jt^*E-)L}QG(P_R*3D0%F#9t#>dv+5qUN=~rUcj)Bsc{J9G!Jiez0Y8#jMMX zR_z}yyFwPB2@Zoa#1J{tcDz`N= zY4xZ*H=J&vx$%&{Nn^~8w_6fKiA&J_PQ=4r?*$!E@_6`7Q_ysL0W>S=CNh%1sM6e2x^`@*i4SdV8}y$}V^cOww$E4FMdO(t zJJv>4|A5H;{adT0S=*^;rMGrh>(}Ps6K9yh4s1Q`$Y&%emtd=pOSu{}dON5fx$*V~ z)~%&uH&}WbI(VYU@s1t~dS6V;URJYN#3W05U=ir}_FqDURt0kSe6NreO4TCdTy!lI zxpGCH7G&zg+o`$I$g#_UxgxEIS%MWTtempfClsYy7EHIL)~qCq`Ld`iXQS8UWDiT~ zG98|XxNycZ$f7>x2*J8oNA1kbZT-Q6lmC9PEVmybXfPYQuZ3kBC7umR@xkBnE2-8c z_+XRadPlNx9-u8B93?`Dr9C#|^V96+8WAU_h`(lc-};>K#*ruz5<}^(52*}#DQF|w z7!qDs)fDrtJbWKh`~x(cUe6`QDSbACLf>@tTaNpi`rlh|fBCU=_7^0{vtt*dH6 zW90O~6Yb`9O=xYGjIN|V3RiqcagjWayHS8s_*J5$Dd4tefrCA}Cfc=EGym93g8yDk pzFDK|BA5fn?6dDAH^5z?{Er+f5*4l*2E19x$-!mclRW_!{sixEoAdwx delta 449 zcmV;y0Y3hT7w-chiBL{Q4GJ0x0000DNk~Le0001U0000`2m=5B03D^eOpzfve*u0; zL_t(|0qvd9l7k=&MNeLO|NoCyMN2@f))CyDO~)fOK@MVQUokW53?@lk38y5r;g33p z0lpjK9;YOo=h!*yr+M759WR!~hBkelu3Su#_BnK>f%4%SllhhrzCB2_0DigQX9f4 zNo{z@X=c_JfNQ(}I`e?@_3AHuz&R+pOP_H5o4O4rKqJBl(1vgVv>}`TZ3rho8^Q_D zhHwJ3A)EjoF*EB72GEso0<_^#=g{PDJ`Zq#)r~oD`@u7y9x8a(hJSot7A+00000NkvXXu0mjf)u_`$ diff --git a/doc/html/a00077.html b/doc/html/a00077.html index 0c7a3d5d78..f099a2237e 100644 --- a/doc/html/a00077.html +++ b/doc/html/a00077.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference +tbb::interface9::global_control Class Reference @@ -33,58 +33,42 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference
+
tbb::interface9::global_control Class Reference
-
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
-
-
- - - -
- - - - - - + +

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
 
enum  parameter { max_allowed_parallelism, +thread_stack_size, +parameter_max + }
 
- - - - - - + + +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
-void set_name (const char *name)
 
global_control (parameter p, size_t value)
 
+ + +

+Static Public Member Functions

+static size_t active_value (parameter p)
 

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

diff --git a/doc/html/a00077.png b/doc/html/a00077.png deleted file mode 100644 index a2a0edf6e81c46e3918ebb5de3cd145afd263d80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmb`{eN>WH90%~noSLLrt7%ypV=U5g_9iZc%F4l`B1|#jB(Q3$G}L@cOfb{hIl3)~ z)O-nYidLF>6ct5D%Phs0O(?AZYfUNettm=qj6K^qo$c)G&)swGz2AG!@80{*=iF>k zD9#b)3IhPZ5yT$|0{|->lu1jip%GTfxeZNgNFn4vi^T%P*AsKe+G5R)5V)$M1Zg7W+iW@0|ZPN-!ddL=J)Gx5j0pGf#%c-v8Y`oZ_Fq}c->;5dpC94;oDQ#8e`s}BN6=6iEHxC&^i&0j*gG_ z-g$T4yH_alNmftsr(zaMSU8bNNfnM>@xTS-L{;dVqNPtyulu?R8?NLi1a+Z8+t|F* z1vgU=e!JZy#iH8Wvn>Qv+d3mvJ}B+qrmuJB(NV6GwD~PMj@+R;|5R{7j^QQ6nh8o` zjd)){{Jk0_7^iM?0V&$$XrYN>(qTifH#$18-{^rLu z*x?zsqQIWY{m(|~U8Zycd95@mN@_F+>9%{)i3|i*deoagCAqvR;4`&yx{2ajR_>JV z-)!!-D|!8Pv)D%ttCt^Zo3W9gY8G?s4^jxn+wOZhZ_jwNal2?daWK+z7CvVxILqxL zlna+4KtBj{-J7^u5@O6&(=Rf4vf}sQoed zkzaYwZBEIV)cz$W^KveGuIz|NM#&P`7I67f$bzgUVWKXY)A zHQ7R)=sTL^`$YFZl0#A34^_Vr3nh4?f4BrfTYT&)aSsWj%q@d=HSC(%p;0ku+~JWi z)%o+%H*8aRuCV%?vw3}BQo*Yd=sN_!z|aFV`@YKj E1E~y}!2kdN diff --git a/doc/html/a00078.html b/doc/html/a00078.html index 1f72a4a7a2..aea909df6a 100644 --- a/doc/html/a00078.html +++ b/doc/html/a00078.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0 > Class Template Reference +tbb::flow::interface8::graph Class Reference @@ -33,56 +33,320 @@
-
tbb::flow::interface8::indexer_node< T0 > Class Template Reference
+
tbb::flow::interface8::graph Class Reference
+ +

The graph class. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::indexer_node< T0 >:
+Inheritance diagram for tbb::flow::interface8::graph:
- - + + +tbb::flow::interface8::opencl_graph
- - - - - - + + + +

Public Types

-typedef tuple< T0 > InputTuple
 
-typedef internal::tagged_msg
-< size_t, T0 > 
output_type
 
-typedef
-internal::unfolded_indexer_node
-< InputTuple > 
unfolded_type
 
+typedef graph_iterator< graph,
+graph_node
iterator
 
+typedef graph_iterator< const
+graph, const graph_node
const_iterator
 
- - - - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+
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_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:
diff --git a/doc/html/a00078.png b/doc/html/a00078.png index fe6adbe59145b674fba68594acf7bc9395766384..7dadfee1b1921005090c03ff948dee7a2327c26b 100644 GIT binary patch delta 977 zcmcc1{)b($Gr-TCmrII^fq{Y7)59eQNS_7b4i07@S^Rx|%S1)%`fg7b$B+ufw{u@# zT4liF8h+UP+28v=6arrGy6|Vcak)8V+so96CVy001a=8JhHe$M>|M3W7eU1O37hyB z_noxQ^_3Q%tPy&(yTtaa#r+!9=-8}{88cU``nUbwgW0mPq*j^FT7CYFc;>t3?xA0u zYWtR1ncKS*E7dQLmCuO(d2fyOKZ&z1x_|qJUe><0KK^I-zRJUg?k@-ot?i%V7J79V zm~fjV;Pk?kLH>fggZZnjXYbdm&smq@HlwfL*CNIjp6?_XW*6OOxH087+ks_w%o)s{ z?ql4b`JK1HcV|9B&Z%1Fgy475XiC1;Yu;}Wa57h7C{bDtR1L%{*-et4Uz$H#Hno54 zViQSs#w)whl^c?6w^jB&i?iHVmsoV-|DO_u*1pVVJa&6`EWHu;^vVu9m2O|(;Nw-Z zqn}kytBQJJ(tUq<^_%tE7y@3m0 z*48(dwmcSEur~d?ud!2CaE(aj*}qdwW}0tK{xRPq)ld8Uw@DkM0>#TG&eq8+(%-6k zeE)`f*Z$c{HR!*1)6R85uiAu{|Br!h&py8lhPe7Emw_P$#8>_v7IEU3%khAD7h}od zbs2fv=N0T)B$;S+=wAyhlhHRl%U{jFcFn` zs6^NQq<+gH#kbk@HftBVxMa27l@pxkmEI#f+uh{*sZLGq$wWEPRF^f&>e}r)M&~zQxvaFjGk2$J=6v>(CFgx6|4rLB(_E(eYJB#_x9P9- zb(6jAj9%WAdUQEZ_v?XAeOi~#uIt&7^3cR&lkSqaSMOy#H+^<<=I&$lC;ZcrU)7xB z&P-}J`moqGFMIXdvvVV5E{81BzjWrm?fogI!){kSn7ubqNhr&9!OBM)_u&@83DwQXkCGUn(g0v+rDe zyGo+0x%oO)g-4SGq7@%Z?dVWaN@|&~#A%YzQnyJu$k_L6+KUTU<5IVDt=zx( zUi>Zb`x#nW6VD${|LHu5&mi)1*Q|9vTzZ$h`&?+6{qyhs$p?S0=}diJy?pzm^p{an zCMj=!sgzfr!}@xC;vAW+=eA4lFnw`cewW|N3D2J#jtl)f<5BUV^QvV_xt99p8M{1D zi#!__BDceORdD+4Q&CH1Pv$hvs;aGxIW;S@ZRh0D^5AO~rpwOt7~hm&yCZu-)5K8i zOj_^M&5NHEhNjv^KZ+0CY-$;G(CV7i2~|_?J3Aglo|V~Fyr5^!-!(6-PaLjO&wj>x z>t&(b51s61#YvmfVt%|&>s@j}!u02|AID;o*Y&>pWP5tn;oWNY`||f^|7ur~U2*)* z^%Gy+jm!SF&RV=oJS(L5o737Ly?p`O+=9MmW~scCf9R|IYsRdnZZ>yU-p~ASebvMz z{DDAmbxqSrDad%|%FYfAB_%e7e=_?RxEdw~F+ce6OUs<04anFrQ`4Nmcqv;#yAX4N zrYXa;ASzQoH(zma5fKzrW^rJgfNFtdNb%~bYtI%eK3%<9!Z~j(L)yFk#{4grw%v4l zy?8Pk^Nr`Crr+hof5|)XrM?T<=YKY;uJB!YmYo0Zq@O>x=6(vg@$bd4=&oDeY`(vU z`}E@Z&)xsMHs_v=&f69^ZP&Hl>lRp76u0_oUp{|s!pUP(Qmik!Ej&BR+0uSZ znyq_o+U<`STh+5}1>T98vpVuoTkCD+QibQTS#tlsZCW-z;Cj*P4>s93_34qux_{nA zPUhcW&2c!xo&A-;@7POU&7*eR_;$7C#X8CO6(5a!7W-Z=`M)TKeN}x%TYJ{7?CbP0l+XkK8LG;O diff --git a/doc/html/a00079.html b/doc/html/a00079.html index 84e2ccb770..f835f746e9 100644 --- a/doc/html/a00079.html +++ b/doc/html/a00079.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference +tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference @@ -33,56 +33,91 @@
-
tbb::flow::interface8::indexer_node< T0, T1 > Class Template Reference
+
tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1 >:
-
-
- - - -
- - - - - - + + + + + + + + + + + +

Public Types

-typedef tuple< T0, T1 > InputTuple
 
-typedef internal::tagged_msg
-< size_t, T0, T1 > 
output_type
 
-typedef
-internal::unfolded_indexer_node
-< InputTuple > 
unfolded_type
 
+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

indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
-void set_name (const char *name)
 
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
 
+class graph_node
 

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

diff --git a/doc/html/a00079.png b/doc/html/a00079.png deleted file mode 100644 index 1e6fd1b95104f945dd6a62486c5896aba465541d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034 zcmeAS@N?(olHy`uVBq!ia0y~yU^E1>12~w0q+7}+K_Dd&;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z&z8_#WAFU@$KBZWs41X*xb$k-uvHc z-pU|kmas8%+wE5>#X>nh^C!HGK68f4c(bE{rg4CExtG3sxRN%_P}(L`EtJ-I}G)2oAX;<^RfB1 z_leVqjr%tG#iq}3yOej}aAQ@Pwc*?iK7FNgWhIJ_FYx}bX5-qEHxEtQIL)!G$G5Or zaP3Ajo$cDz=lY7ze3wq2d~#!2(cO}ld^J;(-=@8OcBAfL{FLNLI+qN^{1+avykesikQ)BDM%4P7$(wQsL@w(gGf?p@mA;mzf#)&alPO<5xE zl;-;L>i)AgN;t~z?NBN8G~bc@(Czzv+v6&l$Nf#zJmcLZCokbi^_gTe#nAIqz%dog z!-r?gj7&^3V>__@3G)I5i6uRZDnEW`q%u67V%WgKpSYAKVTKXggvB+CDH_QPlBXmb z+JM}JJyhlX*mn#X`wdJ99cbnUC-<*P&*ib&t-r0S_QYaQhttphUd}Ihom(cY`#nbD zjA%c9>G2y67}X!^X%j4aw)Hi>Ovp(&psBiW#5_S zK6c*E>gJvQr>>KfyD#mN)v1u}-=2#J?7kz#_^&$c%~VS>|MH)apY#6Syte1+d*$hq zZd|&W$GWkyP_u3k{1d+;H91`{tBE>%Cpu@7@mkGI_)0^9Lt522GyCeo=Pw zOd0FaZ%2>a*|_VCY>}iYZpJiTu zE1#Nt_R#&Q$sY?|yj^C|c{#RnS8J8#EC1648FJFUw?Dt}Z{3~w`xAxEo_+A%th{^o zqq|dY%Dg{b{`B6B7qK_LeYmt+=s|l?{nh_#H@+;`f5U;H_FvM){ieqm-US|G0LF9! tPb!asvn2D003g?hgq{vaN&;qF22WQ%mvv4FO#oV0^$-96 diff --git a/doc/html/a00080.html b/doc/html/a00080.html index 90c17e4276..4fd53a4037 100644 --- a/doc/html/a00080.html +++ b/doc/html/a00080.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template Reference +tbb::flow::interface8::graph_node Class Reference @@ -33,56 +33,93 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2 > Class Template 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::indexer_node< T0, T1, T2 >:
+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 tuple< T0, T1, T2 > InputTuple
 
-typedef internal::tagged_msg
-< 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)
 
-void set_name (const char *name)
 
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 graph
 
+template<typename C , typename N >
class graph_iterator
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • +

    Detailed Description

    +

    The base of all graph nodes.

    +

    The documentation for this class was generated from the following file:
    diff --git a/doc/html/a00080.png b/doc/html/a00080.png index 7bee1864424f35228b49cd77ed691c4dc9b3267e..5b3714231342e4a1e986174c61cb56fd6bff82cb 100644 GIT binary patch literal 16854 zcmeHv30PCt+O>$FRgtT;U_r^XqO=M`Q9*`~-&(a11zW9%0*RthltCF10vV{>N)?qF zl!y$mwKdm?!Bh|eBn}ucK(vSfLx>0=3>hGSgpldmfkcb;_HXa-eE0vK9-lm#oa799 z?{~fHUGF*`-x|2lX1c@lNs}hoAU^%%^GTDYFegp2JU`76d@@B!ECGMb+q!xCdV|3L z{@EiQPRhFbE%?{ii^*hK9dCnxx6=|o58O5he95>qKicjwY0}#Lh)>pTPqvWoWhoaP zO|I?W))HRo1cOnlmX5f5eRe4E`MCzi_l{Y#<{}wB^Jit4Uklc*y`x$)KZ_NyVEok? z>#+R8kqtI2gUNo+z)O0~BK>IG(=_w$n%}*fu%6Ne4p8$fZS5VeJ`X>qES3*=;a8)! z4xDl*=^VV>GK+Pu_q+LxP;xc7fGco;TMHW3fUg{6UVP!z^T^jJD^mj7Ad+-_eyekE zAdzm~r|P*ow(r?h`qHqKNjhD84>*y&f9%r2l3ATcN@2x6cd$6ULhW}J;H#{lv6EH~ zoMv_IP2Ke)kJ>M@7AN~TArFC5IVN?0yQ@`(FlVtkb<~H7V-jo;{RmqPDhO=B+n92ItP<+FY&~; z_7$h_%fLQu`S?Xm0;ekl7j^_WcFwWu>IX+vH5(6ikO_AE{@wRF4*%WsYMDKE?p!TW zH`NMki@s!Dym%2c*P!DbT?^*?uVAb`{BT}v7U33Z>(;Hyk6F*0ZrYT?5b(qCP22?s zUmM?A>WJW*<6B9#0UU08L%A5h5y!VXf%^2L=B+?Gc5374t$fwC=HpLC%m0}Z+%YtF z9A5L(^b${-KD}n6q5dKYsbe1n3lzTc!#3pjtR9gDX&?Ul1N<(Ox|15T0@4sAOT?WAi|CLCGLHa6I}#%91!u zV#(t)Fl-x$0!nMg;gP``1Z|2To=WbQCL|Tb9Y7j>>Q8(z+FvE|}*=H)2a>i*@=4G zJ1vqXMVi~`;&)nD!WYn=jjLxAV~N(wqL_vIqU=h9cOn-d`FAtZ?g*&HpdKPyi!Xhm z@N0Wd_?;^|ZNXttwg*1+(25jqZf07TbU>yROtP{Pbi{>vXFvpfmt4r#>uHJ4F~OHZ zz6i8i7f6Yui=gCpgDkr*#c>HUTVhVAT}&4~8fl$+JC$V6rc01^AdvLAcZySpCn#3p z!}_m?8_e@WXpJb)tEck*@nrqq=Jm-NYht>-xZSucQB%Mq&YgSmrR0W{aYe2L;|Z4e z35f3C9pmnqW4mYmpf)bnJ>xr1j>W(+5XE3*myZX?1~6+@R`xE%F-_T1}F((a(Qk+y?B;>#B4%?`_3iYx+1n@9j+OLkdW^H!q}pCfJ- zThH8ah>4y=Fc^`;}p2SdSs3 zR7m}UMWYAG<^<9Mrxr09QyUdHTp`1CvXW4%&Zn+~6F4e!cXnXconSO2tqE5S)1NoE`{doMA%e_&eT6%JY z8@0dh_KocRLCqO5jJ+~)W1Me$aEssGtZfY<&cgB-bWdftY--~YA7Z7UFmpu~axecr zB*A}y2ah3c(tU$H7MTm*s2SeQgO-hmL;)X}?p(8rnR5eM>PenzKh^GlrBinPctA=?TY5-OgoBl%vVj^gg~@x+CDZ022m21dq^WejJo zL9JK}D-U9Au7D}h8Ou;v{X@;?SeiotqvaD&vd#pSn?$Z)uj1xyoI@O3P&vI_Inn21u*0_=!5)O(C0VfUkbk! zE~+A)2Y3T{es7VwYlS~9i)&98r;boNuBi_)QR!eYXg+4P+du1#8y&s5Ge87a2}zZ^ zKVdJVa%g-7d7X!#(cW-gbaPrPVJHt!rrZ~-6LGQ!X3!gbPXZ3v! zM^}3Q+@X1B1DPNxJGXLA97oQo5Uhr*G3dU&>ldz|Wv)gI5T6=HKaff4%2FU!_|KBG zoTUVTkuj|QBZ1^l;(W!qH5kkX2*EJR9OrY+8Za2f$aph!|7$@8Ba^51`nNn&^5LK{s2}a9SrmRA5W+IH+5P zAZ;<>T+Kvu3MU^V`91$>D+7+A^4Wh`oEt+47boen>&vrg^Jp(^}Ms6y{LPpke1P!&(m3nkZG$l2tG!Y!+3uq9GT;DxTTFiSLkX{Ie^ z?JjF^T|{-N7I8Drgw@DdEm7Ef@uLQs7lONa^Z-?0%{Z^Y78a^xwGM=&OF_ZIRGX2+dc~D+*w+~dvbXxoV8FwK zhcS7oK9L2Tcv3}`l1fb13SWp~ugA6@*_~qsEIT;>ro^kw7Q4Im*^SJP=jA*hUgvk# zb6KO#D7y1?kgM9k)+dojV)EXGs~KvxMXFD8Uz*!Cc?h%HcEnRzM@u>X!XM?^1)|-i z{URzGKUrBiw|kk)-Olz&a?Q~~`yRwwXjO09Bp`MQr`Ud0faw_OjxD2Rw^O_JGaGkU zi-ny6DB#=1+<^9-BF6Lc^*zPV%%mgXwrmf6Ey}xV2wRq_kN>orr+x`hgg(=Oiyal= z%MnhNXnLczXUc?x|f6o+)cYb22ByPOQ_+eX2AZN4F$OfVS=2QdBIm9IWK-#wvJ~|=m z6WTQs-p2;&{=}$%9ivo$-2M&{#c3q!3U-_v>21KrKTy_@_Ia76jsg2s>QrnZP7p3w zsvubIbqqw*YDb1^4hKTHd{JMhpg!kW6t|Z-%*ArBg;^X0c|Ehecnw97*v*ouYj~&f zX9>D1`6513MQ(lQa;}Om=I3U9?@Ddl2{!z@xmM?^eg zJdN$BOJS1g%aJp7l6cBfV}!-)!VX`<)|O+L&zIUi4A1SOvzzAf>hwwm<-o& zHsa=d2Q|(nVE5*_Kp+vVZ+)B}<`O`{|4Z5UPhJCNHB+VZ^3BucW6oHZ;Ug4NnD5@i5#0_*-Xp6B#HFHS8q5*&7Oc9+Ps z4$!tOAGsjp6-LoQMoZ_O%XQB3yur4~OszT8yjppF5h8pfWG%-Mkeii8azh5^uPQzP zVFa=}M^%OzO=v-XUaNeK#Am^6y^qYBqZq{MZ%%88TF|I0Y}Agx1Q`06rVd_cxu(i- zMDO94yRR(F&JaDSe(aI~p|o%C-)2?Lyq3%rK!oOyT>T{Zt?#B#dR!~H}SVOpL zYp~a7;%xX+VTTeqU+;=S=5_8r=5Hv3dn-D`wO=7WHNu8*JPa#QGPq)Wf*uz_GO?NV z8$A0#^=(~$hk8rsX^A(>`#PEGk?Ic+N`in}i#f4t+^mqaAdUU2aV}-70~nZZ5V&=W3&vPIo=w!~L%ih&x$1NG3Ao z%68oQz=305ub2!w-WlWTtcW2j3Yt^?0g6T=A5zVsG^J&H>E4-uiRO6caC#In^}H8= zXoYV%th!BHXl6Eyzm%wi=ut;Tjcd*wHOH{0xnVbLe*CB(4@UHMR!DGzSy*><`Or>^NQB{ZXxFNMf9-Vfe7|v6{(G-xcL~4NJ@v+^oKDE{az>*Lt=dp zHD+k)2jqmv>2KCW55gh3{se8+3ieKyIvFTwjcS8RW)yx9Bxo|WUCopaWZq%;vqTuf z>|#S411#NQph4)X0T1Fg!Az&Y=~OX>L+iZD}Q*%Eu<@|DX`7Y+ikXyeur zaC^KhKn?SN^;sF(@DAJK_D&Qr{9S4?k_6l?% zY~Kn>RPK+F=ja;-5zGyNW?TTYTt&g2Xrw^DsKk%1LS^pZ&LY%Ttz~3pug-kDlst%G9W90rZgDm=fx;?dhulC$jvoT;hdnLkR1mH36F8$+jku2Mtj6F z{Wq=R+z)$dXOS|qWno#_{$pn|U~+iUFD~K%G!; zGmSh@2jvAuMMO=V5M#eXFZ_+=F5k*3K?Oj1{FZDQ7ykb*oiezS+b|4JNb<`3fl8rzb#V3zEVj#b?B zJ!5sZP7);=Zg72<8b-C`B1JF}*599lluq{KVJg3>#oAiNZR5v®oYGC&=U?y*Fl zcvA5hnaoC~<_f!0ev!v{6`8YX*rNBV9oH}(#P1`umWhRr-Aq{E=!;^L>fc>{h$VmV zl6g0pdCw2p-MBDhB>F}6W4u#I>AU8H0f>Sw(&>~!6u^w75bR1?{V3MrRnj7a%0hF# zA3Bz>UrU}uygA>hbIaf1P7#-`=U6JQBRKJBo>weTxm#Y?O!s`>7X?{-p}8X@?7-UF zw#HZ!ovT#t!`6w&*!&28!jm64lRe{&-@XWPi1n!?nqEsY|9w zyku99@tI`}-60_Vv$WetJT&>b%VzGVa^ssH-U#y^$s-qKY6P3;i>$z!bi06gO!|FpW)MOGBKxbD(D_9BG*XNi>5bxyR7 zAj#83_c>z+BDxhpBwVdmyQ0@{NBcNiK^T-eE^oOCR*=7KizY+TJCb+?ePV5!v0BpOB)#4w4YFV*k#*l4@yXsE*JkzDnDJ962CLIDi~bKh5l<$uOEC49&G>8>wobLFE_F zr9Pml)>zN<1mQz%rps3MN^r;hBnrqOdx)q9hv#UbJXXh z=SXu~=DHxdXI_sxiX%-ad=iOKpNmue@R%|)wJ^;^@KIg#?j_<>nY!6P$4m92H6}nR zH#R;%w-OfuEe`_X0}$c@aCRk4->$boXWlt+g|Zl>+*-uxq0Sz8mfAk21j^T`@e`_j z@FQcdGbgf5ms)+YIVWv#Mk~5}4h32xOc@o%p$%5>+|h*=knDCoUl)x1`(0JLqAv~K zD=n5eF5f8u2$5?gmKQ78i)o>OLH2iOX*WVolO=@D_*99omo08MFQccZpVVsxh@EMqtpfuf$bWTYVqg%vyl0~lFR1Gw7q6*OsxY1ZSbJ)T+pGfNR8fi`|u+_#} zXYaeEn_Si_&2}v_9jOCo3JebPvM9nJ(*@G4#9XQQ7P5dgvYj-u=$DN94|f*F38;~W zqNi9L`hTU*`p3|yg%)xfjkyntp_k9^tSz7 zFqA;Tg_&lb05r1_*aC|CO=!`zYD;DB4Q)J=PznKS3L#H21uzdN06Lz&ldBQvdWDsm zs%T(mSk^hw&Jb_azMwL^LwcY612>F(O^}rrHq5PQRp+JBBx*yZr%RKEc^t!}@BoMo!lkdp>8LrwxGQ%iI+vm4~h zmYb`|e9l36SANJ(MT=t7kqy;rhJHFkJ1(896c>r!=lAEqJ{oelS2$H%hXMIFXRW#@ zRWE!cB_csRveLFitw<7v!eeH%U<=%!gCWeob#{jm%I94_KN`Y3U@IIwNysUY(M8D3 z6D37~y{WqzQJN!*xV0Enx2McaHnQF)=a7QTXw}(k_w{9@;WwvXFe;>Q;Sxa-hjAVx zY0u>Jqg!g`m9QDlq2&5_Z&=Ye(EklWhR^--h|VP}_4X+L_I~Ao^}3f{zNd)s!?jP@ z%j(^M^pY(b@@3_m}QyBo2Uv#SMY*+a^(~RLvINXW^+5 z>B)=$*By%JHgQuifkxx;tInsO8@295)KE$-IHCz!UM~aWw4EgF`^vB*2>G%d?G62V zxKEwyIAR5#G5C(>c%`Omej81!XX=5`B3czZ)fGXYAUAVZdV!_@P{emZNx^?S){=#9 z9bb3uQrx{V&%v>d$j-HTg+m$!XQZmcr9PWU+m4YrBPJXa{;mi+ixQq;Nqhp*`*@ zxT4+0slE)dcfU?A8)3mk3chH4GJfUmr4y@(oPPCN1O}YFQB+^^LUD!I^hNBRD%c72 zJG97DFTuXCD&K-Hs{Mzz5!k&nQT zJ65f|vxH} zVf%Mb*qc?hy(txAH&QJJT|jHF)XG<&WJEQUA?#=G6&4uk$@?$3oyo3!8&IAvcl6Q> zT@#4KXfF=6P}sA(SRNr*eUO~cEf`Ia-#}+^1`unryJnasuFT36p`Xd9ssWi0PS3+j z(F)h%pxb3j5j7i4IZ6QJAJFe4q*Fp8sk{~_N@Qs>PrK0A?uY}Rp!H{nV!?`I=>gLG z#TXU`jV;YCqch`e8`Gb%#4ns1|1te<>95HW1M-LW@XmEUl+b8G&z_d<8GxXIDtfGM z6*mpkLGSfzV;@rMG`Py*PlUDJR6Z>NOmw=jlkx+QB7mx;W)-XU<6oJ<27)G7n z*%dN(P4xZMsTfvwupcqSp+ux`4@8h=o8&JWfD#qS4Ic#8dpa6--dSJ{O2hmTmF=>e=lpMjvN5pRADl$U-v#ZW zri}e(N%dtJmDPc0l3IC22c~^Gn08ej&_t@B6`)giNcQZ!s+?K?B#K*@2{QfuBg*JU z?A68Z@|T-cXGMqRZMipM%JnU}Ad75QCa2GE1f5Uqb)J>TAz~xAC^U?j&{2LyKEK*^kI#EpkI}WtfGI?}j zD8tJf-(V0Y1n$FgL2$z|DdL8Yy2H= z`G5wWsGsQB?b#7VYJ^CSRnOOXpdy!9D&=Q%Qe)d-Ef9=!WogyLcbXA)uEBbsmQFtFAju%&z@p?X1CvW z8Igx;8pU8DWTup=q60~Q_#?{)_bfB!l5C@nxaq7j($qEKrWG_98+oUk8r6xUm`fX_ zfQ^{-Nd{{77d6i=mOcVU+VLk;{C>0ee+nvyYk!UY??HE=>mni9UFWEsgw3FT;7rUi zsX+`c<1-JdI*gf`?u45^9ALpaOdy^7&ZN<4$1*kB05bLT{O}?=r@5jgH|ga>u>ffC zD?^onEeVbouO`W9(5C_J6 zwPMFm>}B=hoJIB`=eizKO4pN&8snC`9!~7^Ov@QG3tL5fmJ^8{wU9p0NlQ&F1@j95Nz%me4eQyt~K`z z)B%%~XTA+_l3psC_Bet$3nBHxs}ancU~K-&_zcks+UE`Jy7$cOISqh{ky33CTR(cU zr>Mr^g8VzlP#KQu`)AXkdV%sfP+ zvHO+yZ#EMDM!omD?f+im9$jG7{b|vMJOB3{X!y5f+h1c4k~hW268>3WpgQMFH<6!z zawKIlTRMKiSLMmzZIYdZiUDcL4w9cwm0x_t*Q(B9YksT;g78xPknEMyRi?Y$pgx_E zZ8w#iPDE#k(kUl*8EmrmK}=I^$Ve-QCplB-#^$)cZ*mwPA^)=Jx&G_40)N*_XZMxC zo=TF~V}@i~hvoCW0ML&It1v@#Zn%>hbv%swSTp_rQh<135PpE7-tyz6`Y1Y8IDuqC zU`AX5U#f_Gpt84BExwk!uCJ^Itkmh8wxm1}mF#w6Z>GX*Z| ztGenArM-s>DKCEy2m3|DrrLGSPR&2)Pn=Z|LtDpv+HRY_B~d>lPYn+bw~DUq305UT zN`%?i(Ua0bp5-lh{htmxCTB0la_DYEBm`>6c`ePKX z^hjC%%9J@JvMm#JJL3N_2fNvlGoG89Do^3%wU8yCA&41s@fqF4GTxUjU)3? zR;TR9#U6Km*YA^9b*&82sP>^n<~j>ZlDyOx5OYJ$>r7oXXYnh8H|Xx)Ok86C{wP}! z&Zn;IN%}A-HHJaGWdw=p=xdL-4nr(5`0TZd_z$c56X^e2D)@gixc@(U0_&K~uVV_y znZu8DLxf{}x>&+?B57Zu2|0+nL6<+em<3AeO@TEICD3qpgnpH2=Ot_L;WgTweQ-i` z@kkRpNmbzk*!q%ubiu4pVu31Oq#p4jhFC{e#G&;uvfd&)1=1bwrNNzWE(i80V&J%0 zWSeW_smiL*G9KH_wY*cc2%4G`+5SaeU7JE7qQdKmQ38I2f?WuQO%WsbqX##r?Zpl(+?d%Emmb`Jx33XV{Jk;lk6kPrea$4>aM)Z#8Hjm68y~LvCo_4+ zc%%O<`>k`GCnYq(C}a^Z-#RnQ?Nq@WW6f-*HP+1KyW!!R6Q9F;LH)`wcKbKXXaNrf zmzEH9V>Q`u-95{sRK>%|!@nQwip^i`m$^ zv#S1s!vSnpkF0b!>E?%gxp2odQSi=u{Z4vqsrqa86}UMi!m#jgJF0UXcvy9;OK=S2 z@L0cnU)rT*n27SW1W3vH^lpn(bhbi_w=2oWelQkMAjR|H^Ngl8G%&TnD)5#4EEk|+ z4Zc#b7A<*0#ajJJ#d13U#oSUmqY$w?MH&qKWdQR58w8$};NZhF{B@<;fmlGcKa*@% z!aWk&IG}wRY(Z}mVISUDPxT`2$@~t3jJ*#E*{uUN9)K}p-PM2k@JDBbYeBHa14=7= zZD(_F&vFf_u6CV_hHDXD6U6il5?mYv*;_U?QsC)k2X`P|aUCkh#Vaep-$7=B&2NMw zzJI{H6((WCGH literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yVDtd812~w0q>qJ+Gmw%9@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+ z^^Gb46^)xhd0A@BUAvQlAFO6=iav9O%Xo8j!lV$7OR`=|R8#|$R5crgG(9<|czAjx z2=DxDV`5#Mal1Kj&*F>vdynq8d_k&BH~h_K?<;SreHW>&R6lV-TWR();fa%Go$v3C zxy_#L{aGPLNY}H^O!@81@VC+xTXfcDPxiLCzr3@e=BD(u_`5cCS+V)XAFnN(yI=a2 zYJYsNOqo*Am#gzlJi7{%;-#auZRN;}N-dJVzr6cH?4A>mQ|9l`lscTSyIt2PDp;T_ z^oiaU+uE}$^pxBG{?NRBrchF{n`a*DXP$SvIF}2%9%`PU@Me)md_ePi;fcOabNx;( zSNg8!{yX-0lzOH26XSK?jk{zHuj`a~b>c(qyoqm1>L$)ld9vY|!OlaS=Z%VNHYU1# zlishisr!$Dvg%BAftT8M*iDTz%Fl`xPn+0odMW(t8mY>v4apPVK7HBuEqi(PlV8c7 zfB#!+>&CmiO#joHYjL9cDzp2AEhp~%w)Bz5r54{MDu0FSZeCRRR;+2S_UUKP`MB3> z`NDOURQ`Ex95gBDN3W9V%j238CrxqaoU()k9trIp#+whFc_YS9ZxheJdcf98qUQZtuvj~*{zAJ=6=P3Ld}ZNsZ+*)*TjJK{ZCZBo z`z#mcGdq-uW{4*&;kFF1ubiP?lq;`ZZOVU0?IMGsyV8F5`agT!Zl_o6)%w14=KGsl z_MS;?ysx{yaN7O1_S`2g%I6uor@C5w6Ed*t2sV>Q zH(FY3uJS>}N}w)qiT(-(;eY89eO2T66O@bomnsx#b5-{jPdvXP?{T=xx6*$L_|!UT z{+>136kB)sa{faL<-;G(85Q05!8$Sa$=aSTt?E{j>T=uNe}9m1$#P|1ZJ?8LBSzoKE%AhXO#qwjR zPg!m3v3TuIGj-lC<8DyC``CW=M23}EqVa*^r88>`jCUWc7k#()Zdt#746qbn@O1Ta JS?83{1OO$v?W_O* diff --git a/doc/html/a00081.html b/doc/html/a00081.html index 49de8b7426..81d303a3d3 100644 --- a/doc/html/a00081.html +++ b/doc/html/a00081.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference +tbb::internal::tbb_thread_v3::id Class Reference @@ -33,56 +33,59 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
+
tbb::internal::tbb_thread_v3::id Class Reference
-
-Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
-
-
- - - -
- - - - - - - -

-Public Types

-typedef tuple< T0, T1, T2, T3 > InputTuple
 
-typedef internal::tagged_msg
-< 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)
 
-void set_name (const char *name)
 

+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)
 

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

diff --git a/doc/html/a00082.html b/doc/html/a00082.html index 35a51c9d7b..44162f79e9 100644 --- a/doc/html/a00082.html +++ b/doc/html/a00082.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference +tbb::improper_lock Class Reference @@ -33,56 +33,41 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > 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 >:
+Inheritance diagram for tbb::improper_lock:
- - + +
- - - - - - - -

-Public Types

-typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
-typedef internal::tagged_msg
-< 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)
 
-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

    diff --git a/doc/html/a00082.png b/doc/html/a00082.png index e8c28bfb8705c626663c703b62a74d2877961c3d..7f4f5571e678cab77f93f0ecf6ecf96ba1437811 100644 GIT binary patch delta 449 zcmV;y0Y3h@3GV|TiBL{Q4GJ0x0000DNk~Le0001U0000`2m=5B03D^eOpzfve*u0; zL_t(|0qvd9l7k=&MNeLO|NoCyMN2@f))CyDO~)fOK@MVQUokW53?@lk38y5r;g33p z0lpjK9;YOo=h!*yr+M759WR!~hBkelu3Su#_BnK>f%4%SllhhrzCB2_0DigQX9f4 zNo{z@X=c_JfNQ(}I`e?@_3AHuz&R+pOP_H5o4O4rKqJBl(1vgVv>}`TZ3rho8^Q_D zhHwJ3A)EjoF*EB72GEso0<_^#=g{PDJ`Zq#)r~oD`@u7y9x8a(hJSot7A+00000NkvXXu0mjf5ogn7 literal 1209 zcmcJPX-t|27{^~lowYhlP+O_T+QfOEOQVx9=h0Z0^*|e)^EShy#nq|cF)7t`@rc!; z7BAEmEL9qh8taS$MQvyW>smz-oMqT~j2G~Hb)t2+CEGsi>z?HQJijM-zWx7s%ELp0 zO^lF6005X^E(hTNK!>R1a6_23`|5T-*N(H{AyJo(kB_yu2JYrnkJV`DPmPX_>X$Ft zYFEQtTxcYqJvu4TWRw>G=v~GH`A6mJDCu7k-+o}MU)i>Jq|UeUv$G*eS;6QR4x8w# z)92ewA82aHG-2w_a>rge{fZez)whsEfQpKfiznzuxHs7K0H&c}I+ttmaEp|&{_q9SQk_Js2Vr%iUR-c70zqX_hD z$bA8=Obl1tmN5Cn=^6|gQ$(GPX`AW&B`mT`IMtMeNXj(JGBQt%#@3GD(CGg$&%yD z$_36OG$T=c%^-=O;k_+}gxm7+Kq%yk+|o2+(zw|}a~bm463CUS5{e=|G3X9!IgQ_b z5yw%q2!jkJB)6=f!rCSY$%fe~?aZ(^3^LiVnN{5!2wnU@J^`dkv)kLV@IUG z9qz-vbME_prLa$R@2HD%>Nw7nt@!_OvCX)?tJ~8!*c z@J&wRJDUHUG68wm7LV-Dm@Y$~dfE~@q7=BMsJU&O#dSl3>NE>kpbZ_+#F@gt)U=(h z-*+pD8Vc6Xxn6U+d^UVIq*!uG4^h@ zVvUEYh>-r|_deaH^t|=@$_?WmQPOQw4LvZ)GmdgB5Kk2k)a#ZW?fde$G!}z@5nAYp z-A8~XEeMcaY1z&uB_+NKUPzek8e;YIbIz%qq|LYeM#+kjhCNBNAEjF*g0iwVYJFV2 zSmyUhF`$Xujp_-J=1!v3oT+KyE5=YBG;u2ny}@bWs)vGr@~rB%k2GautCRdC$-PLerNryU&ztOlr{=Z{}F?0V+mNt dP8{~stZhevc)?eu*Q@ -tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference @@ -33,58 +33,58 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > 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, T1, T2, T3, T4, T5 >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:
- - + +
- - - + + - - + + - +

Public Types

+
typedef tuple< T0, T1, T2, T3,
-T4, T5 > 
InputTuple
 
+T4, T5, T6, T7, T8, T9 > InputTuple
 
typedef internal::tagged_msg
< size_t, T0, T1, T2, T3, T4,
-T5 > 
output_type
 
+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:
diff --git a/doc/html/a00083.png b/doc/html/a00083.png index e3d1565f5b3d6592f5b6b2e58d9455d919b5e21b..a2a0edf6e81c46e3918ebb5de3cd145afd263d80 100644 GIT binary patch literal 1376 zcmb`{eN>WH90%~noSLLrt7%ypV=U5g_9iZc%F4l`B1|#jB(Q3$G}L@cOfb{hIl3)~ z)O-nYidLF>6ct5D%Phs0O(?AZYfUNettm=qj6K^qo$c)G&)swGz2AG!@80{*=iF>k zD9#b)3IhPZ5yT$|0{|->lu1jip%GTfxeZNgNFn4vi^T%P*AsKe+G5R)5V)$M1Zg7W+iW@0|ZPN-!ddL=J)Gx5j0pGf#%c-v8Y`oZ_Fq}c->;5dpC94;oDQ#8e`s}BN6=6iEHxC&^i&0j*gG_ z-g$T4yH_alNmftsr(zaMSU8bNNfnM>@xTS-L{;dVqNPtyulu?R8?NLi1a+Z8+t|F* z1vgU=e!JZy#iH8Wvn>Qv+d3mvJ}B+qrmuJB(NV6GwD~PMj@+R;|5R{7j^QQ6nh8o` zjd)){{Jk0_7^iM?0V&$$XrYN>(qTifH#$18-{^rLu z*x?zsqQIWY{m(|~U8Zycd95@mN@_F+>9%{)i3|i*deoagCAqvR;4`&yx{2ajR_>JV z-)!!-D|!8Pv)D%ttCt^Zo3W9gY8G?s4^jxn+wOZhZ_jwNal2?daWK+z7CvVxILqxL zlna+4KtBj{-J7^u5@O6&(=Rf4vf}sQoed zkzaYwZBEIV)cz$W^KveGuIz|NM#&P`7I67f$bzgUVWKXY)A zHQ7R)=sTL^`$YFZl0#A34^_Vr3nh4?f4BrfTYT&)aSsWj%q@d=HSC(%p;0ku+~JWi z)%o+%H*8aRuCV%?vw3}BQo*Yd=sN_!z|aFV`@YKj E1E~y}!2kdN literal 1259 zcmeAS@N?(olHy`uVBq!ia0y~yVC)6512~w00G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu29_#M7srqa#Ul~*k8W!#%jW(H&pJU6|%FgvAgq^-PlP%3Zv*(euXOkpvvFRJDYLn^Gu>pT}ez$&8lQ#wR)%zvF(Z$uHXY)%E{T z+unO`Bzr4^U(Nlp?)WukxzBep=FGl6_s$DH^F7ZF_pUEmtnYC6&I_(n%u?HDoiAe5 z(?2lx&V-OXY$i2V_g^$;(>?Iz-Re6QZ>9HLt_{1t!!`L@>YA^;`!+7Cm|fw0?)LgS z^&uY1cI6h{-E(8zv(=SbSFwJ-vE!`&^EG>GryhQES|&y4M4htx;?(P+7mC$&ozrza zg+rw#eQ_>%-mSJR-crX?_^+{4w&~uDH{Y`QFB0HBw*EY?XV>ES9?p~g`Ktn%i%Zhhrj=`%UWA_U*(`Vc(P5*mtY311iyG|R0|DDPIL9gGnp;nKH^TzRcFBTt;HL#z2?AOnC zp`VxT>#LCay!NTxqwrZblMm>ZZ|k)W{=aAD#?RCGGkT0`X0RAbJwD$m z8FHd)=S!%cKX5+9n|*=z($239x16QQgO0T&X4Rg0+?_c?Ec2b`-h_46d^4^{m9N>c zY~xn{2Nm-!yl5(RO1|*F?V7rcUGuSD_0y!^Cf4Th{C4{-^=tR3-gk%PFYLHlGflgo zlJTFOd5xi5=!~@Oo4rb-!rWG-?w*_-R4g_Brg`4Q8Ksip%lU{aM zXg#aRPq#~MTOYW3-R>*9YJOy2&ikHP&v<KO@MGbu zny=w}%rP(aFWngSa(R0{=i}?o*c@!ICI#`{ATQ6UL8rdI=KucqnQwlym_M*&V(@hJ Kb6Mw<&;$V9GEV&f diff --git a/doc/html/a00084.html b/doc/html/a00084.html index d9c185efee..e1f7b85047 100644 --- a/doc/html/a00084.html +++ b/doc/html/a00084.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 > Class Template Reference @@ -33,58 +33,56 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0 > 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 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5, T6 > 
InputTuple
 
+
+typedef tuple< T0 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5, T6 > 
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:
diff --git a/doc/html/a00084.png b/doc/html/a00084.png index a26e6ba87462dfe980238cad51f0b932d581d7e3..fe6adbe59145b674fba68594acf7bc9395766384 100644 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~12~w0Go+0x%oO)g-4SGq7@%Z?dVWaN@|&~#A%YzQnyJu$k_L6+KUTU<5IVDt=zx( zUi>Zb`x#nW6VD${|LHu5&mi)1*Q|9vTzZ$h`&?+6{qyhs$p?S0=}diJy?pzm^p{an zCMj=!sgzfr!}@xC;vAW+=eA4lFnw`cewW|N3D2J#jtl)f<5BUV^QvV_xt99p8M{1D zi#!__BDceORdD+4Q&CH1Pv$hvs;aGxIW;S@ZRh0D^5AO~rpwOt7~hm&yCZu-)5K8i zOj_^M&5NHEhNjv^KZ+0CY-$;G(CV7i2~|_?J3Aglo|V~Fyr5^!-!(6-PaLjO&wj>x z>t&(b51s61#YvmfVt%|&>s@j}!u02|AID;o*Y&>pWP5tn;oWNY`||f^|7ur~U2*)* z^%Gy+jm!SF&RV=oJS(L5o737Ly?p`O+=9MmW~scCf9R|IYsRdnZZ>yU-p~ASebvMz z{DDAmbxqSrDad%|%FYfAB_%e7e=_?RxEdw~F+ce6OUs<04anFrQ`4Nmcqv;#yAX4N zrYXa;ASzQoH(zma5fKzrW^rJgfNFtdNb%~bYtI%eK3%<9!Z~j(L)yFk#{4grw%v4l zy?8Pk^Nr`Crr+hof5|)XrM?T<=YKY;uJB!YmYo0Zq@O>x=6(vg@$bd4=&oDeY`(vU z`}E@Z&)xsMHs_v=&f69^ZP&Hl>lRp76u0_oUp{|s!pUP(Qmik!Ej&BR+0uSZ znyq_o+U<`STh+5}1>T98vpVuoTkCD+QibQTS#tlsZCW-z;Cj*P4>s93_34qux_{nA zPUhcW&2c!xo&A-;@7POU&7*eR_;$7C#X8CO6(5a!7W-Z=`M)TKeN}x%TYJ{7?CbP0l+XkK8LG;O literal 1300 zcmeAS@N?(olHy`uVBq!ia0y~yU|a%Z2XHV0$;4+L_W&u00G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu2A0L1E{-7;jBn@OoOQ>FgROh^!@u`` ze5sh|ID7ib$p*4Q|K~4PZAtMupsS>$DL8S5Q%Gp=s#SqgCxnDHYb&l?#TM=q6w14< zWyvb37}iS%v%GRmG*cISH2?hXMcWr~)5WpIk^gn;zqI{bW&C=g@bgr8y~)Aqt5$8b zn)!ug(%nCNJ@$N=^7$1xhkXw$ySDiKn!P3umidK*&dpJ)J$&z6q~4KF_vhSK?TJs; z+4uhJ$CJ0$XUXSpoqs(iM(oC4?d$K7ei?r~d+zb-Ro_->ADNo?d+&6Gm8<-oD6Bnr z%V`_y?VeRDs{hP7bx8l?1h=rdsAJNC6Yu=Tl{+R9ZGr3yd$iWaMv-Z~vOPk+kpO#e@@Ut(=v ziY*Cb-_7vS%|Gh3%iO)*4>!o~|F7}Jr}NICy_Fk#uatKsg?9biSUC6WxyZ{c2gc=J4ONxUs}H<9R;@aSh~?|tlR7-STvXOD*!jdWXg2Kd@?hBb z_3P9r3{KjLj7P3@2L>^9tZ88pi0kA~*dZk3P@t;P05pUFXa++QPzg)86BEZepn@1q zPHHHy6M#5qoj`+#LkPNM*F`R6XU+cVW)xZKb46`^D8t$#XF{YI?}V0L%HbYdXTJW0YliwY09lw3{+C#O3;MW&(SAmlx!>(D5 zQR@!w`uNRC@1Ie`KZD=8&QBLj;of%t`rGZbJ1j-7Yd-cc0t-&t{)bt^2~4t-71`G%sp)RcD6v{OpEg zkN0mpw=48o-C*^wf92`jmy`IarS9w7#rfHO$(#O|9sU-oA76ey&HJqVpR1m`es9{} z@c8D+P&sfCjDsaX#wcG!#+nsu@qfkJ82!FvE3TD&@bY23=;C^_$qaS9*b)pp$^BzK Y-T!${vF7|FU=haP>FVdQ&MBb@00S>un*aa+ diff --git a/doc/html/a00085.html b/doc/html/a00085.html index 11486c8af9..2129ac54c7 100644 --- a/doc/html/a00085.html +++ b/doc/html/a00085.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 > Class Template Reference @@ -33,58 +33,56 @@
-
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1 > 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 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7 > 
InputTuple
 
+
+typedef tuple< T0, T1 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7 > 
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:
diff --git a/doc/html/a00085.png b/doc/html/a00085.png index ad53103e7be97f926d7a4df7b3c00cba54ef366d..1e6fd1b95104f945dd6a62486c5896aba465541d 100644 GIT binary patch literal 1034 zcmeAS@N?(olHy`uVBq!ia0y~yU^E1>12~w0q+7}+K_Dd&;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z&z8_#WAFU@$KBZWs41X*xb$k-uvHc z-pU|kmas8%+wE5>#X>nh^C!HGK68f4c(bE{rg4CExtG3sxRN%_P}(L`EtJ-I}G)2oAX;<^RfB1 z_leVqjr%tG#iq}3yOej}aAQ@Pwc*?iK7FNgWhIJ_FYx}bX5-qEHxEtQIL)!G$G5Or zaP3Ajo$cDz=lY7ze3wq2d~#!2(cO}ld^J;(-=@8OcBAfL{FLNLI+qN^{1+avykesikQ)BDM%4P7$(wQsL@w(gGf?p@mA;mzf#)&alPO<5xE zl;-;L>i)AgN;t~z?NBN8G~bc@(Czzv+v6&l$Nf#zJmcLZCokbi^_gTe#nAIqz%dog z!-r?gj7&^3V>__@3G)I5i6uRZDnEW`q%u67V%WgKpSYAKVTKXggvB+CDH_QPlBXmb z+JM}JJyhlX*mn#X`wdJ99cbnUC-<*P&*ib&t-r0S_QYaQhttphUd}Ihom(cY`#nbD zjA%c9>G2y67}X!^X%j4aw)Hi>Ovp(&psBiW#5_S zK6c*E>gJvQr>>KfyD#mN)v1u}-=2#J?7kz#_^&$c%~VS>|MH)apY#6Syte1+d*$hq zZd|&W$GWkyP_u3k{1d+;H91`{tBE>%Cpu@7@mkGI_)0^9Lt522GyCeo=Pw zOd0FaZ%2>a*|_VCY>}iYZpJiTu zE1#Nt_R#&Q$sY?|yj^C|c{#RnS8J8#EC1648FJFUw?Dt}Z{3~w`xAxEo_+A%th{^o zqq|dY%Dg{b{`B6B7qK_LeYmt+=s|l?{nh_#H@+;`f5U;H_FvM){ieqm-US|G0LF9! tPb!asvn2D003g?hgq{vaN&;qF22WQ%mvv4FO#oV0^$-96 literal 1322 zcmb`He^AnQ7{|XzCArk*TIWh~*%dRVW~E#s)0z$`{FZ+CW=c|ON#%s1MA1^uyi?9| za4r#X)HMnPg9J(=NL^PJm6$0*qfGmOKS0e8ZJ9V`w|{p1xzFA6Jn!f3efKh&MAki_AJhAu2aoNYisL5 z_A_5+i#in#LV(ls&oewAZ3KV?YC_a@QVwENn8>hhKt+2-q|D*+(ViQRyyI#~L)`Z~ zlh+O}eCdIxsCYlWf#N!;m;|5o@0Cc~NJ!6+ZS9J4i z=O4qK$C5PZN=INsZhL-rwf#QZro>k1cY*6OU_+8nn|E6;ANCOWQk$Bv{6_OS3S{Zr zmJ#gU5deasG~3u$Q;i=Pr+Edcz(FG?Wch_bbLpKaxc!xEDwEHC2;d6dJQXIih?{#^ zJ+NWh*+{TvG(T7Y!8U6k)zzdRr`?EVq#aCxyTkK|hX+b>m}>$e6zcMoRQyocVR|fD zRcp=Nyl8P)s_{HFFAM{HsAqDsV^Om~(;ttsj8x;Wf;yiI8Ct!yT@sj%DKkQ2fg zeIhiSeXJ~4#ogXxV*6+Wr%qOO2)pmp{wYd_4H7pTY`}I3(e6JN>{dxfA|u*pG8gPR zO?W?HnV)FJ#&Vt$9={L5_TcY6cVvon9)!*XZ<{{=F^FPFi9|^_oMP9daXOE0FHwfP zRz*gx#TC}=WB?(RRv>kKFX9eKi7b^Ia$O2JE#eAvB++T$?_~ZT2D|ywLIcIXC7{Uv zzr(~wnA4Y5{0qKU5>03*9uVm@|$NVCr>;6(h*g@S?S@7ms)H4Wn0Cs4^|w! zgs}=_F4v?)@ikZBi+eOW9Ye0E$%&QWORh{kd8>W-`duT{%1djIQ}fVAm796K>CKlV zKJ^Tr>8@L6OjV|+ZzxL5Bjx1R1?kAXHzBBo4nhxNW{Jy|Oj;4E&0_;+@#A?jx`&PBW#^dzZ=^R>7c~7XT@?-P1j zz)b7J))eCc>JAaqv^(ZNqOQ0vyMa81XC=_v2a}un3|HkXDs4uXqwu-xceM}S!VQwW z&R`9e#f-~sW&FPCt}osK}Fo9(<@#`}6GclvNk;j7-1y{qPl#Q#fV;Vyv^nFF~qXY&LIa2fA;Qu6sA t2m0}BuNGM<{~R**RE%GR*OzQ@!O{DOR2AW|zw=`Q2+?4ae8<6}zX8G4jpzUX diff --git a/doc/html/a00086.html b/doc/html/a00086.html index 839738e367..40880fbad0 100644 --- a/doc/html/a00086.html +++ b/doc/html/a00086.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 > Class Template Reference @@ -33,58 +33,56 @@
-
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 > 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 >:
- - + +
- - - + + - - + + - +

Public Types

-typedef tuple< T0, T1, T2, T3,
-T4, T5, T6, T7, T8 > 
InputTuple
 
+
+typedef tuple< T0, T1, T2 > InputTuple
 
typedef internal::tagged_msg
-< size_t, T0, T1, T2, T3, T4,
-T5, T6, T7, T8 > 
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:
diff --git a/doc/html/a00086.png b/doc/html/a00086.png index 6c3aba1e4440d9f50ec116d4a078d52969493223..7bee1864424f35228b49cd77ed691c4dc9b3267e 100644 GIT binary patch literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yVDtd812~w0q>qJ+Gmw%9@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+ z^^Gb46^)xhd0A@BUAvQlAFO6=iav9O%Xo8j!lV$7OR`=|R8#|$R5crgG(9<|czAjx z2=DxDV`5#Mal1Kj&*F>vdynq8d_k&BH~h_K?<;SreHW>&R6lV-TWR();fa%Go$v3C zxy_#L{aGPLNY}H^O!@81@VC+xTXfcDPxiLCzr3@e=BD(u_`5cCS+V)XAFnN(yI=a2 zYJYsNOqo*Am#gzlJi7{%;-#auZRN;}N-dJVzr6cH?4A>mQ|9l`lscTSyIt2PDp;T_ z^oiaU+uE}$^pxBG{?NRBrchF{n`a*DXP$SvIF}2%9%`PU@Me)md_ePi;fcOabNx;( zSNg8!{yX-0lzOH26XSK?jk{zHuj`a~b>c(qyoqm1>L$)ld9vY|!OlaS=Z%VNHYU1# zlishisr!$Dvg%BAftT8M*iDTz%Fl`xPn+0odMW(t8mY>v4apPVK7HBuEqi(PlV8c7 zfB#!+>&CmiO#joHYjL9cDzp2AEhp~%w)Bz5r54{MDu0FSZeCRRR;+2S_UUKP`MB3> z`NDOURQ`Ex95gBDN3W9V%j238CrxqaoU()k9trIp#+whFc_YS9ZxheJdcf98qUQZtuvj~*{zAJ=6=P3Ld}ZNsZ+*)*TjJK{ZCZBo z`z#mcGdq-uW{4*&;kFF1ubiP?lq;`ZZOVU0?IMGsyV8F5`agT!Zl_o6)%w14=KGsl z_MS;?ysx{yaN7O1_S`2g%I6uor@C5w6Ed*t2sV>Q zH(FY3uJS>}N}w)qiT(-(;eY89eO2T66O@bomnsx#b5-{jPdvXP?{T=xx6*$L_|!UT z{+>136kB)sa{faL<-;G(85Q05!8$Sa$=aSTt?E{j>T=uNe}9m1$#P|1ZJ?8LBSzoKE%AhXO#qwjR zPg!m3v3TuIGj-lC<8DyC``CW=M23}EqVa*^r88>`jCUWc7k#()Zdt#746qbn@O1Ta JS?83{1OO$v?W_O* literal 1351 zcmeAS@N?(olHy`uVBq!ia0y~yV7vrm2XHV0$ypm&l7W;&fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1Isl}7srqa#&_AUu5!M$R0l1=)2ba_nN&XGs5TSv`tZ2yvb{S@Z%eye%s#GZ;Tc` zw@y=M-{v<~3m%7y9*>%PKbqwn_o*LKvnL<>Hv3oF`%Dk5`8R*|wVnQ}r#Lml=J|;e zCuNuXz9`3Dvp~~rYKq+MWt%p5>s*>Rl{aR~mt!}#ZqB*+ds*Mj;3a!M%T9UBkvY39 z^^{(l&YT;^Y*t))mh$%5`7EQ*Tkf}JzCMzv5ysfwSoOl%Om=g-$9s|dN+0fPy+3tQ zN@v)vU|!Hk|O4+CMHO41|E}dPcc2z0&>^w!;_$zBC`{nN`w_d0G)=4%z z^K0wT*M3vCb((&-!B!W(G}r!ZSmtGUdATJ^9?i74`6*-WUH=L9Rt9;VT-AK#UW@s= zOXs#$#A$Q)mRC)`b^HJJcbB3)+^;|IUGn!>K-B#m-rxH|zfWA-I@P`O--#vNX|)F| z_sASsWpPX^-YNXSu3(AuQrVOlv)4azW;40vz?M0e;cTrzd64>{D^(^j>g^k+Eon3Y z#^54rYpEOmJ|CWBav|P%*L?%?rn_+;o`}c@{r#aeRVDpXN5~|*h{ljfF`6iG{>5ol zkk`T~K}AXp=P!sma2)7n(ri$#tz`{naOYaWFz<_!ln>({jR{N^!3?YgOC7i#cr}U~ zmR=-;m-t)fREW$7+eD7vCOT)Nx4{dfnNjWQ(uteQswlG6R=uDr<2?jr_ zJ3>C~H|VW*b@;hwA>)+uZ))5RpH1B7%q8Mq*iz5+vaapfRBiM9 zdK%Yjax438Og;L>G-0~*?Njj=&#jG2OxKlHeEWS?o@L(zv!7Eh%V^BYJaOpcY_UC; zD$YuNJrKjYYwnBbg~!h;ELnI%(^2EXO;0ac?VhjjH*)GN?p4y`E9vj%)VDotG^_h-4C6DM1=br_6a_Uvr%AqF-&1KCskd@O1TaS?83{1OULTea`>@ diff --git a/doc/html/a00087.html b/doc/html/a00087.html index 99759a4b4c..cda0f8af6a 100644 --- a/doc/html/a00087.html +++ b/doc/html/a00087.html @@ -4,7 +4,7 @@ -tbb::tick_count::interval_t Class Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference @@ -33,69 +33,56 @@
-
tbb::tick_count::interval_t Class Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Class Template Reference
- -

Relative time interval. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3 >:
+
+
+ + + +
+ + + + + + + +

+Public Types

+typedef tuple< T0, T1, T2, T3 > InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3 > 
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:

diff --git a/doc/html/a00081.png b/doc/html/a00087.png similarity index 100% rename from doc/html/a00081.png rename to doc/html/a00087.png diff --git a/doc/html/a00088.html b/doc/html/a00088.html index a47b8b4c34..8ad0a3b966 100644 --- a/doc/html/a00088.html +++ b/doc/html/a00088.html @@ -4,7 +4,7 @@ -tbb::invalid_multiple_scheduling Class Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference @@ -33,41 +33,56 @@
-
tbb::invalid_multiple_scheduling Class Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Class Template Reference
- -

Exception for repeated scheduling of the same task_handle. - More...

- -

#include <tbb_exception.h>

-Inheritance diagram for tbb::invalid_multiple_scheduling:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >:
- - + +
+ + + + + + + +

+Public Types

+typedef tuple< T0, T1, T2, T3, T4 > InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4 > 
output_type
 
+typedef
+internal::unfolded_indexer_node
+< InputTuple > 
unfolded_type
 
- - + + + + + +

Public Member Functions

-const char * what () const throw ()
 
indexer_node (graph &g)
 
indexer_node (const indexer_node &other)
 
+void set_name (const char *name)
 
-

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
  • +
    The documentation for this class was generated from the following file:
    diff --git a/doc/html/a00088.png b/doc/html/a00088.png index ba8483c1cf060fa2603cfd6dbb3498dee4db5661..e8c28bfb8705c626663c703b62a74d2877961c3d 100644 GIT binary patch literal 1209 zcmcJPX-t|27{^~lowYhlP+O_T+QfOEOQVx9=h0Z0^*|e)^EShy#nq|cF)7t`@rc!; z7BAEmEL9qh8taS$MQvyW>smz-oMqT~j2G~Hb)t2+CEGsi>z?HQJijM-zWx7s%ELp0 zO^lF6005X^E(hTNK!>R1a6_23`|5T-*N(H{AyJo(kB_yu2JYrnkJV`DPmPX_>X$Ft zYFEQtTxcYqJvu4TWRw>G=v~GH`A6mJDCu7k-+o}MU)i>Jq|UeUv$G*eS;6QR4x8w# z)92ewA82aHG-2w_a>rge{fZez)whsEfQpKfiznzuxHs7K0H&c}I+ttmaEp|&{_q9SQk_Js2Vr%iUR-c70zqX_hD z$bA8=Obl1tmN5Cn=^6|gQ$(GPX`AW&B`mT`IMtMeNXj(JGBQt%#@3GD(CGg$&%yD z$_36OG$T=c%^-=O;k_+}gxm7+Kq%yk+|o2+(zw|}a~bm463CUS5{e=|G3X9!IgQ_b z5yw%q2!jkJB)6=f!rCSY$%fe~?aZ(^3^LiVnN{5!2wnU@J^`dkv)kLV@IUG z9qz-vbME_prLa$R@2HD%>Nw7nt@!_OvCX)?tJ~8!*c z@J&wRJDUHUG68wm7LV-Dm@Y$~dfE~@q7=BMsJU&O#dSl3>NE>kpbZ_+#F@gt)U=(h z-*+pD8Vc6Xxn6U+d^UVIq*!uG4^h@ zVvUEYh>-r|_deaH^t|=@$_?WmQPOQw4LvZ)GmdgB5Kk2k)a#ZW?fde$G!}z@5nAYp z-A8~XEeMcaY1z&uB_+NKUPzek8e;YIbIz%qq|LYeM#+kjhCNBNAEjF*g0iwVYJFV2 zSmyUhF`$Xujp_-J=1!v3oT+KyE5=YBG;u2ny}@bWs)vGr@~rB%k2GautCRdC$-PLerNryU&ztOlr{=Z{}F?0V+mNt dP8{~stZhevc)?eu*Q@>y!XGfe0>4qLCN#0CNI^B-m-?n)7$l#nDOSsgDRN;hvFvHa8!GKdKmpJ zcpAGzS|f-wMg4~@~JQ&&opmq{B{%8 zJ9}N8A60oNWq$K~ef96soO+hupAs~`{i_WGDtWhN&X=q6R{Y+d`v2pZnfgy>e%}5@ zb>;cR4-dyp;*-1`H%U(Ujq1tv4bxTR)vAp*2QpSn5I?YiC-;9lniKrg!1Yqr`^zfLtDbUYJPys@)nY#*m^IUD^>j7flEYu#tbTX)L%sUU zV|DpaqAr0O_WB+=u~yJBd%tgN-Gchu{p;3grKkTF{?GY4ZqNVQ)e75xZFq5S?$-6M zbMxoxv+ex)_I3aBkh|vl*t>U^?zb<#)pPab72D!h4^7YhG+sVyqSAAZr#)%!8RtFv zCt`j}Up{KES7|SXYem9?)vj6UVS5bMau^E4~lOXYi87YoH@hxRNih? WanNc8mD#{l!r -tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Class Template Reference @@ -33,16 +33,58 @@
+
-
tbb::flow::interface8::join_node< OutputTuple, JP > 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 >:
+
+
+ + + +
+ + + + + + + + +

+Public Types

+typedef tuple< T0, T1, T2, T3,
+T4, T5 > 
InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4,
+T5 > 
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)
 

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

diff --git a/doc/html/a00089.png b/doc/html/a00089.png new file mode 100644 index 0000000000000000000000000000000000000000..e3d1565f5b3d6592f5b6b2e58d9455d919b5e21b GIT binary patch literal 1259 zcmeAS@N?(olHy`uVBq!ia0y~yVC)6512~w00G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu29_#M7srqa#Ul~*k8W!#%jW(H&pJU6|%FgvAgq^-PlP%3Zv*(euXOkpvvFRJDYLn^Gu>pT}ez$&8lQ#wR)%zvF(Z$uHXY)%E{T z+unO`Bzr4^U(Nlp?)WukxzBep=FGl6_s$DH^F7ZF_pUEmtnYC6&I_(n%u?HDoiAe5 z(?2lx&V-OXY$i2V_g^$;(>?Iz-Re6QZ>9HLt_{1t!!`L@>YA^;`!+7Cm|fw0?)LgS z^&uY1cI6h{-E(8zv(=SbSFwJ-vE!`&^EG>GryhQES|&y4M4htx;?(P+7mC$&ozrza zg+rw#eQ_>%-mSJR-crX?_^+{4w&~uDH{Y`QFB0HBw*EY?XV>ES9?p~g`Ktn%i%Zhhrj=`%UWA_U*(`Vc(P5*mtY311iyG|R0|DDPIL9gGnp;nKH^TzRcFBTt;HL#z2?AOnC zp`VxT>#LCay!NTxqwrZblMm>ZZ|k)W{=aAD#?RCGGkT0`X0RAbJwD$m z8FHd)=S!%cKX5+9n|*=z($239x16QQgO0T&X4Rg0+?_c?Ec2b`-h_46d^4^{m9N>c zY~xn{2Nm-!yl5(RO1|*F?V7rcUGuSD_0y!^Cf4Th{C4{-^=tR3-gk%PFYLHlGflgo zlJTFOd5xi5=!~@Oo4rb-!rWG-?w*_-R4g_Brg`4Q8Ksip%lU{aM zXg#aRPq#~MTOYW3-R>*9YJOy2&ikHP&v<KO@MGbu zny=w}%rP(aFWngSa(R0{=i}?o*c@!ICI#`{ATQ6UL8rdI=KucqnQwlym_M*&V(@hJ Kb6Mw<&;$V9GEV&f literal 0 HcmV?d00001 diff --git a/doc/html/a00090.html b/doc/html/a00090.html index be984c8d32..90146895ad 100644 --- a/doc/html/a00090.html +++ b/doc/html/a00090.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference @@ -33,84 +33,58 @@
-
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 >:
- - + +
- - - + + + + - +internal::unfolded_indexer_node
+< InputTuple >  +

Public Types

-typedef OutputTuple output_type
 
+
+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6 > 
InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4,
+T5, T6 > 
output_type
 
typedef
-unfolded_type::input_ports_type 
input_ports_type
 
unfolded_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - +

Public Member Functions

-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)
 
+
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:
diff --git a/doc/html/a00090.png b/doc/html/a00090.png index 04fbb34308e28c32765b6672e2d13357708f2350..a26e6ba87462dfe980238cad51f0b932d581d7e3 100644 GIT binary patch literal 1300 zcmeAS@N?(olHy`uVBq!ia0y~yU|a%Z2XHV0$;4+L_W&u00G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu2A0L1E{-7;jBn@OoOQ>FgROh^!@u`` ze5sh|ID7ib$p*4Q|K~4PZAtMupsS>$DL8S5Q%Gp=s#SqgCxnDHYb&l?#TM=q6w14< zWyvb37}iS%v%GRmG*cISH2?hXMcWr~)5WpIk^gn;zqI{bW&C=g@bgr8y~)Aqt5$8b zn)!ug(%nCNJ@$N=^7$1xhkXw$ySDiKn!P3umidK*&dpJ)J$&z6q~4KF_vhSK?TJs; z+4uhJ$CJ0$XUXSpoqs(iM(oC4?d$K7ei?r~d+zb-Ro_->ADNo?d+&6Gm8<-oD6Bnr z%V`_y?VeRDs{hP7bx8l?1h=rdsAJNC6Yu=Tl{+R9ZGr3yd$iWaMv-Z~vOPk+kpO#e@@Ut(=v ziY*Cb-_7vS%|Gh3%iO)*4>!o~|F7}Jr}NICy_Fk#uatKsg?9biSUC6WxyZ{c2gc=J4ONxUs}H<9R;@aSh~?|tlR7-STvXOD*!jdWXg2Kd@?hBb z_3P9r3{KjLj7P3@2L>^9tZ88pi0kA~*dZk3P@t;P05pUFXa++QPzg)86BEZepn@1q zPHHHy6M#5qoj`+#LkPNM*F`R6XU+cVW)xZKb46`^D8t$#XF{YI?}V0L%HbYdXTJW0YliwY09lw3{+C#O3;MW&(SAmlx!>(D5 zQR@!w`uNRC@1Ie`KZD=8&QBLj;of%t`rGZbJ1j-7Yd-cc0t-&t{)bt^2~4t-71`G%sp)RcD6v{OpEg zkN0mpw=48o-C*^wf92`jmy`IarS9w7#rfHO$(#O|9sU-oA76ey&HJqVpR1m`es9{} z@c8D+P&sfCjDsaX#wcG!#+nsu@qfkJ82!FvE3TD&@bY23=;C^_$qaS9*b)pp$^BzK Y-T!${vF7|FU=haP>FVdQ&MBb@00S>un*aa+ literal 1992 zcmc(gi8tHX9>9N|DMoEmX|1s(NT!z2skTb#l8hwwplDIjDxR%6wjx?fwIW4ACMIt% z6QZ>=)}pagDT-5yC>z-r5N%5D0`iyRZ?S-jX4-FS)t7`9R8uy09t{hP8DB zghBghpv&nP0EoMw5$BwuL^wI`agd`@2wB5gz92nhgd>*1m@rm)8+i6U3P{!0>whSWs=L?(V^L2ogPcEZ-VQduwDtGu={E>U^Lu_=1y zUs+FjyuFOpMv7K9ehywg2C-wUJQ{o50J$X{x!XIWpuQEv4@pd<8l%*rQqhbk1n3W* ziUaD;o)K+AH}#=#aI2m9JQe)+8Xq8%Xcp-s=1TZ@?Y2b&uWzLRR)eaC#bxd}^Qdp@ zH`P3fG$xI`+l_tIFXF`PPpS21MEF-`+Abt8yc4k35 zlrVZJn)&JMb}PF+KNMTLyk38qE(+Q zG?#HL;PnbfN)NZcZE;mI;ng&~PPw~}bf{CG?q`)N*LEG6!}Fp0xf~$`9G%R>=iMhY zxRuA+1a4HWayHIU3Z>5tr1J}5A7%x5s_khS2?3|Hmf1bh9F4u)@x7GetXNjbyvoUYTQs(Y4q@35LvvBI`JmDiuob(oUv*w>fuST z0XoFIefQ~1?wQd2#cK7YPiaSLUNdXyk6t>cfI8izvY_6(5^<^tU)1r|iACrtn9!;M-CLec1gUc-V+_2 zb~i;=Z{|1@4fd^BGG8{`qk@LIJ-Ho-&`uMV=NJq}kzBC(BRj`8;&wgkHSV*>VEPU# zmbmm=(`IwX$`!Jhr@~na4|rUoeXKhpqaeP6Q>YQ!{3<|ZS4*HhC%s$!<;sx?EDoif zCljGcUy1(14YYqHUB3_|$*}@4vTzu9TNai82gJq)w`H3FMc}G~5RS$xdCnqU01+vK zH9P4)F4arZ{;OR|j<(b78vd(>Bx1kT7n3d@AQ?XfS%a4d};Eb6`&IC=<-ejuwQO2O`Ft<@r zAl5w39nP&i&A;nvs#V%{3B2U1cIK9kVi4GW-8JHVs8OtRzD75cuz;0m%D=jN%EDvj z#)fbD#w6a?0N>>)^L>gj{iI5nmJcDF(xsbN%y|up3qN4EfA=UM*mCCJ1WGMavD^?KK5XIxx!A_{af5??b z9()NSeD)`{*Ho)`EDXo|ny9sX_|;LvPdL|MfnCYV(?r4bK9l4{#Q}MT(gTrIu$#a7KPR=Ev3a0t z!Vd)F@4V@H{($Zp<~~~DnOvM<8Vx4K?Maijyc`0JHQw?K5L|`MJ~hvuAvW)u?k#Q^ zmP(IVI#fHasPqoGT#_g;y)&IIb9mW7Tem$z&>IMoeFXi+#!-U^1 NfJWLPnCHC`{tfi%p}YV9 diff --git a/doc/html/a00091.html b/doc/html/a00091.html index 2cd2ed353b..fdce244fea 100644 --- a/doc/html/a00091.html +++ b/doc/html/a00091.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Class Template Reference @@ -33,51 +33,58 @@
-
tbb::flow::interface8::join_node< OutputTuple, queueing > 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::join_node< OutputTuple, queueing >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 >:
- - + +
- - - + + + + - +internal::unfolded_indexer_node
+< InputTuple >  +

Public Types

-typedef OutputTuple output_type
 
+
+typedef tuple< T0, T1, T2, T3,
+T4, T5, T6, T7 > 
InputTuple
 
+typedef internal::tagged_msg
+< size_t, T0, T1, T2, T3, T4,
+T5, T6, T7 > 
output_type
 
typedef
-unfolded_type::input_ports_type 
input_ports_type
 
unfolded_type
 
- - - - - + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_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:
diff --git a/doc/html/a00091.png b/doc/html/a00091.png index 890b2d6bb8371d00ae69db7ae975c2814c5befd2..ad53103e7be97f926d7a4df7b3c00cba54ef366d 100644 GIT binary patch literal 1322 zcmb`He^AnQ7{|XzCArk*TIWh~*%dRVW~E#s)0z$`{FZ+CW=c|ON#%s1MA1^uyi?9| za4r#X)HMnPg9J(=NL^PJm6$0*qfGmOKS0e8ZJ9V`w|{p1xzFA6Jn!f3efKh&MAki_AJhAu2aoNYisL5 z_A_5+i#in#LV(ls&oewAZ3KV?YC_a@QVwENn8>hhKt+2-q|D*+(ViQRyyI#~L)`Z~ zlh+O}eCdIxsCYlWf#N!;m;|5o@0Cc~NJ!6+ZS9J4i z=O4qK$C5PZN=INsZhL-rwf#QZro>k1cY*6OU_+8nn|E6;ANCOWQk$Bv{6_OS3S{Zr zmJ#gU5deasG~3u$Q;i=Pr+Edcz(FG?Wch_bbLpKaxc!xEDwEHC2;d6dJQXIih?{#^ zJ+NWh*+{TvG(T7Y!8U6k)zzdRr`?EVq#aCxyTkK|hX+b>m}>$e6zcMoRQyocVR|fD zRcp=Nyl8P)s_{HFFAM{HsAqDsV^Om~(;ttsj8x;Wf;yiI8Ct!yT@sj%DKkQ2fg zeIhiSeXJ~4#ogXxV*6+Wr%qOO2)pmp{wYd_4H7pTY`}I3(e6JN>{dxfA|u*pG8gPR zO?W?HnV)FJ#&Vt$9={L5_TcY6cVvon9)!*XZ<{{=F^FPFi9|^_oMP9daXOE0FHwfP zRz*gx#TC}=WB?(RRv>kKFX9eKi7b^Ia$O2JE#eAvB++T$?_~ZT2D|ywLIcIXC7{Uv zzr(~wnA4Y5{0qKU5>03*9uVm@|$NVCr>;6(h*g@S?S@7ms)H4Wn0Cs4^|w! zgs}=_F4v?)@ikZBi+eOW9Ye0E$%&QWORh{kd8>W-`duT{%1djIQ}fVAm796K>CKlV zKJ^Tr>8@L6OjV|+ZzxL5Bjx1R1?kAXHzBBo4nhxNW{Jy|Oj;4E&0_;+@#A?jx`&PBW#^dzZ=^R>7c~7XT@?-P1j zz)b7J))eCc>JAaqv^(ZNqOQ0vyMa81XC=_v2a}un3|HkXDs4uXqwu-xceM}S!VQwW z&R`9e#f-~sW&FPCt}osK}Fo9(<@#`}6GclvNk;j7-1y{qPl#Q#fV;Vyv^nFF~qXY&LIa2fA;Qu6sA t2m0}BuNGM<{~R**RE%GR*OzQ@!O{DOR2AW|zw=`Q2+?4ae8<6}zX8G4jpzUX literal 1706 zcmcgtdoYx182@CuC=#XB64U8htYjUjSYd?Lw~Mqc*<;ylBf7Y4RBSHCoK%$ZS(luw zj?gKVs9mkytz9WCU6c@##JaAcsTGwypZ+*AXXecL^Sm?f`}}@0&+|U-Z|3*TbJo{~ zsIwfi8~^|v$kUwy0E=J*`!3T&&f>A~MkE;edii^()oKKeDnBP&XuOD^A6qJwE?0^$@YGuW)YP#CkE;H;dggrSW~+_F7;_zcXQsZD>#y@Fo8nn`(q(!)^C@xhW*$lDc#EF zX0W7I-4vk0SJXEQWz~rXV3<<2QT|cq&n(Q>T}cfaJaUXk7(e7*+v)C~Zj@G9q zKsR2kP)!N4BW4pJZhupjo+pJd375^ZC%w<<=(m=uGV{uesiG>t+O zSziixrDL@ifSC+N*#NnWg>s}Jl8*F4ijlwef22z{dH#@MR?fMrtF@pc=7*Ahd5Q}t z_bct9?Qc04p)0&CG%Dq`Gaa{G(gWS)Sd^Yb?pH0&CD z6Sq%J9~a@>w&6P9bGWEZQ?NVCnB4Y6gmyBYCii@kWQm-wt2~(zqoci%=1-q~lGX7? zXTWZ+8#ERXo|PDp>Tc!G^%ZIoJdrGc7$Rkj?rE&BX<2is7u`=nHu?e3ZXna}npGLHYZ2ukt1hs}_{5Xx} SQZ -tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference +tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference @@ -33,51 +33,58 @@
-
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
+
tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Class Template Reference
-Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
+Inheritance diagram for tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 >:
- - + +
- - - + + + + - +internal::unfolded_indexer_node
+< InputTuple >  +

Public Types

-typedef OutputTuple output_type
 
+
+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
-unfolded_type::input_ports_type 
input_ports_type
 
unfolded_type
 
- - - - - + + + + - +

Public Member Functions

join_node (graph &g)
 
join_node (const join_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:
diff --git a/doc/html/a00092.png b/doc/html/a00092.png index 0157a3afb3e5de05fcf0632efc7041bf2e7cf1b4..6c3aba1e4440d9f50ec116d4a078d52969493223 100644 GIT binary patch literal 1351 zcmeAS@N?(olHy`uVBq!ia0y~yV7vrm2XHV0$ypm&l7W;&fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1Isl}7srqa#&_AUu5!M$R0l1=)2ba_nN&XGs5TSv`tZ2yvb{S@Z%eye%s#GZ;Tc` zw@y=M-{v<~3m%7y9*>%PKbqwn_o*LKvnL<>Hv3oF`%Dk5`8R*|wVnQ}r#Lml=J|;e zCuNuXz9`3Dvp~~rYKq+MWt%p5>s*>Rl{aR~mt!}#ZqB*+ds*Mj;3a!M%T9UBkvY39 z^^{(l&YT;^Y*t))mh$%5`7EQ*Tkf}JzCMzv5ysfwSoOl%Om=g-$9s|dN+0fPy+3tQ zN@v)vU|!Hk|O4+CMHO41|E}dPcc2z0&>^w!;_$zBC`{nN`w_d0G)=4%z z^K0wT*M3vCb((&-!B!W(G}r!ZSmtGUdATJ^9?i74`6*-WUH=L9Rt9;VT-AK#UW@s= zOXs#$#A$Q)mRC)`b^HJJcbB3)+^;|IUGn!>K-B#m-rxH|zfWA-I@P`O--#vNX|)F| z_sASsWpPX^-YNXSu3(AuQrVOlv)4azW;40vz?M0e;cTrzd64>{D^(^j>g^k+Eon3Y z#^54rYpEOmJ|CWBav|P%*L?%?rn_+;o`}c@{r#aeRVDpXN5~|*h{ljfF`6iG{>5ol zkk`T~K}AXp=P!sma2)7n(ri$#tz`{naOYaWFz<_!ln>({jR{N^!3?YgOC7i#cr}U~ zmR=-;m-t)fREW$7+eD7vCOT)Nx4{dfnNjWQ(uteQswlG6R=uDr<2?jr_ zJ3>C~H|VW*b@;hwA>)+uZ))5RpH1B7%q8Mq*iz5+vaapfRBiM9 zdK%Yjax438Og;L>G-0~*?Njj=&#jG2OxKlHeEWS?o@L(zv!7Eh%V^BYJaOpcY_UC; zD$YuNJrKjYYwnBbg~!h;ELnI%(^2EXO;0ac?VhjjH*)GN?p4y`E9vj%)VDotG^_h-4C6DM1=br_6a_Uvr%AqF-&1KCskd@O1TaS?83{1OULTea`>@ literal 1724 zcmcgteKgZ+9RE#;Y~^Kke>(S{d(J)Q{&$~qp6B^K=ll7-o%8veC(Xxe|4KD| zH2?rsV%^>R06+V;EhvnQ-QBHc*QmixBt0Yt3cj1X zl!Y&(XCFQm$pW)Gl+3Vc2qe=%#S(}0Ktyl$1DV&|-vn^%kd_QinLE+L&jjm#U%mRH z#HXytOMuQvDEheTyUE;MTdo}8l-YMqW1o?31p7kE?kZE!ZDU)hkimRA-8_>tHORBa zPS&EUhQUtNF2^CQ5`-MQlA1`}VS~f!KWL9;I~z@(A$q*gjFwGySY6|&OlKy_H?vNU z$-<&*AH{k;)f+b0E*d2SX-|a{-|N&T-$44WLnQYLe0E*nq8Eg&*KB%SOIPxANAO)c zQeBcP!cWFUC0wtN=l7S)m|I&}P==jOi0e9R>h(yxe67MJQbd%RSpDqH_p;|Tt=jph zQhlvbW#V&EPj`4cgRq+Y4xxC$wV^myppL{umpfAjU#kUACL|Ap*Zh+AKydlH@NKD& zSD8O!NV@nd!|ql{-^)GJXHU1@biXk*V^F=NUAT%YF-V=s7^kD|+}TX#q{N|UQ|QF~ zR(eK57Kf|H8Gh(@<0rYOUg=FkqGS!(j8hEfdET@Rk^oaD7XR%cwa&STS@4 zhaLH%HJ{iy>*39s0*jPJ7qh=xv3Kw8ENNhXSS0Hd$D%wLXqI*uk&2_2s@T7EdNAg6EOBhknd#NUW3v z7az*ed34&ehW&N-jkamo;r>F@SiIPj7}#}}a_sXHdK_c?(-}%&pcQvtAbyqxcMQCD zUR)sC<8kSl#MgcbDM;-Ql@DZy`ntMJ?@B7kylgGkaeT!DlKz-~o#Q<%Jjc{dJOv{c z@;3IRt^RV8%}Fon)vSX2v=FezJKk|QRxO6WoS_|2xLlKq`8)l4ySp#f)3(TptkC#7 zh~=(guqhS{9Rry&8p1G2VdhnC#gv+HQ|l75-I)9SNpS{L)QwqULbrtU;Q0&#Mn-t7HKPpgN1M><&bVhMEG*ep0g2vc#n*A2qYB!$l||0Lc%hnP~((3&3I2 z)^3D>>Do)Mbw6N`u%JYcu3&3YAXz~H{*0w;P{sc(;5`P+MlQ|OXMGfaL#;ughbH)! z*1mZ18v>H7oZiK#WLOwVv)Zgvbk4dAe*)I2z^M3b6MlPe1}9dKKRoKuVcmB`ooBi65)QDKZ$_F7M{-KFzj41VI<+*2>wmt`f1fQGod3)S zI*|J*Ne-LuvSkr2J{Gs8R%mMLR;%T?B;4(to-1jdBT|EAd zYiu}>BqF}}I+-Kivb~2_!?&(p*x-{dcOHCjO3GegKGrQoXT-M(qIyg>6Jrm;lGld@ zp_=CtyGHxrg4a&XXCYE8>gRRT&V_dB!f35U{A8z~nS_+8O?0@Oh(M9t3sc(pd*2q- l_vHT|o-Q%xZ-O8eRP-w;X*3rHedwzJuoy45$~{Lf{sr<+DNq0a diff --git a/doc/html/a00093.html b/doc/html/a00093.html index 61a7a88498..b5e578f528 100644 --- a/doc/html/a00093.html +++ b/doc/html/a00093.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::limiter_node< T > Class Template Reference +tbb::tick_count::interval_t Class Reference @@ -33,300 +33,69 @@
-
tbb::flow::interface8::limiter_node< T > Class Template Reference
+
tbb::tick_count::interval_t Class Reference
-

Forwards messages only if the threshold has not been reached. +

Relative time interval. 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 > - -
+

#include <tick_count.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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 ()
 
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 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
 
+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

-

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
  • +

    Relative time interval.

    +

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

diff --git a/doc/html/a00093.png b/doc/html/a00093.png deleted file mode 100644 index 0a2205abf8bb10721e5ce5bd1a63865d969d817a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1884 zcmcIlYfuwc6b>ksg1m;QpuBWwVH^-KR-#BqO?ik&BEk|x0ktEMN(0oa5h|gy<>iZ3 zw9z6-u}EMcJSq}RfKp>k3xq;A&WODjjI{u@%WRjSe}dz!T6A*XvpX@;VzHp+lj&z*#huSl z>*d$e(_>RU=7TP6>3c~D7!l)JHuO8L<~sc4 z7#cP0u?+UQm&=Sm-PW;?@Y1)bOj+nx`HNxqW8h*;OY7N<=xI6Bp^wT0gT8%@!VMil z85+vr%K(17Tc~OV(09WqV%#4gR&=H+ay`Xwm7~bN-^v#uetc=uO3@(Bd2Nr(;AFi# z*=Y%J#$rArbUp~6(OZK$RQJ%y4^4_Kiu$ltMf@0JWgQp^{o&YKi*EA2IA+`ASs?|L z$+#*>9U%*X^6TQL05Gt~ORnsPAX1qC02Iz(BlN--Ndmxkr922JsoxL4K6<5Z(@6XUfkU+Eeoa}ik;#GBv6+Kz_#ZAa+1tLm-p#!R(b4KzadZmvf7;NjV^ zT@U*Xh4TcZ!6dG(1@AF(>jd6#l2J)eW}Nn8@hQ8rYYYK?0XGTpz!v2`*fbIBKPMqm zWD=a}whI7za~cHMJEs65)xL9$Dgos3hiNwR9>Ux><3b#J++%7t|B8G%VB_p{QzK&j z@bdgwa>{X=<_kCj(@RU07QCCnd2?nW*eyxlUUPuPThA5`84=Pw!Z(^ZH3Ve@Hfs6~ zv3nnMWlFSpz5;$_T5)HmAia#SN((+nbDZ~=;yY*Y?BnaW73yg@ujc*!V*npQRuI0{ zkW1tpw74qx20u~Zb576PhejvEcs!NyUT6PLrs@epNMXM2p?vtJ=2BVXdH~$UZZM*$ zV4pA?b>O5euKk7+uXo5SxX{iLoodpUzu!Jmt}h1<{u&%UE*>S0xYtdpez9ksFNcb`miw!SqA0540b6wjzVSc*Pci zyq^YE13;ISf7nDNcDAX>UyVl7QBLHSza)`mFWjZWF5SoG8Vvw&5ef)0zv7%=9m=_9 z(XTk?5YLAoLI*+%sfv@mJvo*YQq^pzYP*xIwJQAVuASm@I97D5h!9;lG&T^gVi|Qt5jN9Sb(gpA^-){#ChN z*0>9}uBW$5;C%4NQb}X~Md1Dk)8b1GxxZLpO^?!FIrs0mW(I_ZxWuD(o` zr`gC>N`9R1&))LL8>jw&^-I@5qO{mMuSwH9S3WjS7k1GU_8jcfgu4eX>5?Z_7(f}- z@8HEwKBTl2s132cqV8ja9P`!%&yj5%qr(RjB0H{Gj%DTDxD>?rOjjn*QjbEKq3cDu zqtehm#%j($*t6X&Sy3Ck)NeRq(>5MwGBeO>*;KvlwjV+izm1SK9AiAcosDbGJcHB* zjwe%7KnFiDeWbed*OK27Vh5HjiLh9z=t`M&oEd(~8gT`yj(9^t4$g%^o6HSfQqMZg zqkg0U#J!P@`cQHmSy!9+?cnFbJ1uk#Kc6BBAST@KlvT0 Cb*|z7 diff --git a/doc/html/a00094.html b/doc/html/a00094.html index 11f8092ad7..bbdcf74fa9 100644 --- a/doc/html/a00094.html +++ b/doc/html/a00094.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool< Alloc > Class Template Reference +tbb::invalid_multiple_scheduling Class Reference @@ -33,49 +33,41 @@
-
tbb::interface6::memory_pool< Alloc > Class Template Reference
+
tbb::invalid_multiple_scheduling Class Reference
-

Thread-safe growable pool allocator for variable-size requests. +

Exception for repeated scheduling of the same task_handle. More...

-

#include <memory_pool.h>

+

#include <tbb_exception.h>

-Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
+Inheritance diagram for tbb::invalid_multiple_scheduling:
- - + +
- - - - - - + +

Public Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 
+const char * what () const throw ()
 

Detailed Description

-

template<typename Alloc>
-class tbb::interface6::memory_pool< Alloc >

- -

Thread-safe growable pool allocator for variable-size requests.

+

Exception for repeated scheduling of the same task_handle.


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

diff --git a/doc/html/a00094.png b/doc/html/a00094.png index 040c525da839e5eac853d6e1a5792784458e9f56..ba8483c1cf060fa2603cfd6dbb3498dee4db5661 100644 GIT binary patch delta 592 zcmbQw`j17iGr-TCmrII^fq{Y7)59eQNbd#W01jp#S$(-BZla=fJ+G&WV@L(#+qriq ztx@1%vo`;{_rJ7!eF5V^$@8lwFV%|PvWCOc+x3~4@#e&XDwzR?;wIH_RC|7U82v4H z8oN;K#kfg%&(waueBs+xY=1vzuJ7Mp|BJ$VJTJMv+ZaE!NZWeysW2eVG;eGCb`#b+ zdtII%Re338e)D{N_3zRgmiphH5;VX4s|^GydADZHm#gzu{NA7X|KpjN`cG$m-u^~) z<@v=A564a7le`@_Nly8V>dE#E(^cfvs*N`XGFD6wKd^x(_kUII8v8AORqQwXyYa2? z8AFBOHwL>F+Xntb{s+!Cn12Z1;np+DB&M0^NE}!I)o{4~@0F+jPd#VQWxw2b=bGiu zpTBFf=7(wT?zX?l{Kew&mh+V-9u;g8gI$rFK<@AJNrSse&(^d z{3ubEzzutS51m*mXqmm=H@0p;eeV8s>$K9-{|o=;{2jOF|Ltmp?Y}m>xHos}`q#Pn z^Yz(wetrA8|9Qw=^L^~yyG!@m7vJi+`tpix@vDcXXMY+mpEXhGxyRFOIb!VS6fXx2ia3 UHG|4*U?O4gboFyt=akR{06>Hx<^TWy delta 625 zcmeyzGM`nkGr-TCmrII^fq{Y7)59eQNIwGN01jp#X?!Mf_C!VNdOc4U$B+ufw{xQ> ztv29cjkdS^egESJqq+pO#I7f9`&M~P-zeK6efp8O@#c*ORWehY0w?Ve?wa&uuD{kZ z_1Z66+ZL((Wu2^BxO{z3p4ZW|T`xQ?t=;2Y*tP55tY;}!-E#hh`7x&2p5{X7fs^Y09ct~ey1jGFib-EoYr+aOHS=%jc)k+at>Jl()7A5n zpN7|@ay3`u%?lZS=c=}? zd&HSK%unxH?r+&^uHzq=m&`WbQW|22_k#q~F5=Qcl^_;r2s{+wAV9^D?3 zOY0?9y!Yz2=dTJ`bDeR@{w(q9(m|X5pE@VDafh8*X5j0+ua}$in*P-av16FK;Oos5 z^W*++w{^>{U$o7CO5J%I?y%zifZ4u4_WI z?9tjyt1Dt^%}q~D3VY`DKO}E^%)O(}WaUm@=}f8*zuZ~1?#7dQo?SL~kG^`dcfyM2 zt9MRW(ff!y{bS6>>zi+cU2$&Mv`8#FVdQ I&MBb@0E9#)s{jB1 diff --git a/doc/html/a00095.html b/doc/html/a00095.html index f52b9e34bb..ee95c61343 100644 --- a/doc/html/a00095.html +++ b/doc/html/a00095.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< T, P > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference @@ -33,139 +33,16 @@
-
-
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, JP > Class Template Reference
- -

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

- -

#include <memory_pool.h>

- - - - -

-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)
 
-

Detailed Description

-

template<typename T, typename P = internal::pool_base>
-class tbb::interface6::memory_pool_allocator< T, P >

- -

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

-

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

diff --git a/doc/html/a00096.html b/doc/html/a00096.html index 89233cec85..f1729a4574 100644 --- a/doc/html/a00096.html +++ b/doc/html/a00096.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P > Class Template Reference +tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference @@ -33,88 +33,87 @@
-
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+
tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Class Template Reference
- -

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

- -

#include <memory_pool.h>

+
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >:
+
+
+ + + +
- - - -

-Classes

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

Public Types

-typedef P pool_type
 
-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef OutputTuple output_type
 
+typedef
+unfolded_type::input_ports_type 
input_ports_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 ()
 
- - - -

-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)
 
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)
 
-

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:

diff --git a/doc/html/a00096.png b/doc/html/a00096.png new file mode 100644 index 0000000000000000000000000000000000000000..04fbb34308e28c32765b6672e2d13357708f2350 GIT binary patch literal 1992 zcmc(gi8tHX9>9N|DMoEmX|1s(NT!z2skTb#l8hwwplDIjDxR%6wjx?fwIW4ACMIt% z6QZ>=)}pagDT-5yC>z-r5N%5D0`iyRZ?S-jX4-FS)t7`9R8uy09t{hP8DB zghBghpv&nP0EoMw5$BwuL^wI`agd`@2wB5gz92nhgd>*1m@rm)8+i6U3P{!0>whSWs=L?(V^L2ogPcEZ-VQduwDtGu={E>U^Lu_=1y zUs+FjyuFOpMv7K9ehywg2C-wUJQ{o50J$X{x!XIWpuQEv4@pd<8l%*rQqhbk1n3W* ziUaD;o)K+AH}#=#aI2m9JQe)+8Xq8%Xcp-s=1TZ@?Y2b&uWzLRR)eaC#bxd}^Qdp@ zH`P3fG$xI`+l_tIFXF`PPpS21MEF-`+Abt8yc4k35 zlrVZJn)&JMb}PF+KNMTLyk38qE(+Q zG?#HL;PnbfN)NZcZE;mI;ng&~PPw~}bf{CG?q`)N*LEG6!}Fp0xf~$`9G%R>=iMhY zxRuA+1a4HWayHIU3Z>5tr1J}5A7%x5s_khS2?3|Hmf1bh9F4u)@x7GetXNjbyvoUYTQs(Y4q@35LvvBI`JmDiuob(oUv*w>fuST z0XoFIefQ~1?wQd2#cK7YPiaSLUNdXyk6t>cfI8izvY_6(5^<^tU)1r|iACrtn9!;M-CLec1gUc-V+_2 zb~i;=Z{|1@4fd^BGG8{`qk@LIJ-Ho-&`uMV=NJq}kzBC(BRj`8;&wgkHSV*>VEPU# zmbmm=(`IwX$`!Jhr@~na4|rUoeXKhpqaeP6Q>YQ!{3<|ZS4*HhC%s$!<;sx?EDoif zCljGcUy1(14YYqHUB3_|$*}@4vTzu9TNai82gJq)w`H3FMc}G~5RS$xdCnqU01+vK zH9P4)F4arZ{;OR|j<(b78vd(>Bx1kT7n3d@AQ?XfS%a4d};Eb6`&IC=<-ejuwQO2O`Ft<@r zAl5w39nP&i&A;nvs#V%{3B2U1cIK9kVi4GW-8JHVs8OtRzD75cuz;0m%D=jN%EDvj z#)fbD#w6a?0N>>)^L>gj{iI5nmJcDF(xsbN%y|up3qN4EfA=UM*mCCJ1WGMavD^?KK5XIxx!A_{af5??b z9()NSeD)`{*Ho)`EDXo|ny9sX_|;LvPdL|MfnCYV(?r4bK9l4{#Q}MT(gTrIu$#a7KPR=Ev3a0t z!Vd)F@4V@H{($Zp<~~~DnOvM<8Vx4K?Maijyc`0JHQw?K5L|`MJ~hvuAvW)u?k#Q^ zmP(IVI#fHasPqoGT#_g;y)&IIb9mW7Tem$z&>IMoeFXi+#!-U^1 NfJWLPnCHC`{tfi%p}YV9 literal 0 HcmV?d00001 diff --git a/doc/html/a00097.html b/doc/html/a00097.html index c1b181e6cd..639ceddbb5 100644 --- a/doc/html/a00097.html +++ b/doc/html/a00097.html @@ -4,7 +4,7 @@ -rml::MemPoolPolicy Struct Reference +tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference @@ -33,58 +33,51 @@
-
rml::MemPoolPolicy Struct Reference
+
tbb::flow::interface8::join_node< OutputTuple, queueing > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, queueing >:
+
+
+ + + +
- - + + + +

Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 - }
 
+typedef OutputTuple output_type
 
+typedef
+unfolded_type::input_ports_type 
input_ports_type
 
- - -

Public Member Functions

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
 
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:

diff --git a/doc/html/a00097.png b/doc/html/a00097.png new file mode 100644 index 0000000000000000000000000000000000000000..890b2d6bb8371d00ae69db7ae975c2814c5befd2 GIT binary patch literal 1706 zcmcgtdoYx182@CuC=#XB64U8htYjUjSYd?Lw~Mqc*<;ylBf7Y4RBSHCoK%$ZS(luw zj?gKVs9mkytz9WCU6c@##JaAcsTGwypZ+*AXXecL^Sm?f`}}@0&+|U-Z|3*TbJo{~ zsIwfi8~^|v$kUwy0E=J*`!3T&&f>A~MkE;edii^()oKKeDnBP&XuOD^A6qJwE?0^$@YGuW)YP#CkE;H;dggrSW~+_F7;_zcXQsZD>#y@Fo8nn`(q(!)^C@xhW*$lDc#EF zX0W7I-4vk0SJXEQWz~rXV3<<2QT|cq&n(Q>T}cfaJaUXk7(e7*+v)C~Zj@G9q zKsR2kP)!N4BW4pJZhupjo+pJd375^ZC%w<<=(m=uGV{uesiG>t+O zSziixrDL@ifSC+N*#NnWg>s}Jl8*F4ijlwef22z{dH#@MR?fMrtF@pc=7*Ahd5Q}t z_bct9?Qc04p)0&CG%Dq`Gaa{G(gWS)Sd^Yb?pH0&CD z6Sq%J9~a@>w&6P9bGWEZQ?NVCnB4Y6gmyBYCii@kWQm-wt2~(zqoci%=1-q~lGX7? zXTWZ+8#ERXo|PDp>Tc!G^%ZIoJdrGc7$Rkj?rE&BX<2is7u`=nHu?e3ZXna}npGLHYZ2ukt1hs}_{5Xx} SQZ -tbb::missing_wait Class Reference +tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference @@ -33,41 +33,51 @@
-
tbb::missing_wait Class Reference
+
tbb::flow::interface8::join_node< OutputTuple, reserving > Class Template Reference
- -

Exception for missing wait on structured_task_group. - More...

- -

#include <tbb_exception.h>

-Inheritance diagram for tbb::missing_wait:
+Inheritance diagram for tbb::flow::interface8::join_node< OutputTuple, reserving >:
- - + +
+ + + + + +

+Public Types

+typedef OutputTuple output_type
 
+typedef
+unfolded_type::input_ports_type 
input_ports_type
 
- - + + + + + +

Public Member Functions

-const char * what () const throw ()
 
join_node (graph &g)
 
join_node (const join_node &other)
 
+void set_name (const char *name)
 
-

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 class was generated from the following file:
    diff --git a/doc/html/a00098.png b/doc/html/a00098.png index 7f9c4b31407dc4891a59c510c5a999ce0f36acf8..0157a3afb3e5de05fcf0632efc7041bf2e7cf1b4 100644 GIT binary patch literal 1724 zcmcgteKgZ+9RE#;Y~^Kke>(S{d(J)Q{&$~qp6B^K=ll7-o%8veC(Xxe|4KD| zH2?rsV%^>R06+V;EhvnQ-QBHc*QmixBt0Yt3cj1X zl!Y&(XCFQm$pW)Gl+3Vc2qe=%#S(}0Ktyl$1DV&|-vn^%kd_QinLE+L&jjm#U%mRH z#HXytOMuQvDEheTyUE;MTdo}8l-YMqW1o?31p7kE?kZE!ZDU)hkimRA-8_>tHORBa zPS&EUhQUtNF2^CQ5`-MQlA1`}VS~f!KWL9;I~z@(A$q*gjFwGySY6|&OlKy_H?vNU z$-<&*AH{k;)f+b0E*d2SX-|a{-|N&T-$44WLnQYLe0E*nq8Eg&*KB%SOIPxANAO)c zQeBcP!cWFUC0wtN=l7S)m|I&}P==jOi0e9R>h(yxe67MJQbd%RSpDqH_p;|Tt=jph zQhlvbW#V&EPj`4cgRq+Y4xxC$wV^myppL{umpfAjU#kUACL|Ap*Zh+AKydlH@NKD& zSD8O!NV@nd!|ql{-^)GJXHU1@biXk*V^F=NUAT%YF-V=s7^kD|+}TX#q{N|UQ|QF~ zR(eK57Kf|H8Gh(@<0rYOUg=FkqGS!(j8hEfdET@Rk^oaD7XR%cwa&STS@4 zhaLH%HJ{iy>*39s0*jPJ7qh=xv3Kw8ENNhXSS0Hd$D%wLXqI*uk&2_2s@T7EdNAg6EOBhknd#NUW3v z7az*ed34&ehW&N-jkamo;r>F@SiIPj7}#}}a_sXHdK_c?(-}%&pcQvtAbyqxcMQCD zUR)sC<8kSl#MgcbDM;-Ql@DZy`ntMJ?@B7kylgGkaeT!DlKz-~o#Q<%Jjc{dJOv{c z@;3IRt^RV8%}Fon)vSX2v=FezJKk|QRxO6WoS_|2xLlKq`8)l4ySp#f)3(TptkC#7 zh~=(guqhS{9Rry&8p1G2VdhnC#gv+HQ|l75-I)9SNpS{L)QwqULbrtU;Q0&#Mn-t7HKPpgN1M><&bVhMEG*ep0g2vc#n*A2qYB!$l||0Lc%hnP~((3&3I2 z)^3D>>Do)Mbw6N`u%JYcu3&3YAXz~H{*0w;P{sc(;5`P+MlQ|OXMGfaL#;ughbH)! z*1mZ18v>H7oZiK#WLOwVv)Zgvbk4dAe*)I2z^M3b6MlPe1}9dKKRoKuVcmB`ooBi65)QDKZ$_F7M{-KFzj41VI<+*2>wmt`f1fQGod3)S zI*|J*Ne-LuvSkr2J{Gs8R%mMLR;%T?B;4(to-1jdBT|EAd zYiu}>BqF}}I+-Kivb~2_!?&(p*x-{dcOHCjO3GegKGrQoXT-M(qIyg>6Jrm;lGld@ zp_=CtyGHxrg4a&XXCYE8>gRRT&V_dB!f35U{A8z~nS_+8O?0@Oh(M9t3sc(pd*2q- l_vHT|o-Q%xZ-O8eRP-w;X*3rHedwzJuoy45$~{Lf{sr<+DNq0a delta 443 zcmV;s0Yv`14e0|RiBL{Q4GJ0x0000DNk~Le0001K0000`2m=5B04*u2ZIK~5e*t(& zL_t(|0qvd9a)TfcMbEzE{{J6WT_r0ahHf%+n!$2J32{O|DEn{9a;ZQY@iOl3H|_e5rf4O4wM0 zB(=CStw(M0wojX4f`vU@2Ue0=f4q*~o)I0-DQ|k2d+RCYUfv{0Z4!f~Ns_WmlO$ys zYBDn$0l=@h0SsZ7>2@2X8fIEVgH+>8UzvN;1dwK$0J2OIK$d9&$TCd;S*8gf%QOLG znWp0~GaCX1Fo0x0f&KjNWNC#69_>M|IrzOa^s1UDc+toM+JsI|$8jNIAE<*OMnr57E0cZ6Bbl>AayQ zCjWa8y;J;~(KCqU;W>eEqGhUc&!8&p=$&#eY;n)#vX0MuBYNg|-&EcjPXT}?AK25i lVE)$tc$+UZnVF5?2XJ6M5vx~Gs0{!B002ovPDHLkV1hTk#906U diff --git a/doc/html/a00099.html b/doc/html/a00099.html index 43851b981c..ae9a11afc1 100644 --- a/doc/html/a00099.html +++ b/doc/html/a00099.html @@ -4,7 +4,7 @@ -tbb::movable_exception< ExceptionData > Class Template Reference +tbb::flow::interface8::key_from_policy< JP > Struct Template Reference @@ -33,190 +33,29 @@
-
tbb::movable_exception< ExceptionData > Class Template Reference
+
tbb::flow::interface8::key_from_policy< JP > Struct Template Reference
- -

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. - More...

- -

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::movable_exception< ExceptionData >:
-
-
- - -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.
 

+Public Types

+typedef size_t type
 
+typedef std::false_type is_key_matching
 
-

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:
    -
  • tbb_exception.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00099.png b/doc/html/a00099.png deleted file mode 100644 index 2c2e3fe83eab54ed65eb8ecc80475c8fdaf8016c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmeAS@N?(olHy`uVBq!ia0vp^KY+M{gBeKv)x8GdNCfzVxc>kDAIN<1=4)yHp$R}1 z7#}!rfVK0EJdn##666=m08|75S5Ji)F)%Rud%8G=R4~4sd;8L6EglE)!ey2J&F^Vx zbUgq6`NG{LhqZLQQW{&Loj49Ev4n z^JaOjTfN)fS@f3Gzjyydb62e@|I|{k<>b;eO<9p$W}#Q5D+6rwQmSH}?l(|hwaWZc zN5%J*N0V>&cTZorJL2Qp*afSql+W*drMXk~#$$WseY3CbUT?Jee-F@jqxZIVj)sQL zKfVUYu|_yyZ3Ty-1j_?cI|i|hTK|4Zm~Pj)S9ROOT>D+5>;W-7z64Hj_6;rF%n^r< zGU_~h#4xR(kimP0MT2UL%mE=(>3PdCXB|^AQBwL=P$($qy<3l+-b1I40#4RfzO9xnjL$V)t{u2;_2Z=xN2Qa`XU^_8p&GOIQDEwd zV@4~xzUt&_tyTz{R+%n1(Z2BT>UpcrKKmFSbw0~T#Y6A&IVGj~N4_851$Q6cCNHk9 z?|=FJ|A3lAh8GH)7{+x^q;GX&c!Zs-^c$z%l%(zpUL-b>k_lq?%_4xR>^a1{Jd)Y+8-(X>pPyWziT`1oy`Wv z;;2>Me%usz`k?RKN2}HB8mDK-s4qXTKke%j!_|wE>iXvMPAreHTXxLCLC-svVSC}h z$9j?~PIYo`2fnZ*IVw4;ps7@;X_k@aI|j)QXl8NGr}+@A9BeibmgF?hQAxvX -tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference +tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference @@ -33,114 +33,29 @@
-
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key & > > Struct Template Reference
- -

implements a function node that supports Input -> (set of outputs) - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
-
-
- - -tbb::flow::interface8::graph_node - -
- - - - - - - - - - -

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
 
- - - - - - - - + + + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface8::graph_node
-graphmy_graph
 
-graph_nodenext
 
-graph_nodeprev
 
+typedef const Key & type
 
+typedef std::true_type is_key_matching
 
-

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 >

- -

implements a function node that supports Input -> (set of outputs)

-

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

diff --git a/doc/html/a00101.html b/doc/html/a00101.html index e47237f586..e86af53cd3 100644 --- a/doc/html/a00101.html +++ b/doc/html/a00101.html @@ -4,7 +4,7 @@ -tbb::mutex Class Reference +tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference @@ -33,135 +33,29 @@
-
tbb::mutex Class Reference
+
tbb::flow::interface8::key_from_policy< key_matching< Key > > Struct Template Reference
- -

Wrapper around the platform's native reader-writer lock. - More...

- -

#include <mutex.h>

-
-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

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
 
- - - + + + +

-Friends

-class scoped_lock
 
+typedef Key type
 
+typedef std::true_type is_key_matching
 
-

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
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00102.html b/doc/html/a00102.html index 46738e6c9a..b25f5a204c 100644 --- a/doc/html/a00102.html +++ b/doc/html/a00102.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference +tbb::flow::interface8::limiter_node< T > Class Template Reference @@ -33,66 +33,300 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
+
tbb::flow::interface8::limiter_node< T > Class Template Reference
+ +

Forwards messages only if the threshold has not been reached. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
+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

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)
 
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

-value_type item
 
+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
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    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:
    diff --git a/doc/html/a00102.png b/doc/html/a00102.png index b91437953953383d1bdd13d2f918fcb240b393eb..0a2205abf8bb10721e5ce5bd1a63865d969d817a 100644 GIT binary patch literal 1884 zcmcIlYfuwc6b>ksg1m;QpuBWwVH^-KR-#BqO?ik&BEk|x0ktEMN(0oa5h|gy<>iZ3 zw9z6-u}EMcJSq}RfKp>k3xq;A&WODjjI{u@%WRjSe}dz!T6A*XvpX@;VzHp+lj&z*#huSl z>*d$e(_>RU=7TP6>3c~D7!l)JHuO8L<~sc4 z7#cP0u?+UQm&=Sm-PW;?@Y1)bOj+nx`HNxqW8h*;OY7N<=xI6Bp^wT0gT8%@!VMil z85+vr%K(17Tc~OV(09WqV%#4gR&=H+ay`Xwm7~bN-^v#uetc=uO3@(Bd2Nr(;AFi# z*=Y%J#$rArbUp~6(OZK$RQJ%y4^4_Kiu$ltMf@0JWgQp^{o&YKi*EA2IA+`ASs?|L z$+#*>9U%*X^6TQL05Gt~ORnsPAX1qC02Iz(BlN--Ndmxkr922JsoxL4K6<5Z(@6XUfkU+Eeoa}ik;#GBv6+Kz_#ZAa+1tLm-p#!R(b4KzadZmvf7;NjV^ zT@U*Xh4TcZ!6dG(1@AF(>jd6#l2J)eW}Nn8@hQ8rYYYK?0XGTpz!v2`*fbIBKPMqm zWD=a}whI7za~cHMJEs65)xL9$Dgos3hiNwR9>Ux><3b#J++%7t|B8G%VB_p{QzK&j z@bdgwa>{X=<_kCj(@RU07QCCnd2?nW*eyxlUUPuPThA5`84=Pw!Z(^ZH3Ve@Hfs6~ zv3nnMWlFSpz5;$_T5)HmAia#SN((+nbDZ~=;yY*Y?BnaW73yg@ujc*!V*npQRuI0{ zkW1tpw74qx20u~Zb576PhejvEcs!NyUT6PLrs@epNMXM2p?vtJ=2BVXdH~$UZZM*$ zV4pA?b>O5euKk7+uXo5SxX{iLoodpUzu!Jmt}h1<{u&%UE*>S0xYtdpez9ksFNcb`miw!SqA0540b6wjzVSc*Pci zyq^YE13;ISf7nDNcDAX>UyVl7QBLHSza)`mFWjZWF5SoG8Vvw&5ef)0zv7%=9m=_9 z(XTk?5YLAoLI*+%sfv@mJvo*YQq^pzYP*xIwJQAVuASm@I97D5h!9;lG&T^gVi|Qt5jN9Sb(gpA^-){#ChN z*0>9}uBW$5;C%4NQb}X~Md1Dk)8b1GxxZLpO^?!FIrs0mW(I_ZxWuD(o` zr`gC>N`9R1&))LL8>jw&^-I@5qO{mMuSwH9S3WjS7k1GU_8jcfgu4eX>5?Z_7(f}- z@8HEwKBTl2s132cqV8ja9P`!%&yj5%qr(RjB0H{Gj%DTDxD>?rOjjn*QjbEKq3cDu zqtehm#%j($*t6X&Sy3Ck)NeRq(>5MwGBeO>*;KvlwjV+izm1SK9AiAcosDbGJcHB* zjwe%7KnFiDeWbed*OK27Vh5HjiLh9z=t`M&oEd(~8gT`yj(9^t4$g%^o6HSfQqMZg zqkg0U#J!P@`cQHmSy!9+?cnFbJ1uk#Kc6BBAST@KlvT0 Cb*|z7 literal 1052 zcmeAS@N?(olHy`uVBq!ia0y~yU|bDk2XHV0$q8>)83HMZ0G|-o|Ns93nJ?aaE$u%v z0VD^)2M!!y?YtuoWO9@Q`2{lo6@kFjQz1qS49u%NT^vIy7~jr~t=eqG!{%;Y`+fi8 z$pXxu)*|msAV#b?~oO$ypVbTuJ}%&VT*X zEU)(V1I6o#yEf7J^s{5~>dZk#i^qyI&?a%1&#gTXQqGq4|^4X$Sc#ln- zdDY$%zJamKw=dpazV=0SdbHbX?{^paOv3D?c5qdG6}aoQifLo}(<$2jnX=R0#%yI| zT9X*o^IFR6#{K!bZWX7kw$O9C`pB+uE5CWkR?&OR;dLFWe(X@XsrqiW)Qxk$u1)Q~ zEH_opr+01U%wHz!*{YX`UAgyf?;a_ZCH3p{^lv5fepkl87tDtFHUb9Chb3%!*{e?bh}L|6lvVB$YsHrq%RM>% z^{2bDV=v0`-w}P`S#hT$+gtg?g$3XFTYjEeH|=`XbcOV)IT4rhS6J=% ztG?(@_~%#UVSjgT+_PM};rGOK48Syuz#j@y)27Xs89Vns!}Cn`BX(C(-vP5SgQu&X J%Q~loCICr^ -tbb::null_mutex Class Reference +tbb::interface6::memory_pool< Alloc > Class Template Reference @@ -33,55 +33,49 @@
-
tbb::null_mutex Class Reference
+
tbb::interface6::memory_pool< Alloc > Class Template Reference
-

A mutex which does nothing. +

Thread-safe growable pool allocator for variable-size requests. More...

-

#include <null_mutex.h>

+

#include <memory_pool.h>

-Inheritance diagram for tbb::null_mutex:
+Inheritance diagram for tbb::interface6::memory_pool< Alloc >:
- - + +
- - - - -

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - + + + + + + +

-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 Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 

Detailed Description

-

A mutex which does nothing.

-

A null_mutex does no operation and simulates success.

+

template<typename Alloc>
+class tbb::interface6::memory_pool< Alloc >

+ +

Thread-safe growable pool allocator for variable-size requests.


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

diff --git a/doc/html/a00103.png b/doc/html/a00103.png index b72b3103da6961e7e331dd83e54bf97960852cd0..040c525da839e5eac853d6e1a5792784458e9f56 100644 GIT binary patch delta 625 zcmX@WI-gasGr-TCmrII^fq{Y7)59eQNIwGN01jp#X?!Mf_C!VNdOc4U$B+ufw{xQ> ztv29cjkdS^egESJqq+pO#I7f9`&M~P-zeK6efp8O@#c*ORWehY0w?Ve?wa&uuD{kZ z_1Z66+ZL((Wu2^BxO{z3p4ZW|T`xQ?t=;2Y*tP55tY;}!-E#hh`7x&2p5{X7fs^Y09ct~ey1jGFib-EoYr+aOHS=%jc)k+at>Jl()7A5n zpN7|@ay3`u%?lZS=c=}? zd&HSK%unxH?r+&^uHzq=m&`WbQW|22_k#q~F5=Qcl^_;r2s{+wAV9^D?3 zOY0?9y!Yz2=dTJ`bDeR@{w(q9(m|X5pE@VDafh8*X5j0+ua}$in*P-av16FK;Oos5 z^W*++w{^>{U$o7CO5J%I?y%zifZ4u4_WI z?9tjyt1Dt^%}q~D3VY`DKO}E^%)O(}WaUm@=}f8*zuZ~1?#7dQo?SL~kG^`dcfyM2 zt9MRW(ff!y{bS6>>zi+cU2$&Mv`8#FVdQ I&MBb@0Pja8ZU6uP delta 658 zcmV;D0&V@D1;7O%iBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA$e@{t7 zK~#7F?Van=sxS;iS7w~q@BhXJE0h{`F}U!PlHM-zK1|<*`kN07teG{mvU|zTW)v1bxP*)7|C7c z`1$1g8OuN!rkG#Z*5wYCQ_tE!f0Ne++x*)0Co>g}*_mowilO?J{c4}Ix|FtTyyx3Q z%re@=+cvE^9nF&adm+h6mElHVvO3&(LAk#eClXep?YW!v?#r@8Fg#40qxc3e`xK`YII&fZ%Fb})#9O+QkU4lL7x{~y=ibP9NtM}f=l5~!af~M-uyHY{1 zHiWT@Bpp&e%yXM0?dX(@?uGcZj7ri^D?la5lLAzdJZS+CJSj2?;7O5D08fgH0(eqn6u^@rqX3>183pj9$S8m( zMMeQUDKZM+Ns&=>=e8Sw su_B`Yo)n+}o)n+}o^*e)o0<97KVSZXQ`?ipF8}}l07*qoM6N<$f*AlbdH?_b diff --git a/doc/html/a00104.html b/doc/html/a00104.html index 66327aa2d2..2177a5ab35 100644 --- a/doc/html/a00104.html +++ b/doc/html/a00104.html @@ -4,7 +4,7 @@ -tbb::null_rw_mutex Class Reference +tbb::interface6::memory_pool_allocator< T, P > Class Template Reference @@ -33,55 +33,139 @@
-
tbb::null_rw_mutex Class Reference
+
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
-

A rw mutex which does nothing. +

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

-

#include <null_rw_mutex.h>

-
-Inheritance diagram for tbb::null_rw_mutex:
-
-
- - - -
+

#include <memory_pool.h>

- - +

Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
struct  rebind
 
- - - - - - - + + + + + + + + + + + + + + + +

-Static Public Attributes

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

+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)
 

Detailed Description

-

A rw mutex which does nothing.

-

A null_rw_mutex is a rw mutex that does nothing and simulates successful operation.

+

template<typename T, typename P = internal::pool_base>
+class tbb::interface6::memory_pool_allocator< T, P >

+ +

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


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

diff --git a/doc/html/a00104.png b/doc/html/a00104.png deleted file mode 100644 index 1ddf07110ee986746c8aac255d38381a067a83e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|>r2ba4!+V0=6Gc2Tndk4t}=(dPgEkE`CP zX`Rrrtux>h)7I3R$2T3(PD=|HQ1kpJx?s{1Pev`zd0RMt$^92z?0tD}V{dA%&Hwvf ze_UNKsq3}C3f*Xv%pV_k`ag#C$=;rJ{BEA?q?tatJ5Ro`m!ETfqsf%Ku8*PjciriI zdS$WDi;SrWv$t=tj|@+oF?Z#$B^j&aZ$?{R&If+0`W%+{5(@$S~tNT|YWBHy^ z$K@<<);LWHef4vN&wMMB+b08jZ!zlzt=Dn8E0gO`ZMkdfH+Rcj7r)o_>6yOlTot|a zn%mX2?EU>Kt2e(oH;*s$?$MjgtF%4+S95Gp*;@6!TF3MG3yl{u?pB6sX~L4*yAIC0;JyV``#ZR9~)!hmc9bteLS64E5`z4~UkCUby{MX-PPvti^iAD#?I` zZjDEr4?G0}8T`9Cm@0x?L=H?=TEs9bse=q4c zr@{8pt3vmMNiL_=C3EFj8yWOp>{&efXtHh9>;-d=)l5FM{m&eRJxk8B?foy);8)MD z^eae_dBqoL%UdpMxuf#9BkG=>m>=BpYSnF(8^sGwcl58`#V~)pJ*#ZDcWmUYUWVsd lAUDGt_dS2l%$fCn86I^smp_ -tbb::flow::interface8::null_type Struct Reference +tbb::interface6::memory_pool_allocator< void, P > Class Template Reference @@ -33,16 +33,88 @@
+
-
tbb::flow::interface8::null_type Struct Reference
+
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph.h
  • + +

    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

    +typedef P pool_type
     
    +typedef void * pointer
     
    +typedef const void * const_pointer
     
    +typedef void value_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 ()
     
    + + + +

    +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)
     
    +

    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:

diff --git a/doc/html/a00106.html b/doc/html/a00106.html index 0cd4cfca24..ac5281e7f2 100644 --- a/doc/html/a00106.html +++ b/doc/html/a00106.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::overwrite_node< T > Class Template Reference +rml::MemPoolPolicy Struct Reference @@ -33,265 +33,58 @@
-
tbb::flow::interface8::overwrite_node< T > Class Template Reference
+
rml::MemPoolPolicy Struct Reference
-
-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 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
 
enum  { TBBMALLOC_POOL_VERSION = 1 + }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

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.
 
MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
- - - - - - - - - - -

-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
 

+Public Attributes

+rawAllocType pAlloc
 
+rawFreeType pFree
 
+size_t granularity
 
+int version
 
+unsigned fixedPool: 1
 
+unsigned keepAllMemory: 1
 
+unsigned reserved: 30
 
-
The documentation for this class was generated from the following file:

diff --git a/doc/html/a00107.html b/doc/html/a00107.html index fd1d9b0dfa..0dcd68aeff 100644 --- a/doc/html/a00107.html +++ b/doc/html/a00107.html @@ -4,7 +4,7 @@ -tbb::parallel_do_feeder< Item > Class Template Reference +tbb::missing_wait Class Reference @@ -33,59 +33,41 @@
-
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
+
tbb::missing_wait Class Reference
-

Class the user supplied algorithm body uses to add new tasks. +

Exception for missing wait on structured_task_group. More...

-

#include <parallel_do.h>

+

#include <tbb_exception.h>

-Inheritance diagram for tbb::parallel_do_feeder< Item >:
+Inheritance diagram for tbb::missing_wait:
- - + +
- - - -

Public Member Functions

-void add (const Item &item)
 Add a work item to a running parallel_do.
 
- - - - + +

-Friends

-template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 
+const char * what () const throw ()
 

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
-
-
+

Exception for missing wait on structured_task_group.


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

diff --git a/doc/html/a00107.png b/doc/html/a00107.png index 742cad9d022194b018303bb7554cb51173cd3a64..7f9c4b31407dc4891a59c510c5a999ce0f36acf8 100644 GIT binary patch delta 443 zcmV;s0Yv`s1nC1IiBL{Q4GJ0x0000DNk~Le0001K0000`2m=5B04*u2ZIK~5e*t(& zL_t(|0qvd9a)TfcMbEzE{{J6WT_r0ahHf%+n!$2J32{O|DEn{9a;ZQY@iOl3H|_e5rf4O4wM0 zB(=CStw(M0wojX4f`vU@2Ue0=f4q*~o)I0-DQ|k2d+RCYUfv{0Z4!f~Ns_WmlO$ys zYBDn$0l=@h0SsZ7>2@2X8fIEVgH+>8UzvN;1dwK$0J2OIK$d9&$TCd;S*8gf%QOLG znWp0~GaCX1Fo0x0f&KjNWNC#69_>M|IrzOa^s1UDc+toM+JsI|$8jNIAE<*OMnr57E0cZ6Bbl>AayQ zCjWa8y;J;~(KCqU;W>eEqGhUc&!8&p=$&#eY;n)#vX0MuBYNg|-&EcjPXT}?AK25i lVE)$tc$+UZnVF5?2XJ6M5vx~Gs0{!B002ovPDHLkV1k3|#DxF= delta 580 zcmaFK{E7srqa#na6PZ$`|kJtkE=wVI7e^xwoWzn^%prZ^E7Mw{uwjRa;bS13q4Xj*({*%Dc4fr z`6*#a#pK+^X^*16O`H3BLW{~@<-cf;l<8x#PK`;mb-k)z9h-yT~W{{YZX$ zp{rkON^Ik)n))U|7yHj<-J{|hGt?*^dUh&Td${)GE z`RRA<={C!|pL4f*u9q=Ya=oE_`EOS7p0e27hDY -tbb::parallel_while< Body > Class Template Reference +tbb::movable_exception< ExceptionData > Class Template Reference @@ -33,125 +33,190 @@
-
tbb::parallel_while< Body > Class Template Reference
+
tbb::movable_exception< ExceptionData > Class Template Reference
-

Parallel iteration over a stream, with optional addition of more work. +

Template that can be used to implement exception that transfers arbitrary ExceptionData to the root thread. More...

-

#include <parallel_while.h>

+

#include <tbb_exception.h>

-Inheritance diagram for tbb::parallel_while< Body >:
+Inheritance diagram for tbb::movable_exception< ExceptionData >:
- - + + +tbb::tbb_exception
- - - - -

-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...
 
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.
 

Detailed Description

-

template<typename Body>
-class tbb::parallel_while< Body >

+

template<typename ExceptionData>
+class tbb::movable_exception< ExceptionData >

-

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

+

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 Body >
+template<typename ExceptionData >
+ + + + + +
- + - - + + + + + + +
void tbb::parallel_while< Body >::add void tbb::movable_exception< ExceptionData >::destroy (const value_typeitem))
throw (
)
+
+inlinevirtual
-

Add a work item while running.

-

Should be executed only by body.apply or a thread spawned therefrom.

+

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 Body >
-
-template<typename Stream >
+template<typename ExceptionData >
+ + + + + +
- + - - + + - - - - + + + +
void tbb::parallel_while< Body >::run movable_exception* tbb::movable_exception< ExceptionData >::move (Stream & stream, )
const Body & body 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
-

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

+

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:
    -
  • parallel_while.h
  • +
  • tbb_exception.h

diff --git a/doc/html/a00108.png b/doc/html/a00108.png index fc86480fb6f62f64fddf8d2c87db84e764fa7982..2c2e3fe83eab54ed65eb8ecc80475c8fdaf8016c 100644 GIT binary patch literal 960 zcmeAS@N?(olHy`uVBq!ia0vp^KY+M{gBeKv)x8GdNCfzVxc>kDAIN<1=4)yHp$R}1 z7#}!rfVK0EJdn##666=m08|75S5Ji)F)%Rud%8G=R4~4sd;8L6EglE)!ey2J&F^Vx zbUgq6`NG{LhqZLQQW{&Loj49Ev4n z^JaOjTfN)fS@f3Gzjyydb62e@|I|{k<>b;eO<9p$W}#Q5D+6rwQmSH}?l(|hwaWZc zN5%J*N0V>&cTZorJL2Qp*afSql+W*drMXk~#$$WseY3CbUT?Jee-F@jqxZIVj)sQL zKfVUYu|_yyZ3Ty-1j_?cI|i|hTK|4Zm~Pj)S9ROOT>D+5>;W-7z64Hj_6;rF%n^r< zGU_~h#4xR(kimP0MT2UL%mE=(>3PdCXB|^AQBwL=P$($qy<3l+-b1I40#4RfzO9xnjL$V)t{u2;_2Z=xN2Qa`XU^_8p&GOIQDEwd zV@4~xzUt&_tyTz{R+%n1(Z2BT>UpcrKKmFSbw0~T#Y6A&IVGj~N4_851$Q6cCNHk9 z?|=FJ|A3lAh8GH)7{+x^q;GX&c!Zs-^c$z%l%(zpUL-b>k_lq?%_4xR>^a1{Jd)Y+8-(X>pPyWziT`1oy`Wv z;;2>Me%usz`k?RKN2}HB8mDK-s4qXTKke%j!_|wE>iXvMPAreHTXxLCLC-svVSC}h z$9j?~PIYo`2fnZ*IVw4;ps7@;X_k@aI|j)QXl8NGr}+@A9BeibmgF?hQAxvX1I=i+LOxjRE6q-lz^%pa<@r6m!=n70p@={<* zl9vKglDu>Y(`0k&>0B$nmLF4>vh5Av zOk0C?n?qcnOv?raw$$(WcFb8_SqZQSf zm^t(kyEo>-&81q-c7+sjeXoABFb&GI`mw_-!tF3?x2ieZ52z?q5qg*yTf*4VI?UbL ztb489EXMR1W)U;JX9sfOe|OB~!Yilq=w{Jy5Bedd0XtPO>**<1S>1ItkIi1I6SD1Q zy+qcEXPC7Ezg0V5n@ z&cQN(zo~Z@jOAvhzcWmL0Th@3UJ6VAFTIa%Gqch41F;)q`D%C*4SWCq002ovPDHLk FV1iru3^xD( diff --git a/doc/html/a00109.html b/doc/html/a00109.html index c96c2a62dc..f808e4852c 100644 --- a/doc/html/a00109.html +++ b/doc/html/a00109.html @@ -4,7 +4,7 @@ -tbb::pipeline Class Reference +tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference @@ -33,99 +33,114 @@
-
tbb::pipeline Class Reference
+
tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Class Template Reference
-

A processing pipeline that applies filters to items. +

implements a function node that supports Input -> (set of outputs) More...

-

#include <pipeline.h>

+

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >:
+
+
+ + +tbb::flow::interface8::graph_node + +
+ + + + + + + + + + + +

+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

-__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.
 
+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
 
- - - - - - - - - - - - - + + + + + + + +

-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
 

+Additional Inherited Members

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

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 Input, typename Output, typename Policy = queueing, typename Allocator = cache_aligned_allocator<Input>>
+class tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator >

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

    implements a function node that supports Input -> (set of outputs)

    +

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

diff --git a/doc/html/a00100.png b/doc/html/a00109.png similarity index 100% rename from doc/html/a00100.png rename to doc/html/a00109.png diff --git a/doc/html/a00110.html b/doc/html/a00110.html index afb7ba1624..5f2cb193cf 100644 --- a/doc/html/a00110.html +++ b/doc/html/a00110.html @@ -4,7 +4,7 @@ -tbb::pre_scan_tag Struct Reference +tbb::mutex Class Reference @@ -33,33 +33,135 @@
-
tbb::pre_scan_tag Struct Reference
+
tbb::mutex Class Reference
-

Used to indicate that the initial scan is being performed. +

Wrapper around the platform's native reader-writer lock. More...

-

#include <parallel_scan.h>

+

#include <mutex.h>

+
+Inheritance diagram for tbb::mutex:
+
+
+ + + +
- - - + + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+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

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
 
+ + +

+Friends

+class scoped_lock
 

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
  • +

    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

diff --git a/doc/html/a00101.png b/doc/html/a00110.png similarity index 100% rename from doc/html/a00101.png rename to doc/html/a00110.png diff --git a/doc/html/a00111.html b/doc/html/a00111.html index c0467f2539..1192db24b6 100644 --- a/doc/html/a00111.html +++ b/doc/html/a00111.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference @@ -33,389 +33,66 @@
-
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
- -

Forwards messages in priority order. - More...

- -

#include <flow_graph.h>

-Inheritance diagram for tbb::flow::interface8::priority_queue_node< T, Compare, A >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
- - -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 ()
 
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)
 
- - - - - - - - - - + + +

-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
 

+Public Attributes

+value_type item
 
-

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:
      +
    • concurrent_hash_map.h

    diff --git a/doc/html/a00111.png b/doc/html/a00111.png index d3e88b55a66281817e107ea4b0d49b49953838a0..b91437953953383d1bdd13d2f918fcb240b393eb 100644 GIT binary patch literal 1052 zcmeAS@N?(olHy`uVBq!ia0y~yU|bDk2XHV0$q8>)83HMZ0G|-o|Ns93nJ?aaE$u%v z0VD^)2M!!y?YtuoWO9@Q`2{lo6@kFjQz1qS49u%NT^vIy7~jr~t=eqG!{%;Y`+fi8 z$pXxu)*|msAV#b?~oO$ypVbTuJ}%&VT*X zEU)(V1I6o#yEf7J^s{5~>dZk#i^qyI&?a%1&#gTXQqGq4|^4X$Sc#ln- zdDY$%zJamKw=dpazV=0SdbHbX?{^paOv3D?c5qdG6}aoQifLo}(<$2jnX=R0#%yI| zT9X*o^IFR6#{K!bZWX7kw$O9C`pB+uE5CWkR?&OR;dLFWe(X@XsrqiW)Qxk$u1)Q~ zEH_opr+01U%wHz!*{YX`UAgyf?;a_ZCH3p{^lv5fepkl87tDtFHUb9Chb3%!*{e?bh}L|6lvVB$YsHrq%RM>% z^{2bDV=v0`-w}P`S#hT$+gtg?g$3XFTYjEeH|=`XbcOV)IT4rhS6J=% ztG?(@_~%#UVSjgT+_PM};rGOK48Syuz#j@y)27Xs89Vns!}Cn`BX(C(-vP5SgQu&X J%Q~loCICr^O%;KVG9rxY8rt&EgFzOK#~ylKptCwB=eG>&fYWAIWza1O*cG`_*bS-0UBojH5ih47aqu z`uh4M=Q|N_*D&@=_pkKeMH+hf)MLAzp6SH{`*wRI>W_4dc;iyusFZ=(L8Gr1E_-_&&aS<;ME@`mP(nB4&BE_#*=Y zgRFxz-|&c?+#QP-FW!6&Rl)BFyBca}X!!LX36Vw2mzLo2<;zQ6V0n;f;*@T~ELStL zii+Cn>|FmPg35T=B-G-V+J=@mpf;fx!ddTl^JwRK(Ze8F#YBRL0vS2p8B{Cwh z(hr^}d^f>tEbH^%KvF6Pp7DK%`Z^sZW8^5(ym^2-Qrn;3im?JKYKLT6;VD<>S<+if zMV3}Le(W(pWr$bDrq#w=1lic&QCFc)xXmYoRQSku{kMm~r|jIsKBv<=Nr5sgpu>WC zPNB3bx_cy0r%yPR}zi>#_=z2PNqsGn) zRI^*NT}$cbNCU6$MLB>}O$Q^wG)v!u4R<%_XuEyTk+JObopk24 zAh@hsARU2fKu#4fsJ@?bFT=n{KM90!`GOB|xa1016U31qb|dHORE`@*V<)2f?T3{urMHF1>AkNxG0_C_PZKMu)yp$)%=&uZ zk{PlV=pIFSkml2lh}g@Dpo$_+RE#`2&-pMR;Qg*28sd=-Y}t#Gfve_T&CxsWsohT$ zG1(>lwCNdpESdvRSwq#0%}<}Ny${Tq4fPQiiJixTcRhNNQ4>!q$cReb3xVEb`RJlV zwTU8-#w}I!v!+s}uBcZKXscp+cZGDYhaTNx?wWqpNRiJcsz5o(t1FbCN_A%BN-tt~ zP_f%o->oXwMzIX94#Z!UuI(MioNQ0J5`YBL=mU?B)IH@Pu@K6EZ3#*Rut6D2Ices` z((%L-SzuEomp3r%@B=j?|3j>twDzGTSdr75jszjGdw}VLt5iY3@Cs_dw73GS-H(7^ zmtd}sGSwti*mx4lJEyf`)`10Nda^z*52-ZBO-Aw$?VMf;d$i9_J_MRobQX7@iYsYz zr^!hPBYubR9J4+`bY@DmOX+CHT(7*wnZ|}hoie92d{eY_e`Yj^Z0ElL?5^&B^tJ5U zc#tG#xOHWn8s+Yl_#<$`x~rDNn#?PRNuJtBvbzHevhH7(-oQen+M_Js)pAp2c-y*s+?RIDT5fH$}|z-j@-UEGA#okxdYaM5Kh?c$J(m8d3yA`fge! z5EJN$Zf2FHPth4QA+$mu-qyFogwFs5@5!3rY^yXVEP9*{TQR)|&I>Eqo5425Q>=V` zd}HFwJ)q+kuo)th`h<@NTQiH8Q_V>k?-I#l85g?6#=XSnR8#_CeW87Do=M3TR{>#0 z+!)+Tvy{WIIDf1h&i}rj!_9X&$mj5XckuNFa3N8qZw29kyv?|wBz^0eH)HoF>@SJT zdRz!;r>`Bq8)W2tvVD)|8qe>Sq;5I(w#$c9w3Vro|6;zh&O7L9KhHJgm#=9z?)MJV z@Ojh4dHerm_itwZZ(SKo<0_TP;;$M;aOtZLk*g7!YBs!8S1Y@86|#h-E#?OCTKM5y zKdJ>QhV8oQtPCt%F=)=TL}vGs{T-4ghemYVAskjdH^jk#UoPOj#BHU>1N#z|WAa`N662 zq3aKQcbk$eO#RjUpCqDUQBle`$LMTnO*gw)-nkZut`}Fc&Q#osqh8Uvxi2x z=d^N09{noP#?Or*m2R+c$@hv6#V?I)bN?(BI>NRLSu{s#dU+6uHbgX7SoN`3F(C`06?jc}39XJ?mCpTw=0SPA==8~vc4}{~mQ{2>3shC+ zH)p{tYwALQdvPtO$T4PCt1r5)MQN^_IS@yeC^DklwNS0fMnahBZ!ZmOqaKLGM&-m; zxb{6i_Hz^)*~vaqTx*{5Ju4?PTPiSD`s2FFwP^_$w9z_M$qO&|9w&WCzLyIDf$k~> zDoDa1EG~XiQ2mq50b#3C*QW-p z=4(Nz(H%rd_GTM6+BaWIsSkTl1Ebs$k6Hafu6&Q?jWMwFzEzVEywvsX+l6tX98S{+ zLp3o*2#U1s+lwy#me^n&8sdV-E((}BRZMYlm~S?H6yQDaL~H3=QUZE-^Y5FJ{ay3=_%en2rjY6#BOZelZ8uvK?$-KOGIs@JKFNim(jD6lzFba@n_?WlWhY(pQJ%4 z>g`-e@)-x2umP*SWcn#rFtEa=%&iX@;FvQlkH(0Dka!}M%a9QqUysj_sDh-6ShaVwL9vmm^!Cf%LRi-g`VmE%{EX5JCkMqe2LBE1B@M zxOdcdi`L&Te2HTB(CGF=VHG>yRUX$EF_u{+`yj>cIEHk9MmHIFs$dgR#>^=~NivNk zSa`KnNZ?RR7<@>+p(>wtA&h3&aiL>%O|@{?*dP0y6vK;AFSAY{k=E&C$U_NeCGolx z%tKZ+A;eYeHWZjZu|v%C+%4?u789mUS4Kc)0r-V9xI#-1OhsK7jA}kxP~+6Ecz<>p;<{;b@_eas zwzP)_tuI6ktKDah)q546gJY>af+#^DT#O6oYW5w3q0ttSaV2yuT=M{X7GaYsoztH~ v4SS7d>yp(!@~mHRL6e2I4*a0&!zkZtq351CjDsKRdI$Eq? -tbb::flow::interface8::queue_node< T, A > Class Template Reference +tbb::null_mutex Class Reference @@ -33,384 +33,55 @@
-
tbb::flow::interface8::queue_node< T, A > Class Template Reference
+
tbb::null_mutex Class Reference
-

Forwards messages in FIFO order. +

A mutex which does nothing. More...

-

#include <flow_graph.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::flow::interface8::queue_node< T, A >:
+Inheritance diagram for tbb::null_mutex:
- - -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 > + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +

-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
 

+Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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
 

+Static Public Attributes

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

Detailed Description

-

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

- -

Forwards messages in FIFO order.

+

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:

diff --git a/doc/html/a00112.png b/doc/html/a00112.png index 8ad3fc135807da0aed721edaa92e7b59dacc58b2..b72b3103da6961e7e331dd83e54bf97960852cd0 100644 GIT binary patch delta 659 zcmV;E0&M-cBESV9iBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA#e*#ZQ zL_t(|0qvdZ(yA~FMOS8=+3)|x2P>Ce5l1|qhB$7}CJkLp6aHdmb_HRQ8`C=lOp(;!lH0D!zw6ZP}uSrWen2OP6wP8e496zjaFH@)*fo z=J@&K{29wY8K#(D+1BL_mQ&B#e?XJh2HX7F_9rtHj@g-NT#BLkmi=mAI5ivWi4YQmgmg$C7l8j)JD@&bv}U zu{MOUizFRVKg@HRB<<*wjP8Z_wTw#APb)wr$&&(9l00bwH8Z<_0RFpf09VjeKySB; zkX{9J;=BgwWk3NgqR1zJe^v-i+$5+f>~UbTR%$*9G`e{S|2HIOnz- tfUzQ@0Ga4E2X06*bGiNP0`#MF^XA(RANx`wX?u{Mi5Fz?KmNFG z%O0e7gQ21G;a{5%QBuiRpO;|mnl*mQKl1N(KBwq=b(n^b|5C3Euh%Fm=POlns+U2p z<36L5EdMR|t+i|KEsFWMpG1~6-aJ^ck=Km}&#%0B-m^jQmj+wQa&Bz;z0T+JZiHRC z0(tCE@J5YC6+vXPW1qO1Ev}cKglpCL8jn&d}@bn z4_aI+0%N%A$Kd*lN{U}! znaJOvKNv&9Bk_*5>Qbotx6Z`75eT>i0cTUu|z0Jm)xzMy1yeK0aRr zT~Y<*FgtxS;2Q*ux}Z4huIk{AvcR*%|0WhgudI-G{Da^hphjCF*g=xO3*X^EfS?4i zJN~kt;HfVKehIPp-gtEu6WUfD{DY_yeu+oHy_0Q`^{1<}_Ptn}7-_qbR+WdxcWj@u zB-Wn8+0Z3_I)S5!(3ulm`u02OSqCN9h+aF1{4STygoLny)RU zOQz9HuJ{i2*%k>Z=lat7_dLZa0X1p*;u0#&Irm{%Kq+))*iSGc9$NT`?_5pl|F&tK zWVzEtP2#ec@+5Bv(vfB4{2Zo_w6%Uscj%l4(W!Av(XUy~+Su%-ZlaEqY?mpPivBSm{RUG>y?>cQkToQrMu z*nRQ0EpF^T`g>O9C2l=m^(aoLQV*|>z&LHHFxejQ)c5*X>@|2EjqRU1jN329bU-=b zST@tgwm^JU^y$paKWP#OZ7UREp)#c_OpW{Kv1yIgN_f$4xs03Vf(g=@?UmVAJ)Jef zhOu*~yL|{**BMbBphI|?#;jB% zr~8y1=q}&Udr;BWq}(nL_$v=6vNe?tCU*EzJm&4HSxogg#?6MJwuS?u7Uh3u8B@<0;FSt=P{2o+E(PU1TXllCK< zny9y*-#*E&l$$TKLk*CMQ{iR|87j;A3-LU8NIOLeVc*FPjd?P#4Pw_=;c_pivEB zu=a?s~(&6 zvl%bljtll9<)pqmx^5-G1#tv#>pa>Zx*>a_qV#$sJKTg`A!_oO-&7GR^7aR4*!Oek zQ9&##&PIzP=ej!kpL}md7f?|j_z7p~5zMCgMucopiqp+(c%IKRw<$=mfv3*m=dMjS zy&?&SuUXQX=4rQD3wIaF8NIT?v5Sl{j%swekAf&3v$|CVK`ui`q7x@%a6Cvp-Ot}7 zj})5AqLZDJQ7;piU6=@mF#)ye)vKL;l(3L@vY0;s27j8yuYOVRbf*P90E=Ys2pz#o zFMjM|GUYY}T~Wu_oyQA`p0xc?i-I)l#zrklmx9{bC8611%Xt=N)%!dXh}q zlwQAkG5&%)K0TEqH3n?>xTQL<2fY*AK1Qk5K9IJYweLHCxP2}D0%`cI1djQ4ez(?v z+bEgzcXm8c`q}V0GkquE{dHtZ)M_VqpzLst$*LFJQ^8WEt_}d6?F;8@`q#ah0@t)o zr?Y(1s99rZsHJI|KLKgq6V8=}sk;(A5e@KTQN9;e7WvzZIN$hns z3(9nz%=f{|!lIuwi2&HPmE-(T#0#mZB`#d1A_HgBO5P1Yol-mb`T@q571-M?-PU#- zSl1Ae37P#fh?O=}k}C#x6!nPal(?cBZZ+}|0HSv|?&IyrqbY0;i{Iop54th}L4i5Y&McSg{P zj49lwS02&UNR=9MGMn)(2J3ie-+`@^3Z4( zbAa5b6`(8H>iM~iw(fVNk|AHy`c;k6Eu`wobC{Z~vI9-Vw7tmW-JL=K;gYENyQR+W z^)4~70;;k;xV5xIBSxPLAs0d4sAGBv8ZB$ATv@h%CzjVxz~{SK!TUAQDL^OjYh{uu zOzT&Xq-!eDG1j8^Y_n1wJU^>Un2he{J2J+kLNqC85rP`SV9M~uw_3qUvBMp(f)1s7 zHw(%+ySf5b0Xi3f#|KO|Y|$U@D>~2sua@-g|F^JwqceBtH3^VNuVWt^fx!~9ib$0% zzZ5p@em1{kM(G9D=RlNj^iVS9^KTwE55dX9 zlD5g0N9Q>0eAm(nPxSRy(2B4S3gMDi}VR`vp%2Oowr^M2oVN3 zlENc$xcf2Zs|WtdkD9+;+v|d){BR;ex(CO5YqeH5M68%SRmnFm=8$i+OH#k-C{)^7 z$L98@#BduPgdEu`io3>C7wM~%USC3{vG(pvI8JyX*LB1ye=Eq%@ z%x)6;2*GRxmRUIR`+7p5wYx8}VrN7dd-a${h$ZJ}bv{YcKNmK@X^O2UmVY?7!vwFr z;Gpw&A^*ex6#(uE^O`s{HPzbU4FYtfv7ml1dS(ZICN;UQUk1*~=$Sq&QfyC{qJQpE5+*a z*vktIw8c#9MD;S7SWtMfa9ufK1T!+`Pr`ABiA0n8eD!qC*de0->FQ4$0;yE|7x!QY z*K|1{3y(d}AksrkX5?q8Ps=H8vLEZtujeLDW4Tjec1)6dv% zW$7Wn;7i$4QOmY|x2bJ=tjga}3?#})ramiosndx{UvayFe=KbkMlw*I9P=61s6}rp zc#%%rCLG-#<**%7`>0k(-R6+t&SkcUSf^GIUIvtF#6hI$0PBlvgunk_%uQ@@6>vnO z8hiX9)2zJTYAoHCWCXNcw-W@-_lFiPF-}NL`^ywxm=mNA;yd}$($T3-^ z3ko5VvUs-+#DXY^ln98QF#Es6|3cfG&5C?BKCIX{OymT-_=WuS``-c!va)-EHXf8e z!gYW-IFMJH%^cJgL5r7CxL5SMk+L6n^}n|oMPI@S5~*+hc18WBz=jnVsH_(r=++Ij Y60AOZG=&7ea~QaN>Up&ElfbY42So})kpKVy diff --git a/doc/html/a00113.html b/doc/html/a00113.html index 26f9c0f54b..4ca607efad 100644 --- a/doc/html/a00113.html +++ b/doc/html/a00113.html @@ -4,7 +4,7 @@ -tbb::queuing_mutex Class Reference +tbb::null_rw_mutex Class Reference @@ -33,65 +33,55 @@
-
tbb::queuing_mutex Class Reference
+
tbb::null_rw_mutex Class Reference
-

Queuing mutex with local-only spinning. +

A rw mutex which does nothing. More...

-

#include <queuing_mutex.h>

+

#include <null_rw_mutex.h>

-Inheritance diagram for tbb::queuing_mutex:
+Inheritance diagram for tbb::null_rw_mutex:
- - + +
- - + +

Classes

class  scoped_lock
 The scoped locking pattern. More...
class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - -

-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_rw_mutex = true
 
+static const bool is_recursive_mutex = true
 
static const bool is_fair_mutex = true
 
 

Detailed Description

-

Queuing mutex with local-only spinning.

+

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:
    -
  • queuing_mutex.h
  • +
  • null_rw_mutex.h

diff --git a/doc/html/a00113.png b/doc/html/a00113.png index 97f8b53bdb2fc94c669545ed9d635338907e3f57..1ddf07110ee986746c8aac255d38381a067a83e9 100644 GIT binary patch delta 643 zcmeywdWCgDOntJai(^Oy8_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|)0;ND$y@8J}P2PIl zB*6oMb7dMBSS^;k6gIu%mVWZ~t!)8m!c%K+dIi0{`?kiK_4ksFa~f52KlJ+D^XR=H8U;B-g->Rk-;*W0toc6-N0?&@WDt_5;5%yr-M_spDG a|CixWM|1gu*%f>YK;Y@>=d#Wzp$PyXWHPw` delta 674 zcmcb@`iXTyOnsxLi(^OyvYt=M>$m2uV&p=5%o=dW>MS8 znOZ(~0_wcyoiabGR;MSq{-&7VfSkhdATpE9kt)C<+2h=HLjaI^_ti9vvYsnHrRWs^ti|FUGGHR zI9{K+cTuq@{@q9N7Pwt$;O_^-I}qj+dbh*5|S(#IcDyP|Etr(y?S(ePDw} zmLw~XMI_^whuhgR>lAnt_DN|tsF(&ccvQ)5`7H1Jrnh99>;dOmCXs~xecUBKoJ#F$ z*Qneuuv_;%&(yB>dcrHa{J)=*uK(t-S5KHf`C{Q$ws*4}yX&KqW;J~KaqpZhqs{8e zeR-35e%{G#2(vMmcG`aDVy1$a|14GitGP-F{>WY^d6VH5%h9m>OPiE$`{avzEVNBu zy{_K)ds5nz^1GR}!p|<1PLG>>C63kP?xOcEcQI(+68+Wt{=eLXpUsxvWE#w09+s@N qzW=|0siqs|_F2-ich8K>_{(Ts-8{qfU({U&An -tbb::queuing_rw_mutex Class Reference +tbb::flow::interface8::null_type Struct Reference @@ -33,70 +33,16 @@
-
-
tbb::queuing_rw_mutex Class Reference
+
tbb::flow::interface8::null_type Struct Reference
- -

Queuing reader-writer mutex with local-only spinning. - More...

- -

#include <queuing_rw_mutex.h>

-
-Inheritance diagram for tbb::queuing_rw_mutex:
-
-
- - - -
- - - - - -

-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
 
-

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

-

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

diff --git a/doc/html/a00114.png b/doc/html/a00114.png deleted file mode 100644 index aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|^c=>Eakt!T5IW?Y?FM9vA;5UZ4Nh@0pT4 zhr8A3^tF_uB4#(#)cfX!J8?YZQ}UQpZyMnFX$hN_=e!VB+hh9=-=4M3GHu$*k3Z@S zANe03dTOYqagDpqm@%%lrmq*X^ zd$qOUTNroFw=HY@znqeAtJX3$bbhH@b!xxK>>K45D^8kqOQde;*sc?`&3cpO^y^MR z8#X=6N?c?W^RuNjzHb%|`Ox#n80 z>%Mb;-~O=cR_Sq%*}L9}ym7rgb;(_$&S^_xj-N~Rv~rJj{QatL_oRh0q@C`%Ofp+3 z^X#j&XVgVa$yn}>*^*P2%nxIps^XuuVA2y$*$fWFI}Qx-*O?#i?c#p%xKQ}g?uN2C z-xc=qY8>#r@`>|-r|x2gc~^|Mh-Z{|x;ca5f#F9uGwX*XY(TB~O=W(I?}vSNeqHHg zw2zJJ!!|u;*}kRkmh%g^N*p`B(su2!fVF>{xhW`=+M+_S<5>|}56y146nbPns52Z3rG;pgmTnljy3<=>J3}Wk~L@l{hmwftbJ1t#q4@_DQuC^Z7!+x zw^d`s7cBDqxUc9J)9F&i7d2*mZ;#G9|5M>WVeG_<{0kYbl-g+=un&Rxr+7ZUBFpt( a%)5P>_v|_B`vsV689ZJ6T-G@yGywoFo@zq? diff --git a/doc/html/a00115.html b/doc/html/a00115.html index 99f856695a..f9abe8ba05 100644 --- a/doc/html/a00115.html +++ b/doc/html/a00115.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock Class Reference +tbb::flow::interface8::num_arguments< T > Struct Template Reference @@ -33,191 +33,26 @@
-
tbb::interface5::reader_writer_lock Class Reference
+
tbb::flow::interface8::num_arguments< T > Struct Template 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

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
 

+Static Public Attributes

+static const int value = 1
 
-

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
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00115.png b/doc/html/a00115.png deleted file mode 100644 index 12ea5c61822a9cff028a841febee251e03da1868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^XMs3?gBeKn&SE?Uq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ06g*uVLn;{G&V8Hr*no$n-JzlOzq#G< zPwc8USH3^z8PT|weU(hulPuL|`e|v08$2&5ERpi;@?14>$qW$VF>1DKTcoqiLCn}XU)UI(8`(hW0~m@^o9<})Ns zy2o%tWiMlgXBC=)np4uon-dQ(uqj>zssQ4YU}N6j@&7*mTfbGD>C2RROaqI*Mzv{^+a^3$FUQXXWV!E_Tm9x9RWxR}<_seW(1Zl+V9%Z^&$3 z|FkP=Ms{ZKuSd6gW(%I1{i#ZJ+j0MCTW8(58nCor;qQRI^|7h3Cj)Odx@}kd>RHVF zWqqvO{>ATF%G$SbzTa%2y<27dp_-)dxA#}v{Jz&^%Fk^t%Kl25{@%Gpch90{I&aua z*`@E5_FI)FM}&LErv0?_u3Yu($C9hde?6aER+E3u@7Bq^nX@hzJ=dSV#p}zuWp6Xz zx~`ErQ+KJaDs1)X+5oXtRkyfJOHYa0=Ds}>UTyDCp|oOV{;uqU4D2x+-k>1Mg5Xbo fR+$(}x7gp3sm=V7T(S+Aei%Gm{an^LB{Ts5dagH? diff --git a/doc/html/a00116.html b/doc/html/a00116.html index 695cdbf093..ca255cc7c2 100644 --- a/doc/html/a00116.html +++ b/doc/html/a00116.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference @@ -33,27 +33,26 @@
-
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > Struct Template Reference
- - - + + +

-Public Types

-typedef
-cache_aligned_allocator< U > 
other
 

+Static Public Attributes

+static const int value = port_ref_impl<N1,N2>::size
 

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

diff --git a/doc/html/a00117.html b/doc/html/a00117.html index 099df7856f..98c4bf18ad 100644 --- a/doc/html/a00117.html +++ b/doc/html/a00117.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T >::rebind< U > Struct Template Reference +tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference @@ -33,26 +33,26 @@
-
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> Struct Template Reference
- - - + + +

-Public Types

-typedef scalable_allocator< U > other
 

+Static Public Attributes

+static const int value = port_ref_impl<N1,N2>::size
 

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

diff --git a/doc/html/a00118.html b/doc/html/a00118.html index 19f3d1b5ff..01f37eea62 100644 --- a/doc/html/a00118.html +++ b/doc/html/a00118.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference @@ -33,26 +33,90 @@
-
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_buffer< T, Factory > Class Template Reference
- - + + + + + + + + + +

Public Types

-typedef scalable_allocator< U > other
 
+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)
 
-
The documentation for this struct was generated from the following file:
    -
  • scalable_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00119.html b/doc/html/a00119.html index 0e7400d93c..293b877b86 100644 --- a/doc/html/a00119.html +++ b/doc/html/a00119.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< void >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_buffer_impl< Factory > Class Template Reference @@ -33,26 +33,91 @@
-
tbb::tbb_allocator< void >::rebind< U > Struct Template 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 Types

-typedef tbb_allocator< U > other
 

+Public Member Functions

opencl_buffer_impl (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 ()
 
+dependency_msg< void *, Factory > send (opencl_device d, const cl_event *e)
 
+dependency_msg< void *, Factory > receive (const cl_event *e)
 
+ + + + +

+Friends

+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
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00119.png b/doc/html/a00119.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeec1a09162791a3622ed848edeab770034d768 GIT binary patch literal 1144 zcmeAS@N?(olHy`uVBq!ia0y~yVAKb)12~w0WIZ#p7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+c;r5T^kJvrsW z+=%+d=_;{blH<BofcVFW_zJG1{=gr%1w?7U2y~Z^^{`o5F zsv9%E-FleQ9_uCjs%FlTXV0Hs7jvwYu`IVaCp!Or_32y5?q>1l`+k{a&)ijDaO;iF z?K8JUTE1oe`SqA>X-b9M?t|}4-nys%vtyLCXTBdEu*~V3%HK-u=52MA4@ErpwjH^5 zaJAfFtD5ZV4Ck+%*uHVb2dg(Ran)VBo);cF9rkwKjqR0JFTZ;p9)0O<>;4n#FB+t8 zkBKwgVYYwWz=R*gnwe{(5_@WGIbBbBcRekRsDt? zK!q_UDVFYk8tSFFGRTXwlW77IhX$G*d~yB9f2OTFZ+P*ubN(j@)`F{_+ZZ{rEDm4p zeShlZo}O5Js|A0LKB_wU`X)!kD`ln+A|>A^UAMJg_~PBiDyI5BxrK8+T(6C=?w@|_ z>#ePCOa5;Enp5|!?DvM(Yih48+HTKeE4$|6EKk4Fx+^Xh9a_!1Hu_M8yH8#2<}1f1 z7C(QIe&G1`dz-%9n0WU3=EeKYMtx(5yK6exY)_cqwaDblcD>&DoUx@Z&nKt9{Iw;z za^@O;hvVlDd>5T!+bI+vfXuwe~gETl1&KhfnXjo;G*!A0yS1w(hmO z^X44CnYnr2-cu$kk+b5s-^!n-F3YQzY2lvYEUc>z3b5$~febL|YPf^;tG_N!C*&Lp~=B)hepR5lu u48AZ|F#a(`k7f4tL0+CygS=e+Gm1*u%Rl>PZUQVO7(8A5T-G@yGywpMls}UI literal 0 HcmV?d00001 diff --git a/doc/html/a00120.html b/doc/html/a00120.html index 730c4f5abb..75965547cb 100644 --- a/doc/html/a00120.html +++ b/doc/html/a00120.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_device Class Reference @@ -33,27 +33,122 @@
-
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_device Class Reference
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 

+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
 
+ + + + + + + + + + + + + + + + +

+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 struct was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00121.html b/doc/html/a00121.html index 262c083cd9..d267b4ebd2 100644 --- a/doc/html/a00121.html +++ b/doc/html/a00121.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_device_list Class Reference @@ -33,27 +33,64 @@
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_device_list Class Reference
- - + + + + + + +

Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 
+typedef container_type::iterator iterator
 
+typedef
+container_type::const_iterator 
const_iterator
 
+typedef container_type::size_type size_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
 
-
The documentation for this struct was generated from the following file:
    -
  • memory_pool.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00122.html b/doc/html/a00122.html index 2714faab24..0fd4e5902b 100644 --- a/doc/html/a00122.html +++ b/doc/html/a00122.html @@ -4,7 +4,7 @@ -tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference @@ -33,27 +33,32 @@
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_device_with_key< Key > Class Template Reference
- - - + + + + + + +

-Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 

+Public Member Functions

opencl_device_with_key (opencl_device d, Key k)
 
+Key key () const
 
+opencl_device device () const
 
-
The documentation for this struct was generated from the following file:
    -
  • memory_pool.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00123.html b/doc/html/a00123.html index f2a02ad768..6399926773 100644 --- a/doc/html/a00123.html +++ b/doc/html/a00123.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference @@ -33,26 +33,49 @@
-
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_factory< DeviceFilter > Class Template Reference
- - - + + + + + +

-Public Types

-typedef tbb_allocator< U > other
 

+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
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00124.html b/doc/html/a00124.html index f026532ca0..7e58567c7d 100644 --- a/doc/html/a00124.html +++ b/doc/html/a00124.html @@ -4,7 +4,7 @@ -tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_foundation Class Reference @@ -33,27 +33,44 @@
-
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_foundation Class Reference
+
+Inheritance diagram for tbb::flow::interface8::opencl_foundation:
+
+
+ + + +
- - - + + + + + + + + +

-Public Types

-typedef
-cache_aligned_allocator< U > 
other
 

+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 ()
 
-
The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00124.png b/doc/html/a00124.png new file mode 100644 index 0000000000000000000000000000000000000000..947fbde9e6a5786ccb69c7f170ba36ac2f8e6b84 GIT binary patch literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^&w)6AgBeI(eLCqrkdg@S332`Z|38rV;?396{zDUh zEHFNB-~emq9eE&^qa?^Lm;tB=1g@S6F=Aj~a`AL=45?szJNNCRCIcQ<|Fk(f-~T_> z?eLPFwIuusucT#?w^a2`#Xm>SykSb1^km)zP0u=xxs#r>pMPC*{(t-YNngZ$%$CXB zi+!3iD`ua2+k-t$lj6>HS{avonuX$hctZAQr zd%MG=xP#ZPtW}xo@nVXKeT$#xr^5>_pE+aC@ctQF0i)ic&t<#YE_A<;Nr`iM5n93& z(_A2Yfd8R-gZv?X2K$!z40Rm#jDG~`n0_e!VfoEN}-XRiw8)<{OFot$`-@3iB} zC7+5XP4eqLep>Ut=e~Px%Vt)k7Ml7miLYK9s`^E#d;goKude29Tx#@J>vWZGW_W6a z`gyl^TMxv}T|K3?JZ`P=)a)p`-r!$0w@$^n+N>{*{3kT`a{B4>Y0j^C<$vtl`i61t z-CcJtM21(dzc?CZrlBBcT@A0S^L+>PO7@^c00EG=&m=j z>t+Y*$!^Q2$vikC>*@^cxeW6k>Pr8pnwwmGO24GxJ~#kNfPo0a5C5f^8W*4E-(b~i V*b%r*0GP%YJYD@<);T3K0RYQ5O$q=2 literal 0 HcmV?d00001 diff --git a/doc/html/a00125.html b/doc/html/a00125.html index 12d934e375..7cd7380cb0 100644 --- a/doc/html/a00125.html +++ b/doc/html/a00125.html @@ -4,7 +4,7 @@ -tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference +tbb::flow::interface8::opencl_graph Class Reference @@ -33,27 +33,176 @@
-
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
+
tbb::flow::interface8::opencl_graph Class Reference
+
+Inheritance diagram for tbb::flow::interface8::opencl_graph:
+
+
+ + +tbb::flow::interface8::graph + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 

+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
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00125.png b/doc/html/a00125.png new file mode 100644 index 0000000000000000000000000000000000000000..c20726344086f10d15ad0479d581b98205a4f047 GIT binary patch literal 1018 zcmeAS@N?(olHy`uVBq!ia0vp^XMwnbgBeH`f1lq1q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0J3U<-Ln;{G&V4zpS%Jq*zwq3XzxONF zbZyGaJ-$s-eeHaXmZ!4>{tG#A-0fJf>Q?6*x6rH05QN@xPN`**$DhpKwyd|?bIPh$ zuDj-?&B@<4X|3MYh%G)Lq5s#4|43_J*7mCR*(>AUjkKJ(XI@ovVy9(@bG`lajZ>+pXI^5ZsqP|pYnjaObC7`jyxM68^s)*?_PctH9K z^M&4Bi+=um$+=v6mf$kwIr}mgswP#l9awh9oWbnrKE@52-+3E+cjhzXoT_C`2!1Ec zFuUkJ!;LAw(Ut5yZGPB*=Wd6i%MxMB-i{7mFmZPw=jE+7OW!WcIB`70|FwqT#HhsW z%WXGyczB<`ct=b9n!XR;Px<+NE=w*Lo_#yF_kZQqw|{-t7iGoBPdd76*~;X-XLUc@ zc-!h0%{u!2vhBC;CSvfA4=TyOTUM zsx0$Xp{CNMYm1*RlTKOS?Lqw+`j>x9%VNdXI4Du&P@7J>I4*AGRMv32rzDegxjn{iMBYF4{U## zN*1rnsH?9&^s+0hG&*d@rgK-dx(FCe_uBzdE4s%HND z^4A)^#{wC)=2fykSaME6-Ryft-c;dWF}3zT{SRzBji0}Ic~tl4H?8HzzA8%EoBGPW z&drcAI&5 zTA@$yOgm5G|KDqZ^`diM_vL?UV_bMmc9s_3>kazhH~P0Mwm9`XZ_b70;?3p;%QcIm zDz{B_O9;gnae&W6~CSizbrC8 t>az)h_{mIQ@&w{n-&na6Tl~JTo1`oazU9^a6qr#NJYD@<);T3K0RYe#?1=yX literal 0 HcmV?d00001 diff --git a/doc/html/a00126.html b/doc/html/a00126.html index 90929ac345..041efa71ea 100644 --- a/doc/html/a00126.html +++ b/doc/html/a00126.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::receiver< T > Class Template Reference +tbb::flow::interface8::opencl_memory< Factory > Class Template Reference @@ -33,140 +33,76 @@
-
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
+
tbb::flow::interface8::opencl_memory< Factory > Class Template Referenceabstract
- -

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 >:
+Inheritance diagram for tbb::flow::interface8::opencl_memory< Factory >:
- - -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 > + + +tbb::flow::interface8::opencl_buffer_impl< Factory >
- - - - - - - - - - - -

-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 ()
 
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
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

-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
 

+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
 
-

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 class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    diff --git a/doc/html/a00126.png b/doc/html/a00126.png index f765e3ebb5ebb0e3f2ed23359f95a6fea80c51f1..d90f28a575f42779aa61fe29c305fe1fc55dba1c 100644 GIT binary patch literal 1139 zcmeAS@N?(olHy`uVBq!ia0y~yVAKb)12~w0WIZ#p7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+Gdueo$ei00B37e)_8mMMD}9(lzv6sqbs?3g6(5ECBv z{Zm|ObXxe~n*|%qq(1M+VrZ(W5C8s}H)DSI+qOzuF2={P(={K4*ZgIRV-Vka_Vq^g z@B4FYpVzI4-W(<;e>Nxk>aBu5x3kQwt9RB$#%(?K?Zt0%x!ZNi_Jmp7PMm&emz6xb zNxyvjZ1%6ENA7&I3a{Dr-8Q>d_U4v(qF=Maj4B@{Z24-OYMeh=;MVqyuluE!OnO-P zhHdxdExqUd)G}C=v29zwz^Cnv=daIUY`OnF-O+SduefpkgV6p&*?m)2H>YQ&-2O7- zgVnE{d%g*jo`2jk{p_u9tN16O{=4PlbG^#N|EcVAJ3QxZQDx}!TR(RBl|4a_P&@-YPR%I(fg+^N%stxqq&HEO<8l@828gNAIpHHhVoQclzH`vayqM zKYh=;@cQqK{!LG3J!kwp6~VNwN2;rr^cj-OQxu>PT8ZP zx$cRoCop+eY{ImAb)fuT6Qgn=);+UtM35!vElEjB)1S?58QcrnR@W8@|+Ccv|mo<(sNqW^cpd)Lt`R*l4_= zmNoVK57BeuUex3X(Vob1N@C(uM=4o);3pR&~Eel&Wy*S6m{&TL}-((uZw zi{Bm(pWSu0)xLB6#SNJ?r6+fJynTH1`qd@LTO*%q?DO#|Iv+T{S^aro*{wCX`o_MW z!s|budGxyb=j#1Vd;VO#-(Smhr`IBVvsK#eH{tJI%*vU(zr306-SJr`ZhNME{Q9NN z#^%km2lx7T^*w*d?yU2?^t7U zRFEkVsUr!fOaU^W6w-*{$RI%yPzew*KnzEQkm;QydhdI8z5Cw#A znV3nl5u#OFp3&cTimactZ??6y zg})W3&Tjicw_YU!#7}M)c1+Ffw4~U=k%ay7k8KS4Crj~O`SJqQ7MufZDS$Yn9is`~-XJ%#w zF#ihle8)cigHwt0$E|qpA`${0Gl{>9sUK4ksI62zopy_iHTc}iTLB~@dpwC^U)fY@ zoEnN>yB&y1WmJ$=7V8>m*Cgk!L|*svAHf0mU<3ztZ#$i;f}BHF4>lOlHy<30`m9M|zs
      f%%GCG+#=w%4o^%MV{?fyO`4*rkB*UYl7YjLYx za7_PBH|vn-n-RM1$?!^NuAu*K!>RwxYSMS>PSA*(fgdL-X_Pg4@6HK1eGy0LRceq z#$We2q70UgW4x1#2w6Ciczyw^exH4OS;BGvcuGzU!8ZpZaW|_E&rlT+6oN2F$&Sy^ zyVB?yGlG_erdSZS(&)jU^BPeI!F(__{y$^6ZB%h2c0iJjVY&X*Fu zW(VqE_+IMHNM0}itYm^e-V6ICAiM*nx`^e2?q101ce+tt=np)9-6{l8mMeH)GBa1H z!btH8+xg*5qd%28A0@%v8Jo2`fgkq06cBF44Ei>sI&4~;pU>wo*%+px4czyH^x&SA zT(jKfF(;1neF8suw~lc^cN0NeK3#(wDj!p~gJOWiR)}TOVGX`ynINXH`Tc|GHJ|&I z`M60>%hg^wY_O`ijyv8e_eL__Mlmzq?qH<}Z3F~(^$76kn?l7na*V@X2~c&CiZRDO zApYXqe!25a9*tBJ5V=esnd~^#JwHV9j=E{_s-DT-$&@JxA=ed$Q&WDVQCFq6fz*$N zm7dX=BZzr2!4R05AbMFnh9t|t$gu?c?a{^!iq(RrN$$seCkAT*EDD`DbaYX{bhs5+ z8;hvyo{ZuielEu8&Yoj@284*<+t-t^ziE!W)^sC?Lo7|vguQ+0Kn$7)BS=H^G?bKa2z4UwZf?BT=rD(2M*euIgWK;3j+9SNBjHdDgD zvF;Uqt8;PVBny-OOxaubqWag2U6}CQDS5qOM%d8|Ua=lVqyA1AS&p$G!|?HOFnGN?q@aJ?jio(;cbKIgplQS!B<2?D_7R#!tifFbmj|AFgr)(u4gl)mjryby(EKN=USr@88}vf# z@U=e^zO*&4)pKcO^uOVWMV6M*vp;2KhF?cmn|o9-mzwi-r8`)LiIx3f*_kiP|6!Gm zPVn%1RQ-&Wow-631PR&y(Q_&>=s)#tA3NM#%?mk6?Zm1%5{FjKu_Si z;ejWC??P&Cm%nPOyITILAsXZN=t`WM-=oB?f3NWGcKl7DzZ3^|l0)N&g}M2`cpKMT z|K`OIf%!ekthccBuLxZPaa;L`9pWXH6UMR#)_q7Kr#=k3O5d@Ho2G z?SvI`i|zX8^lu}!418`Ne@nYs#C1=HNlU}K!Q5)VDR3qEoVnrckZJzE`I!6l5i7Hg zBz=(`fm_Xd4@JoCRhG4Z%j+!|@!wN+Q@nB^QikaJ-87UBS7C9{a2M2Cdoq+Sr^}5i zR!|BYK>1fdlMv&kAQRd=MCpPi#{4*ddU)L+d1{LxS+b0q>v5Af-_mw|Mg_e!qCS#v z`ZceE0c%WUC7-IFTS%ac@a;qkV9*e0teG+rQh@bcM@!=(P}Ao5ed@bgRT&OIb6R^3 zx6&qUABFIuI#<>}wuntGsX`^mAC1zqLhbK03E%M22Yp^D8S@UPNTgz}!N z0a&h{1lI=4jcGT~jubJr;<;gc2%d!Y5GSn;k+pfy@lCH{^n}L4QhdI+<~+v{VC5<5 z_{+*R4sc0Fuyg8Z>!#4R{7@<^e6AZ}?rjir|EO{}P^eBq_##0z)*GA+A(i_oG$=ReKz7ZM0hM1=_-^8lP}Y9G_URt;iN81MBoMJ6iUtPX6~mDg@+^$ zE*ya8^Eg!2HAWhD7Q0oK@?>I)w2{WApGj&PU8N6#XMnSeql#wJnJ4z!Hz+lQ1+2!w zm%0Louyrex8eO_#HNhpN+KRM+#upXy+l1m0I!p599K9nWU-rUrZ_+A-xMIvl-y9D| z>Sq~YiY$X|UbF^zE*RTTNw5P@RnqiOP-}457ipmw8a=jYP%`RAfhyIwyF5D}5z{AN zkN0sLk%*|-Pv~=xG=5}D>WF8}7hV;6;2UWTTtu8mogk!)$aQ=r`z-c&L&6c&o>?6u zj?}%z!wI-;F&yxfyQF#Ui3Gk8aCD&_M2jm1rG=p6#SN+u%%Qr-)^4hjlN)XcLBYB! zi_UsuUx$Xhe8cxynL+b$gG%ED9-{K&BdV3`0PIt#>ioh?No}t^@=Y;Jl_ScN!Cv$) ziK5e|YZcRlcG{7jc%8%p5PX)+-c6$r2K7+M1Cf0)R57VCc^UfvK+-_xVeIMGU^eI9 z#lr+-9-wVgvV%F)5xD_m)fU0SB~Yp%yP@*QV_v?Y2@#=gUg)XR4MPhV-y0!qXVjY8 z9>-6nurHfn`9Fp3=QybFy8}_n;o5G9>_aZB_{K#0@(Y=nN75jwhc3j2iaL=W37Sgn zK2xd9(V}EyhVIICqS92q>n~)R=2fP7a~#}n2h`L}8N0K<`^_J!`v3FWJi}YiZTm8a zV*dr|)m(8cznEARa_3QnA$G+^SK#*`%B+krc==D4xemakp85Giw%${`u`C&U85Km4 zcuNoz7_x!2K)=G(!W#3Oxnz^Vw*ufqV%9``DU{a;P&jqEsXFSyWg_CgS zWr-JOWWc&c_pX_GHR7O$KKJ2Ntvuz`w2TO-y`9CqeS={4GX3rByV|XBCY~R$_FLG9uS4r(Vr_OScU{3W}ML^5^ zQ&`1D{NDAy<0*uXHlX2{$TOvp;NH+{n=g-a*o&wNCP!n&A|5-c8Cr8%HPmoi1nI9o0q>6;XmkTjc;!{dYF>|?{7QdJ}~(c+{00XR?Z-VUa; z!$WRcVBL=ANzhHlh80ToZ>&8Lh;%ee(E6d@SNs76bmo1T;Pj#g$H|cy8AbWN%knnP zH(WO*0fzBg@WoB^Hc-^sXgWT15}X$$U3bUbgSwXh+>e>cqbN@$J&8%LP1hvRwjq+p zZ{#u5E8!lVWZC# -tbb::recursive_mutex Class Reference +tbb::flow::interface8::opencl_node< Args > Class Template Reference @@ -33,122 +33,16 @@
    -
    -
    tbb::recursive_mutex Class Reference
    +
    tbb::flow::interface8::opencl_node< Args > Class Template 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:
      -
    • recursive_mutex.h
    • +
    • flow_graph_opencl_node.h

    diff --git a/doc/html/a00127.png b/doc/html/a00127.png deleted file mode 100644 index 3157a913de76891db2928ba797af89eeb5eb82f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|{O?ba4!+V0=6G^`tclJT3OCwynDVzxTSd z6N7B5ZF-tg^tN+OLYGT~{tG#A_%k?8`mkr+Y_0BSE+R~4o z>Wv?T3r|g1=j`HavqVDzE=`VhiPsm7|w1@ZPmMvFiR|Z~XEEP35XEZHO`|DyC>Bnn5 zOY#o5iA{294C^`cCFEj`x%0d$|Ovywoc!yJ#QVI7EOA>$$U}3se*ywpLHF>yoTihe}7hTTwX39 zTVdDyGP#4vh9%aY!T&`UQ-xEw$N}M9ix}oz5M}+)vQDExy~LH#W}!CM1J2k$G$kLz zT%9={aw;(Va90P)&jl)uQL@^hckg+#%-0>>?b`)eEt>oltm@~q-4;>nHfEJA7hi07 z_h?>>SG&o=Z@$kS->cc}_IuN!Vy=&Z#_`2#EgVm*tI?l#ujJ|OZ{i2!3*28`JE@kk zbZ+wX?XLRsgbvLA@V=w3-gi;TyZhCa5+_x=d+{Y^KTr$gI`Z3-E qW?&z80=*CN$m8jDEdqZYi#xS8Pr2b~e+rmb89ZJ6T-G@yGywn;tYQ@a diff --git a/doc/html/a00128.html b/doc/html/a00128.html index e8b0775b90..e8dbb45b6a 100644 --- a/doc/html/a00128.html +++ b/doc/html/a00128.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...> > Class Template Reference @@ -33,16 +33,42 @@
+
-
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...> > 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:

diff --git a/doc/html/a00128.png b/doc/html/a00128.png new file mode 100644 index 0000000000000000000000000000000000000000..8a1801fad08c31bb970565697485fc2d866b4299 GIT binary patch literal 1395 zcmb_cYfw@N6u#&|{*eIaf%ii68yZd*~%sJ;fbH4fhoNo>%EF=)U z+I}?v0BG>AKM4R(FoMHYSt7OjjT(=%&0$B#0cNuqfs?a~>4owe2>Lr)T3W0)Ls(>7 zl|~AQ01(n&(c4Mh0{~VQp#K4K7D`k8$L&VfH3427BB`GJaga{2IFQ8Pl^+9niGsBj zv|=syOleKeUSfp*S0E{bMa=cr*Y53m!De5ON5r4ciWSak)mrK? zk)tH|Ly3`Kh^7{$Rc$ikG3VHyRY1GCT=saKBe*J46+@4p6US`{h5F?t-gq$X<$=?ufWg`;7@B{1wy8Yvt$PH3a&kKv=QO52=2F~|5gF2w`R>+%fc!%vtg4-6;M zp5$P_x>7gEI`)P)qSDe7tPy7$I#$_{W;fwp=b5Ca!S8@k4F*kVQ_}_$g*HI6@w&LJ z+*w7s8O}sYa@mr=cJ=$p9@`&&q&+T!(3RnPmJ)Wect9CV)->^Hmf+e~ADCDMd5XiA z27`OQ93Z0ixx)Fq%c_i2W5N7U^IWA*=sXK-o0boc(lqxCglzrM@GQJ{yn}O+RkaQY-l>LsV6}t@e z-ucDTTKcFqw+G9ueftQ-xbiinOU138|2>-P2!%?Nj1#R+Q+6Uuj$`!O!3>?3ZZt#- z?F2E4k*4^0W0a$IFy4 zZgoSDsc2&)hgu|`&SRI>xOfs38^eH`i#FS>)`oMi+xajQ3(1nZYH9il1`Ur ze;kb3&tY$izw_7--8fK}c~Hs%SUccxMhO(+=hjg?i$(i%!g()utuQ?>vIsy -tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Class Template Reference @@ -33,16 +33,42 @@
+
-
tbb::flow::interface8::run_and_put_task< R, B > 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 >:
+
+
+ + +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< default_opencl_factory > &p, const std::string &kernel, DeviceSelector d)
 

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

diff --git a/doc/html/a00129.png b/doc/html/a00129.png new file mode 100644 index 0000000000000000000000000000000000000000..14dcd5dbe1e4fdcaab0b1829c36911047e7ee7ce GIT binary patch literal 1387 zcmeAS@N?(olHy`uVBq!ia0y~yV7vun2XHV0$<8#F=|D;%z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-oprWe3KRYEEZ~b9T zz1b&!zb`y*KR<0+e(Xts;U3|K*B92NUz>Dh>$9vmpYC0KesR}6m6tBsx1LMY{Lx)` zfBMNiCeM$(U07smepdGO{-voOKUb~K7khgvO*iWI*XZ8ewNY=^eURGG`uMG=^sKaN z)6GQ1b8Qz}F<#BF6Rn(oM(y_ED#Os-K9zfO6?3-NE~~E3-ns3@#L)NmHrUDTof&&_ z%k}#!CsfRBP=2UH*CFwl%W$%=c?k zYR%ZVm-+rS;6EFA`^4(V?>=wOMV0?b&(L?jr@GlA>#EOpw=KS#uF0NT^6A9(jXOHZ z7e7dDd410=Zt_3(+>dfPU$(E_ zcJl9vtZHNNwd}beb0>W}-TSEO>O6P5b+@EWuE=_;_$+sc?_2rY6YbV74t74?RP6on z!J4_&{^z4SkG}e|#@4~wCVMr9z5Gv$+skh4*<7~n_|dAn5oZm*7Cp*27p>KM@=u)U z_3fnzfA{V^{iT#~-LbFH&5yo5)a5(B#;U~p`+A2xp?CNUUKjf>czI7KKrnAkOz$1F z%_p~QzQ7aZ`Acr+=SfTcudM#tx99Kt^>@q;-|zgk(Q3ZEXI1d_MSI(GgwMoI{B0Jw zb{v|eF;YvLQ6HEWsX42FMwb__ub7pG(} zD!qEFe3OYKWD#q}3ig{R+yefcVhSsSbR2*wu3>`L76!$s8H~Ur$kYNjhxJBp7+;j6 zy!l?bmU;7Y{uR)q&R@{~kMq{^)2-)C)Y`ir&W)^>y;YvZJ0tt-)#)4eioPx8wfi^i z%KO)aakGjae+y_e!IHRjqh9CD50iH{HNBtXe)-I=AkBYzTTZJb=S6ee&TZfPefzZR zZrRAM?|5HdzBv2lBj4)3bGbU7pEUoRmTPBe6BV^(d;Zz@O^UN!DjHrrxXrg8oO*48 zt7rB1yuMRqHt*)Htr3-yZx4P=e|xr|Uh0-w8e(3*Ve!;Hm$xr5r z;O%M8?=Q1jEtaq*e$HHt491`Xb?9m33UjXJ(j{J+sx$sE=RZp*iaE=83|KNUc)I$z JtaD0e0sx~sum1o5 literal 0 HcmV?d00001 diff --git a/doc/html/a00130.html b/doc/html/a00130.html index 285e24f754..b1add1dcaa 100644 --- a/doc/html/a00130.html +++ b/doc/html/a00130.html @@ -4,7 +4,7 @@ -tbb::interface6::runtime_loader Class Reference +tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference @@ -33,281 +33,81 @@
-
tbb::interface6::runtime_loader Class Reference
+
tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
- -

Load TBB at runtime. - More...

- -

#include <runtime_loader.h>

-Inheritance diagram for tbb::interface6::runtime_loader:
+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 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().

-
+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)
 
- -
-
-

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:
    -
  • runtime_loader.h
  • +
  • flow_graph_opencl_node.h

diff --git a/doc/html/a00130.png b/doc/html/a00130.png index 56b89a68fda8064d7c58a403e3aa47ca3cccd7d0..36dff1d29d9364b93d73fc3e0b7d37a6db3d9041 100644 GIT binary patch literal 1729 zcmchYX;70_6o$Wm%2EYNwIW7R3IQRq3!yBw$P&M>7$KyHD5QZ_2#Y`{n+j;4B7zV| zkgydY2u4s)SsM}&p{WExPzs?5C?ZJigtVXXmR2L^O=!6reZcACO6XJG`lMe4@9X{daYN27oZ2Fw-=pnXaEuj@MDyMnx?TL zjA%jft;~cGUbjXG<{t!SO@4BwkbdoQ1RcIa&IDfnVfC#pg_Mi>q64!W{|vVmnqPC= zUXL=e1gbqNmMkSP%Pr>DqS5wyS_<{R=iyLIa5jLth#h|&!yP%Da32u&N>LBrP8?2* z+@#UMDn?T`uAt9$wCtg0NNT*@XQa3N342n^I={N{vewe2?0i}(L7O<8a-W3YP)ULPxRes>WLR%JLJn({5SX8(W<~4GZ#29a*GA!3sjdVol(kp=&6WM6k@4+? zW@LPJbZrQmm8iwb4#@oxyZ=8JacwN65E)DK8*f>y>|32UBWTH`O zc#enl@pA}JE{gq`966fc)_mG1!_n%GTc|jdtbnkm4OE-wdmrG2ax1|qYRxx^cOCRL z7QU_{_fj8rY~S06z#}GKXfNbN*r^F_8CTN%iPJHt+&}95E3lc%JSh#1y5g@|i`{+Y z@{uyu>w@s9+uAgCH9f!0mywDXjYsFBW!`zFodp9UWWk}k_!-{|gUmM4-pNPQ((?1m z%}u`@?>f24w8i%)P21vGFb!({%U@bJE9f>{%*&`{r5Rj|MT-_Ez+F5LS{s5B#-obG z1)g%Q%3b;!4f8xrVV>40(wcQca-;di{9OCzZgkvCZ1A1 z4jnQZ>WRG16zDz+K2;wP54&mUGU1l+(+i{6+oB#j7_(h-c3s4y=|^4c39%cB&Iv2U zM1B610*7W37s`iSc}N7vewr>Z`PQ55sH z4aV#gTAp*`jU8-6C~U?IRQ? zAH>sZxn9GEOTy{3Cm@zUT0tUt5_xAEploS}Q%Z;E>_==B=WZ1%rssc2UynkYJSp+~S4=xSZFGvD4`zv5Sf2a_Q+2Ew_ z+oz^q0m#=M&`Dioi%nL^%yNYO+7Worn5|Y9@y;y7I8pf=YQCB*zOeHClyw4|FCs=q zPh7-`9g(~Pd^RJjL@Yb=^-b-UEoX6MRo5#4d!5`yEBv`PF{APj6Yiw%9ziM+!Wu>4H~4@M=}ePz6&(y&eq&)!dsse|q1 zPu`sUF1?b=E7B@_y%-`HnC{`R)2#^@! z1V5C9veoA{+;|R)=pMS4Xj{dttELZ@GSI)qITy4a^!*QFXS(#2>DKT6nFQTz5zgYAGgM%A(#FJCS@p- delta 571 zcmX@e`+`NWGr-TCmrII^fq{Y7)59eQNN)q;01jp#*=$_Da-yPDJ>z#z7srqa#|X)X%e(e#dYE)Rn4v` zx}JeHO1D$Ir@gfKy1TBJThrrGeudk&Dao>am$zwMj_gqR+tYq$--NrX<-@)yzYp5* zX6JF$m)mQ?%C6t85Bz5CH>th8O6AR+d#nG1-kiMq^L!QiQ@<8w9n7;2eN+E$hj);U zX7r>*65-os-Yj6K=@LIs(WCkMt5neU8JpCvD!-BoF*`6}$#sUnCAW#kHJ5Th{$OxZ zPGxqPxT&6T(T!C9%Y{$he-D4k!eo(Hcb-wtf{W2)&OOVUf4sguwU3`RFaOTVf3M6L zuiQBi*MI2f^4y~RX>s~;d2Z*dvtMlc795*$^47CR@#u`N1?MJ(&30W^UVS!XS?!Ob z(+`sf~CbfwdzYxZ>hA>zE$*mR^O`k zC-n9PDqSl*S+M5b#Jx}7q=etBc`Cp2ZpO>_r{$^4$1SoaZTnQ4U%%K>PrGE(-ok{h z70b6<-+b$NNo}2|}16zu>2 diff --git a/doc/html/a00131.html b/doc/html/a00131.html index 31f9acd79e..36f4d8ae8b 100644 --- a/doc/html/a00131.html +++ b/doc/html/a00131.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< T > Class Template Reference +tbb::flow::interface8::opencl_program< Factory > Class Template Reference @@ -33,105 +33,52 @@
-
tbb::scalable_allocator< T > Class Template Reference
+
tbb::flow::interface8::opencl_program< Factory > Class Template Reference
- -

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

- -

#include <scalable_allocator.h>

+
+Inheritance diagram for tbb::flow::interface8::opencl_program< Factory >:
+
+
+ + + +
- - - -

-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)
 
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... Args>
class opencl_node
 
-

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:
    -
  • scalable_allocator.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00131.png b/doc/html/a00131.png new file mode 100644 index 0000000000000000000000000000000000000000..1e59d8d4142575ad7b12c98366e1f3581c5b7db7 GIT binary patch literal 855 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y^412~w0r1*!%A|NFZ;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O0Ct93?@1!3;n}AaM0mh!Fz=(=$&O$B+ufw{ze2tv29s>0dha+28v= zHr1%DyqkOT-qO{woxxrlYLdsk#VaZKxVUgBdb&*#TGOv`HA3EV)keEXA<4BWE1&KC zy0b3#8&EW6vA@Q%>&J?2xotoAw>)iDjg6wG{YlqfXRPD4-B%6vIJptXKNI@T^GjsD z4)gDP%g{;x?B6drKP5if$@FJxZQH?vHrJkS{PkJqWLd#0>in4|3G2m z8}_6K@0nW<2^pYGLO`2(zcQ}aXvbiBjeSAd^>i!Q|GU10X;<8lSnlJ`c<0kiK?b=e zs`B}{E)LZ;V!yO&?eyh3Oni2(eqmf)*K5aMZnOOSrI+bbuV4PS^ZCKQ{=!vqv-02A zpFSa!zBkW*uifnk`{X(M^-H+#ABkap=X^STf$gumTUOgni>cjt&ffdY+bz{u_OjMC z@A{3mPyBcC**n7xe|MK(O?@L!H}@{@S);u9H5ZtFlbpzwxoA-R;%%pTW zgOBVJUADe}`R8pZ+1tM+uhnRn=(te))#jyFzx^oM+iJgV)s4G7%fH^7e{Ztg+4a@G zzONh?1U)28-Y|C~;myzemzn!)5Y6YwP-_2jQWJ#srwKLW~OZBUN z-SAwxJGj2e(5rUdD*I-;%)gSquSXoZrf_q4RQP@W$mpc2$8IIfE#0xJe(S+w+j&_P zUdFqxemy3Tp1(8ay{)uG-@OEe`-=TvR{t&DlH2e;@Ym;} wT84XKubBgqYZrE=sfVqId)78&qol`;+0JwmY{{R30 literal 0 HcmV?d00001 diff --git a/doc/html/a00132.html b/doc/html/a00132.html index 329c94c655..647f954cf2 100644 --- a/doc/html/a00132.html +++ b/doc/html/a00132.html @@ -4,7 +4,7 @@ -tbb::scalable_allocator< void > Class Template Reference +tbb::flow::interface8::overwrite_node< T > Class Template Reference @@ -33,48 +33,265 @@
-
tbb::scalable_allocator< void > Class Template Reference
+
tbb::flow::interface8::overwrite_node< T > Class Template Reference
- -

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

- -

#include <scalable_allocator.h>

+
+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 > + +
- - - -

-Classes

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

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+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
 
+ + + + + + + + + +

+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<>
-class tbb::scalable_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:

diff --git a/doc/html/a00106.png b/doc/html/a00132.png similarity index 100% rename from doc/html/a00106.png rename to doc/html/a00132.png diff --git a/doc/html/a00133.html b/doc/html/a00133.html index c82a845247..a243a58011 100644 --- a/doc/html/a00133.html +++ b/doc/html/a00133.html @@ -4,7 +4,7 @@ -tbb::null_mutex::scoped_lock Class Reference +tbb::parallel_do_feeder< Item > Class Template Reference @@ -33,50 +33,59 @@
-
tbb::null_mutex::scoped_lock Class Reference
+
tbb::parallel_do_feeder< Item > Class Template Referenceabstract
-

Represents acquisition of a mutex. +

Class the user supplied algorithm body uses to add new tasks. More...

-

#include <null_mutex.h>

+

#include <parallel_do.h>

-Inheritance diagram for tbb::null_mutex::scoped_lock:
+Inheritance diagram for tbb::parallel_do_feeder< Item >:
- - + +
- - - - - - - - + + + +

Public Member Functions

scoped_lock (null_mutex &)
 
-void acquire (null_mutex &)
 
-bool try_acquire (null_mutex &)
 
-void release ()
 
+void add (const Item &item)
 Add a work item to a running parallel_do.
 
+ + + +

+Friends

+template<typename Body_ , typename Item_ >
class internal::parallel_do_feeder_impl
 

Detailed Description

-

Represents acquisition of a mutex.

+

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:
    -
  • null_mutex.h
  • +
  • parallel_do.h

diff --git a/doc/html/a00133.png b/doc/html/a00133.png index d8565aa377b4b6d12e30bda0927c2756bdb21acf..742cad9d022194b018303bb7554cb51173cd3a64 100644 GIT binary patch delta 580 zcmdnT@{vWcGr-TCmrII^fq{Y7)59eQNbdpS01jp#IYsb&!bC-@dL{->7srqa#na6PZ$`|kJtkE=wVI7e^xwoWzn^%prZ^E7Mw{uwjRa;bS13q4Xj*({*%Dc4fr z`6*#a#pK+^X^*16O`H3BLW{~@<-cf;l<8x#PK`;mb-k)z9h-yT~W{{YZX$ zp{rkON^Ik)n))U|7yHj<-J{|hGt?*^dUh&Td${)GE z`RRA<={C!|pL4f*u9q=Ya=oE_`EOS7p0e27hDYywV7srqa#s9nufMWm;%~6;@_x`)|M%;R2jM&YEYHu5D8@#!v~NK+}3{y#xq?RJXI?bkdlbz+g1{pZMax`%aV zJc^$&HQafboT -tbb::queuing_rw_mutex::scoped_lock Class Reference +tbb::parallel_while< Body > Class Template Reference @@ -33,115 +33,125 @@
-
tbb::queuing_rw_mutex::scoped_lock Class Reference
+
tbb::parallel_while< Body > Class Template Reference
-

The scoped locking pattern. +

Parallel iteration over a stream, with optional addition of more work. More...

-

#include <queuing_rw_mutex.h>

+

#include <parallel_while.h>

-Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::parallel_while< Body >:
- - + +
+ + + + +

+Public Types

+typedef Body::argument_type value_type
 Type of items.
 
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +

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.
 
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...
 

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

- +

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 >
- + - + +
tbb::queuing_rw_mutex::scoped_lock::scoped_lock void tbb::parallel_while< Body >::add ()const value_typeitem)
-
-inline
-

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

+

Add a work item while running.

+

Should be executed only by body.apply or a thread spawned therefrom.

-

Member Function Documentation

- +
+
+template<typename Body >
+
+template<typename Stream >
- + - + + + + + + + + + + + +
bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer void tbb::parallel_while< Body >::run ()Stream & stream,
const Body & body 
)
-

Upgrade reader to become a writer.

-

Returns whether the upgrade happened without releasing and re-acquiring the lock

+

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:
    -
  • queuing_rw_mutex.h
  • +
  • parallel_while.h

diff --git a/doc/html/a00134.png b/doc/html/a00134.png index 227e99a9e7146d2e7de5a746eb21af449090be9c..fc86480fb6f62f64fddf8d2c87db84e764fa7982 100644 GIT binary patch delta 567 zcmV-70?7S~1>^)FiBL{Q4GJ0x0000DNk~Le0001{0000`2m=5B0HmG%L6IRke*yDJ zL_t(|0qvb_j)Wi(L|-S9)ctR~j)H>1I=i+LOxjRE6q-lz^%pa<@r6m!=n70p@={<* zl9vKglDu>Y(`0k&>0B$nmLF4>vh5Av zOk0C?n?qcnOv?raw$$(WcFb8_SqZQSf zm^t(kyEo>-&81q-c7+sjeXoABFb&GI`mw_-!tF3?x2ieZ52z?q5qg*yTf*4VI?UbL ztb489EXMR1W)U;JX9sfOe|OB~!Yilq=w{Jy5Bedd0XtPO>**<1S>1ItkIi1I6SD1Q zy+qcEXPC7Ezg0V5n@ z&cQN(zo~Z@jOAvhzcWmL0Th@3UJ6VAFTIa%Gqch41F;)q`D%C*4SWCq002ovPDHLk FV1nWs3;+NC delta 606 zcmaFD(#@*a8Q|y6%O%Cdz`(%k>ERLtq;CLm00%RW^pW+>ny6@1&m`sP;uuoF_;zmY zx@H3&mg7N7_x|sde|lN*Ls!(LQxjL`WI8{phPwU@CY`$90rskr@0$)OppE*+{!ggVPy%3MWBoGeU@Nm;#rizvQ^G>Kw-o7(br2ciTLBsa1rW;m% z;Ezw9KHK2y`QmwtpT!r?Zkx9JnACAy6TTZ&#~m(*PdqPlE_R#gtEJoKY`YRxJtw(% z8=GtN!BySTyXwWNHyG|O+Vns5!R-AZi@7({`kg-eclC>TufO@6JII&z=6(I|5AKu8 zJM$Kv6I;8eYW}J4Cq_3u7t7xe$<6;J8L{!(-30f}`Hi~OpW}~r?O=CZbM6o8jgPA% za%Aqmt@=Lubw>YH$%Gxx)WwfJZnF&&@2?Gwanp}*WnH!XWT?UaIWeJk^6H{QulN4? z<+8KnnThq^dptGVH>%9eK0R>X>J`h5H71L9iZ8nN_(u9l<~geuCNn&ok^l@qAl?#| eX}o#e7xswK7T>_R;tzpIhQZU-&t;ucLK6Tj@E^+n diff --git a/doc/html/a00135.html b/doc/html/a00135.html index 63b3235b2e..26fe190e18 100644 --- a/doc/html/a00135.html +++ b/doc/html/a00135.html @@ -4,7 +4,7 @@ -tbb::interface5::reader_writer_lock::scoped_lock Class Reference +tbb::pipeline Class Reference @@ -33,60 +33,99 @@
-
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
+
tbb::pipeline Class Reference
-

The scoped lock pattern for write locks. +

A processing pipeline that applies filters to items. More...

-

#include <reader_writer_lock.h>

-
-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
-
-
- - - -
+

#include <pipeline.h>

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

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)
 
+__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 reader_writer_lock
 
+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

-

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
  • +

    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

diff --git a/doc/html/a00135.png b/doc/html/a00135.png deleted file mode 100644 index a999a7d0cd0bd7f4fb4169b8e0db9283f0821121..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~12~w0xp*Zd9~T#HMNhX$SvtKcOCzK_y*8Rmnv#^MqIvX^ zM^M+&iA$z*FX22o$9!61b(CFF0r>&+{&o?0vT0%ecTPcH8`QliViV+i?Bs^rbUnKK+>-5_kJ=>esvX zOs`KZkIz(j8H8?o>LfL#LoO~R40qbu8yGV-nlMQAw{KDoRe8ZH1EkR~C+X052R%7m<{@3nG+a}ZOq1|cuw_B zuvJ?G7}ypZyTq_0LaIT;n|VS~CPPqJ=CX%hSJ&MCf6LFTVcyc6%reHGEaO-ipI){7 z`{%LT`c+k>dS??E+rRSYNk5SNJ|WHW*z@yy`C60C|Gvq!T7I7Yv?_8(C z?QJwIc)6(R&-3c1%|Zfw|L@S)_vhMCw>RHXgzu$m`dm}B-OZ_uq<9z9iEs>#_N3i_a{r|J#>(uDP)Fz24W4<~hF}+)A{% zUXmF5=v#p8=^uWxYMigmeekzU%J|LfxXW|+vMFOI8NYlhJzZ`D3ndR({0YlYAfIKOPpn=QwMpeb`=+1<3|H3)Fs3 zZ#?-%s$t501>OVvz^K!l#-?x-62wzHXLWE03ts%dKQ&?Plt-F#jsp`jgQu&X%Q~lo FCIA@tYbyW% diff --git a/doc/html/a00136.html b/doc/html/a00136.html index 6c266e3e83..f0fc4cf584 100644 --- a/doc/html/a00136.html +++ b/doc/html/a00136.html @@ -4,7 +4,7 @@ -tbb::spin_mutex::scoped_lock Class Reference +tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference @@ -33,96 +33,26 @@
-
tbb::spin_mutex::scoped_lock Class Reference
+
tbb::flow::interface8::port_ref_impl< N1, N2 > Struct Template Reference
- -

Represents acquisition of a mutex. - More...

- -

#include <spin_mutex.h>

-
-Inheritance diagram for tbb::spin_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - -

-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
 

+Static Public Attributes

+static const int size = N2-N1+1
 
-

Detailed Description

-

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
  • +
    The documentation for this struct was generated from the following file:
      +
    • flow_graph_opencl_node.h

diff --git a/doc/html/a00136.png b/doc/html/a00136.png deleted file mode 100644 index 25da9c6ba09d573b82ff7e6295013c42ed53edd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^>wq|bgBeI}_u97=NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~KJ;{P45?szJNIVaY6Ah*)k{5||NmbR zaqNMvq)>*){oBe~4IhK%Y&@%-miD;8^O8o(I+aSnU6Y=;zVMnPzP!|T+ZThkot2q! zKcZC?J?9t2m1pgjn|bL-0tz8i0FsrO}^;f4R-1g9(so^%6=p7a$UdWe^#t7>n~lf_wu7t3ih9ZgLhw8tCjD3ZL*@b_HTO=GuPv`ce8%% z4b}a$<+{yfpXXcOnQ`;I)|-FIsr>!otFhVf%YUovnf_8Nxm2v^_2>4ydZUtM>FHMX z7j@H;H(t@3vHNY%>hiXb-N9F0EfWoY%Tp=;ysRykQRb%h`v0G5Z#+)lb(-s>xbT7K yFSq1ge4Xzj{y>`}mO -tbb::queuing_mutex::scoped_lock Class Reference +tbb::pre_scan_tag Struct Reference @@ -33,89 +33,33 @@
-
tbb::queuing_mutex::scoped_lock Class Reference
+
tbb::pre_scan_tag Struct Reference
-

The scoped locking pattern. +

Used to indicate that the initial scan is being performed. More...

-

#include <queuing_mutex.h>

-
-Inheritance diagram for tbb::queuing_mutex::scoped_lock:
-
-
- - - -
+

#include <parallel_scan.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.
 

+Static Public Member Functions

+static bool is_final_scan ()
 

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.

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

    Used to indicate that the initial scan is being performed.

    +

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

diff --git a/doc/html/a00138.html b/doc/html/a00138.html index 89ebcceda5..e5ec7edac1 100644 --- a/doc/html/a00138.html +++ b/doc/html/a00138.html @@ -4,7 +4,7 @@ -tbb::mutex::scoped_lock Class Reference +tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference @@ -33,70 +33,389 @@
-
tbb::mutex::scoped_lock Class Reference
+
tbb::flow::interface8::priority_queue_node< T, Compare, A > Class Template Reference
-

The scoped locking pattern. +

Forwards messages in priority order. More...

-

#include <mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::mutex::scoped_lock:
+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

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.
 
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
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class mutex
 

+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
 

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.

+

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:

diff --git a/doc/html/a00138.png b/doc/html/a00138.png index 5450176d7fa5c18126f5e6f83daf7a63bab18728..d3e88b55a66281817e107ea4b0d49b49953838a0 100644 GIT binary patch literal 4094 zcmc&%2~<;O76#Nx3y4mSXe|=02s7gXYLz7+!L3xGL|Xy{WD^C2LS!c-5UnFrP@__b z0wz@y>O%;KVG9rxY8rt&EgFzOK#~ylKptCwB=eG>&fYWAIWza1O*cG`_*bS-0UBojH5ih47aqu z`uh4M=Q|N_*D&@=_pkKeMH+hf)MLAzp6SH{`*wRI>W_4dc;iyusFZ=(L8Gr1E_-_&&aS<;ME@`mP(nB4&BE_#*=Y zgRFxz-|&c?+#QP-FW!6&Rl)BFyBca}X!!LX36Vw2mzLo2<;zQ6V0n;f;*@T~ELStL zii+Cn>|FmPg35T=B-G-V+J=@mpf;fx!ddTl^JwRK(Ze8F#YBRL0vS2p8B{Cwh z(hr^}d^f>tEbH^%KvF6Pp7DK%`Z^sZW8^5(ym^2-Qrn;3im?JKYKLT6;VD<>S<+if zMV3}Le(W(pWr$bDrq#w=1lic&QCFc)xXmYoRQSku{kMm~r|jIsKBv<=Nr5sgpu>WC zPNB3bx_cy0r%yPR}zi>#_=z2PNqsGn) zRI^*NT}$cbNCU6$MLB>}O$Q^wG)v!u4R<%_XuEyTk+JObopk24 zAh@hsARU2fKu#4fsJ@?bFT=n{KM90!`GOB|xa1016U31qb|dHORE`@*V<)2f?T3{urMHF1>AkNxG0_C_PZKMu)yp$)%=&uZ zk{PlV=pIFSkml2lh}g@Dpo$_+RE#`2&-pMR;Qg*28sd=-Y}t#Gfve_T&CxsWsohT$ zG1(>lwCNdpESdvRSwq#0%}<}Ny${Tq4fPQiiJixTcRhNNQ4>!q$cReb3xVEb`RJlV zwTU8-#w}I!v!+s}uBcZKXscp+cZGDYhaTNx?wWqpNRiJcsz5o(t1FbCN_A%BN-tt~ zP_f%o->oXwMzIX94#Z!UuI(MioNQ0J5`YBL=mU?B)IH@Pu@K6EZ3#*Rut6D2Ices` z((%L-SzuEomp3r%@B=j?|3j>twDzGTSdr75jszjGdw}VLt5iY3@Cs_dw73GS-H(7^ zmtd}sGSwti*mx4lJEyf`)`10Nda^z*52-ZBO-Aw$?VMf;d$i9_J_MRobQX7@iYsYz zr^!hPBYubR9J4+`bY@DmOX+CHT(7*wnZ|}hoie92d{eY_e`Yj^Z0ElL?5^&B^tJ5U zc#tG#xOHWn8s+Yl_#<$`x~rDNn#?PRNuJtBvbzHevhH7(-oQen+M_Js)pAp2c-y*s+?RIDT5fH$}|z-j@-UEGA#okxdYaM5Kh?c$J(m8d3yA`fge! z5EJN$Zf2FHPth4QA+$mu-qyFogwFs5@5!3rY^yXVEP9*{TQR)|&I>Eqo5425Q>=V` zd}HFwJ)q+kuo)th`h<@NTQiH8Q_V>k?-I#l85g?6#=XSnR8#_CeW87Do=M3TR{>#0 z+!)+Tvy{WIIDf1h&i}rj!_9X&$mj5XckuNFa3N8qZw29kyv?|wBz^0eH)HoF>@SJT zdRz!;r>`Bq8)W2tvVD)|8qe>Sq;5I(w#$c9w3Vro|6;zh&O7L9KhHJgm#=9z?)MJV z@Ojh4dHerm_itwZZ(SKo<0_TP;;$M;aOtZLk*g7!YBs!8S1Y@86|#h-E#?OCTKM5y zKdJ>QhV8oQtPCt%F=)=TL}vGs{T-4ghemYVAskjdH^jk#UoPOj#BHU>1N#z|WAa`N662 zq3aKQcbk$eO#RjUpCqDUQBle`$LMTnO*gw)-nkZut`}Fc&Q#osqh8Uvxi2x z=d^N09{noP#?Or*m2R+c$@hv6#V?I)bN?(BI>NRLSu{s#dU+6uHbgX7SoN`3F(C`06?jc}39XJ?mCpTw=0SPA==8~vc4}{~mQ{2>3shC+ zH)p{tYwALQdvPtO$T4PCt1r5)MQN^_IS@yeC^DklwNS0fMnahBZ!ZmOqaKLGM&-m; zxb{6i_Hz^)*~vaqTx*{5Ju4?PTPiSD`s2FFwP^_$w9z_M$qO&|9w&WCzLyIDf$k~> zDoDa1EG~XiQ2mq50b#3C*QW-p z=4(Nz(H%rd_GTM6+BaWIsSkTl1Ebs$k6Hafu6&Q?jWMwFzEzVEywvsX+l6tX98S{+ zLp3o*2#U1s+lwy#me^n&8sdV-E((}BRZMYlm~S?H6yQDaL~H3=QUZE-^Y5FJ{ay3=_%en2rjY6#BOZelZ8uvK?$-KOGIs@JKFNim(jD6lzFba@n_?WlWhY(pQJ%4 z>g`-e@)-x2umP*SWcn#rFtEa=%&iX@;FvQlkH(0Dka!}M%a9QqUysj_sDh-6ShaVwL9vmm^!Cf%LRi-g`VmE%{EX5JCkMqe2LBE1B@M zxOdcdi`L&Te2HTB(CGF=VHG>yRUX$EF_u{+`yj>cIEHk9MmHIFs$dgR#>^=~NivNk zSa`KnNZ?RR7<@>+p(>wtA&h3&aiL>%O|@{?*dP0y6vK;AFSAY{k=E&C$U_NeCGolx z%tKZ+A;eYeHWZjZu|v%C+%4?u789mUS4Kc)0r-V9xI#-1OhsK7jA}kxP~+6Ecz<>p;<{;b@_eas zwzP)_tuI6ktKDah)q546gJY>af+#^DT#O6oYW5w3q0ttSaV2yuT=M{X7GaYsoztH~ v4SS7d>yp(!@~mHRL6e2I4*a0&!zkZtq351CjDsKRdI$Eq?yzW7srqa#F0m>d#2oRu#3o_9j)d4x=T}4C9$O7(*7AUU702?u~;%er4oks=%;L| zJ+Uoy%i7$>{?ofu_MU0FV75T!?B%+3uU@X|R@r;N%c)*))?OyAz3~gmxoopNC*6D0 z>=evf8~&m-blaz6_3v)B_i66e-=g~Ik4IL2)n22ob2)X-&iS7@>B&T=Nlyd=Pn^*a zV32>vDA1YV)bDPvIKyeSzs}+UCx(M3Y8Y&c6dC$`I1VTaGkrMGf{*(n!YM6n;sJ(7 z6Py_2G+7=La^x=mEPkNgbpJ*B<9?gBY;WS4%A4@}*6g<5OSj&sjC&V<*CzEy-Qsz# zOxzzUn3UK(&JfZ%`!z)WRLJuU@1{FeZ&|*wTpcK$b3FXolZz(toV@%N?7jW7)Man& z-Wk^Njd!2$s`tOVR(#nPni0b)-kntU$i8J=d}O%u=74a~*ueS)ZO<0TxrNVktiEzf zF6?II=k2TCXdKyH_UdTme(f#c6}u%Es{So*VG#2G`cZ`GLq%SET3X=`W(K`*Yqxz8 RGk}rE;OXk;vd$@?2>|Lo*v$X{ diff --git a/doc/html/a00139.html b/doc/html/a00139.html index 1eaabd781a..f3a686c7f1 100644 --- a/doc/html/a00139.html +++ b/doc/html/a00139.html @@ -4,7 +4,7 @@ -tbb::null_rw_mutex::scoped_lock Class Reference +tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference @@ -33,56 +33,85 @@
-
tbb::null_rw_mutex::scoped_lock Class Reference
+
tbb::flow::interface8::proxy_dependency_receiver< T, Factory > Class Template Reference
- -

Represents acquisition of a mutex. - More...

- -

#include <null_rw_mutex.h>

-Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_receiver< T, Factory >:
- - + + +tbb::flow::interface8::receiver< dependency_msg< T, Factory > >
+ + + + + + + + + +

+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

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 ()
 
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 ()
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

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

    diff --git a/doc/html/a00139.png b/doc/html/a00139.png index 081a54dff5c3418a26e55aabe7207612d4a46482..68da7369fe513f1442b69ee29845a0787b0f22c0 100644 GIT binary patch literal 1828 zcmah~don(9N*cwD63qeO&g)w>l!jTuEdqD|FE zm71tv#8pEdC^0k>>C`I~Z&Uj42pvQu=GQyd{5kimwa@wXS>Lz!IqU4bPPUti6KaRr z4gdh^^r;hg0N@A+yCLDwT%dpJCbX!!IeXwXHZ~wQ^YQm9d2RU+`meRLv~0^3X+bVB z7VqK?Akyd2*X?l_00igs344zO*lh7^A;)m%NlUTcFS1cFQKpM@IU3f_oP6Cx!eKKa z7jFltBFuKa5WxFg&lqGE;NQb&42G$>^y(#)XgIT3I9?G zH{7w9Oiv}D%{j+di4`M1GJL+ZjCeY5lOfdZIsg24Xc{APa;ZXg4pqHk7(iTTTD27^ zbV%+C*3Y4qi)aj?0a8cqe}pFFg5H1l0U&ke$eccZ+kFxf~gy2{SItG6emxTF*j zQcCn7kZPXZ^@-#8M6k37CjZ{o=WPr>g84bikJomTA8?j7Mb!9hY46gnKpENVO1zzx-4CrAdwc|k2ooxn zyHRiY>V||0dpmbG8CUyejt2+=lep`j*5m;fI$jm&eVO64dzU;NQDbn&y<=UvVsYmg zJJKyu+_6j;%0#a`#^xlJ(^0wAzMhMZ2g}pr>+DIYF*-;^$pc|vbGLgd-NL)!_lF3n zX|9^CIr@k1m$@De@v<&**Mvz~T9Q6pq@;_s7|a!BTlG7lmN`msIZaBbPP8e1&D*_! zqUmWQ%jiRWoEha?s~k`6hbk+(-yAS=HO))?j~L|6UWxDX$Yb+w6X^^4@4xuySy;tM z9XYfo%UR23F8?mr+A*HtFk@frOQ5Ij1lg1E+N)C&7y!`(8Bw8Yuyhj)fyVc)cnJB3?+U(?{86$JMDk?C7=ZSB-{6a zqB{4mg_Mj7pGg#na)U1I)7h>5u|$$7W0n+6G{0}3e!Hkk7o?FjIBt#Y43)*5%e*BgXmJUGu9s2DO38~tHEIsWP~I7 zk}&2-ILdSmG42PI2mfSmps>G4t-#=#*0X%1hbzIk{mo_3M+}n493ksjwnweZd20Bk zULyEP<8d^ZM+SNF;A4QKj_MP}V@gV1Jgh5ytvq*R&eke~F1A7QUC$1&J7RU>l&&{e z7~9;P&om6;;li3*zhb|w6cz#DF6qm*qsgy>4HZiL)WE&8YIMxP!ZJHLXSE_=@r4|E zN0v1U@$!Id4M@b2uN7_Jt9MH3un;xF z`(4|u;J#l_UBVY(e5%(L=0EPHP|g3Mloi}MWl*jOE);J7ot9&G{|mNK=t~2qaV{sS I9Rkz;0Pn?C@&Et; delta 559 zcmV+~0?_@W4%`GGiBL{Q4GJ0x0000DNk~Le0002M0000`2m=5B0C;4Ic99`Ee*x=B zL_t(|0qvdZj;k;X2FFsR@BQC+DHL*}TF#PU(&JsGv>_KyoP@uanT-r4N#ha%lH^GU zNRlTZAW5F|6ENA_)pRuHrFr42%8DeNrlY{r(Q;+cy?(8?y(*G)f}R<8BhY$$fk3~F z=OOUi3zF1@3j~@yaBqPFr%=xoe{}78U>oZG0@I8?|0Lzt`n%_l9vSF5;-vzT)SD2H zBu_#>l02CN%*+M`;G;YMMrL$@$767V(FLaX$2J&V0AO%p{sBCR3;=i%836DkG63L7 zWB|aE$N+#RkpTctA_D-PL -tbb::recursive_mutex::scoped_lock Class Reference +tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference @@ -33,70 +33,85 @@
-
tbb::recursive_mutex::scoped_lock Class Reference
+
tbb::flow::interface8::proxy_dependency_sender< T, Factory > Class Template Reference
- -

The scoped locking pattern. - More...

- -

#include <recursive_mutex.h>

-Inheritance diagram for tbb::recursive_mutex::scoped_lock:
+Inheritance diagram for tbb::flow::interface8::proxy_dependency_sender< T, Factory >:
- - + + +tbb::flow::interface8::sender< dependency_msg< T, Factory > >
+ + + + + + + + + +

+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
+proxy_dependency_sender< T,
+Factory > 
proxy
 
- - - - - - - - - - - - - - - - - - -

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.
 
- - - + + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class recursive_mutex
 
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 ()
 
-

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
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    diff --git a/doc/html/a00140.png b/doc/html/a00140.png index 9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596..3aea1666dc3f0c190cc9647a24caa0c801a26f21 100644 GIT binary patch literal 1782 zcmah~e>~IqAAhgKe8X9nLv)cJDU`d7N*(4lKQ@jUPDrk=EMcUun=n`3uB4bOGa|y} z&Q(NX$8PjP*P3n3F=Q&|V&zBp2%Fh`>K=Xnyn8<$@Av!pem`E%=llJ5zMqfBJ9lrO zui+Z=H2?rZq91__z$ysFd-ag;=!IT84^L)$146vDS}hF6C+5=%?lNKYzISwV=;RJr z!b`nWa$qoki{7v_+ypH8N)Yk4}^hb|5xZOvtoo&yd>;rPy3?8^(90Ohht zZGqj1_^e@O0%hQn^YR^S?yS&}8JB5DDi!r5_^L9=4@RF2^p6#K(9L}oOQI|G9N8{F z76=pcX$#JF1l5!8mbe7%pWKY5Vz%qpm41w46n12ta64Pv7a88p9hj`DBTw<3%t=3E z3{^m7yxz^x5KHS>2%YY#?imO?7Sx;2rO=%Gk1R}7w=MbL{_us_EpUSm`JW(uwJsZHw$xXzCZel=ho2VPmZ=ugGhy zi=7Y|?jMs-@{x>qXY8`REC{(?(vXqpOioFnJX%#1>aA|_*IrpkH3$$0B2+VNrb>Lr z(Ea|ejE6ke%!<>kHT&XkkvtZ^Dq+~mrVVYT-o9Z*n5?MQ!P8c&5E2H1NHR?*t4%4D+53>qOtiJp> zfy2?s9$ac7dGdGB7S`D7&9GT3tzNM`2^q1S%2pp)j{MT^>Q{YBhbLG5CRG&1TONP#k%9{ zSC$Ls0rkTkeV6lVgzC+)gMCOBZy7QbFGDu_3SsJFD<$HWs$E7>bE1(I*nYYOHU7P| zJ1)W2JqNTJT-sP^aUKFUV3}3VF@702Nn2o|kL>?MKOw?=|3prH90Ckp zqkSY@yA9wXAu(e2H60L_H|&PA*b9mT(#wNG$8Y^d{CQi6Spt(}WxW@k%}6+0Q374gh_4q+G2>at)|s8F0A86;ug zRhg6r7P|%&u$eZW%L)d&TkKTMExlED+JAN%yI&lxENx7xYmfMvw;??9o0&z0!)4@T z-F*9>@^XQVhH~o8&b^SW60tjYu%WSrdz*eJ_R-_&N?Fivd5Nb_q%E}5>(kSR5_cyZ zchx_7y(kgextbNy%!a_HOGKr;DJJ1XuD zj-VW4@*T72@yW4g2$dO;q37<{N9~ZEMMqC_Kjy`>EHMirZXM}S%aWhr&Kdf?m-pc| z;0>ERLtq|X9z00%RW?48AUY@(u7J(Gy1i(^OymS$bEt)c@=JHu1af&5!*nXYQF{Kk3ibzwh^dX5YIr@v;AkiA$KWC(z1x4KKG3hX?p=39hWVCN|ID(! zjN_?`o{<2wvC5&nxOg4Y@mbGe zS9zTXOMK;1y!GRnG;Ox_SSsq;)_mU^$53~Izj>GI+0P%UCNt>mbIpF&8hRNN kW>OG*X1%8IX2&1wzxr#Vm9k4d0TT;@r>mdKI;Vst0FxFWHvj+t diff --git a/doc/html/a00141.html b/doc/html/a00141.html index 8c95527723..c7ef2042bf 100644 --- a/doc/html/a00141.html +++ b/doc/html/a00141.html @@ -4,7 +4,7 @@ -tbb::spin_rw_mutex_v3::scoped_lock Class Reference +tbb::flow::interface8::queue_node< T, A > Class Template Reference @@ -33,169 +33,384 @@
-
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
+
tbb::flow::interface8::queue_node< T, A > Class Template Reference
-

The scoped locking pattern. +

Forwards messages in FIFO order. More...

-

#include <spin_rw_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
+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 >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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

 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.
 
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
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-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...
 

+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 ()
 
- - - + + + + + + + + + +

-Friends

-class tbb::interface8::internal::x86_rtm_rw_mutex
 

+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

-

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::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

+

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

-

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
  • +

    Forwards messages in FIFO order.

    +

The documentation for this class was generated from the following file:
diff --git a/doc/html/a00141.png b/doc/html/a00141.png index 13249c6a5c9189fb4202efb8b5609124c7dc489e..8ad3fc135807da0aed721edaa92e7b59dacc58b2 100644 GIT binary patch literal 4409 zcmd5=3sh5Ax<;iV6%;$(0=|g0B6k`f8Y_=VNUgRMuw;rP7{Gvqz-R;{@_q#DOrc68 zN=!l!$XKkvNdQfZ$V0#)kAwhf3K4l5c|=}92oMP2?h|V7>a4E2X06*bGiNP0`#MF^XA(RANx`wX?u{Mi5Fz?KmNFG z%O0e7gQ21G;a{5%QBuiRpO;|mnl*mQKl1N(KBwq=b(n^b|5C3Euh%Fm=POlns+U2p z<36L5EdMR|t+i|KEsFWMpG1~6-aJ^ck=Km}&#%0B-m^jQmj+wQa&Bz;z0T+JZiHRC z0(tCE@J5YC6+vXPW1qO1Ev}cKglpCL8jn&d}@bn z4_aI+0%N%A$Kd*lN{U}! znaJOvKNv&9Bk_*5>Qbotx6Z`75eT>i0cTUu|z0Jm)xzMy1yeK0aRr zT~Y<*FgtxS;2Q*ux}Z4huIk{AvcR*%|0WhgudI-G{Da^hphjCF*g=xO3*X^EfS?4i zJN~kt;HfVKehIPp-gtEu6WUfD{DY_yeu+oHy_0Q`^{1<}_Ptn}7-_qbR+WdxcWj@u zB-Wn8+0Z3_I)S5!(3ulm`u02OSqCN9h+aF1{4STygoLny)RU zOQz9HuJ{i2*%k>Z=lat7_dLZa0X1p*;u0#&Irm{%Kq+))*iSGc9$NT`?_5pl|F&tK zWVzEtP2#ec@+5Bv(vfB4{2Zo_w6%Uscj%l4(W!Av(XUy~+Su%-ZlaEqY?mpPivBSm{RUG>y?>cQkToQrMu z*nRQ0EpF^T`g>O9C2l=m^(aoLQV*|>z&LHHFxejQ)c5*X>@|2EjqRU1jN329bU-=b zST@tgwm^JU^y$paKWP#OZ7UREp)#c_OpW{Kv1yIgN_f$4xs03Vf(g=@?UmVAJ)Jef zhOu*~yL|{**BMbBphI|?#;jB% zr~8y1=q}&Udr;BWq}(nL_$v=6vNe?tCU*EzJm&4HSxogg#?6MJwuS?u7Uh3u8B@<0;FSt=P{2o+E(PU1TXllCK< zny9y*-#*E&l$$TKLk*CMQ{iR|87j;A3-LU8NIOLeVc*FPjd?P#4Pw_=;c_pivEB zu=a?s~(&6 zvl%bljtll9<)pqmx^5-G1#tv#>pa>Zx*>a_qV#$sJKTg`A!_oO-&7GR^7aR4*!Oek zQ9&##&PIzP=ej!kpL}md7f?|j_z7p~5zMCgMucopiqp+(c%IKRw<$=mfv3*m=dMjS zy&?&SuUXQX=4rQD3wIaF8NIT?v5Sl{j%swekAf&3v$|CVK`ui`q7x@%a6Cvp-Ot}7 zj})5AqLZDJQ7;piU6=@mF#)ye)vKL;l(3L@vY0;s27j8yuYOVRbf*P90E=Ys2pz#o zFMjM|GUYY}T~Wu_oyQA`p0xc?i-I)l#zrklmx9{bC8611%Xt=N)%!dXh}q zlwQAkG5&%)K0TEqH3n?>xTQL<2fY*AK1Qk5K9IJYweLHCxP2}D0%`cI1djQ4ez(?v z+bEgzcXm8c`q}V0GkquE{dHtZ)M_VqpzLst$*LFJQ^8WEt_}d6?F;8@`q#ah0@t)o zr?Y(1s99rZsHJI|KLKgq6V8=}sk;(A5e@KTQN9;e7WvzZIN$hns z3(9nz%=f{|!lIuwi2&HPmE-(T#0#mZB`#d1A_HgBO5P1Yol-mb`T@q571-M?-PU#- zSl1Ae37P#fh?O=}k}C#x6!nPal(?cBZZ+}|0HSv|?&IyrqbY0;i{Iop54th}L4i5Y&McSg{P zj49lwS02&UNR=9MGMn)(2J3ie-+`@^3Z4( zbAa5b6`(8H>iM~iw(fVNk|AHy`c;k6Eu`wobC{Z~vI9-Vw7tmW-JL=K;gYENyQR+W z^)4~70;;k;xV5xIBSxPLAs0d4sAGBv8ZB$ATv@h%CzjVxz~{SK!TUAQDL^OjYh{uu zOzT&Xq-!eDG1j8^Y_n1wJU^>Un2he{J2J+kLNqC85rP`SV9M~uw_3qUvBMp(f)1s7 zHw(%+ySf5b0Xi3f#|KO|Y|$U@D>~2sua@-g|F^JwqceBtH3^VNuVWt^fx!~9ib$0% zzZ5p@em1{kM(G9D=RlNj^iVS9^KTwE55dX9 zlD5g0N9Q>0eAm(nPxSRy(2B4S3gMDi}VR`vp%2Oowr^M2oVN3 zlENc$xcf2Zs|WtdkD9+;+v|d){BR;ex(CO5YqeH5M68%SRmnFm=8$i+OH#k-C{)^7 z$L98@#BduPgdEu`io3>C7wM~%USC3{vG(pvI8JyX*LB1ye=Eq%@ z%x)6;2*GRxmRUIR`+7p5wYx8}VrN7dd-a${h$ZJ}bv{YcKNmK@X^O2UmVY?7!vwFr z;Gpw&A^*ex6#(uE^O`s{HPzbU4FYtfv7ml1dS(ZICN;UQUk1*~=$Sq&QfyC{qJQpE5+*a z*vktIw8c#9MD;S7SWtMfa9ufK1T!+`Pr`ABiA0n8eD!qC*de0->FQ4$0;yE|7x!QY z*K|1{3y(d}AksrkX5?q8Ps=H8vLEZtujeLDW4Tjec1)6dv% zW$7Wn;7i$4QOmY|x2bJ=tjga}3?#})ramiosndx{UvayFe=KbkMlw*I9P=61s6}rp zc#%%rCLG-#<**%7`>0k(-R6+t&SkcUSf^GIUIvtF#6hI$0PBlvgunk_%uQ@@6>vnO z8hiX9)2zJTYAoHCWCXNcw-W@-_lFiPF-}NL`^ywxm=mNA;yd}$($T3-^ z3ko5VvUs-+#DXY^ln98QF#Es6|3cfG&5C?BKCIX{OymT-_=WuS``-c!va)-EHXf8e z!gYW-IFMJH%^cJgL5r7CxL5SMk+L6n^}n|oMPI@S5~*+hc18WBz=jnVsH_(r=++Ij Y60AOZG=&7ea~QaN>Up&ElfbY42So})kpKVy delta 610 zcmdm~)X%Ee8Q|y6%O%Cdz`(%k>ERLtq;CLm00%RW^pW+>ny6@1&m`yR;uuoF_;&8i zNv{leT>4k7c=iAPfb5R$l%(JGA!y*4Qe=NhOok6}@4MIBjll!?gR)^@Pt+ zlb2lnnz|va_a}?>2JN_dQ{npZzPFiwn|%4s%6tAS|6LpUE8e;+^4t7I&r4I`md!eF z<_w$2f$JsA5`l}G?&dX5>g6&k?DaI$kvOn`Yd?dHrVR6kB?UYOCLc0n@aH;CNZ{A1 ziOpZ`5uo}X63 zopblc^n<(OzcKpya@QChc?Pu2(cdbk46cGSRcQ zd;eSeev?zwhNV+juHOkwh;%J2nQ5)9_%)FAJ?E>HGkELE%x3s@hL)BdwVhL1vb%W0 zyDcgM42;&bMZJ-~$Vh&mYs%%;x=Lh^S~W{yUN3 RG%(pPc)I$ztaD0e0swHt6C?lt diff --git a/doc/html/a00142.html b/doc/html/a00142.html index 754f6ec669..fe92dfad4a 100644 --- a/doc/html/a00142.html +++ b/doc/html/a00142.html @@ -4,7 +4,7 @@ -tbb::internal::critical_section_v4::scoped_lock Class Reference +tbb::queuing_mutex Class Reference @@ -33,34 +33,65 @@
-
tbb::internal::critical_section_v4::scoped_lock Class Reference
+
tbb::queuing_mutex Class Reference
+ +

Queuing mutex with local-only spinning. + More...

+ +

#include <queuing_mutex.h>

-Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
+Inheritance diagram for tbb::queuing_mutex:
- - + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - + + + + + +

Public Member Functions

scoped_lock (critical_section_v4 &lock_me)
 
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
 
-
The documentation for this class was generated from the following file:
    -
  • critical_section.h
  • +

    Detailed Description

    +

    Queuing mutex with local-only spinning.

    +

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

    diff --git a/doc/html/a00142.png b/doc/html/a00142.png index 15626cfa0fabd91facbde8e62a8b58a223eb2eca..97f8b53bdb2fc94c669545ed9d635338907e3f57 100644 GIT binary patch delta 709 zcmaFP`iWJsGr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS+`bJL|$B+ufw{zc4 zYF6NJ^-r@ZzW=}X`Y%t0wcE;WyOr&^+Nx5-(OGY3yt~Q3vuiz@mgmGP4yu}y!W`ot z+dp{gyIqF+^qq=7`=vfEcU0Y(Exy7x+GNG=4<+0G9sm6;`SRO5^W7?Hhdr{4j``2M zT<*hc*Yo-Ovu97&>8O8?a;UCf&AP23>YMt^qPCMWwS4Xb)OpW4WqwwzPET_EO)t5Va$icxdM;?CbLNv+Vfz2CFSG^*iRR!Q#L`u?nv z)OTN{=2l&5TsM2_HLvSu=l;HJu=iH!agW`*-if?%ygqfw;iArIOM=$d_N%^>dCU5C zwe?%CzN9>k*J_itcz-qMf3A}0yga2u`^fs#kV$n>ydjg6RyKMCsgy2AOA{A3u>Un% z0c$Mlm$Ka)FGC%y&t*@DV-tCxl=YLPW68Aozy^;jNmd|>NX9P@x3g!~Dex%llhSZd zF%4+&sFL0CS>E|gZ^<^<1J1QfA_@KbxJ!OGmD<;?QMqAYx9)qMsa@~&gjaU?e?KQ( z|IK5so-lv%#lo*_?`Ao6*GDJKYWVi!-Z@)Fo7I>5@+S5Cyp!7yW@9kzwEfP-Oa(Fj zS*re5bCneQk-bpzCc`b3qha}%HYwls$rtxnXq&!zUA^)5q_ipJcQb2+pIs`Q9yj?) z9IMIQMekqkV$i-N`m6W-f4K`kn=QY|G?>3UELm%P|9=BhO*hQ#v!rM5o*9|(m(jes Wd4}u1sJp8bg=d#Wzp$Pzl-$)<; delta 698 zcmeyw`kYm$u;uuoF_;&8w zyfp?qF8xcrKL5+FSy;1XZc1Zr=&oI|Pc*%S<`h^J{u2^RJS(o~IW0xRP0=&dEm34r zNGh0VzL?|a^P0<=^P-C%Tcu1^xx09GpwDLAiTjFcZ{;mkob=`LuDhcC0bg8tlTFWd1!?*KqCne_UPM>L=d*ew-&Vsbo>DZ9V7FCrv*mO-ZiaR~wuEy6gA! zuXP$KFT;^+HC@=zv0)kagYRD%6C_;~KPHN~F+Q2$F{3q*A%bD=8%_ppkHm0>2nVj+ zOb3{PZiq67O*piUVMBvR8EXUUk`3AnIts0^j0udIZ@3uhG1We@jS&QSl`+A0o&ncl z1`Q)1vEo*s&-UZ%@7({-lwtBFCa5g-_#5|p29dqL-dq3Zx>MTo=+T$+R_+3W6j1w1lblDWosx~$2GDa+&*ah$lge=6J7;Ayw7 z-OQWt#k97VVePE*)lXVI40TvnE8c$lGez^P(=8Fx%Z`0%`?h=u4>%Lvo&52us>sL-dte%IW$bNtry z`IRK^hkL&siT~y5O5Ghl@5j-HhxK<&IK1x1`ap&nM___s0Hqp+P~ol)j_h6k82wTf WcL -tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference +tbb::queuing_rw_mutex Class Reference @@ -33,59 +33,70 @@
-
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+
tbb::queuing_rw_mutex Class Reference
-

The scoped lock pattern for read locks. +

Queuing reader-writer mutex with local-only spinning. More...

-

#include <reader_writer_lock.h>

+

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock_read:
+Inheritance diagram for tbb::queuing_rw_mutex:
- - + +
+ + + + +

+Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - - + + + + + + + +

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)
 
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 ()
 
- - - + + + + + + +

-Friends

-class reader_writer_lock
 

+Static Public Attributes

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

Detailed Description

-

The scoped lock pattern for read locks.

+

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


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

diff --git a/doc/html/a00143.png b/doc/html/a00143.png index 10066bd980a7f04d27b6d2c16ba84af835b461d3..aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf 100644 GIT binary patch delta 731 zcmX@k*1@LO8Q|y6%O%Cdz`(%k>ERLtq+bAW00%RWRC#wYXriKZ{d7+k$B+ufw{vgz zH5>4__%HGL{J(zBlAuH#gjg;~}4t$E14G0MAcL*t9(7g|ONl z+kg1>taX-Y(^h``QE&LjzuC*^y4nQ;-HQv}J$RY-xBu(grAOZS z`287dITDZO@0q`v zzs~%CZx{EA$A!X|b~lvG`L3{+SL1;1l~0@xJay|AGt9eU#06v#$tdx3a|T5P!;f%g z)(=bAfLimL%KR4J5Bu)?y3)yL9~;+)ZF6@KT7$$ooRNw zv!bdwbql}ApFO>`3X31VVXmK%&2~0#V&*P0%?$tixo3qB*va1Bb#d4E=p5E94+7OX z!q3^wG-bN6%D>6(|2byaMSs072zl_9ta^L3XVwk|>yohEV}~zhM9o<$)f={$C2P+9 z`#qP|S^K6QirMwz?NFIeRJabM9drqiX2FKW#C-X5KI{-?r$Lc`dJ v7x@=5Tq(8FIA9+F^HK49enpn+znFLXH1FAS*!K%Cy)t;Z`njxgN@xNAY{XV~ delta 794 zcmeBRJIERN@z`$q?WCw6C1Ia))r5h6!t?RFOx;TbZFutAp zHgC0ofXjKWsn7o2-{IMCBwk=c)b*X^QGGIpAI0(~|JD~2R8x9n)S@EkxvOLA|iHp1HT)!|#7LGqh3#Jk)TH=5kO`{kL`CPmNs(o{CuKGGps@ z)3pMgzqFryyxUi{wdI;$P*v=u`n*ZHzdmo-{l0qAm+wC7W4GRqwD!FD)#U2!;<8z) z*1ctuzO7QK&cBmG^ z=TEE&40_3L8Fu~nwW)%^Hp03=FYi*MO#|N=*#<_5?pXE&2Dkd8`-~C|6K|9=uqCK` z1BrLmg2agxKKW!{cZY$X;B-X>o&&CHWF6$M@h#xbX1~zBmHEZvm3P-x{`H!FegC%4 zk_*x-8yUV?e%>3$%J?$$?%sc2zo(aOtKVXL>n-1|*^ixy8kFr^cJB_)`~UsiEtN_4 ze)Aiz?b~%f(&>8LttThtA5Ty0pK(3H(^b1a>eQ6Xr>V!5JP31L`zM{vT4Vp0yPxh| zvsu4ovzm6=EYnC{&ljst-aBu4QaiKN)M%NrxpvkQdpVuILT5ikXPaqm-#7P+Ua9w{ zYpYY^>szizZt9P*vEcF+e$M~dC~ETg*SF>0Eco;K)?S;fE;@hHuRT``T-%x3`uv;C z;=6G-?v-4AQRP^Yd0lJ&>GG%7SDc%%YFn+iNcHDkr$hIxKD6q{)0%#xeV6s(H&;KE ze_yVC?afZpk7@g}L#qd{nsm&#m_i|7G@@9+uovopbD`9B)985s$+1uctmHJP*2A&QSY@ u{}$sPHlz?ge2ei*;blFgLoO~cPo=Yz4p}+%)}I6>cLq;aKbLh*2~7Y!B!nFR diff --git a/doc/html/a00144.html b/doc/html/a00144.html index b6e766aa1b..39e882528b 100644 --- a/doc/html/a00144.html +++ b/doc/html/a00144.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sender< T > Class Template Reference +tbb::interface5::reader_writer_lock Class Reference @@ -33,110 +33,191 @@
-
tbb::flow::interface8::sender< T > Class Template Referenceabstract
+
tbb::interface5::reader_writer_lock Class Reference
-

Pure virtual template class that defines a sender of messages of type T. +

Writer-preference reader-writer lock with local-only spinning on readers. More...

-

#include <flow_graph.h>

+

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::flow::interface8::sender< T >:
+Inheritance diagram for tbb::interface5::reader_writer_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 > + +
+ + + + + + + +

+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 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
 
enum  status_t { waiting_nonblocking, +waiting, +active, +invalid + }
 Status type for nodes associated with lock instances. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

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
 
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
 

Detailed Description

-

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

+

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.

-

Pure virtual template class that defines a sender of messages of type T.

-

The documentation for this class was generated from the following file:
+
+ +
+
+ + + + + + + +
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

diff --git a/doc/html/a00144.png b/doc/html/a00144.png index f8d0e860bbe1900215e6561d6d50ca9ed37a990b..12ea5c61822a9cff028a841febee251e03da1868 100644 GIT binary patch delta 612 zcmaEdlq!&v`~Pu4P{(6ZRxa^_hNJ+TjMzOA1S*Ji9zsOHQbN`N>e*qHZs{J+ot z)^8PO`ZDDnQ^C2ZvUj+d{#@Ss)pTE2@vak@j^f&^KRWBff~&snS$X<_i{10jZTh?a z)dV|D-zonp<@2xH8#0^MKkbT|k)0X*>(T9=*@EY0f2xw*cHDp3)>(J11}rUD_&eZl zeQav%$-ozj_vPe_0=Ew}0`wma_J(obNYVXzx~8f2bxY{O$b}H^1+7neubn zi?YAcroVTt(cQD?na&$FQ+DZlrTtdr$r0h6v1vbTy(?Ee`?2Ke@?Xy)1Or)#?meJw`6KFza*Dz111~>Pgg&ebxsLQ0Bd9;oB#j- literal 4585 zcmdT|Yfw{Jw#H_-Od&RRuBc!`(iRcu1_XI1LLdq%rqu)$L3v86$U~rc=7a>I^Z?p| zXlOtM5|Kt)LuLIK_` zt_b5YUq1lvRIR6fINQ81K7r%WJf>q*8S7F z>lfyw2!27Z$5GS~S63HaD%tij1Y7v@>GZjNol9qXw`*uT5P|~7jnQ_C^ z)O0>;!SUr=_SH#~0phY6nKajw(Q!=j=F!y&W25(+Bb=WLra*aVJd>MOmg^Ms?b z))HRy6pAyX2a8U%lA;_XMNNo1yq@D(1|&*=$*C`BD(49{B!>TxN8&{58$tN8XoOvw^XLyO zalT;}6JA}yOV~rx>@%;Rc5+dTzJyqgX_^~%^oK#JjdE*4vjJz>W6_TQeFPRu3$*W_ zJXcCOgE|tP8K3Eudwa+)H?d|pu=eJI0+s84hd|wPi0`7@*C)`bCpmkR4vzdE!WWv< z9_sB6?k1qjgTLoOQlSyJE?wP~7d&k+%o;dHNS< z>AI$EzN(Me>VNQ4?YmYy9Y_TeDS6UP8SST6{x{+eqdWlqkIh+4Yjp6l&fVT2A6(3K z_yiXRp0KdGS(u$_QTx6s#dELc@V~1NX!=H{(~3f5T4{G~4=GLy)T@7|908q!qy~OS z-iQ1eIcgO#4|@T->}pm31AWiBwmpLdyL`^)2olsa>DleQ1RHZ<9zl8zd!mTojv%X3 zJRLw8fFkay%LdiUV~L25J9c0g=XZHFyzaAF{l$3hy>UY^|}5m+*+4|5vu67n1ebu^=M;n((B2ms0^O z6DV61$njC3v4S0`d8jn?twn4q*xV7k8553qJQ%6o~U#SO%mrh>bIhB8b?f z%mQW!D{lS$16ad6^d8GFEU{@}3?Pxcgyj3I#8A0&XCnt~fhEd@mqlwg8Nsq}?$U*` z3yjJI#2r?Q3(AvjGF#pffmmJs#2+<#QPlfx<_7sI`BV9sX%uMd%T*Ui*4#O?R>o$i z6XL2ZO{X+r(qPj(Yfh77NNXOJS$9gh35for44GrX#`iYHom`cDkg>!Dip89r(MeY% zyhbb9nx@kicAGH4S!AttvJY??*d3`EQlTBOA?I$b=utRf>~S3bJ`no zYJuaGb&QFVE$nOQ+#z zk$*)DLXl*r2!RJcY@j(9Z<3S`A@-TGUJHAZ0MX(!zeqf^Z|J-{tninB@*5Xlwe>ZW zCO~P3f%_L{vCB_P(u(Kx_Y*wr+hWlHhbk1tIBMjAE9QkHb5^oO!4lTYb=k5p4&+pB zM%Lx)s0;oWkPm-p_zRQCl2E-`I0p1!`Jk~Y@na65A{$dClu)oE-0InxQh#*`xomB~ zj<#>;x`Q$_W(gbK&rbg|bwl`CCLNKP@bY2VFfx!34C@K=F*>M(&nYDy)(LL}WVeqK zX2^QcJs(NlMZe`kGN{Yd?vru`RY0;+5Z=TPSLVRiEwVaSg)k-h_R^5m&+4N;Axwon zY7DXL=kokdU{#?HoYO4S>~COIp$~4-^TRl3Y74CY#1w)D*Y0%hw9~Wi zBC^$`G}eO(yOj#q@N1tQn;n1azUot3QaIgJmt8pB5R7*1xEE&T+7UTON=@EF_e@P@ zJagKiVOdeGt8*1>F-IDkOCi$hSNsj-qfsXeg;(PhOnsf;U8cdL_(}M{Jp|JwZ#EJ)i z@krrJ1(Ikf&F0DKc}K%JLv~1xll^23p@|$jI=O(Uly+1GP6AV05v(T-QYLn@J58(% zgL6mq&8UK*Ai@%mggd$^ab%=SbpE#X(Sc2A)gM{@8X(6U*12lX(I+ zN}u)PNIt%00C#zkTn#WIeR6v$8CZvz5C#6#MJ6_Lq9&o`3tFQEBP`R<;c9K7w0wXg z7Ve2fjAS+&BU?GeOi8|d)`+kJzx~B>Vv`}6j2*Kv#460%G7S3(xkt`B`x(=6=*AcW4IUAY*U4^P(ryEQ*1wsW8{lhs!HW|A!zRf3ewZ@a@1 zFx+%zbX>%TX6Un6d^y(lVhYCftqh||C@q&Yorb~YoWWou53U78#hD4|vl4cXgZ|;kjYTRN z{n)94m1w0nU-TMwq|e-~fAPQ2>8$cd+PF|&6@=u+DVV@iqfLa5xJI@gM;Nt3EIr(l z$r@7UIqlrTnQXGgp!<5MJ##+}iGsyIoW5gTY&G^s6n~C#k{aI18?D7UAGv<;OBBl- z|8_z%QSm1xSI}_=oylS=SN>@VIxtmav%teUZi-HO|CSDoJxi3m3G0p_-dwp|O+#bH zBPFM^lA>P+bUS|q0!mXl>8vP^>zQ{r*@nDE3j|x+hr$@K|jWo_?4*B2`ncTcB-NKWeA*x0%&~`A9_t5_s8bVaQ-?t4J#^ERa!X7 zw{Y?^QGR>w$n~c3h;2AWXM~{oh6DcqCg#`hrhdCGYFG6S6ejhHCAvj!?dyH8qU-!e zmre;_5|1rcg#`eKI&I&*@c5NgkZup%Cc=bZE9R?DC)HU=+%j*a=qcc&ww>>`D#>9H zPbS)H!oW(2R%(sRxYo=o^%gsNUW*7uX^$}qQV!Ys4qDoL2zpVr~kEtrvgL#zb8 zl^xznj5Y_58Mew+VAu@A9_7xKZYc;!Fg&Uc7Rs0JlmBrzR4=s<%*D}d8X7i=ZTW*P W>+wc?Vc>TeHRK7@@d}qK$^Q+H8%ZPp diff --git a/doc/html/a00145.html b/doc/html/a00145.html index 3cfbb2c088..f0c171d8da 100644 --- a/doc/html/a00145.html +++ b/doc/html/a00145.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::sequencer_node< T, A > Class Template Reference +tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference @@ -33,353 +33,27 @@
-
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
+
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
- -

Forwards messages in sequence order. - More...

- -

#include <flow_graph.h>

-
-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 > - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

-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
 
+typedef zero_allocator< U,
+Allocator > 
other
 
-

Detailed Description

-

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

- -

Forwards messages in sequence 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:
      +
    • tbb_allocator.h

diff --git a/doc/html/a00146.html b/doc/html/a00146.html index db6c5c7d5a..2e021d4b25 100644 --- a/doc/html/a00146.html +++ b/doc/html/a00146.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::source_node< Output > Class Template Reference +tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference @@ -33,213 +33,27 @@
-
tbb::flow::interface8::source_node< Output > Class Template Reference
+
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
- -

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 >:
-
-
- - -tbb::flow::interface8::graph_node -tbb::flow::interface8::sender< Output > - -
- - - - - - - - - - - - - - - - - - - - - - - - -

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

-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
 
+typedef memory_pool_allocator
+< U, P > 
other
 
-

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:

diff --git a/doc/html/a00146.png b/doc/html/a00146.png deleted file mode 100644 index a8bbd54a4772774bff1e515d5690aa14b5b96d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1766 zcmbVNeLT~79RF=2j&==qQ@Ie*;}2IJu8gfvxfo%gp)BQTQ!<7)Q@vh|m0k5ZF`*~Y zqC8~eabZ227G67S^DsA+r>>dVEyV7p`={=8ulwV^uh;ke{e0iA_xJJj`M$qdzW9Ae zy|sD(03bd0yZZqE91X<`T?B*|WBeANX0@+ZfQLq-fx_{3szg@X&rtNK@_0P$tU)uV zt4sC6`vZ_@x%B=TupIzaBzn5<4oHUmF*L!J)f=Awz26i2W}$V|EuVkIZs2;%(Ng$K zdr(1z?#MAN_kt0LUOEVZ0@8H@dh(cObQ-v=g>AjweK>CCqcA!2YOs~Tuf?5Kg)J|GN+Ca zLQA!}K}!wCFc;UK#yGIuthjV1C7xJLqi`7Dh#-v)mZq3mLgdV0Vw#x=Wn$_5_*oTd zZpnzqGfDYnMv3WSDP?upU^m~HT;*dZEr#YqhUHt6^hG0x8h+xlmr9HVNz$h(@-IBc zbSd?-z-|w+0g;FM5_rp}2a4OxbWtRI-AaBjR-vs`Za~E0jLrmh7%!73bDpJDAdU{e zxSm`H;pD4i7!0l@vKGVPTDq0q)!JIRsG|iDpQMg2&?s{popJ?)5E!r`{^!6nbmLH* z@vUcZb+K&^IFofk$t?(tpj##o5LF)Jg9HcE=bh<#uyjL?Mlut-!jaqUdzSD`CvX!`62{aU@yg;YO-v06C*UEMRA+hNdTArt=SaBd! zIAS{>8#uQh|GhR4Ytt8^*OkHEXX|l*KR4!kdi7YcG%PhZ$2oq^rT0ivTPn>oI{h|> zqf>v9NfWf*6SIf%IETiH=ItM*Zz^H1B_Regb#qAN}tFgx9a?vo}WOQ~- zVpMw7+XA=-No)#VqMe}qXx?AVPwHxXnp^_nA14%g*G#Z#`zbxWSQ2w|l*4&HV@Slf zX#5`x=B4Zia_WpE$G5M>#xdK~lDIX-jZ$z_yo=DwOAtdBy#A+GXzWgn$;2IJ`{6>+ z@#{Y?-RWz7t+GnRs*1UL1{%z!Bsq%*E<87Rn-Q5b79yM@p<=y{RoslrQl1BM(@!Oj z?96bG(~`ZgQpbr<`{4HlvOiBxCW}(Mr&Qu=+@K3l^5q>dz~LPlZkaG*T{(ySLvi8V z9v^ulI)E_rHl7$jXwD2b^jU`_5LgO2$l)v%enbddC1{f|9BrZb`=S?L5eNfN9`trZ zMlw4ce7I$t)Ev!qNEz0aA%XJ4$MEya_##az>-ceX1BA1!A8(HJ=hVVVJIHSujZ+F&n0MTQ)orjxcth7V9 zSRhvZD|K$=5vYVO;^;o+oiG@s1C8q53q6hh6%_M7`H%$uld}OV)crC8KpeEP;NiZ> z(zQc*Sio0)_pSIyUj{`*4Xvpqk*np}*SrE_M|Q?xZdWu!aeHjJIO95sB3(&8;dZrP z?|jvU`t99*gTL|7)7x}BTAV~nXM(tiHQ++rW{f7{Ri9gi)7G}(MPG_51s+gRL9`qv7F}TWQ0&<+H4WnCxe3@f)SOEF%)l2aW7zfdEoLs7cpZYUPuJCb1V#M~?qakqhQp58a!-2)_CxN#OpF_V73}iKULM%m*CR z>C*a)uKQcBlVMm-%VQZQq@D`(*Ov=CTPKF!76={$Di8HXI6PfXpm;~;4VGLpr*ea4 zc)JC{dFln)eeR33k+lofo$3CAVfb|m?3St2HPyb-CTCn -tbb::spin_mutex Class Reference +tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference @@ -33,142 +33,27 @@
-
tbb::spin_mutex Class Reference
+
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
- -

A lock that occupies a single byte. - More...

- -

#include <spin_mutex.h>

-
-Inheritance diagram for tbb::spin_mutex:
-
-
- - - -
- - - - -

-Classes

class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - -

-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.
 
- - - - - - - -

-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
 

+Public Types

+typedef memory_pool_allocator
+< U, P > 
other
 
-

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().

- -
-
-

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
  • +
    The documentation for this struct was generated from the following file:

diff --git a/doc/html/a00147.png b/doc/html/a00147.png deleted file mode 100644 index 5dfc58974fe23922ad2b6e7edde1e485bc375a30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|`Ddba4!+V0=6G^`%z|Jg(tsb8f!>e{A`- zOG0{E`>wv9@o2|VCk`E_OZ#WcjCGu$a`ZaG)FmEL3nqzp#$NdTBYwtP-|uQ+)0TdG zTz~nof3sK7edh(!`Z6wlc{Fp@&*SIk{thbM9=$w8&D%fk(}(%~=dOFm-s_zm-?R4i z+nnWdwl!{3}UVgoJ^3#XsgyiauKh}Hkw^(3{!Ob-56Kh`=-oN7%%64V@g2HJpUv1k~C$c5* z-mC@QOlD<@C%LxPh%D2OomFQf(!I?g_SMg%D`zfpZJD}w?_T@U7th`JZ8E&h8v8EZTJnaKY8F&4hdz;wvq>FVdQ&MBb@06Lgb(EtDd diff --git a/doc/html/a00148.html b/doc/html/a00148.html index e95d8b25af..5fbf747e35 100644 --- a/doc/html/a00148.html +++ b/doc/html/a00148.html @@ -4,7 +4,7 @@ -tbb::spin_rw_mutex_v3 Class Reference +tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference @@ -33,196 +33,27 @@
-
tbb::spin_rw_mutex_v3 Class Reference
+
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
- -

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. - More...

- -

#include <spin_rw_mutex.h>

-
-Inheritance diagram for tbb::spin_rw_mutex_v3:
-
-
- - - -
- - - - -

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - - - - - - - - - - - - - - -

-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...
 
- - - - - - - -

-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...
 
- - - - - - - - - - - + + +

-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
 

+Public Types

+typedef
+cache_aligned_allocator< U > 
other
 
-

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:
    -
  • spin_rw_mutex.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • cache_aligned_allocator.h

diff --git a/doc/html/a00148.png b/doc/html/a00148.png deleted file mode 100644 index ff1efc94eefd31b2d4083e828ac11551d2a93292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|^cz>Eakt!T5IW?Ma_Ccv|dNEn9W}f3Nwm zG6$I&uYW1ZlReq_J)C@%e@+u{+QG~*>4|*v3YE%33R<4?E~x&J`Y(L%TFL2+n{;}o z|DP>bKWl}`XImGOHSQ*lKR&AD`FQ--v7Mze-ptdRdD3R`Y@LtA&ujWi549QoJ9^9b zuAkM?a3!g=LN{M&&h_7x!n4^rbmokeMJMLHnmbReOm}wv%`ib@*V$h#Eezeh*lTC4 z*rcXb-s{|xuRc5`Htmnw5#L3ZpDSEEq*5t8DKl$le%j(yOs}FZSe*X)YFm)K*OrU- zX1P3P%1Kew6v;TM;o~1WtIkkl_O^~$mo}eW5xH3OVp#9DqWh~ap1bwhbl0~f!m-;m z*7{x7o%`58zkK&Qp_c*IW1HWW#ClrsDsNG_TJg44$MgNcz(pH(eO{LmVI%Ey-(?ct zLfN!>-$`a4#9X&K{h76B(wEB;E~+Pm*#bR3wXk0Vh8QD*U7vk}^#eVZ|Nrt1ebIA~ zw|Rf?i(pt_PgXfeiiuSGetM7Phy4Ano@{e{G#&gNm_qJ4hWmx~??E0k@ zJ5GOy@d*BC(8G|a_*P2TV{_ofpT{qptFiMmQ8QQH%=dG9&8fbHYEn1VH(d>O{9+w$ zF05?*M(e54?MaT^aV~FviMmR=oV~ioujJR1M@wD)i@R9gl34Wle&3>H50|>w-|cxN zWg0pC -tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference +tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference @@ -33,133 +33,27 @@
-
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
+
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
- -

split_node: accepts a tuple as input, forwards each element of the tuple to its - More...

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface8::split_node< TupleType, Allocator >:
-
-
- - -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
 
- - - - - - - - - - - - - - - - - - - -

-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)
 
- - - - - - - - - - - - - - +cache_aligned_allocator< U >  +

-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
 
other
 
-

Detailed Description

-

template<typename TupleType, typename Allocator = cache_aligned_allocator<TupleType>>
-class tbb::flow::interface8::split_node< TupleType, Allocator >

- -

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:
    -
  • flow_graph.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • cache_aligned_allocator.h

diff --git a/doc/html/a00150.html b/doc/html/a00150.html index df5bdd6906..ebe79c1270 100644 --- a/doc/html/a00150.html +++ b/doc/html/a00150.html @@ -4,7 +4,7 @@ -tbb::structured_task_group Class Reference +tbb::scalable_allocator< T >::rebind< U > Struct Template Reference @@ -33,78 +33,26 @@
-
tbb::structured_task_group Class Reference
+
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
-
-Inheritance diagram for tbb::structured_task_group:
-
-
- - -tbb::internal::task_group_base - -
- - - - - - - - - - - - - - - - - - -

-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 ()
 
- - - - - - - - - - - - - - - + + +

-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
 

+Public Types

+typedef scalable_allocator< U > other
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
    The documentation for this struct was generated from the following file:

diff --git a/doc/html/a00151.html b/doc/html/a00151.html index 76e279ffb0..82f9a8777a 100644 --- a/doc/html/a00151.html +++ b/doc/html/a00151.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference +tbb::scalable_allocator< void >::rebind< U > Struct Template Reference @@ -33,16 +33,26 @@
+
-
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
+
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
-
The documentation for this class was generated from the following file:

diff --git a/doc/html/a00152.html b/doc/html/a00152.html index ab4e266604..1684ed634d 100644 --- a/doc/html/a00152.html +++ b/doc/html/a00152.html @@ -4,7 +4,7 @@ -tbb::interface7::task_arena Class Reference +tbb::tbb_allocator< T >::rebind< U > Struct Template Reference @@ -33,342 +33,26 @@
-
tbb::interface7::task_arena Class Reference
+
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
- -

#include <task_arena.h>

-
-Inheritance diagram for tbb::interface7::task_arena:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-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.
 
-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 ()
 
- - - - -

-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
 

+Public Types

+typedef tbb_allocator< U > other
 
-

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_arena.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

diff --git a/doc/html/a00153.html b/doc/html/a00153.html index cc5ca39624..a58a8b7223 100644 --- a/doc/html/a00153.html +++ b/doc/html/a00153.html @@ -4,7 +4,7 @@ -tbb::task_group Class Reference +tbb::tbb_allocator< void >::rebind< U > Struct Template Reference @@ -33,87 +33,26 @@
-
tbb::task_group Class Reference
+
tbb::tbb_allocator< void >::rebind< U > Struct 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
 

+Public Types

+typedef tbb_allocator< U > other
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

diff --git a/doc/html/a00154.html b/doc/html/a00154.html index 24c4118a8f..23d2e7eb5f 100644 --- a/doc/html/a00154.html +++ b/doc/html/a00154.html @@ -4,7 +4,7 @@ -tbb::internal::task_group_base Class Reference +tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference @@ -33,74 +33,27 @@
-
tbb::internal::task_group_base Class Reference
+
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
-
-Inheritance diagram for tbb::internal::task_group_base:
-
-
- - -tbb::structured_task_group -tbb::task_group - -
- - - - - - - - - - - - -

-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 ()
 
- - - - - - - - - -

-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
 

+Public Types

+typedef zero_allocator< U,
+Allocator > 
other
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_allocator.h

diff --git a/doc/html/a00155.html b/doc/html/a00155.html index c3bab04b06..7620e524c9 100644 --- a/doc/html/a00155.html +++ b/doc/html/a00155.html @@ -4,7 +4,7 @@ -tbb::task_group_context Struct Reference +tbb::flow::interface8::receiver< T > Class Template Reference @@ -33,20 +33,144 @@
+
-
tbb::task_group_context Struct Reference
+
tbb::flow::interface8::receiver< T > Class Template Referenceabstract
-

#include <parallel_invoke.h>

+

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
 

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
  • +

    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:

diff --git a/doc/html/a00155.png b/doc/html/a00155.png new file mode 100644 index 0000000000000000000000000000000000000000..f765e3ebb5ebb0e3f2ed23359f95a6fea80c51f1 GIT binary patch literal 4584 zcmdT|c~n#9wnr_CTM&7-QWU7Ltg&EGz=5iekSY}#hXf~75D<}uK|mQKkt8TBSd>7U zRFEkVsUr!fOaU^W6w-*{$RI%yPzew*KnzEQkm;QydhdI8z5Cw#A znV3nl5u#OFp3&cTimactZ??6y zg})W3&Tjicw_YU!#7}M)c1+Ffw4~U=k%ay7k8KS4Crj~O`SJqQ7MufZDS$Yn9is`~-XJ%#w zF#ihle8)cigHwt0$E|qpA`${0Gl{>9sUK4ksI62zopy_iHTc}iTLB~@dpwC^U)fY@ zoEnN>yB&y1WmJ$=7V8>m*Cgk!L|*svAHf0mU<3ztZ#$i;f}BHF4>lOlHy<30`m9M|zs
    f%%GCG+#=w%4o^%MV{?fyO`4*rkB*UYl7YjLYx za7_PBH|vn-n-RM1$?!^NuAu*K!>RwxYSMS>PSA*(fgdL-X_Pg4@6HK1eGy0LRceq z#$We2q70UgW4x1#2w6Ciczyw^exH4OS;BGvcuGzU!8ZpZaW|_E&rlT+6oN2F$&Sy^ zyVB?yGlG_erdSZS(&)jU^BPeI!F(__{y$^6ZB%h2c0iJjVY&X*Fu zW(VqE_+IMHNM0}itYm^e-V6ICAiM*nx`^e2?q101ce+tt=np)9-6{l8mMeH)GBa1H z!btH8+xg*5qd%28A0@%v8Jo2`fgkq06cBF44Ei>sI&4~;pU>wo*%+px4czyH^x&SA zT(jKfF(;1neF8suw~lc^cN0NeK3#(wDj!p~gJOWiR)}TOVGX`ynINXH`Tc|GHJ|&I z`M60>%hg^wY_O`ijyv8e_eL__Mlmzq?qH<}Z3F~(^$76kn?l7na*V@X2~c&CiZRDO zApYXqe!25a9*tBJ5V=esnd~^#JwHV9j=E{_s-DT-$&@JxA=ed$Q&WDVQCFq6fz*$N zm7dX=BZzr2!4R05AbMFnh9t|t$gu?c?a{^!iq(RrN$$seCkAT*EDD`DbaYX{bhs5+ z8;hvyo{ZuielEu8&Yoj@284*<+t-t^ziE!W)^sC?Lo7|vguQ+0Kn$7)BS=H^G?bKa2z4UwZf?BT=rD(2M*euIgWK;3j+9SNBjHdDgD zvF;Uqt8;PVBny-OOxaubqWag2U6}CQDS5qOM%d8|Ua=lVqyA1AS&p$G!|?HOFnGN?q@aJ?jio(;cbKIgplQS!B<2?D_7R#!tifFbmj|AFgr)(u4gl)mjryby(EKN=USr@88}vf# z@U=e^zO*&4)pKcO^uOVWMV6M*vp;2KhF?cmn|o9-mzwi-r8`)LiIx3f*_kiP|6!Gm zPVn%1RQ-&Wow-631PR&y(Q_&>=s)#tA3NM#%?mk6?Zm1%5{FjKu_Si z;ejWC??P&Cm%nPOyITILAsXZN=t`WM-=oB?f3NWGcKl7DzZ3^|l0)N&g}M2`cpKMT z|K`OIf%!ekthccBuLxZPaa;L`9pWXH6UMR#)_q7Kr#=k3O5d@Ho2G z?SvI`i|zX8^lu}!418`Ne@nYs#C1=HNlU}K!Q5)VDR3qEoVnrckZJzE`I!6l5i7Hg zBz=(`fm_Xd4@JoCRhG4Z%j+!|@!wN+Q@nB^QikaJ-87UBS7C9{a2M2Cdoq+Sr^}5i zR!|BYK>1fdlMv&kAQRd=MCpPi#{4*ddU)L+d1{LxS+b0q>v5Af-_mw|Mg_e!qCS#v z`ZceE0c%WUC7-IFTS%ac@a;qkV9*e0teG+rQh@bcM@!=(P}Ao5ed@bgRT&OIb6R^3 zx6&qUABFIuI#<>}wuntGsX`^mAC1zqLhbK03E%M22Yp^D8S@UPNTgz}!N z0a&h{1lI=4jcGT~jubJr;<;gc2%d!Y5GSn;k+pfy@lCH{^n}L4QhdI+<~+v{VC5<5 z_{+*R4sc0Fuyg8Z>!#4R{7@<^e6AZ}?rjir|EO{}P^eBq_##0z)*GA+A(i_oG$=ReKz7ZM0hM1=_-^8lP}Y9G_URt;iN81MBoMJ6iUtPX6~mDg@+^$ zE*ya8^Eg!2HAWhD7Q0oK@?>I)w2{WApGj&PU8N6#XMnSeql#wJnJ4z!Hz+lQ1+2!w zm%0Louyrex8eO_#HNhpN+KRM+#upXy+l1m0I!p599K9nWU-rUrZ_+A-xMIvl-y9D| z>Sq~YiY$X|UbF^zE*RTTNw5P@RnqiOP-}457ipmw8a=jYP%`RAfhyIwyF5D}5z{AN zkN0sLk%*|-Pv~=xG=5}D>WF8}7hV;6;2UWTTtu8mogk!)$aQ=r`z-c&L&6c&o>?6u zj?}%z!wI-;F&yxfyQF#Ui3Gk8aCD&_M2jm1rG=p6#SN+u%%Qr-)^4hjlN)XcLBYB! zi_UsuUx$Xhe8cxynL+b$gG%ED9-{K&BdV3`0PIt#>ioh?No}t^@=Y;Jl_ScN!Cv$) ziK5e|YZcRlcG{7jc%8%p5PX)+-c6$r2K7+M1Cf0)R57VCc^UfvK+-_xVeIMGU^eI9 z#lr+-9-wVgvV%F)5xD_m)fU0SB~Yp%yP@*QV_v?Y2@#=gUg)XR4MPhV-y0!qXVjY8 z9>-6nurHfn`9Fp3=QybFy8}_n;o5G9>_aZB_{K#0@(Y=nN75jwhc3j2iaL=W37Sgn zK2xd9(V}EyhVIICqS92q>n~)R=2fP7a~#}n2h`L}8N0K<`^_J!`v3FWJi}YiZTm8a zV*dr|)m(8cznEARa_3QnA$G+^SK#*`%B+krc==D4xemakp85Giw%${`u`C&U85Km4 zcuNoz7_x!2K)=G(!W#3Oxnz^Vw*ufqV%9``DU{a;P&jqEsXFSyWg_CgS zWr-JOWWc&c_pX_GHR7O$KKJ2Ntvuz`w2TO-y`9CqeS={4GX3rByV|XBCY~R$_FLG9uS4r(Vr_OScU{3W}ML^5^ zQ&`1D{NDAy<0*uXHlX2{$TOvp;NH+{n=g-a*o&wNCP!n&A|5-c8Cr8%HPmoi1nI9o0q>6;XmkTjc;!{dYF>|?{7QdJ}~(c+{00XR?Z-VUa; z!$WRcVBL=ANzhHlh80ToZ>&8Lh;%ee(E6d@SNs76bmo1T;Pj#g$H|cy8AbWN%knnP zH(WO*0fzBg@WoB^Hc-^sXgWT15}X$$U3bUbgSwXh+>e>cqbN@$J&8%LP1hvRwjq+p zZ{#u5E8!lVWZC# -tbb::task_handle< F > Class Template Reference +tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Reference @@ -33,51 +33,77 @@
-
tbb::task_handle< F > Class Template Reference
+
tbb::flow::interface8::receiver< dependency_msg< T, Factory > > Class Template Referenceabstract
-Inheritance diagram for tbb::task_handle< F >:
+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

task_handle (const F &f)
 
-void operator() () const
 
+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 ()
 
- - - - - - - - + + + + + +

-Friends

-template<typename _F >
class internal::task_handle_task
 
-class task_group
 
-class structured_task_group
 

+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:
    -
  • task_group.h
  • +
  • flow_graph_opencl_node.h

diff --git a/doc/html/a00156.png b/doc/html/a00156.png index 5f640e9e7369f83c7c304b581f01b7969a27ed2f..e40c5c976c286fe432acd476ec43e45dbcd9804b 100644 GIT binary patch literal 1337 zcmeAS@N?(olHy`uVBq!ia0y~yV5|eO12~w0q~_IkHb6=uz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-oprRiH*7F~|cJ}q}`Rf_ZeEyYl{=uT66LM)_P76+nZlsH zxBvgX>D&La&)c>Bwb=Tp$K8$3Mr}2dvG1SNK6mY%eLDY2KRIq+{5?@LW8T}4cYoi$ z*lY5#=-c9Xx9)YyKghpZCbI6xtj>S!!oOE9-JtuRV9&PS^QwDgUuMWvTfMj@ojy5g z?yahaHBx08e_Y?I86akJUPMfbGNW+T|?iu!<+8Daj4B{`(ys{|JonVnXRIkKCIG{ z_*wse{f8G&g#j|Y`(b*J*QzN&Oe`PH{$liCbkX?8?DF!t`cGySO%Th?{wMPhpcsqR zL*^Es2u<rf?H!U@CU%1YsDU+7m4}Ua$3DCu!T)}Wg_x?5Kzg_(^^^w-C zZRf5VdQCc~by&<(>eZnI+u!Un`uFVD-}B)fM(0cI^&adOkBk3Za`@iEFWf&=U(Sq4 z@w()h|8Rf)6QwLAOi$BSn+gstU0etz+@#B}ZL`pxz8Gi>9Jv-BtJ?t07c zPHfFyV0ujIm7P2{)_RwDo#(3a4E5Q^7tUav)BmrX{rBpx8PQia&bsxk`kiUnlIWR| zxBE6M+ml}AWd3)<=}i6K>%P`}?cCB|pK^S`izQF|K7IW6&1ZY>T+6>7U);32SAG~dwxi?>0(e3@Pm)-XIottyr|DSM_ zZngUwd;0I)C57is9e!ebntQp)9jE)-en!2sk5`eMU;X3v&R0J&%U}Mz^Zvv6qW@CY zXYbw{eWbcI>j5e+gT^8r_TzEzMiH!Y1Z*u z*^~WaS2|xbzI;&MbN`x!@tc>ORPcQDvR84E$(8PJ`}qGCmcD2FqpqWVOyy;2ZP&kg zvHv-Z`oe!o-gsZ)p5-Io6F=!+8fq+qqWkU#V0u^rObtw5_^Z17e&}@fdjiWj22WQ% Jmvv4FO#pA&v^oF) delta 492 zcmVwgf&08@F!=!Ebe=e}aAxV+WgJEViTmbLt0x(|Zz_?sa!Ep|ZiQ)_#C&2(Xh0=?310Yhmk!}D) zN;lFCfJo^^x&aU=-AFe8BBdMY20)}wxM5~CUKqe=B}QTZL|QSXNBiabe*stScKVLE zuU-p)PQS(g2()07t2=|%$J$(~>tj2?5?KP;+Y+^3_#=!tvt%z1SNw|`sYPz`y7pxS zdo#NQbv}04?Z;|Dw>}rSOLqhL>H4GL@E&8-)K+aVO28hYe5JP;Kr6NP0EY8+yD2wp zaBl3(2U>~U=yo=s>qoycLjN0QV|!EFi1qBRdk}0&9jNZx>o)~poL<5x-@;Gw=U-c5 i07OcR4ThQ7aQy+NVNg-{auVzS0000 -tbb::internal::task_handle_task< F > Class Template Reference +tbb::recursive_mutex Class Reference @@ -33,34 +33,122 @@
-
tbb::internal::task_handle_task< F > Class Template Reference
+
tbb::recursive_mutex Class Reference
+ +

#include <recursive_mutex.h>

-Inheritance diagram for tbb::internal::task_handle_task< F >:
+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

task_handle_task (task_handle< F > &h)
 
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:
    -
  • task_group.h
  • +
  • recursive_mutex.h

diff --git a/doc/html/a00157.png b/doc/html/a00157.png index 229263c6223fbf739b854a1eafa70239ec72a2cf..3157a913de76891db2928ba797af89eeb5eb82f1 100644 GIT binary patch delta 722 zcmV;@0xkXQ1pWmfiBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA#e*%q3 zL_t(|0qvdZlB^&Mgg>gbs^9;O*Be3r9bG+VW+Gd*&O#E?bQ1p(LI_U)L6ZEV6O|-S z=tL#S6E=xn37&6P0AHLqtP7q8Y=7XLw9E>pQK*$7r{@WG3@U zZnDJBo%46Z1slfr7kg{E8|jo@e~IX1mB?1V()nat#xSd?%ET;{kL*|drq#smW$P{5 zDq^N+lU_QssyeEa+h-vuSlDn|VX{8ld4(mv6LFX5_;-+KVUoNJ$+Wc8n|V>y0d*BL z&N7y6EA^v98{@4>bZ)>#7Lr1NR*b^*RMBiVL-EoUQPX;M7&UveBHHTFf34hK_2|al z^&X8g>BQ76T5DtKmd?{--rk(LOQb_nHwJq#btUOEjL?!)8c0^ijJOo`&e*jPDiUN2-R}{b#x}pG{&=m#ngsv!nCv-&tJfSNJ;0aw( z08i+O0(e4K6u=X@q5z)o7DYn{;RzrB_(vxS;0c{5fG1ocI=C+0=Yt&exJ!q(5d}Dc zParyfoQB&JCW|u#9d{R_Io-u>TuO&Dq4rJYm|vqHF0cFJCNoh%N>nO4Q5}t7h`B zemjbq`T#hKdwaB9y2+%>e!aC7O&uNceAh54r*5vTnYzn>DM~lCtDU;pNQ-3OJ#_)T z1s_9nnmCun4Zt?KD53zK(1`+gLMIB~3FDVOgb@7W7ea-Dl-Nl>$^ZZW07*qoM6N<$ Eg2SLr*#H0l delta 575 zcmeyz`i4cZGr-TCmrII^fq{Y7)59eQNM8ox01jp#x#jPMxf2zw>KT7~x;TbZFut98 zanfo90oLlcqJRJU^B1k)S(Lrat6a}Cw4{TpnU{HAQkt2>3>98iE6<>sOP-S+74Hs~ z{@1AKqwe{u@B8&de`;3Ue3`da{aR-5%u{c*zlOY9d)iokrpn!8%6{+f%wAnM$LpQ0 zxbu^^&GXqTluzw65B1jbx>Q?#=beft|75>OBJ)coE%~uzvdYo)0CnTd8yPCv#1AC! zy!cYpt8TjBa&)G}O2N6G?lAw5_fT*6u|(LR<`SoZ-AfjM`6Wyp{#J}f)aNohn(W8$ z(Gx}bL-v_7Y|P9OT~Jl&rB&g#_y79&Pu}71uMN4S^#VLAPMiHGd|dmy=meuhUD2)& zPW8`OE+iJt^8b2rSIE_j`L8qGPHpk=^^pyJ-Ii79e{C+QE?;^2 zPVUNULGe>IzTPd7yHbDE#MyRp1#8xQS6=(bj{VM+Ql}j;MH3AROpI^bEBd+b{bk;I zsgwGtvipku9$U#$SbxUzQQYn=QT0*F*ZQ0P@mvyXk)YlEZTssd_s)j;{w_6sH>XeQ ze;@lqsn>DeWZy5(-dXTvUiL;hm`$3v;TkO5O2zMW8!N>a6SLrXlg9oC0c)qrD=~x)4@}~G{NBM L>gTe~DWM4faeow* diff --git a/doc/html/a00158.html b/doc/html/a00158.html index 08e3da3325..a8d0a75bce 100644 --- a/doc/html/a00158.html +++ b/doc/html/a00158.html @@ -4,7 +4,7 @@ -tbb::task_scheduler_init Class Reference +tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference @@ -33,175 +33,16 @@
-
-
tbb::task_scheduler_init Class Reference
+
tbb::flow::interface8::internal::round_robin_cache< T, M > Class Template Reference
- -

Class delimiting the scope of task scheduler activity. - More...

- -

#include <task_scheduler_init.h>

-
-Inheritance diagram for tbb::task_scheduler_init:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - -

-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.
 
- - - - -

-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
-
- -

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:

diff --git a/doc/html/a00159.html b/doc/html/a00159.html index f3c36ef2f7..967213b8bb 100644 --- a/doc/html/a00159.html +++ b/doc/html/a00159.html @@ -4,7 +4,7 @@ -tbb::interface6::task_scheduler_observer Class Reference +tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference @@ -33,229 +33,16 @@
-
-
tbb::interface6::task_scheduler_observer Class Reference
+
tbb::flow::interface8::run_and_put_task< R, B > Class Template Reference
-
-Inheritance diagram for tbb::interface6::task_scheduler_observer:
-
-
- - -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
 
-

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:

diff --git a/doc/html/a00160.html b/doc/html/a00160.html index 0e782f5911..e99a28a908 100644 --- a/doc/html/a00160.html +++ b/doc/html/a00160.html @@ -4,7 +4,7 @@ -tbb::internal::task_scheduler_observer_v3 Class Reference +tbb::interface6::runtime_loader Class Reference @@ -33,145 +33,281 @@
-
tbb::internal::task_scheduler_observer_v3 Class Reference
+
tbb::interface6::runtime_loader Class Reference
+ +

Load TBB at runtime. + More...

+ +

#include <runtime_loader.h>

-Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+Inheritance diagram for tbb::interface6::runtime_loader:
- - -tbb::interface6::task_scheduler_observer + +
+ + + + + + + +

+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

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 observer_proxy
 
-class observer_list
 
-class interface6::task_scheduler_observer
 
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...
 
-

Member Function Documentation

- +

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

+
- + - - + + + + + + + + + + + + + + + + + + + + + + + +
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe tbb::interface6::runtime_loader::runtime_loader (bool state = true)char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
-

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().

+

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

+
- - - - - -
- + - - + + + + + + + + + + + + + + + + + +
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_entry error_code tbb::interface6::runtime_loader::load (bool )char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
-
-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.

+

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.
+
+
- +
- - - - - -
- + -
virtual void tbb::internal::task_scheduler_observer_v3::on_scheduler_exit error_code tbb::interface6::runtime_loader::status (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.

+

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:
    -
  • task_scheduler_observer.h
  • +
  • runtime_loader.h

diff --git a/doc/html/a00160.png b/doc/html/a00160.png index b87088c72d9c41832275a3a031b419b26a0c66d6..56b89a68fda8064d7c58a403e3aa47ca3cccd7d0 100644 GIT binary patch delta 571 zcmeBTf5D>I8Q|y6%O%Cdz`(%k>ERLtq_+Wa00%RWY&Nc6IZ@H7p7Fb(oPovrnZ58}p~KORuYGzr?K;yQ7Ys%F;| zUC%%prQ0dq(_Y$q-CbAAt?6+ozryX?lw?`I%iFXrM|P%k4E`W!G=l2Yxg6o77%krSj&^z14q0Z%*F*dA^GMsb34T4(8d1zN!DW!#hYv zGkVe@iSTVRZx%4rbcr9R=+XTBRVwKFj7{oSm0!t)m>rm~pygKd2Z4Ev^agaJhyY!*)O(z3yw`WdFxrEcyz|sf^(C?X1lH{uRa^HtoFyz zX@_IK2M6A7xmG#dVEXc^XIDc)Z(qIUdr57T@D4c*!P4TLTJ@!;w^Ukb-zs`Ot8dl& z6MB0Cm9CYZELd}I;@+okQo?W6JeA*hH{)ge)ACg2;}+SIwtcG2uV3t`r(LpXZ(+jM zisjp_Z@%@sq_)masGMuZ+h-1iiKX+bzMl2m)c*U_&qDSeyr;Fx|Ch4%P0Ry%mvNED lO@_cT_r;7iU;M$o-ZWoOc(c1NT>#ULHT0U`gTlu{Cc0+0?{H$Wb2 z-2i#ebw8W&rtR?!z@Zzx*P0bA-;D+EJsfrXJ>74H`#*Fa%r5eJxxQ%UcCGg8d9HYIxBwpRO#P4w-iNG;MdM=38BhpVGgs&RrS9YB z16`?YA~Y|z=_>Wj>GcVgv8KB3`ITEs^~h9d_aohI`~2p6zR&YeKBv7He`~Hgx{WLD z>z}&(U)}Hb@_en^T*2A>jwd|1_cPrE^kX+-%5)Z^+t>3@r*u6xd45fzR^4iIT!8-s z=<0hXX{hJ^^Sh|$>VITfi~CFfWWlfKJ}Zr_Z~*V(=kzsmpEp1rY~28Puyq6E!BclB zrQ`#^r|jub!ts5W@wr+qt*t!9J8MW5>Av|iW^+TYFh@`{TEh3T!TepZv z9%$X=eA?UijgA>U`hH*-UXVmYrihmHEFvG^jp z+8)@|KTok81OM<@yy)n3FtLj&WFN?H=}isP*b3>_es~v?0r0G(PNVIHr-6A4c@FCr2HKnl?PDJEg{3U&#w}?n8 pY~3Ovd9Zbhh~&XjcdfPN!yiYYGmUMC>aG9)002ovPDHLkV1mZOy~O|k diff --git a/doc/html/a00161.html b/doc/html/a00161.html index 255f13641f..f53776d4d7 100644 --- a/doc/html/a00161.html +++ b/doc/html/a00161.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< T > Class Template Reference +tbb::scalable_allocator< T > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::tbb_allocator< T > Class Template Reference
+
tbb::scalable_allocator< T > Class Template Reference

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

-

#include <tbb_allocator.h>

+

#include <scalable_allocator.h>

- +

Classes

struct  rebind
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

tbb_allocator (const tbb_allocator &) throw ()
 
+
scalable_allocator (const scalable_allocator &) throw ()
 
template<typename U >
 tbb_allocator (const tbb_allocator< U > &) throw ()
 
+
 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.
 
+
 
+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 (U *p, Args &&...args)
 
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.
 
 
+void destroy (pointer p)
 

Detailed Description

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

+class tbb::scalable_allocator< T >

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 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:

diff --git a/doc/html/a00162.html b/doc/html/a00162.html index 0335c96b96..a2e5315f28 100644 --- a/doc/html/a00162.html +++ b/doc/html/a00162.html @@ -4,7 +4,7 @@ -tbb::tbb_allocator< void > Class Template Reference +tbb::scalable_allocator< void > Class Template Reference @@ -33,48 +33,48 @@
-
tbb::tbb_allocator< void > Class Template Reference
+
tbb::scalable_allocator< void > Class Template Reference

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

-

#include <tbb_allocator.h>

+

#include <scalable_allocator.h>

- +

Classes

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

Public Types

+
typedef void * pointer
 
+
 
typedef const void * const_pointer
 
+
 
typedef void value_type
 
 

Detailed Description

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

+class tbb::scalable_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:

diff --git a/doc/html/a00163.html b/doc/html/a00163.html index 1f3b78aff0..a85019c315 100644 --- a/doc/html/a00163.html +++ b/doc/html/a00163.html @@ -4,7 +4,7 @@ -tbb::tbb_exception Class Reference +tbb::spin_mutex::scoped_lock Class Reference @@ -33,63 +33,68 @@
-
tbb::tbb_exception Class Referenceabstract
+
tbb::spin_mutex::scoped_lock Class Reference
-

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. +

Represents acquisition of a mutex. More...

-

#include <tbb_exception.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::tbb_exception:
+Inheritance diagram for tbb::spin_mutex::scoped_lock:
- - -tbb::captured_exception -tbb::movable_exception< ExceptionData > + +
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +

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)
 
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
 

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.

+

Represents acquisition of a mutex.

Member Function Documentation

- +
@@ -97,78 +102,10 @@ - - -
- + - - - - - - - - - -
virtual void tbb::tbb_exception::destroy bool tbb::spin_mutex::scoped_lock::try_acquire ()
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.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - -
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)spin_mutexm)
@@ -178,41 +115,14 @@
-

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.

+

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.


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

diff --git a/doc/html/a00163.png b/doc/html/a00163.png index a067095e06ef057d1150b21de7f8d9c17cb3c66c..25da9c6ba09d573b82ff7e6295013c42ed53edd9 100644 GIT binary patch delta 548 zcmeC@zQm%~8Q|y6%O%Cdz`(%k>ERLtq}Ks)00%RW-0rn+>qJGXdd7#IE{-7;jBn@O z>|1Rhz`A;=$MgUHD$Am-uc^i7kgP7_p?Lwy1(C<9oqiVFY{deq)*Cs;|(tLzKk=x@c*0Ov?aee zVm&`4*~A)ePGtD-fYE?2`K6tl^UuDe);If}SkKTq5a6T?3othU~*>B`suIsn_&x-YB{iO@`UVd~+!TwWl@a_w1wep>> zO;+^Q{%vn!=6c-rZq|>zp}L>8T(`OG^L*<&Gj6`udh<^?mA|iAd^I*Ze)(^eJ=0%` zC6|g7z5d*uS8r6ZEIr-I{-SPL^2RHAGj_iXT3y~2vOD<7t7W3$Z+R-^pO>}eGRoZ4 zUjP47?TyFjyH0bR6c;`a{pFV2i?8#2#2;vL#4_kRi67{$+-+to-73FZCiA~O&wCzV P#4~uh`njxgN@xNAv2OrI literal 1423 zcmb_ceN>WH7=OvwTbV=3(z38ot^6n^tAq-*9ZbQ^%uk#%4Q)guR7P?v!BcHvUzDj- zP-@OpAS0=Rg$fnqk!`LL{7CWh6q7P@_L`#TUbpu5&d%9A=id8#-E*Jk_j}Hh8yOMm zGH>ZT003MlVdN+PK-ghfIL8S-332U6`0|MSIwoX#dKwmge* zteA3x204}W`3WRltW;%V8Aht5f8;ALJ$_9u-f8&M(LRMbD`z2rU)W)(Q@6LTk9Uj) zEkmyMyqieUJ(Cs(TBWV`t1{&3EMVtMYT;(9bYvr~&g>+lLqHyll(Q-hwSq$R_MVjj ztnd9K1u!YIfDm?o26WZi5N`J+>Z1S&e(81wyZ{^isd0h)|5n$pEX#L8xP~77RMBNa zkUwHM^G}+VSfe%tY+_}Udh{ThCBOt7(pF)5TowEVVwktZQ!~x#cvH~*SCn-aP=W?Ukze{Q8TU8_wTUh_|{n10S5uM;Tx*I zyYN3Tlo!q@W?p^e!~UjugM06i;#}d=(l{@4$tiPUHu>ZNIO!Sfq*+iJ$gR|#7V;h) zIoCQ=1$m%{7l~}$a~VWCYCGgpXmVh&n-W;`@s=ab(^9)oNE$;zXtZRqr173lQUcWD z3Jtb$VY=R`Y!5FNgqE?Fgk^4Qx#FUdZ{Ev$Zlso@(L?Ww`My$oXVzL0*Ib#RrrAWc zbDtYosl)GaSo#ySyj~xW*8jY+de3+yKELJCvWv32W@D`%w$G_0-tjHLA`Lvh*S8jz zy2M&)>}Jwqf;=CZUTn}W-!!?WZN&2G;Os^6=2$_UXr%5LldMnN&mQyb-Otq!A9^)J z;ZF9N__uSJW{z}ssyisdt?Z5rI!XgIXSrnsEVFoF%IaGF`(!;n$p8DQsjbUZE`qhY zu7`l~P*GwEkHDM}nZ=c~uZNIE&`FVL$v_2mbFnLN`%UK3ZBtJElu61H -tbb::internal::tbb_exception_ptr Class Reference +tbb::queuing_mutex::scoped_lock Class Reference @@ -33,77 +33,89 @@
-
tbb::internal::tbb_exception_ptr Class Reference
+
tbb::queuing_mutex::scoped_lock Class Reference
-

Exception container that preserves the exact copy of the original exception. +

The scoped locking pattern. More...

-

#include <tbb_exception.h>

+

#include <queuing_mutex.h>

+
+Inheritance diagram for tbb::queuing_mutex::scoped_lock:
+
+
+ + + +
- - - - - - -

Public Member Functions

void destroy () throw ()
 Destroys this objects. More...
 
-void throw_self ()
 Throws the contained exception .
 
- - - - - - - - + + + + + + + + + + + + + + + + + +

-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)
 
 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

-

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

- +

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

+
+ + + + + +
- + - - - - - -
void tbb::internal::tbb_exception_ptr::destroy tbb::queuing_mutex::scoped_lock::scoped_lock ( )
throw (
)
+
+inline
-

Destroys this objects.

-

Note that objects of this type can be created only by the allocate() method.

+

Construct lock that has not acquired a mutex.

+

Equivalent to zero-initialization of *this.


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

diff --git a/doc/html/a00137.png b/doc/html/a00164.png similarity index 100% rename from doc/html/a00137.png rename to doc/html/a00164.png diff --git a/doc/html/a00165.html b/doc/html/a00165.html index 4aecd0fa3e..c4361b967e 100644 --- a/doc/html/a00165.html +++ b/doc/html/a00165.html @@ -4,7 +4,7 @@ -tbb::internal::tbb_thread_v3 Class Reference +tbb::spin_rw_mutex_v3::scoped_lock Class Reference @@ -33,117 +33,114 @@
-
tbb::internal::tbb_thread_v3 Class Reference
+
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
-

Versioned thread class. +

The scoped locking pattern. More...

-

#include <tbb_thread.h>

+

#include <spin_rw_mutex.h>

+
+Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
+
+
+ + + +
- - - -

-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...
 
 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.
 
- - - + + + + + + +

-Public Attributes

-tbb_thread_v3(tbb_thread_v3
-&&x) __TBB_NOEXCEPT(true)
-tbb_thread_v3
operator= (tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
 

+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

-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)
 
+class tbb::interface8::internal::x86_rtm_rw_mutex
 

Detailed Description

-

Versioned thread class.

-

Member Function Documentation

- +

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::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

+
@@ -151,7 +148,7 @@ +inline + +
- + @@ -159,19 +156,46 @@
static unsigned __TBB_EXPORTED_FUNC tbb::internal::tbb_thread_v3::hardware_concurrency bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ( )
-static
+
+ +

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
-

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.

+

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:
    -
  • tbb_thread.h
  • +
  • spin_rw_mutex.h

diff --git a/doc/html/a00165.png b/doc/html/a00165.png new file mode 100644 index 0000000000000000000000000000000000000000..13249c6a5c9189fb4202efb8b5609124c7dc489e GIT binary patch literal 655 zcmeAS@N?(olHy`uVBq!ia0vp^H-I>RgBeKr$a-f1DTx4|5ZC|z{{xvX-h3_XKQsZz z0^XZi2i&|mS^Ws%?JH+o*03b$+4fiq{=L=IdpVU`G7+;lgu zc~UQzSz)iInU2JP1zh_XY&2z>M|NQUS^8Bh-Pp-*x4tb);psPu)$UcfFz!qH}(ok%^wY-TU9#_nVxeHY}aOa{W$d zLZoYH$xLf)#jk;^?>S$soWWaWHp90ww6yf7?VQq*-NhRwuYK`5urRcG;senL!>e}e zv+aTOF5hipId31?Y+z50Z&+KeFQd)nu~I(ewbiwja=G&5N$HZM(_(qAWxm!qr+fMG zbpMFtx6cCKcSV;hf2nX|Tl<&tqqVN4H~-~^-w}T`(fP@n#k>zz*q!++d1KS0?zs;F zl^s?#C;A`c`|@$VHQNIpSa^K?n4V@f?;k@%MT_y@i43QKsfWSS)z4*}Q$iB}$~h-f literal 0 HcmV?d00001 diff --git a/doc/html/a00166.html b/doc/html/a00166.html index 5747962d90..2734d88658 100644 --- a/doc/html/a00166.html +++ b/doc/html/a00166.html @@ -4,7 +4,7 @@ -tbb::thread_bound_filter Class Reference +tbb::recursive_mutex::scoped_lock Class Reference @@ -33,120 +33,70 @@
-
tbb::thread_bound_filter Class Reference
+
tbb::recursive_mutex::scoped_lock Class Reference
-

A stage in a pipeline served by a user thread. +

The scoped locking pattern. More...

-

#include <pipeline.h>

+

#include <recursive_mutex.h>

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

-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)
 
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.
 
- - - - - - - - - - - - - - - - - + + +

-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...
 

+Friends

+class recursive_mutex
 

Detailed Description

-

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.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • pipeline.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.

    +

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

    diff --git a/doc/html/a00166.png b/doc/html/a00166.png index 7eab1d5112ca5b7d7067137bdd3c71a2d17e0a60..9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596 100644 GIT binary patch delta 599 zcmV-d0;v7<1%(A6iBL{Q4GJ0x0000DNk~Le0002Z0000`2m=5B0F9af#*raAe-ueX zK~#7F?Vat8t1t{ikEKfU{%?GtKyVy_f6UHkExlwm_L&Iwf*nE^9Q}TVdGDzk)(S_ zHIfvQR3k|-nbeq>jRL?McmNE;P--5Jk>m`eW)d@yoUzmZj6^yE5R>!8QZ*XYxVT3U5=h)avQ$+2kfX2h6?epk?wpZf@G2#FO*f zefZqBd{sgC#mgRt#)Fz;K*b2>&CQ{Z6k@_i-DC62wf`eooRe>;t?)Eooa zI**xlj%deaqUYt@hKBMef2u^O7jHkmR;1Nh*VN3Prkavz>q6_u7i!i4RYJNQj~11U zJF2NpTkXp}qn`J|n<|t>2|9=Sg_?GzRp+LiX)cQoA(pSUH`Pg~sz8TxbFKo%n&w@q zO2}4W>P&OB@vLSm28WvF3e7KTS~-08yERLtq$dJ#2M05dym0@g(?mt<`W8_T^%&I-JU$kOH=1No)vw|dDgW3GiEMjDlYeTk=(ia_>_set9?L> zIR-}CAI|&tA|w0usg z+F$of+cn>8lcLz)>$R^I&RFd}_v7^&MlHUR`ihO*F27ORI^E~A>8H9q=hjCVzu%J; zt?XIV?=N}RerM0MmwKM=JC*wD>aXs5ztuNwd$sSRdyDQVO%e%qL*UEOrLosjnH~u3 zV+fjfuKvYq?b$(Ai{mtA2H7pXmCdkT1L%4qrVdR4)c%~5v}s&C3WBLX9|AqSIWS&l z|E+K0r@UXUcF(?boOi4JxAhXa%kCIUop1b?y<(QN+12Fh)kj0@?Oz*(TsGSnqG#LA z7hE50{N(Tw(Ro%MXtctHR%WxpT`-`g7;S z$u?D~CNiIsE2myeJ~7#?dh-AJo?A!i=eb{8C3|{t>7%`87WZEKzSpdO^RA^gv%O#6 zi;F%t$Nk~`pD0%Q1Zpt^r$T` PaWZ(i`njxgN@xNAR6I+; diff --git a/doc/html/a00167.html b/doc/html/a00167.html index ad1b2994bd..a3e9ae23a3 100644 --- a/doc/html/a00167.html +++ b/doc/html/a00167.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_0< F > Struct Template Reference +tbb::queuing_rw_mutex::scoped_lock Class Reference @@ -33,56 +33,115 @@
-
tbb::internal::thread_closure_0< F > Struct Template Reference
+
tbb::queuing_rw_mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::internal::thread_closure_0< F >:
+Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
- - -tbb::internal::thread_closure_base + +
- - - - - - - -

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)
 
- - - -

-Static Public Member Functions

-static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
- - - + + + + + + + + + + + + + + + + + + + + + + + +

-Public Attributes

-F function
 
 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.
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.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.

    +

    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

    diff --git a/doc/html/a00167.png b/doc/html/a00167.png index ca33e7fe184cb31e2bdd96f46b569d3fabe4e756..227e99a9e7146d2e7de5a746eb21af449090be9c 100644 GIT binary patch delta 605 zcmbQm*3GKe8Q|y6%O%Cdz`(%k>ERLtq;CLm00%RW^pW+>ny6@9FXidt7*fIbc5d#v zW&<9U<3UUJ{_mB4dRg&9SJb6b6IbVCIzOt2c=YG!nKkZ-ldjAc@|mQhc~C`j5{R*q zcgD$M8x9vfs;+%*lQL1|?kcwg=L;)$u6bU6`e{ao%H1VleRCVG*2p$*z4>H6TlG6r z&t0+cY^%RT_-x<~-FS8OkNVxkIk9GXHy&L0tbB6&)B4p<>)%FfzFNKw-o7(br2ciTLBsa1rW;m% z;Ezw9KHK2y`QmwtpT!r?Zkx9JnACAy6TTZ&#~m(*PdqPlE_R#gtEJoKY`YRxJtw(% z8=GtN!BySTyXwWNHyG|O+Vns5!R-AZi@7({`kg-eclC>TufO@6JII&z=Kb&b5AKu8 zJM$Kv6I;8eYW}J4Cq_3u7t7xe$<6;J8L{!(-30f}`Hi~OpW}~r?O=CZbM6o8jgPA% za%Aqmt@=Lubw>YH$%Gxx)WwfJZnF&&@2?Gwanp}*WnH!XWT?UaIWeJk^6H{QulN4? z<+8KnnThq^dptGVH>%9eK0R>X>J`h5HH(dRiZ8nN_(u9l<~geuCNn&ok^l@qAl?#| eX}o#e7xswK7T>_R;tzo-hQZU-&t;ucLK6Ub6d!>A delta 749 zcmeBXoyDfu8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2Yk{Yp<4$B+ufw{u_T zJyGCkwf9@H@4xcEh$aC7qa&Hw21~K#ytTCQ#733aM-vb3(e-@AI(eGP z*CtQzNmU2CuK~lOfZ<2@4<-rz)9i+dJ^ z?)lNSan(MK#p{0r3R$!q`n}?+$?E?GDp3_tW;OSt+TICAwF|fJwOXH%+P&y&TbRxv ziPFo8>2qflfBt|H+W($yW7vEy|Md4`YnApmzOKwS-TtllUe{!UZyRQ}tn=$zICX1` zO`1^H%iEqA&ao}=t0v#qZ4ln^o}s5Pe!L*+TZ6wKi1>gTe~DWM4f#!qbn diff --git a/doc/html/a00168.html b/doc/html/a00168.html index 874bc9cd82..201f5e6daf 100644 --- a/doc/html/a00168.html +++ b/doc/html/a00168.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_1< F, X > Struct Template Reference +tbb::null_mutex::scoped_lock Class Reference @@ -33,70 +33,50 @@
-
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+
tbb::null_mutex::scoped_lock Class Reference
-

Structure used to pass user function with 1 argument to thread. +

Represents acquisition of a mutex. More...

-

#include <tbb_thread.h>

+

#include <null_mutex.h>

-Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
+Inheritance diagram for tbb::null_mutex::scoped_lock:
- - -tbb::internal::thread_closure_base + +
- - - - - - - -

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
 
scoped_lock (null_mutex &)
 
+void acquire (null_mutex &)
 
+bool try_acquire (null_mutex &)
 
+void release ()
 

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
  • +

    Represents acquisition of a mutex.

    +

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

    diff --git a/doc/html/a00168.png b/doc/html/a00168.png index 961925b53400cd0df57f3333002868179b5c8a9f..d8565aa377b4b6d12e30bda0927c2756bdb21acf 100644 GIT binary patch delta 528 zcmZ3_wvR=zGr-TCmrII^fq{Y7)59eQNUsLs01jp#8JJx9aiXGCJ>ywV7srqa#s9nufMWm;%~6;@_x`)|M%;R2jM&YEYHu5D8@#!v~NK+}3{y#xq?RJXI?bkdlbz+g1{pZMax`%aV zJc^$&HQafboTZl!`ecT?CrNTDlQoPaZK#_)HvgLC7eFt5=Kp}ElwN^e|K9QDTeI-@``cjo zH;)vnWhgr|VP>1+k#Fs4t81NJf8U*ZUW*S_UnI%uD5Fa{@~vF$%et<1R7v*A!)Cgf zY!b8`#JiV`*|(M?tCQ08zCN&$WaP^A)T%r5_QO(AFS9e|lRpId{`2ctYI+Yedlah! zP+z*$-GY{woyB)%)NQ&+#&$+K<6Y1__pa8hwIubrd`7R8?gh~MXSB=gf481d-*tT~ z({)W9tqn3;nH4r&x6U4R-8RI2*DZT?yX#6)DE&R?+&}j6AW2@g9Y#haDVzqVBt_By zm83{|flkvjJwO1zt`C4G=qaEd9}gjY3h0aT8KjQ^9bFe7mIf$5Bn?o2NE)C3ku*R7 zB58mEMA85Sh@=4u5J>|Re;|?uC_p3)P=H7ppa79HKmmSADW&uTkpSXrfC5C)00oGo z0{Xhur*^)70&psmH4MOpy4gD$-8(N0)mv=DJOjPBpkD#CNITB&k*$y!borr~Bdxb) z;qUkPE9<9b)75Gj$_`DKC3N=4w{{WLwNBTSw(d7}=?rvH6q?86+@r<$7w>9eVp=Nc3_iuqEm1+15bak~^SlSfiz; z_dv5pu{r?trQ359qk{wPe@9mP+ZlD6Zj!N`(av}mbkF@DqX0(EZ9Aj(j9n_-3!wMU zXqVX=XVj)?>x}xYS?jxl>AI%6)&`la%nF;XTW1fuZX4oy*R|vqDjMKF>XhOSK<5tA z|MmlH>w?31v?v(`IMe_Ih@=4u5J^u0O(~@Z=o7LSFoIUyaoPX?002ovPDHLkV1jNc BYY+ec diff --git a/doc/html/a00169.html b/doc/html/a00169.html index ca9522e19e..b841c5284b 100644 --- a/doc/html/a00169.html +++ b/doc/html/a00169.html @@ -4,7 +4,7 @@ -tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference +tbb::interface5::reader_writer_lock::scoped_lock Class Reference @@ -33,63 +33,60 @@
-
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
+
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
+ +

The scoped lock pattern for write locks. + More...

+ +

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
- - -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
-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
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)
 
- - - - -

-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
 
-Y arg2
 

+Friends

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

    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

    diff --git a/doc/html/a00169.png b/doc/html/a00169.png index aa52099a9d5bbc6b96933a805511a865e9ce5c50..a999a7d0cd0bd7f4fb4169b8e0db9283f0821121 100644 GIT binary patch delta 753 zcmcb~HjhoQGr-TCmrII^fq{Y7)59f*fq_v9$PVCO29h6ddYMgBw60(4>Eakt!T5IW z>%PqfJTCo9y*~fT{}Y&Z_UMI@P~8`|BMYZ6-Mb;Fb}n8?$;ZWoThY^PQkG7y%F+la zPp^$8lcpqPs%Rd)2depdQcJ>CwjEyD?lKt&l89g=t z8Iz5!u`M`$i9w>le?vM0&jE`v-UddA*|{O|8M!3 zHOyPOlUc_2lVuz$pq!RDWCu3-jMk`YqdsJ>bj-Akz)7LbhyrGo%*zY?wX>rpDLukt=<#) zJWDKyH?&LXi)qOJc>SI0RJgs3rUfq-RsDHh{j^y~pzr@38vFiSJL>l4TZ-_#bWNXY zs+Qc^!q@d*8*TCrzFux}GyT#YnT_=>I^TaUss8_#XLs)YTQSO)WLjlCHh*pLnWgoA z`%=#}7q-6F`})y5=huT zK~#7F?Vas%R^vItPmzN$RK>y*B@xrKHk6i+*$A-;AD8dbxi6TUXc~70UX( z8tnhJp3`dY$`dL#o6R{RKkEILf2n2o_;%CtUc9sNAxQ(>iuxY1{5V_vaqP72Rg!JF z+YDEORS^45{Pgpv#@3QF(A^8~z4@h-BqMjp-&!@r!!9f(wK8XAmi#vK_0R8Y&x8?r zo^e`Tp!*A7rd#yWXJa8rjlL}EE-)rw{irv_L-f(~CPS>XBwgrvuHU=xe>c#d=Xw+U zKb-5n!h7$g!kgQ76yt1V_FPr?GJ09zYZv1Rf1ctORCr1HH}w~xZ4m;5%MwxmKc^3Xn2L-3@e!6iF8Yf+Dtln`S>XZVX`%x}(?kb| zril&^O%oj;nkG6xG);7Xe`uQM0MRtj0itQ514PqA2Z*ML4iHTf9pDF)Qc5vJ0*I)I z4iHTf9Uz)c^w*=j)#L3OfYUix+yHdcj6OK}wJHNuJ4&_pcHMIm{pJ?G1%0)2*6rlR z=q>vGGq)Y!@u*PN@9l7p6W&Y@tGz2vsNC$X^Njqc_fV#m;j;I7fBKO1272$r+Nkd# z%a60wAIDDXUJ|zDZZljB+AVdQ_~{Mm>E-GkchSxI_QL!1{KiON -tbb::internal::thread_closure_base Struct Reference +tbb::null_rw_mutex::scoped_lock Class Reference @@ -33,40 +33,56 @@
-
tbb::internal::thread_closure_base Struct Reference
+
tbb::null_rw_mutex::scoped_lock Class Reference
+ +

Represents acquisition of a mutex. + More...

+ +

#include <null_rw_mutex.h>

-Inheritance diagram for tbb::internal::thread_closure_base:
+Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
- - -tbb::internal::thread_closure_0< F > -tbb::internal::thread_closure_1< F, X > -tbb::internal::thread_closure_2< F, X, Y > + +
- - - - + + + + + + + + + + + +

Public Member Functions

-void * operator new (size_t size)
 
-void operator delete (void *ptr)
 
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 ()
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • +

    Detailed Description

    +

    Represents acquisition of a mutex.

    +

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

    diff --git a/doc/html/a00170.png b/doc/html/a00170.png index 0324577e724e80dc1c635675c7fc1bf9494f27bb..081a54dff5c3418a26e55aabe7207612d4a46482 100644 GIT binary patch delta 559 zcmV+~0?_?|3)}=DiBL{Q4GJ0x0000DNk~Le0002M0000`2m=5B0C;4Ic99`Ee*x=B zL_t(|0qvdZj;k;X2FFsR@BQC+DHL*}TF#PU(&JsGv>_KyoP@uanT-r4N#ha%lH^GU zNRlTZAW5F|6ENA_)pRuHrFr42%8DeNrlY{r(Q;+cy?(8?y(*G)f}R<8BhY$$fk3~F z=OOUi3zF1@3j~@yaBqPFr%=xoe{}78U>oZG0@I8?|0Lzt`n%_l9vSF5;-vzT)SD2H zBu_#>l02CN%*+M`;G;YMMrL$@$767V(FLaX$2J&V0AO%p{sBCR3;=i%836DkG63L7 zWB|aE$N+#RkpTctA_D-PLc~H|w6yAg&ghCLC29N=YNfiu7B4{{NTm2 zC>WHnpg>SdkYbXbU_>z-Q>}7|Q7QpJNPl6bGxm>mXLk1;-@Nbbn{PIsLHE(q zG1UP8=uv#V`~lEF!Zt%&13oLIq)GTPX6z2|R;g65IXqS8|NJ(L7um21m({S;aJo%`@$t1Ss_EQ$+f5Un=U*~E#hDM(bE^L;vE4ir zV?M#jeAuBN3bzMMPlUXanCk;qm}Sf#8+?8yaj5Z2L_`1SUs!Y04oTvc@^nV#g~9Yv zsmKY!z~x(UtT)e1%(E);{0@r`1yXsZh`PTSRal1|Q+K;hMfB^Hcp*)w`LXCT`G)+fC(NnEler!Dg1HV~{N7vk0_C>D2;uubB zx;IwL-n;3{LVB6v>?5G-9@V3B`0kJO&0J~|p|$)}*;Nm0XMI}Xpr84ZMVB@qDLk@a z_F%r_1*=-@P1_Z!Z|@qa33rv9aBcaJ30|ZQA|Bb%0Ce{oxY4Gs##*4BcJ|lP?r_j0 zA{@XfnbU5t3IY#041oh6mVX}&AdvH5#c8#MOyQuxEfm~bFaeg$Y9qKfKuOf;ohxAm z%>RF3OTtq}zatgbt;v8miyk*a^|D%CIm5H?7&U|YW5r_#h%AV##R2Zj%NjIb>CnT% zgVn}z$Pj23B{0zd^-v8*{wMtY%>;+@ql={L@n)Stug%C>37B1!0$-7mZDb&qRcXYD z@l3R@zuP?}Tv_%$1tz3H&i#7n7x{`H;_w%CO+oD3ts-1f)RE$D{IQ=rn5Z{21` zlZ_?|iA&k2X=jl#gwr**O)Dj{YHP&H{DH*g{kd#Ufi&jMshW`GK>Zh;3+pR}l|J|x zbalARRXKjfq&m|Z+4h(`fh@fEG`4LnPcbyVSI>s;cwqO@(ziazYwKQKsucuw**FiX zO6_LGs^xD5{N;Pk(jJeeuv+xfqXV#>arhFU$_puJ*zD$eqi#@E7g%02Ci#QMA>DAR z{wStdkuN}(@Xk}M^9~ZLF6|RvSQHc$M!$X@Ex`dHxNn4sE(drMyE+yH|Y%}=6 zM}@6RyQZZ1L{t{pQ)QCs-W^x;gw6Yd7IW?kJNdcCZstvB=9YysoK!1T&C-VbZ_Y*r_)wJtigoP0mr4jnKM4*PKy|1Qw*@-> z^0S@xCh6$YP~#44T6CFE<%|6I!|e?3rHga>xK+WGTJwFwX9eVfjqFa6sOLCeiX9L+ zhFJL-VYIsG>|`<<(#px`lRs%soi<*~>WkA?2rP1{T&eyYEEI0SKEV<}Sz?Ob8kf}c zUVDYX9pko?K!nM#E1VkhJ+8j~-61imJvqw{e&S2-f5^!YiP|8GDI_~l57uH6>heEA qa{srGj636tC<5gu`TTeBn1{0#(SuibR|QD*M+zw3bgxDaX7=BA!)Z+b diff --git a/doc/html/a00171.html b/doc/html/a00171.html index a32329107e..d41c0c38a7 100644 --- a/doc/html/a00171.html +++ b/doc/html/a00171.html @@ -4,7 +4,7 @@ -tbb::tick_count Class Reference +tbb::internal::critical_section_v4::scoped_lock Class Reference @@ -33,61 +33,34 @@
-
tbb::tick_count Class Reference
+
tbb::internal::critical_section_v4::scoped_lock Class Reference
- -

Absolute timestamp. - More...

- -

#include <tick_count.h>

+
+Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
+
+
+ + + +
- - - - -

-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.
 
scoped_lock (critical_section_v4 &lock_me)
 
-

Detailed Description

-

Absolute timestamp.

-

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:
      +
    • critical_section.h

diff --git a/doc/html/a00171.png b/doc/html/a00171.png new file mode 100644 index 0000000000000000000000000000000000000000..15626cfa0fabd91facbde8e62a8b58a223eb2eca GIT binary patch literal 743 zcmeAS@N?(olHy`uVBq!ia0y~yU<9!PIGBOtwer*VfRsdlPl)UP|Nnu^7jM3n_8*!6 zWP$O40|!_;@5lqW93?@1!3;n}AaM0mh!Fz=Q<i7?&95nKAUwX?kldnmA6=N(wED-?uz;cd~xYfx|_EyDZe{uo#dpF`S(~| z!?pi$b#beoc>DWtp2(zrx8+NCz?tywJyS*p)%l)dRq&<#axjVKwx@ly6-=5_f{MqvsRSy|sQf38 zjy^oBziYzbbwAbzGSoN%6AJ?<#V~{lcXe=N@A}8+m$JCS)I07XFjX>my85}Sb4q9e E0A3kPkpKVy literal 0 HcmV?d00001 diff --git a/doc/html/a00172.html b/doc/html/a00172.html index 29ee5a8128..56e3688c7e 100644 --- a/doc/html/a00172.html +++ b/doc/html/a00172.html @@ -4,7 +4,7 @@ -tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference +tbb::mutex::scoped_lock Class Reference @@ -33,29 +33,70 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
+
tbb::mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <mutex.h>

+
+Inheritance diagram for tbb::mutex::scoped_lock:
+
+
+ + + +
- - - - - + + + + + + + + + + + + + + + + + + + +

-Public Types

-typedef tbb::internal::true_type type
 
-typedef tbb::internal::true_type type
 

+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.
 
+ + +

+Friends

+class mutex
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_priority_queue.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

diff --git a/doc/html/a00172.png b/doc/html/a00172.png new file mode 100644 index 0000000000000000000000000000000000000000..5450176d7fa5c18126f5e6f83daf7a63bab18728 GIT binary patch literal 542 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQW60^A+G=b{|7Q(y!l$%e+Z-k zj1L?*z}k679?0b=3GxeO04f53tEWPY7#JAWdb&7t$X!yRkzCC171$`g0uEAaqW#?P|jtW?K$b*qh_aI-rDdNt)bgK9ea1P zy-#z${ub3we>}4KtM(dwoy)0vcFzCQNlzv^O?o02c;bwX0E7HPMuE-@r+#;X#Tibs z{dE=>I58YNQNv(kq{z_k!*M`anCZib7JS?v5l(4o6Av&vn&8ABr^)i5kRx~bXYm83 z`!Cub_uIT>dlT1G-h|(`X1D!by7f+F+`IU@HmOJI7SDTS;{I5{q{QxVhLG0TuOa%U zLY{AUH{G#%%kq`w>Ok?F*6! zj2Kq&?xea$_ATq;Bg36H2ZW2p2G%cVd$vd}e5Padm0NOQH!DAHU;Reo$nLUNM=SSh zZwas1Ex}OrZ*dEQm -tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference +tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference @@ -33,26 +33,59 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
+
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::interface5::reader_writer_lock::scoped_lock_read:
+
+
+ + + +
- - - + + + + + + + + + + + +

-Public Types

-typedef tbb::internal::false_type type
 

+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
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_priority_queue.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

diff --git a/doc/html/a00173.png b/doc/html/a00173.png new file mode 100644 index 0000000000000000000000000000000000000000..10066bd980a7f04d27b6d2c16ba84af835b461d3 GIT binary patch literal 839 zcmeAS@N?(olHy`uVBq!ia0y~yV6+CZ12~w0WT2bU4Im{E;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z;w;i#WAFU@$KBVd8-WsT+VwXSMAD3(9@x4xjDn$jbq78Oa)T^(B|FR@!QSLJKsTa}gk+3KFP z5!Rls4&U+&lHZ&m-sP^i(d72sFVCblDSFnQHo0~8RKz-$8C$oTt`+e7rTy&V-M+G| zE!X^ls$wtYP161KdCTti)swz__gNpi^?sza=gqGsS8o@W%~G}QEt~YEEq&oNze!~~ ze!lsquDN&HKNHsadGDXC{NB7}@{*Ms$|hZDM|MpA>@u)BwHQ8sVohMsOMc6+>&LH6 z6%4i!)(v`jmm+N%_}0iaFiLdCvL`UOCEaI~Xqb4ToPjMtnO{6!d3SB)U$6Ps_iy_wxggE5k>Q)==e=>Pj4wm) z?)~@mdwS`%EylOr^6i@a*r}*N+0JG6?(n?--_PArnRM?rzwz3>UH2oMuGigqa#H^B z^u+!d*CRY#wfmz^P04(kdThyqFxRzz(%Gyv_J6ti>E1P)^;pMQN@{>_3vuW#+O+3KS6H~rdk#lW?lxvkH?*(|;rcjI2k3-|9oFjy$dDH`;euFMf0NQ~CGh>et@vH2s*iKRdK4@$569 z|3~V=pIB|aKlORe){o2D?`5Ce#mX{4xF9%}0g1|J-`d z@Ly)X>0!w&)j7w0%JBvi8SyAA|9a|U!t5!FEZ~aMNs%P+Y^>bP0l+XkKey*3Q literal 0 HcmV?d00001 diff --git a/doc/html/a00174.html b/doc/html/a00174.html index 0101ac53c0..61e7172953 100644 --- a/doc/html/a00174.html +++ b/doc/html/a00174.html @@ -4,7 +4,7 @@ -tbb::user_abort Class Reference +tbb::flow::interface8::sender< T > Class Template Reference @@ -33,41 +33,110 @@
-
tbb::user_abort Class Reference
+
tbb::flow::interface8::sender< T > Class Template Referenceabstract
-

Exception for user-initiated abort. +

Pure virtual template class that defines a sender of messages of type T. More...

-

#include <tbb_exception.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::user_abort:
+Inheritance diagram for 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 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

-const char * what () const throw ()
 
+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

-

Exception for user-initiated abort.

+

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

+ +

Pure virtual template class that defines a sender of messages of type T.


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

diff --git a/doc/html/a00174.png b/doc/html/a00174.png index a1f23345c2fa666d8d20a82a156062980529dae0..f8d0e860bbe1900215e6561d6d50ca9ed37a990b 100644 GIT binary patch literal 4585 zcmdT|Yfw{Jw#H_-Od&RRuBc!`(iRcu1_XI1LLdq%rqu)$L3v86$U~rc=7a>I^Z?p| zXlOtM5|Kt)LuLIK_` zt_b5YUq1lvRIR6fINQ81K7r%WJf>q*8S7F z>lfyw2!27Z$5GS~S63HaD%tij1Y7v@>GZjNol9qXw`*uT5P|~7jnQ_C^ z)O0>;!SUr=_SH#~0phY6nKajw(Q!=j=F!y&W25(+Bb=WLra*aVJd>MOmg^Ms?b z))HRy6pAyX2a8U%lA;_XMNNo1yq@D(1|&*=$*C`BD(49{B!>TxN8&{58$tN8XoOvw^XLyO zalT;}6JA}yOV~rx>@%;Rc5+dTzJyqgX_^~%^oK#JjdE*4vjJz>W6_TQeFPRu3$*W_ zJXcCOgE|tP8K3Eudwa+)H?d|pu=eJI0+s84hd|wPi0`7@*C)`bCpmkR4vzdE!WWv< z9_sB6?k1qjgTLoOQlSyJE?wP~7d&k+%o;dHNS< z>AI$EzN(Me>VNQ4?YmYy9Y_TeDS6UP8SST6{x{+eqdWlqkIh+4Yjp6l&fVT2A6(3K z_yiXRp0KdGS(u$_QTx6s#dELc@V~1NX!=H{(~3f5T4{G~4=GLy)T@7|908q!qy~OS z-iQ1eIcgO#4|@T->}pm31AWiBwmpLdyL`^)2olsa>DleQ1RHZ<9zl8zd!mTojv%X3 zJRLw8fFkay%LdiUV~L25J9c0g=XZHFyzaAF{l$3hy>UY^|}5m+*+4|5vu67n1ebu^=M;n((B2ms0^O z6DV61$njC3v4S0`d8jn?twn4q*xV7k8553qJQ%6o~U#SO%mrh>bIhB8b?f z%mQW!D{lS$16ad6^d8GFEU{@}3?Pxcgyj3I#8A0&XCnt~fhEd@mqlwg8Nsq}?$U*` z3yjJI#2r?Q3(AvjGF#pffmmJs#2+<#QPlfx<_7sI`BV9sX%uMd%T*Ui*4#O?R>o$i z6XL2ZO{X+r(qPj(Yfh77NNXOJS$9gh35for44GrX#`iYHom`cDkg>!Dip89r(MeY% zyhbb9nx@kicAGH4S!AttvJY??*d3`EQlTBOA?I$b=utRf>~S3bJ`no zYJuaGb&QFVE$nOQ+#z zk$*)DLXl*r2!RJcY@j(9Z<3S`A@-TGUJHAZ0MX(!zeqf^Z|J-{tninB@*5Xlwe>ZW zCO~P3f%_L{vCB_P(u(Kx_Y*wr+hWlHhbk1tIBMjAE9QkHb5^oO!4lTYb=k5p4&+pB zM%Lx)s0;oWkPm-p_zRQCl2E-`I0p1!`Jk~Y@na65A{$dClu)oE-0InxQh#*`xomB~ zj<#>;x`Q$_W(gbK&rbg|bwl`CCLNKP@bY2VFfx!34C@K=F*>M(&nYDy)(LL}WVeqK zX2^QcJs(NlMZe`kGN{Yd?vru`RY0;+5Z=TPSLVRiEwVaSg)k-h_R^5m&+4N;Axwon zY7DXL=kokdU{#?HoYO4S>~COIp$~4-^TRl3Y74CY#1w)D*Y0%hw9~Wi zBC^$`G}eO(yOj#q@N1tQn;n1azUot3QaIgJmt8pB5R7*1xEE&T+7UTON=@EF_e@P@ zJagKiVOdeGt8*1>F-IDkOCi$hSNsj-qfsXeg;(PhOnsf;U8cdL_(}M{Jp|JwZ#EJ)i z@krrJ1(Ikf&F0DKc}K%JLv~1xll^23p@|$jI=O(Uly+1GP6AV05v(T-QYLn@J58(% zgL6mq&8UK*Ai@%mggd$^ab%=SbpE#X(Sc2A)gM{@8X(6U*12lX(I+ zN}u)PNIt%00C#zkTn#WIeR6v$8CZvz5C#6#MJ6_Lq9&o`3tFQEBP`R<;c9K7w0wXg z7Ve2fjAS+&BU?GeOi8|d)`+kJzx~B>Vv`}6j2*Kv#460%G7S3(xkt`B`x(=6=*AcW4IUAY*U4^P(ryEQ*1wsW8{lhs!HW|A!zRf3ewZ@a@1 zFx+%zbX>%TX6Un6d^y(lVhYCftqh||C@q&Yorb~YoWWou53U78#hD4|vl4cXgZ|;kjYTRN z{n)94m1w0nU-TMwq|e-~fAPQ2>8$cd+PF|&6@=u+DVV@iqfLa5xJI@gM;Nt3EIr(l z$r@7UIqlrTnQXGgp!<5MJ##+}iGsyIoW5gTY&G^s6n~C#k{aI18?D7UAGv<;OBBl- z|8_z%QSm1xSI}_=oylS=SN>@VIxtmav%teUZi-HO|CSDoJxi3m3G0p_-dwp|O+#bH zBPFM^lA>P+bUS|q0!mXl>8vP^>zQ{r*@nDE3j|x+hr$@K|jWo_?4*B2`ncTcB-NKWeA*x0%&~`A9_t5_s8bVaQ-?t4J#^ERa!X7 zw{Y?^QGR>w$n~c3h;2AWXM~{oh6DcqCg#`hrhdCGYFG6S6ejhHCAvj!?dyH8qU-!e zmre;_5|1rcg#`eKI&I&*@c5NgkZup%Cc=bZE9R?DC)HU=+%j*a=qcc&ww>>`D#>9H zPbS)H!oW(2R%(sRxYo=o^%gsNUW*7uX^$}qQV!Ys4qDoL2zpVr~kEtrvgL#zb8 zl^xznj5Y_58Mew+VAu@A9_7xKZYc;!Fg&Uc7Rs0JlmBrzR4=s<%*D}d8X7i=ZTW*P W>+wc?Vc>TeHRK7@@d}qK$^Q+H8%ZPp delta 421 zcmaE30Y~lJf-}e{#p6M@ea0p7Z>b2Hk3;lF#TU+{>Ge!qhH2d`?ESX@hqfr{}bzjKi zl4N_+rGuAM9$V}?(>!&fo&CKSpGi@DEL*eo{z;g$AIOpNWBJIC)ZkzJxvXzn+n&ubtxl}EwQj+>B)Ms!TlKB&6V^rw z@ohVinyYq0kGcgDH( zlD?C3w!JVs8SHf1l|gck)(rb^42plVxdbk;GAMpMoRv21C_giU#lIKaePzIqXYh3O Kb6Mw<&;$Si4X)V$ diff --git a/doc/html/a00175.html b/doc/html/a00175.html index 382dcc6575..9dcce5ad1e 100644 --- a/doc/html/a00175.html +++ b/doc/html/a00175.html @@ -4,7 +4,7 @@ -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference +tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Reference @@ -33,51 +33,69 @@
-
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference
+
tbb::flow::interface8::sender< dependency_msg< T, Factory > > Class Template Referenceabstract
-Inheritance diagram for tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare:
+Inheritance diagram for tbb::flow::interface8::sender< dependency_msg< T, Factory > >:
- - + + +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

-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 >
 
+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 ()
 

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

diff --git a/doc/html/a00175.png b/doc/html/a00175.png index d6754637d9f9a87cfc2318a7afd6a9ed9d4d9816..f942f222c63fd3d6b3402da4c6c8425cb9809f9b 100644 GIT binary patch literal 1309 zcmeAS@N?(olHy`uVBq!ia0y~yU@Qf)12~w0|dX+uKg;j_WP1l z&h+OR4T0-_OD8PrmNP%}#CzhGl5bx(i#AlX~dHQeZ%GcAPvOZgK2AFO)TrQR)Uh9y( zVr8R4wcm>G-A3K}g(J1DnXA8g-SPkNRhj&^+tSxwRNj3pY+?EaHU8w|Fy z`DorRwkX~!KQAt~TXQyg&)F@fR-H4rW_rHv{tKTR{^sQ6@y)xfPfchnxc2ka(<8g0 zCfv;YKPfviHd43YYRhl&mDi74O1L^V|DToI%W29kw-;^@h}s-)wK^oetLp3;tKD%a zGbBrEP5bWLUm7PoUH-LJ${y`o&-QFSd_mf}^K0bGHQoEveHPsB{Az4ovSX#EUUF=@ ztG;oC`xlkNKF006rnMPuJKsGmJ%8xIe)qrKm3IU7pLv}vQoj65obYZ(_1jlUU+HD< zT>UQo@4>v#t>@0LZ*e!hUSqH^;ZHeV)cX$O`wqL)W^6OtTyZ?x!SsI4P&&f@1&|d2WW}A7K}`TaF_Z*B4gP+g+Q?~7&A&!W zOa1A)v7=*&i_4)YS6p2dO+_WH2J64xTwl6B$j9~mvl`jOE-r3UFN+CI48AMzW#V1w z#q;I%*KKohxl&yJOZrND>-Xt4cbEHr_~ZC0S*ELl=U2zC?Cy!VU(U&cLoLZ#5e)r6S-jmcN)2h1o<4fM(z2EpN^paWZn)AnQ z)Rb7ym49C9Ts!Uhb&Yp5Zlt%%`@RU6EMT>3R3+ z-t+eY=l7WPd`(R-_K9Ag_+Vz?itY}U*H_j@UQU_N(XpJrt)nAiZ|1Y_E9AEq@?QVn zT#)4B@?_mU*1zkQ+C@LO{a~NSOC_cJ45Qcb%k-2!@oTN@?r_mYC0=_16M^bhozp_g a|1+59`Ks_~shk9sWelFKelF{r5}E++WH9DYf&a(&F&N4lY{aIR^Znl&L&H&nE={45epSJTRj3SQ0pT%}tbi-n&_ zZ?@7B#Yi)eK%tMNp}dMt)Z{~_LWIbQf{{*!{k{FUd(M5H=ic9Q?z!jO`<&nT-4P)x zY#nR?09X-<$3+3aBG{sLFSW8D_Mw%vh1Txg853kSn=SIi^jnbn=ogE6KLrB8;`34` z%W^3tDk2)Nm=?yMFvbf2Y_OrYz?f4AEhIa0gSR?pkE|!pybWu+)bt(hgz_FdlL79) zU#MxWldiT)UcY`P?g{BTJnb@SLnyx(EVt0IyD;q_Y9m5IpcSK>1?U~L%Qe=MgIR>3 z2Ry?*n&D?Ck*!>#ey%y~H9`8xKBFt4eO^Z?ui22nz1Cd@me=sZ!XVvmK1%;uI9deR zP7`x)yAMqLo~H3#fqc_$zVf^RpJ11NE{k%=q4m#+D@4aziK-1%C}-!J@E7UTw-uj+ zwCXNKq$}QiZ$jt0E{SXJ4k^=r)>D%;-J&}nyw4|^05Ih^Y zJWhS{AQ!A`f_)3&Iz2D46Rn6)1WUJ3W?nH`u_eb`^Z)HkQRJ)G@Gr9RgaI|=eqBV zex3$-3$M1Icg6dpD_dmLUMaDBuv05J>x>^TiVbZqP;PS_nbW~B1M!JBrU(uEPm2!I z*$7%Gt<-WlVLrpbAzuMK4oXICw32YX?i!$?a?g6@Cb z_}`DRH#O9YR$4%Z?d-l>{|JYh+XC2(apw@5EyQkuEoe09JF!-43#vQO7F4KG?&aES z2Kbji3vRsI1K6xXNbCgwO0ZD2-kS-J}WzH-+*Hvd!lxra4x*31K>GhG~zw=1J!(NDwsu?G? zDO;vbj_Zfq(}1D7*dz~SNh#+5 ztQ-BCkQy=7PA{uJtd51;sG>TT=J2Mh`Oh7`!fNs)1OAdMdZd05>z5X6>yhoCQ6~gdZ{koUm_y$qav+L{Lt~8Du+i+2Fsa?DRv4z55T*K@n z%JgCm;|~|gwfyHoxgRICK~^0&o>Na|Prky192jL%bvl&33r_A>MZrRJGMZGD>6b2q zJTi4ih<)4zbXUbLRvR;N*aY~Ue9uq&#SOCA)WIx2)@k<2R_6XVee1NE=y7oFR>E~M zd;hL!w-OG12yRZCi0AkwKucIb+T)lxA~c$sulP*8ww7xKc+V2g-ACuF zHe1nGUE?`Tcns&DU9-{K1|7#fmcthtyan7GPZIyWGk4H*FUorJ`+&ds_kat+RSU7R dG=sb -tbb::vector_iterator< Container, Value > Class Template Reference +tbb::flow::interface8::sequencer_node< T, A > Class Template Reference @@ -33,16 +33,353 @@
+
-
tbb::vector_iterator< Container, Value > Class Template Reference
+
tbb::flow::interface8::sequencer_node< T, A > Class Template Reference
-
The documentation for this class was generated from the following file:

diff --git a/doc/html/a00145.png b/doc/html/a00176.png similarity index 100% rename from doc/html/a00145.png rename to doc/html/a00176.png diff --git a/doc/html/a00177.html b/doc/html/a00177.html index 22b25c021d..8ce4effac5 100644 --- a/doc/html/a00177.html +++ b/doc/html/a00177.html @@ -4,7 +4,7 @@ -tbb::flow::interface8::write_once_node< T > Class Template Reference +tbb::flow::interface8::source_node< Output > Class Template Reference @@ -33,7 +33,7 @@ +List of all members
-
tbb::flow::interface8::write_once_node< T > Class Template Reference
+
tbb::flow::interface8::source_node< Output > Class Template Reference
+ +

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::write_once_node< T >:
+Inheritance diagram for tbb::flow::interface8::source_node< Output >:
- - -tbb::flow::interface8::overwrite_node< T > -tbb::flow::interface8::graph_node -tbb::flow::interface8::receiver< T > -tbb::flow::interface8::sender< T > + + +tbb::flow::interface8::graph_node +tbb::flow::interface8::sender< Output >
- - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - + + + - +

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 >
+
+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::receiver< T >
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor 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
-< 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

write_once_node (graph &g)
 Constructor.
 
write_once_node (const write_once_node &src)
 Copy constructor: call base class copy constructor.
 
+
+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)
 
- 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)
 
+
 
+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)
 
-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)
 
+
 
+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 ()
 
-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.
 
 
- Public Member Functions inherited from tbb::flow::interface8::graph_node
graph_node (graph &g)
 
- - - - - - - - - - + + +

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 ()
 
+void reset_node (reset_flags f)
 resets the source_node to its initial state
 
- - - - - - - - - + +

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
 
+class internal::source_task_bypass< source_node< output_type > >
 
- - - - - - - - - - - + + + + + + + +

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
 
- Protected Attributes inherited from tbb::flow::interface8::graph_node
+graphmy_graph
 
+graph_nodenext
 
+graph_nodeprev
 
+

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:
diff --git a/doc/html/a00177.png b/doc/html/a00177.png index 6919a098dfb96a008fc3a9a5c549365e9ad3a262..a8bbd54a4772774bff1e515d5690aa14b5b96d5d 100644 GIT binary patch literal 1766 zcmbVNeLT~79RF=2j&==qQ@Ie*;}2IJu8gfvxfo%gp)BQTQ!<7)Q@vh|m0k5ZF`*~Y zqC8~eabZ227G67S^DsA+r>>dVEyV7p`={=8ulwV^uh;ke{e0iA_xJJj`M$qdzW9Ae zy|sD(03bd0yZZqE91X<`T?B*|WBeANX0@+ZfQLq-fx_{3szg@X&rtNK@_0P$tU)uV zt4sC6`vZ_@x%B=TupIzaBzn5<4oHUmF*L!J)f=Awz26i2W}$V|EuVkIZs2;%(Ng$K zdr(1z?#MAN_kt0LUOEVZ0@8H@dh(cObQ-v=g>AjweK>CCqcA!2YOs~Tuf?5Kg)J|GN+Ca zLQA!}K}!wCFc;UK#yGIuthjV1C7xJLqi`7Dh#-v)mZq3mLgdV0Vw#x=Wn$_5_*oTd zZpnzqGfDYnMv3WSDP?upU^m~HT;*dZEr#YqhUHt6^hG0x8h+xlmr9HVNz$h(@-IBc zbSd?-z-|w+0g;FM5_rp}2a4OxbWtRI-AaBjR-vs`Za~E0jLrmh7%!73bDpJDAdU{e zxSm`H;pD4i7!0l@vKGVPTDq0q)!JIRsG|iDpQMg2&?s{popJ?)5E!r`{^!6nbmLH* z@vUcZb+K&^IFofk$t?(tpj##o5LF)Jg9HcE=bh<#uyjL?Mlut-!jaqUdzSD`CvX!`62{aU@yg;YO-v06C*UEMRA+hNdTArt=SaBd! zIAS{>8#uQh|GhR4Ytt8^*OkHEXX|l*KR4!kdi7YcG%PhZ$2oq^rT0ivTPn>oI{h|> zqf>v9NfWf*6SIf%IETiH=ItM*Zz^H1B_Regb#qAN}tFgx9a?vo}WOQ~- zVpMw7+XA=-No)#VqMe}qXx?AVPwHxXnp^_nA14%g*G#Z#`zbxWSQ2w|l*4&HV@Slf zX#5`x=B4Zia_WpE$G5M>#xdK~lDIX-jZ$z_yo=DwOAtdBy#A+GXzWgn$;2IJ`{6>+ z@#{Y?-RWz7t+GnRs*1UL1{%z!Bsq%*E<87Rn-Q5b79yM@p<=y{RoslrQl1BM(@!Oj z?96bG(~`ZgQpbr<`{4HlvOiBxCW}(Mr&Qu=+@K3l^5q>dz~LPlZkaG*T{(ySLvi8V z9v^ulI)E_rHl7$jXwD2b^jU`_5LgO2$l)v%enbddC1{f|9BrZb`=S?L5eNfN9`trZ zMlw4ce7I$t)Ev!qNEz0aA%XJ4$MEya_##az>-ceX1BA1!A8(HJ=hVVVJIHSujZ+F&n0MTQ)orjxcth7V9 zSRhvZD|K$=5vYVO;^;o+oiG@s1C8q53q6hh6%_M7`H%$uld}OV)crC8KpeEP;NiZ> z(zQc*Sio0)_pSIyUj{`*4Xvpqk*np}*SrE_M|Q?xZdWu!aeHjJIO95sB3(&8;dZrP z?|jvU`t99*gTL|7)7x}BTAV~nXM(tiHQ++rW{f7{Ri9gi)7G}(MPG_51s+gRL9`qv7F}TWQ0&<+H4WnCxe3@f)SOEF%)l2aW7zfdEoLs7cpZYUPuJCb1V#M~?qakqhQp58a!-2)_CxN#OpF_V73}iKULM%m*CR z>C*a)uKQcBlVMm-%VQZQq@D`(*Ov=CTPKF!76={$Di8HXI6PfXpm;~;4VGLpr*ea4 zc)JC{dFln)eeR33k+lofo$3CAVfb|m?3St2HPyb-CTCn9W^W)Z+#h?@nTevX!#z(CyU7wE0m>%sKR(5FOR{aG-ZzJ)^J z?95&(@QO>=?!N;C78$OtCxL5FsCf~-)E@#<(8GPh$M3E-J+1Ok=$=d#sWhkU(XnZ= z=;Vi#T--c#W0#%2=m;ZzO_MW$dd8AJk^Bw`cMXh@es5T{=t zqOF~5AWzo0NFt?8qFN`35)_2^hd$yB&86SIsATGB;n<84i?~+Rj(X?(R`va!MT5-3 z^gJTEf6^(ufgRuUR`gms_>@_wELsM6ezt)8w8O!k?Jt0{+U(rLaqiIz49*<}x*$Kb zTP5%uDm3FhQyxtfG<5vLQcpzrMPsokv&D~VfQ`8+1LQw&I0vV2y19wmO{|_HUTy+R z8BJA~$L+pg@L~_Vv_P$DHxC{N9unbjt4+xyPd0&q@#3%v_&xjbi{EljpwOY>bdo1a z0HR_Y#t(RGGkiT7U2jAEm4&hfLKGU4@!NlF=Gguu<~0$Mkmf-hIQ5)jnh9D+C1n!dmY3~J| zIiA6ob5tK2TRg=kb1NLXg%nOTwLWnZF=rEeGq3|zoQv7RQ)TWR#>+G@L3OKk!f<&W zWBg!1FkCVCeY{&CPQSz2#V`IDf;?(G1x;N&&}*qWjDK`U)caUzGF|*pVOhdvefBa3kNh((h3k`oANfc6s|$GY z5G$7YNc>c&W+(5kdv$9<+BF0T_*OKNLpwaY%t{!=5oomC3~h$5gdHj0lJaVIsK*3iVBscw{3g+$irBwRR2$MyPyoIZgJ$MxL{k> zFk^m{r2V^8-u!{N-mQV7v`=OW!W{9%HCt4)t(Hl+_h0%1;NveJ?477_|+2 zdb!J&KX@y+3oTS9Gd{l>)iLmvl!1R~nGv#-a>=m9IVMXM{a97y+Bb4x!6okxYc)ql z%WwTue1L}_BV#PWZQSpOLRKfbl2?J`kH20&835JVTUVp*`;IyOkRoIw$akx2#fsZI z;l$jzW>=AS`d_dEVvCNQCo2fri2nb=aM~$bFU&TWrfqNvzdTY3KB;aKMm52`iD(jY zaPz3J(@MyeV9F+*quxZ``Fsn&@YUf0`S9~xdqPr8-$xJ#~9#G~CwNdD^ zSCnv2NpD+6YsjoTq>#Qw5X4E+R)`?6d|nWonAK*jl`pLXLJFpSFSNwOGN7r(#GNmy zvxuAclZXzJvm3ms^#yCjt8ZFLrHbYjo_%w6N%qp*+mbwqn^KV^wdg2{;nx+qZ-kxo zN8X2xC;g068w%sb$eVbRZ|$4@ek?BMo~J58eMD9Nd5sguz<@8W*hcxB1; z^MvcGfcK?jO=s<^9YxGE68$&*YC6ZDRlVUn8&0a3n2o`vxLe^#Lb(~pw+l{1uro9PkX$e7yctAf znSE6o^}X4n7W@D(RlV*Y|D15Q|c(1N~V%Fr_~)rOn34z)$f9XmJ5ZoJ-QA~R1vtx?o?jGk0FWnm&O?`HS z4EkF&;mj$AeQm2>@iz%dwBBS!J_hZTYj);SyxuipC~>9xs! zEMc}c4Ku2a_NR<8F7R)x2X#xLrW^xg#|RVe3V|-LIsfzB1OwKt-6=6k<*+$!Xe;weQb#`h9U<{84F7_q}7=$s@*5MRuTD9?NTFN8~+ -tbb::zero_allocator< T, Allocator > Class Template Reference +tbb::spin_mutex Class Reference @@ -33,93 +33,142 @@
-
tbb::zero_allocator< T, Allocator > Class Template Reference
+
tbb::spin_mutex Class Reference
-

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

A lock that occupies a single byte. More...

-

#include <tbb_allocator.h>

+

#include <spin_mutex.h>

-Inheritance diagram for tbb::zero_allocator< T, Allocator >:
+Inheritance diagram for tbb::spin_mutex:
- - + +
- + +

Classes

struct  rebind
class  scoped_lock
 Represents acquisition of a mutex. More...
 
- - - - - - - - - - - - - - - - - -

-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)
 
 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.
 
+ + + + + + + +

+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 T, template< typename X > class Allocator = tbb_allocator>
-class tbb::zero_allocator< T, 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.

-

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:
+
+
The documentation for this class was generated from the following file:
    +
  • spin_mutex.h

diff --git a/doc/html/a00178.png b/doc/html/a00178.png index f03aec2f32170173a41127ef3c3e9c637b353f95..5dfc58974fe23922ad2b6e7edde1e485bc375a30 100644 GIT binary patch delta 684 zcmeyza+6iDGr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS+`V3DO$B+ufw{u@# zdZobQ8lE=i=KKH0mT$Wxq_?&2>iZdwb}V(`&~du7f5yyM#~CU|uQNBq>71`y=K7mG;n{2*I&;UmO(*BQni?i-Kke)G z9PR!{m)RA!7lv+Me5>fUj>^pG<=2ZRKYe&kNUrYqW4#xDiv_kA+)T4RvG#T0{X0&f zY*)4~D4h24)wXSQB3lCQ&065iWLBnll51;?$TI!dS#?Gt-P;^uU;RwFa^@n}mZ^*P z?ya{!eev9l-w&a!9rPD=?)0RZN-`lVH zQbv|_?q=)tUVTZr9JRupR!g?cex5vO%i>_AUC$p~SJLvdU(2ZFInl&HRdbSBfbnK- zjt8%IF~&HCGw!{s=Ts$nq4TrUlIe`BJ38EK7?mO~YLxw(K?L^A%VEJ{lY7hn^J zX9ntE({NCk%V||vW%2rV&8}O^&;7lV6MN>uK#oE z&mFb1UUZr-cyj&e+GC=0Mj3Xr>mdKIwz)t FCIFGFKU)9* delta 592 zcmV-W0o5!jhc7w*|HlpLMT==CUT!ZT5cOCJBvTqK>?>ww1A$4>Fr<$p#U*_t zDK1a=OcCDiy-@o@%t=X-p5Xx>o927T=ToC3o#Jtyd9~}Jyw=WveSRfYpHgd!wby(& z%cxcD0kwbVQ`&2v&BUAf{ljwKe`mhXuFurg`gD`-e%+kTZJ#>1ZG4>b7JYyAef;~g znRu}K)A>00?fqBhH%ZMCE?-Mh7}7_Q;*vg+6qodoq__;|V`erE0Dr*?U?2wbdA-IG z8qDXdGnCM1KAGPDB9lGN0%m3dfdLFd`T)cweE{OJ`n-!$12{$b8lYi6+>(*Dy)T9P?>SaPrf3K)NFNNc? zc03cV3)r5w&4e*<=?_~Qf1qzFpS8OSRL`!@ez?x)qtCL{%dy%4w0d;mZASj{A2$N8xtvPoLiwxi-I* zdX?X%wC5(IDOmkEP@b|}j?ejUe$E5rg#^Z|&= efIens -tbb::zero_allocator< void, Allocator > Class Template Reference +tbb::spin_rw_mutex_v3 Class Reference @@ -33,62 +33,196 @@
-
tbb::zero_allocator< void, Allocator > Class Template Reference
+
tbb::spin_rw_mutex_v3 Class Reference
-

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

Fast, unfair, spinning reader-writer lock with backoff and writer-preference. More...

-

#include <tbb_allocator.h>

+

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::zero_allocator< void, Allocator >:
+Inheritance diagram for tbb::spin_rw_mutex_v3:
- - + +
- + +

Classes

struct  rebind
class  scoped_lock
 The scoped locking pattern. More...
 
- - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +

-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
 

+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...
 
+ + + + + + + +

+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...
 
+ + + + + + + + + + +

+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

-

template<template< typename T > class Allocator>
-class tbb::zero_allocator< void, Allocator >

+

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
+
-

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
  • +

    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:
    +
  • spin_rw_mutex.h

diff --git a/doc/html/a00179.png b/doc/html/a00179.png index f97e606d73f34771792a992f3bb005438d9cd609..ff1efc94eefd31b2d4083e828ac11551d2a93292 100644 GIT binary patch delta 732 zcmV<20wevW1&IbBiBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA$f0#)` zK~#7F?Va0_^C%32KdPpx-~Wv_#&$p)d`kXgBa=x74@g2yBl(sPLbwA6lH?zQs3dv9 zASy|o&?WjB{}bNUbjz`_ERC1{n-PDSs3h|}L^P~NG~@B&c?|K#`o_6+nCzY|naMnp zn=J8j=X{TK!iF*a#o9C7PCBJme=b^wObKx1&nAeHM~}g$>sWlhxtI7MA=*#7&~p=OEF-BzYT>X==G|W}~VC>RZq_ z%k}EEQa?(x(cYRw=K^eGAt@AS#VAZqU7CI|6q~k)n$ok)s9B>G(N>N2e{$ce(azfI zHM;hs6J56`txnf1o#QYscf0Nq=}^~QgY9%(NjeQ9v?SGd?R_js@4-=`vAXlFWLP{K zLf=G^4xt@pe@&7$@D@e4Lj0PdlJwIUL?y`+22n}!ga^?OLbw3{K8`8La zcz;BI7x4+AvAL8=GBhUvEDo9hY-1=2;0c2$fF}&10G=?t+(QV#KmG%(i-V%RIF%Cs O0000ERLtq#por00%RWG`H+rHc`>K-ptd*F{Fa=?c9q^ zixqfW{o`i+|NpqOOUhxxw$yUo$$sl^D8>}AJknNDGUg5pog2=$V%4iiFrmya`Eb$O z$k=&FyfQz}urqjhWw1PG|F~+EEiZe_J)86Kk;&6-cO+~~eEBY|p*rc z%-_&dd*GX-jmo~z6}#shq@CsaQQ_lfVg2Bcx%tB{4S}wVHQEe}HV|A7W8kITyj)V!6d68iLG@*`$4KpF zuJAUKT5utC_qQ)EpFjU+&XjX({m)wd8F3P)pZ?UB{!%k}$vfSuz1tbQ6Sz-H?Up%z z*y@r^U78(p&E@|anog!=uX?-jT>bw0;+9c0t53E^U*^-9H?Ozm_h@O$a-}5zqhBjKGd5UEca)ezkL5135H~oOW)>ca~OCqay*Cx h;r)yOE-6WW8J(ls8$YIcbpcZogQu&X%Q~loCIG~r68ZoD diff --git a/doc/html/a00180.html b/doc/html/a00180.html new file mode 100644 index 0000000000..9d130f9777 --- /dev/null +++ b/doc/html/a00180.html @@ -0,0 +1,173 @@ + + + + + + +tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference + + + + + + + +
+ +
+
tbb::flow::interface8::split_node< TupleType, Allocator > Class Template Reference
+
+
+ +

split_node: accepts a tuple as input, forwards each element of the tuple to its + More...

+ +

#include <flow_graph.h>

+
+Inheritance diagram for tbb::flow::interface8::split_node< TupleType, Allocator >:
+
+
+ + +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
 
+ + + + + + + + + + + + + + + + + + + +

+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)
 
+ + + + + + + + + + + + + + +

+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
 
+

Detailed Description

+

template<typename TupleType, typename Allocator = cache_aligned_allocator<TupleType>>
+class tbb::flow::interface8::split_node< TupleType, Allocator >

+ +

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: +
+
+

+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/a00149.png b/doc/html/a00180.png similarity index 100% rename from doc/html/a00149.png rename to doc/html/a00180.png diff --git a/doc/html/a00181.html b/doc/html/a00181.html new file mode 100644 index 0000000000..5dcd61a201 --- /dev/null +++ b/doc/html/a00181.html @@ -0,0 +1,118 @@ + + + + + + +tbb::structured_task_group Class Reference + + + + + + + +
+ +
+
tbb::structured_task_group Class Reference
+
+
+
+Inheritance diagram for tbb::structured_task_group:
+
+
+ + +tbb::internal::task_group_base + +
+ + + + + + + + + + + + + + + + + + + +

+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 ()
 
+ + + + + + + + + + + + + + + +

+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. +

+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/a00150.png b/doc/html/a00181.png similarity index 100% rename from doc/html/a00150.png rename to doc/html/a00181.png diff --git a/doc/html/a00182.html b/doc/html/a00182.html new file mode 100644 index 0000000000..ad4a01c0c5 --- /dev/null +++ b/doc/html/a00182.html @@ -0,0 +1,56 @@ + + + + + + +tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference + + + + + + +
+ + + + + +
+
+
+
tbb::flow::interface8::internal::successor_cache< T, M > Class Template Reference
+
+
+
The documentation for this class was generated from the following file: +
+
+

+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/a00183.html b/doc/html/a00183.html new file mode 100644 index 0000000000..9439b4f113 --- /dev/null +++ b/doc/html/a00183.html @@ -0,0 +1,386 @@ + + + + + + +tbb::interface7::task_arena Class Reference + + + + + + + +
+ +
+
tbb::interface7::task_arena Class Reference
+
+
+ +

#include <task_arena.h>

+
+Inheritance diagram for tbb::interface7::task_arena:
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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 ()
 
+ + + + +

+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
+
+

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
  • +
+
+
+

+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/a00152.png b/doc/html/a00183.png similarity index 100% rename from doc/html/a00152.png rename to doc/html/a00183.png diff --git a/doc/html/a00184.html b/doc/html/a00184.html new file mode 100644 index 0000000000..8ddade1bfe --- /dev/null +++ b/doc/html/a00184.html @@ -0,0 +1,127 @@ + + + + + + +tbb::task_group Class Reference + + + + + + + +
+ +
+
tbb::task_group Class 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:
    +
  • task_group.h
  • +
+
+
+

+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/a00153.png b/doc/html/a00184.png similarity index 100% rename from doc/html/a00153.png rename to doc/html/a00184.png diff --git a/doc/html/a00185.html b/doc/html/a00185.html new file mode 100644 index 0000000000..0f4d9244e7 --- /dev/null +++ b/doc/html/a00185.html @@ -0,0 +1,114 @@ + + + + + + +tbb::internal::task_group_base Class Reference + + + + + + + +
+ +
+
tbb::internal::task_group_base Class Reference
+
+
+
+Inheritance diagram for tbb::internal::task_group_base:
+
+
+ + +tbb::structured_task_group +tbb::task_group + +
+ + + + + + + + + + + + + +

+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 ()
 
+ + + + + + + + + +

+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
  • +
+
+
+

+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/a00154.png b/doc/html/a00185.png similarity index 100% rename from doc/html/a00154.png rename to doc/html/a00185.png diff --git a/doc/html/a00286.html b/doc/html/a00186.html similarity index 72% rename from doc/html/a00286.html rename to doc/html/a00186.html index 33c2a1ab4a..e471d5b5df 100644 --- a/doc/html/a00286.html +++ b/doc/html/a00186.html @@ -4,7 +4,7 @@ -Member List +tbb::task_group_context Struct Reference @@ -33,19 +33,22 @@
-
tbb::pre_scan_tag Member List
+
tbb::task_group_context Struct Reference
-

This is the complete list of members for tbb::pre_scan_tag, including all inherited members.

- - -
is_final_scan() (defined in tbb::pre_scan_tag)tbb::pre_scan_taginlinestatic
+

#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. diff --git a/doc/html/a00187.html b/doc/html/a00187.html new file mode 100644 index 0000000000..42379a4f36 --- /dev/null +++ b/doc/html/a00187.html @@ -0,0 +1,91 @@ + + + + + + +tbb::task_handle< F > Class Template Reference + + + + + + + +
+ +
+
tbb::task_handle< F > Class Template Reference
+
+
+
+Inheritance diagram for tbb::task_handle< F >:
+
+
+ + + +
+ + + + + + +

+Public Member Functions

task_handle (const F &f)
 
+void operator() () const
 
+ + + + + + + + +

+Friends

+template<typename _F >
class internal::task_handle_task
 
+class task_group
 
+class structured_task_group
 
+
The documentation for this class was generated from the following file:
    +
  • task_group.h
  • +
+
+
+

+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/a00187.png b/doc/html/a00187.png new file mode 100644 index 0000000000000000000000000000000000000000..5f640e9e7369f83c7c304b581f01b7969a27ed2f GIT binary patch literal 538 zcmV+#0_FXQP)%jey0000OP)t-s|Ns90 z008Lh^>vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00050Nkle}aAxV+WgJEViTmbLt0x(|Zz_?sa!Ep|ZiQ)_#C&2(Xh0=?310Yhmk!}D)N;lFC zfJo^^x&aU=-AFe8BBdMY20)}wxM5~CUKqe=B}QTZL|QSXNBiab0axyJ`i{7-UJHOu zzs3Lvv|yC0JA>B8+FYvZV>`hTSpwSI6189WBaAt-WG@d_{EHi@MQ-xC_GJZoGrI+K zK6csd$7({iJ{P%5cLVw9`lI3S9%IzhR&6m#z#gM~rMDSCE4B9khVyp2DK~6zZtTnl zT8Z80b~d2vN53=w8)svCQ{0I4?5}$eY)T!d?%V4(1z?;M1&07*qoM6N<$f=U|nMF0Q* literal 0 HcmV?d00001 diff --git a/doc/html/a00266.html b/doc/html/a00188.html similarity index 55% rename from doc/html/a00266.html rename to doc/html/a00188.html index 31cafa2b8e..572565f8d2 100644 --- a/doc/html/a00266.html +++ b/doc/html/a00188.html @@ -4,7 +4,7 @@ -Member List +tbb::internal::task_handle_task< F > Class Template Reference @@ -33,22 +33,36 @@
+
-
tbb::atomic< T > Member List
+
tbb::internal::task_handle_task< F > Class Template Reference
- -

This is the complete list of members for tbb::atomic< T >, 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
+
+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
  • +
+

Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00188.png b/doc/html/a00188.png new file mode 100644 index 0000000000000000000000000000000000000000..229263c6223fbf739b854a1eafa70239ec72a2cf GIT binary patch literal 620 zcmeAS@N?(olHy`uVBq!ia0vp^mw`BdgBeI}`MY5*kdg@S332`Z|38rV;?396{zDUh zEHFNB-~emq9eE&^qa?^Lm;tB=1g@S6F=Aj~{O#%D7*fIbcJ9SVs}%%TtK*9P{qN6T zw1Q_*_BO9_J=4&V4z6Zi=6y+NW)d@0cwMbLgK92$PI^?lJ6QT(qo$9#=dZr+*BAY% zS#|Se-dgo*nZYwpz1992@^0;EWBr*bcaJIiy}vVib>SSZce>)vPvSPuXR}Z~wbMM* zThHrK?VWcjp8S*jCW*{1nY84`lF2GZ(*x9vH*aL9XcIq>!1LluRj<0~g3HmF7Apnk ze!9c_L*7HZ;l~nThnh>A3U)791m>48b@*E`9#Nmm@My9h!$(gP=?~dw&ag2vOLRe1 zrI%KP-`@Z0=RbLe!@oAbz4@Y|FyZKx_ss7JGm>b1;tO<_u>(Yb4jd4f_C?}?XREQI~(fzyVUsIoIb7pee4sZUdMfteZM?=XZf2a z->&bxeDv>?WuMRgUTOQita_i__ZYdej;pR~t4D5rYgIc + + + + + +tbb::task_scheduler_init Class Reference + + + + + + + + +
+ +

Class delimiting the scope of task scheduler activity. + More...

+ +

#include <task_scheduler_init.h>

+
+Inheritance diagram for tbb::task_scheduler_init:
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + +

+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.
 
+ + + + +

+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
+
+ +

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
  • +
+
+
+

+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/a00158.png b/doc/html/a00189.png similarity index 100% rename from doc/html/a00158.png rename to doc/html/a00189.png diff --git a/doc/html/a00190.html b/doc/html/a00190.html new file mode 100644 index 0000000000..bfcaaca054 --- /dev/null +++ b/doc/html/a00190.html @@ -0,0 +1,269 @@ + + + + + + +tbb::interface6::task_scheduler_observer Class Reference + + + + + + + +
+ +
+
tbb::interface6::task_scheduler_observer Class Reference
+
+
+
+Inheritance diagram for tbb::interface6::task_scheduler_observer:
+
+
+ + +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
 
+

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
  • +
+
+
+

+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/a00159.png b/doc/html/a00190.png similarity index 100% rename from doc/html/a00159.png rename to doc/html/a00190.png diff --git a/doc/html/a00191.html b/doc/html/a00191.html new file mode 100644 index 0000000000..da0c35029b --- /dev/null +++ b/doc/html/a00191.html @@ -0,0 +1,185 @@ + + + + + + +tbb::internal::task_scheduler_observer_v3 Class Reference + + + + + + + +
+ +
+
tbb::internal::task_scheduler_observer_v3 Class Reference
+
+
+
+Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
+
+
+ + +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.
 
+ + + + + + + +

+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
+
+ +

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. +

+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/a00191.png b/doc/html/a00191.png new file mode 100644 index 0000000000000000000000000000000000000000..b87088c72d9c41832275a3a031b419b26a0c66d6 GIT binary patch literal 906 zcmeAS@N?(olHy`uVBq!ia0vp^-+?%QgBeJE@)kA+QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;4=V13AKCq~|J|0(uNtiXU-V7OeRJ@3akb9ws{Q*m zs%*^+UMBUqa$QB?4hFe*K7S{0-D_Xd<@z}3jAQ^ugmL)uzf0dee$E`bGFQn&fBQ?V zuV-I=<(#&0*{=6Lr$&2!JrR=mUHNX_??2C~_nrS7V7Gj)MD{xCUA@}xUeDk4C;smH z@1JVc-i|qV^KYNJ&Cc(}cUiwAnesVClTyyCY<^#(= zFnDw<*(KjU=g{O=b*KC^ZC1aFJ3Zr%RT+b3!Ft1dwzZi0);vW{tAb(Dzg--~n2CRg?M24$?7esRu}P3-yS-!9Be`uX&isNamqHsO7R z5t(o0zSXVx`by=E^D>Psil^gD?A}aK3{pur^k>^U>%IB?tLxX-eCc^tr|x8U<@=)d zv*xA9Rjv9xFMj9Nkp46C=X_5I&$W%Y@LN@2;>RO7k#m;v*GdFRASUu&LJdLN363}5o?mDmG&=4Zl%>g(4( zf0w;+6)>U_vhFG=MSf7co4$0TsGrM|*gvYZ^MPTel>-#7+)&!x0g9=$Tb~`4cVA@O Vo7?ef9WdiCc)I$ztaD0e0szS&(CYvI literal 0 HcmV?d00001 diff --git a/doc/html/a00192.html b/doc/html/a00192.html new file mode 100644 index 0000000000..dcdff54f26 --- /dev/null +++ b/doc/html/a00192.html @@ -0,0 +1,160 @@ + + + + + + +tbb::tbb_allocator< T > Class Template Reference + + + + + + + +
+ +
+
tbb::tbb_allocator< T > Class Template Reference
+
+
+ +

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

+ +

#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

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

+

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

+ +

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. +

+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/a00193.html b/doc/html/a00193.html new file mode 100644 index 0000000000..6489324ab9 --- /dev/null +++ b/doc/html/a00193.html @@ -0,0 +1,88 @@ + + + + + + +tbb::tbb_allocator< void > Class Template Reference + + + + + + + +
+ +
+
tbb::tbb_allocator< void > Class Template Reference
+
+
+ +

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

+ +

#include <tbb_allocator.h>

+ + + + +

+Classes

struct  rebind
 
+ + + + + + + +

+Public Types

+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 
+

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
  • +
+
+
+

+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/a00194.html b/doc/html/a00194.html new file mode 100644 index 0000000000..da5d7c2de6 --- /dev/null +++ b/doc/html/a00194.html @@ -0,0 +1,226 @@ + + + + + + +tbb::tbb_exception Class Reference + + + + + + + +
+ +
+
tbb::tbb_exception Class Referenceabstract
+
+
+ +

Interface to be implemented by all exceptions TBB recognizes and propagates across the threads. + More...

+ +

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::tbb_exception:
+
+
+ + +tbb::captured_exception +tbb::movable_exception< ExceptionData > + +
+ + + + + + + + + + + + + + + + + + + +

+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)
 
+

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.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + +
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
  • +
+
+
+

+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/a00194.png b/doc/html/a00194.png new file mode 100644 index 0000000000000000000000000000000000000000..a067095e06ef057d1150b21de7f8d9c17cb3c66c GIT binary patch literal 1423 zcmb_ceN>WH7=OvwTbV=3(z38ot^6n^tAq-*9ZbQ^%uk#%4Q)guR7P?v!BcHvUzDj- zP-@OpAS0=Rg$fnqk!`LL{7CWh6q7P@_L`#TUbpu5&d%9A=id8#-E*Jk_j}Hh8yOMm zGH>ZT003MlVdN+PK-ghfIL8S-332U6`0|MSIwoX#dKwmge* zteA3x204}W`3WRltW;%V8Aht5f8;ALJ$_9u-f8&M(LRMbD`z2rU)W)(Q@6LTk9Uj) zEkmyMyqieUJ(Cs(TBWV`t1{&3EMVtMYT;(9bYvr~&g>+lLqHyll(Q-hwSq$R_MVjj ztnd9K1u!YIfDm?o26WZi5N`J+>Z1S&e(81wyZ{^isd0h)|5n$pEX#L8xP~77RMBNa zkUwHM^G}+VSfe%tY+_}Udh{ThCBOt7(pF)5TowEVVwktZQ!~x#cvH~*SCn-aP=W?Ukze{Q8TU8_wTUh_|{n10S5uM;Tx*I zyYN3Tlo!q@W?p^e!~UjugM06i;#}d=(l{@4$tiPUHu>ZNIO!Sfq*+iJ$gR|#7V;h) zIoCQ=1$m%{7l~}$a~VWCYCGgpXmVh&n-W;`@s=ab(^9)oNE$;zXtZRqr173lQUcWD z3Jtb$VY=R`Y!5FNgqE?Fgk^4Qx#FUdZ{Ev$Zlso@(L?Ww`My$oXVzL0*Ib#RrrAWc zbDtYosl)GaSo#ySyj~xW*8jY+de3+yKELJCvWv32W@D`%w$G_0-tjHLA`Lvh*S8jz zy2M&)>}Jwqf;=CZUTn}W-!!?WZN&2G;Os^6=2$_UXr%5LldMnN&mQyb-Otq!A9^)J z;ZF9N__uSJW{z}ssyisdt?Z5rI!XgIXSrnsEVFoF%IaGF`(!;n$p8DQsjbUZE`qhY zu7`l~P*GwEkHDM}nZ=c~uZNIE&`FVL$v_2mbFnLN`%UK3ZBtJElu61H + + + + + +tbb::internal::tbb_exception_ptr Class Reference + + + + + + + +
+ +
+
tbb::internal::tbb_exception_ptr Class Reference
+
+
+ +

Exception container that preserves the exact copy of the original exception. + More...

+ +

#include <tbb_exception.h>

+ + + + + + + + +

+Public Member Functions

void destroy () throw ()
 Destroys this objects. More...
 
+void throw_self ()
 Throws the contained exception .
 
+ + + + + + + + +

+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

+

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 (
)
+
+ +

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
  • +
+
+
+

+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/a00196.html b/doc/html/a00196.html new file mode 100644 index 0000000000..82bacc0faa --- /dev/null +++ b/doc/html/a00196.html @@ -0,0 +1,185 @@ + + + + + + +tbb::internal::tbb_thread_v3 Class Reference + + + + + + + +
+ +
+
tbb::internal::tbb_thread_v3 Class Reference
+
+
+ +

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

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)
 
+

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. +

+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/a00197.html b/doc/html/a00197.html index b0a1ffddcd..88d70c5e7f 100644 --- a/doc/html/a00197.html +++ b/doc/html/a00197.html @@ -4,7 +4,7 @@ -flow_graph.h File Reference +tbb::thread_bound_filter Class Reference @@ -20,250 +20,135 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • -
  • Files
  • +
  • Classes
  • +
  • Files
  • -
    flow_graph.h File Reference
    +
    tbb::thread_bound_filter Class Reference
    -

    The graph related classes and functions. -More...

    +

    A stage in a pipeline served by a user thread. + More...

    + +

    #include <pipeline.h>

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

    -Classes

    class  tbb::flow::interface8::internal::successor_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::edge_container< C >
     
    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::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::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::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::internal::edge_container< C >
     
    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
     The graph class. 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...
     
    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::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::continue_node< Output >
     Implements an executable node that supports continue_msg -> Output. More...
     
    class  tbb::flow::interface8::overwrite_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::buffer_node< T, A >
     Forwards messages in arbitrary order. More...
     
    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::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::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, reserving >
     
    class  tbb::flow::interface8::join_node< OutputTuple, queueing >
     
    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 >
     
    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, T3 >
     
    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, 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, T8 >
     
    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< 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<>, 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, Allocator >
     Implements a async node. More...
     
    - - - - -

    -Namespaces

     tbb
     The namespace tbb contains all components of the library.
     
    - - - - -

    -Constant Groups

     tbb
     The namespace tbb contains all components of the library.
     
    - - + - - - - + +

    -Enumerations

    enum  concurrency { unlimited = 0, -serial = 1 +

    +Public Types

    enum  result_type { success, +item_not_available, +end_of_stream }
     An enumeration the provides the two most common concurrency levels: unlimited and serial.
     
    enum  reset_flags { rf_reset_protocol = 0, -rf_reset_bodies = 1<<0, -rf_clear_edges = 1<<1 - }
     
     
    + + + + + + +

    +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...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

    -Functions

    -static tbb::task * tbb::flow::interface8::combine_tasks (tbb::task *left, tbb::task *right)
     
    -template<typename T >
    void tbb::flow::interface8::make_edge (sender< T > &p, receiver< T > &s)
     Makes an edge between a single predecessor and a single successor.
     
    -template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
    void tbb::flow::interface8::make_edge (T &output, V &input)
     
    -template<typename T , typename R , typename = typename T::output_ports_type>
    void tbb::flow::interface8::make_edge (T &output, receiver< R > &input)
     
    -template<typename S , typename V , typename = typename V::input_ports_type>
    void tbb::flow::interface8::make_edge (sender< S > &output, V &input)
     
    -template<typename T >
    void tbb::flow::interface8::remove_edge (sender< T > &p, receiver< T > &s)
     Removes an edge between a single predecessor and a single successor.
     
    -template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
    void tbb::flow::interface8::remove_edge (T &output, V &input)
     
    -template<typename T , typename R , typename = typename T::output_ports_type>
    void tbb::flow::interface8::remove_edge (T &output, receiver< R > &input)
     
    -template<typename S , typename V , typename = typename V::input_ports_type>
    void tbb::flow::interface8::remove_edge (sender< S > &output, V &input)
     
    -template<typename Body , typename Node >
    Body tbb::flow::interface8::copy_body (Node &n)
     Returns a copy of the body from a function or continue node.
     

    +Protected Member Functions

    thread_bound_filter (mode filter_mode)
     
    - - - + + + + + + + + + + + + + + + + +

    -Variables

    -static tbb::task *const tbb::flow::interface8::SUCCESSFULLY_ENQUEUED = (task *)-1
     

    +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

    -

    The graph related classes and functions.

    -

    There are some applications that best express dependencies as messages passed between nodes in a graph. These messages may contain data or simply act as signals that a predecessors has completed. The graph class and its associated node classes can be used to express such applications.

    -
    +

    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.

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

    Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00197.png b/doc/html/a00197.png new file mode 100644 index 0000000000000000000000000000000000000000..7eab1d5112ca5b7d7067137bdd3c71a2d17e0a60 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^6M?vcgBeI(xc}1$NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~wRpNXhEy=Vo%?XoDgz!jf4eznfA9b3 z>Y%~x_T*7snmXU{tms?Lv!?BzF>@(Xak;;Xk?E_-WF)-TxaNfTc8QHf_ ztvt+lVL}T zw1d_q$-8+sr(BZ!>U46-CrQSX#Y!v!!G=s7D7Y!?sMAoQ{A3(>!Xa{@5zc*_N?mnm%MAgv*+4NJx}+Y zO8s^9SNFZ&>YKK`+IP~uMfa2@i3GbL@MY=J*z2iG4}|tH1Wi2m;xr5%i8Q}^7ZPYA@=sKjY2M)Z4A+~ZRZP)Hhyw=iRe5lsWt0fMn2o5 zEB5o*zHJe_myfKNnRz3ND zeb22U_4C{>u97{yxb)H9GmCpKe&1`>zj@cvo7vv4@5M!*o8x}(oz&LqxBUBE+pgqX uV@a6rZ2Q`m8|-MH+l%e5ojD`)k)KR)#N literal 0 HcmV?d00001 diff --git a/doc/html/a00198.html b/doc/html/a00198.html new file mode 100644 index 0000000000..1e739519a9 --- /dev/null +++ b/doc/html/a00198.html @@ -0,0 +1,96 @@ + + + + + + +tbb::internal::thread_closure_0< F > Struct Template Reference + + + + + + + +
    + +
    +
    tbb::internal::thread_closure_0< F > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for tbb::internal::thread_closure_0< F >:
    +
    +
    + + +tbb::internal::thread_closure_base + +
    + + + + + + + + + +

    +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)
     
    + + + +

    +Static Public Member Functions

    +static __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
     
    + + + +

    +Public Attributes

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

    +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/a00198.png b/doc/html/a00198.png new file mode 100644 index 0000000000000000000000000000000000000000..ca33e7fe184cb31e2bdd96f46b569d3fabe4e756 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^*MK;HgBeH$U8%kaq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0R(iTPhEy=Vo%=fPi2_fnz2B03|CQfA zVY;C<)AQEVGRKfPlOA~2^t}CfdXvuSiiC+vE*fNd2ICdU-emN~_KcD+8s`Na(^;^4A&#a5R zlb#50yv9k_2vY3jX@wb!SGTwi`~S9ptghVA>c&#u*7h%OXz^ET&`l1D z^n!J=m;*5Q7^={fJaG5WT>8<0NrD%q!g1l(TdyWh-R{r8=o)dCVa|eyb{?;-9x`n1 z+sOXlL+7=#=l=^wtxmhJ&*wg3aS+pGbz2d6L z>i-5RQ58{UHTR?1-U&yw3%BpJTAz{Hz36LOn9d=I(#wkJb7vKQ{(utH|DJ7Q*nBSk z^!HvevGS7dG|x*IlzR>;OXk;vd$@?2>?-c Bfam}K literal 0 HcmV?d00001 diff --git a/doc/html/a00199.html b/doc/html/a00199.html index b1ae387ccc..835424dabf 100644 --- a/doc/html/a00199.html +++ b/doc/html/a00199.html @@ -4,7 +4,7 @@ -memory_pool.h File Reference +tbb::internal::thread_closure_1< F, X > Struct Template Reference @@ -20,73 +20,84 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • -
  • Files
  • +
  • Classes
  • +
  • Files
  • -
    memory_pool.h File 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_1< F, X >:
    +
    +
    + + +tbb::internal::thread_closure_base + +
    - - - - - - - - - - - - - - - - + + + + + + + +

    -Classes

    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 >
     
    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 >
     
    class  tbb::interface6::memory_pool< Alloc >
     Thread-safe growable pool allocator for variable-size requests. More...
     
    class  tbb::interface6::fixed_pool
     

    +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)
     
    - - - - + + + +

    -Namespaces

     tbb
     The namespace tbb contains all components of the library.
     

    +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.
     
    - - - - -

    -Constant Groups

     tbb
     The namespace tbb contains all components of the library.
     
    - - - - - - - + + + + +

    -Functions

    -template<typename T , typename U , typename P >
    bool tbb::interface6::operator== (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
     
    -template<typename T , typename U , typename P >
    bool tbb::interface6::operator!= (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
     

    +Public Attributes

    +F function
     
    +X arg1
     
    +

    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
    • +

    diff --git a/doc/html/a00199.png b/doc/html/a00199.png new file mode 100644 index 0000000000000000000000000000000000000000..961925b53400cd0df57f3333002868179b5c8a9f GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|`zk>Eakt!T5IW&Ab)^9#?<8p#T3TTQjF@ zJRDUT=&P02c*M+dCQVxMLu$b!5l`ljNlKagCTFkzN@?4z?pdTY*|bL` zcg1X5v;VW6iaY4nJ^SCVY)V{X-2ZzYpG9x}@csAggrDa9BCAt1tW6TrWPQKDu>}~aFZOq%#yVjM3cz!!|IBnO=9HA|;M|Mx|y}5mw%Ie9N zzV5TzFe&B9sjpX7S%3LoEwY+9Ab!`?yG_$(%spD3 zb|rV0=dm(3>&LMdY`?F&wsxz^*IhMk>!-eBz3@AI%jq}U=LOy`t<||)>MOgJ*C=|X zs9Egxb8=;O&5qPv*R3ww{n{%?7+)_OIh_P=BGhKwh3-v6kya_h-o^{fx4);tJE)G#pfT0~$P}7BEaSabQ%+Y+!P^ z#K79Igpo_YlUYPz5}JZKFU_T2SSB(&%7!Uq`nBuo^0IyPOa;I&<~h)|>!!8zU2A>b ztI;_}Y?$}%SP;*+)x-MS`-y8ONS6FuI8%A;_OyrZzyH*Jy*%ym)hx+Ve7-YOOTL}h zUM6^TtKaph+uoU%z2qtB%*uP36@RUC>tdBRQ`^s$7-vr3B6wtXd5r3*z}{_TwJ(3Y zsFPGND0*6zbyc?NccRCaBJ~ZbFJIrh=5TkC^@8k(#Y>lcci8N{(Td^g(%Z!%i<_C> z)w_rNzAafgJ8#m)xfjn>h?kuItFV~C?Od+);%_~%T6eh@d_SKt{ibyKm1UW)dw#8Z zy}SA4u4TKfvCUk2hHLh^=yd+wdD4%nu5W!Jt|j%r{?(L6{0`6gF8}|=ob$TraOD;a nNmh$1u)ygTe~DWM4f%rbtL literal 0 HcmV?d00001 diff --git a/doc/html/a00200.html b/doc/html/a00200.html new file mode 100644 index 0000000000..1882a166ed --- /dev/null +++ b/doc/html/a00200.html @@ -0,0 +1,103 @@ + + + + + + +tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference + + + + + + + +
    + +
    +
    tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
    +
    +
    + + +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
    +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
     
    +Y arg2
     
    +
    The documentation for this struct was generated from the following file:
      +
    • tbb_thread.h
    • +
    +
    +
    +

    +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/a00200.png b/doc/html/a00200.png new file mode 100644 index 0000000000000000000000000000000000000000..aa52099a9d5bbc6b96933a805511a865e9ce5c50 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^zkoP^gBeJ&Z=KN&q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0UU<4VhEy=Vo%^=vi53s*?8mG2{8zsJ zk)4h6!;PIcQ#LCd?aUQua`X5+JvDOLjHHQ6I%d6?B;qR^J898N-Ktx+KBn!OZSGlQ z#ojIL`D%saUbFvmmM*zu*Iifq@P5y{psJm9f1|^1$cdi%wO8uR|84UwXT3iqtYtp? ztfjL3tH0A%rvCU*cKLJMp3R>WJ(=%z{gT`C$0GV~;hQb*LMP?!yv-Bd94heJ@6VUd zD~?^8WOCsy_xrs+mrhYpE?)qA!5 zSKN8C?sLzd72gAvO?$ZMd)2QAU)ieOAGx*Sz2fQq%~$1*`@N16+V(WhIEMF@Zt0vK zFL__ReELeR{NmYP-wyr$`sbKO!V|rp(W{qL+-Oz2cq;bZsdn$Lj$V@TPjAdyAkQuN zcBX;Td1JrT+$Hr7r8i9y6>nYidG^!wj&_gR1Irr?8DG2aHI!S_zs#Cxx{1Tps+qaP z%cM(Zuimcrhxg0#o%dY!|6C~h{Fn5Xymi01-oNf!`Qe$L+)<0@nYQ7g`+DNSe%xwZ z`(f^pb^Uk#PWkD=Xz(h9?ZEnA`#%iMe;Iy>?OCSB%u|wlNd3hBnJbuWuE2tO + + + + + +tbb::internal::thread_closure_base 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 Member Functions

    +void * operator new (size_t size)
     
    +void operator delete (void *ptr)
     
    +
    The documentation for this struct was generated from the following file:
      +
    • tbb_thread.h
    • +
    +
    +
    +

    +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/a00201.png b/doc/html/a00201.png new file mode 100644 index 0000000000000000000000000000000000000000..0324577e724e80dc1c635675c7fc1bf9494f27bb GIT binary patch literal 1409 zcmaJ>c~H|w6yAg&ghCLC29N=YNfiu7B4{{NTm2 zC>WHnpg>SdkYbXbU_>z-Q>}7|Q7QpJNPl6bGxm>mXLk1;-@Nbbn{PIsLHE(q zG1UP8=uv#V`~lEF!Zt%&13oLIq)GTPX6z2|R;g65IXqS8|NJ(L7um21m({S;aJo%`@$t1Ss_EQ$+f5Un=U*~E#hDM(bE^L;vE4ir zV?M#jeAuBN3bzMMPlUXanCk;qm}Sf#8+?8yaj5Z2L_`1SUs!Y04oTvc@^nV#g~9Yv zsmKY!z~x(UtT)e1%(E);{0@r`1yXsZh`PTSRal1|Q+K;hMfB^Hcp*)w`LXCT`G)+fC(NnEler!Dg1HV~{N7vk0_C>D2;uubB zx;IwL-n;3{LVB6v>?5G-9@V3B`0kJO&0J~|p|$)}*;Nm0XMI}Xpr84ZMVB@qDLk@a z_F%r_1*=-@P1_Z!Z|@qa33rv9aBcaJ30|ZQA|Bb%0Ce{oxY4Gs##*4BcJ|lP?r_j0 zA{@XfnbU5t3IY#041oh6mVX}&AdvH5#c8#MOyQuxEfm~bFaeg$Y9qKfKuOf;ohxAm z%>RF3OTtq}zatgbt;v8miyk*a^|D%CIm5H?7&U|YW5r_#h%AV##R2Zj%NjIb>CnT% zgVn}z$Pj23B{0zd^-v8*{wMtY%>;+@ql={L@n)Stug%C>37B1!0$-7mZDb&qRcXYD z@l3R@zuP?}Tv_%$1tz3H&i#7n7x{`H;_w%CO+oD3ts-1f)RE$D{IQ=rn5Z{21` zlZ_?|iA&k2X=jl#gwr**O)Dj{YHP&H{DH*g{kd#Ufi&jMshW`GK>Zh;3+pR}l|J|x zbalARRXKjfq&m|Z+4h(`fh@fEG`4LnPcbyVSI>s;cwqO@(ziazYwKQKsucuw**FiX zO6_LGs^xD5{N;Pk(jJeeuv+xfqXV#>arhFU$_puJ*zD$eqi#@E7g%02Ci#QMA>DAR z{wStdkuN}(@Xk}M^9~ZLF6|RvSQHc$M!$X@Ex`dHxNn4sE(drMyE+yH|Y%}=6 zM}@6RyQZZ1L{t{pQ)QCs-W^x;gw6Yd7IW?kJNdcCZstvB=9YysoK!1T&C-VbZ_Y*r_)wJtigoP0mr4jnKM4*PKy|1Qw*@-> z^0S@xCh6$YP~#44T6CFE<%|6I!|e?3rHga>xK+WGTJwFwX9eVfjqFa6sOLCeiX9L+ zhFJL-VYIsG>|`<<(#px`lRs%soi<*~>WkA?2rP1{T&eyYEEI0SKEV<}Sz?Ob8kf}c zUVDYX9pko?K!nM#E1VkhJ+8j~-61imJvqw{e&S2-f5^!YiP|8GDI_~l57uH6>heEA qa{srGj636tC<5gu`TTeBn1{0#(SuibR|QD*M+zw3bgxDaX7=BA!)Z+b literal 0 HcmV?d00001 diff --git a/doc/html/a00202.html b/doc/html/a00202.html new file mode 100644 index 0000000000..c0d657ae76 --- /dev/null +++ b/doc/html/a00202.html @@ -0,0 +1,101 @@ + + + + + + +tbb::tick_count Class Reference + + + + + + + + +
    + +

    Absolute timestamp. + More...

    + +

    #include <tick_count.h>

    + + + + + +

    +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.
     
    +

    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. +

    +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/a00203.html b/doc/html/a00203.html new file mode 100644 index 0000000000..bee08d8bba --- /dev/null +++ b/doc/html/a00203.html @@ -0,0 +1,91 @@ + + + + + + +tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference + + + + + + + +
    + +
    +
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor Struct Reference
    +
    +
    + + + + +

    +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
     
    +
    The documentation for this struct was generated from the following file: +
    +
    +

    +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/a00204.html b/doc/html/a00204.html new file mode 100644 index 0000000000..78601c2cc2 --- /dev/null +++ b/doc/html/a00204.html @@ -0,0 +1,69 @@ + + + + + + +tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference + + + + + + + +
    + +
    +
    tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    +typedef tbb::internal::true_type type
     
    +typedef tbb::internal::true_type type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h
    • +
    +
    +
    +

    +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/a00205.html b/doc/html/a00205.html new file mode 100644 index 0000000000..00d3f894f0 --- /dev/null +++ b/doc/html/a00205.html @@ -0,0 +1,66 @@ + + + + + + +tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference + + + + + + + +
    + +
    +
    tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    +typedef tbb::internal::false_type type
     
    +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_priority_queue.h
    • +
    +
    +
    +

    +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/a00281.html b/doc/html/a00206.html similarity index 55% rename from doc/html/a00281.html rename to doc/html/a00206.html index 337934f20c..543d16b111 100644 --- a/doc/html/a00281.html +++ b/doc/html/a00206.html @@ -4,7 +4,7 @@ -Member List +tbb::user_abort Class Reference @@ -33,22 +33,43 @@
    +
    -
    tbb::null_mutex Member List
    +
    tbb::user_abort Class Reference
    -

    This is the complete list of members for tbb::null_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
    +

    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. diff --git a/doc/html/a00206.png b/doc/html/a00206.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f23345c2fa666d8d20a82a156062980529dae0 GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^2|ygc!3-oX+B7T&QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;(_kWU+81WOu9aPcm*PF0pg1wGLX}H&YA&*Ov?M;^sURHT*vF}Xt z)Qxub_hNh|MfI_4&D#4XVbXpeN6L@oYrC&zZ~AdvPu}*XkLyLR+|cK&S-nH_$ZmB{ z-j8Cw?KKa1^0@tWXYBc@w@Y`zlG=BoHA@{Pt-H)RN#qk}( z2Ru7(x`g|mqj)K!gO4~vO9`Wc2MTpUoD1YqhEFe;8YZ0QJhj1&@lMk6w3%<6n{I7* z`i*1lPg8?`_2;s_ZEbrt%QUg-*184jlH{g^Zq>K8Pgol%#JBB4YOdN1J@$g@#Vfsc zY0NOokJ=%A<-%{K`>b&r)>;bZoO__TXSXYR`Udrk-5KZBOZraE+4jQlWU$k1R|d&F uS~KjwF)04c<`THX%Aol5a8}y1qx{Sa7XMyw_mu&ofWgz%&t;ucLK6U>hr>?* literal 0 HcmV?d00001 diff --git a/doc/html/a00207.html b/doc/html/a00207.html new file mode 100644 index 0000000000..e77c21fc0b --- /dev/null +++ b/doc/html/a00207.html @@ -0,0 +1,91 @@ + + + + + + +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class Reference + + + + + + + +
    + +
    +
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Class 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 >
     
    +
    The documentation for this class was generated from the following file:
      +
    • concurrent_unordered_map.h
    • +
    +
    +
    +

    +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/a00207.png b/doc/html/a00207.png new file mode 100644 index 0000000000000000000000000000000000000000..d6754637d9f9a87cfc2318a7afd6a9ed9d4d9816 GIT binary patch literal 1711 zcmcIleN>WH9DYf&a(&F&N4lY{aIR^Znl&L&H&nE={45epSJTRj3SQ0pT%}tbi-n&_ zZ?@7B#Yi)eK%tMNp}dMt)Z{~_LWIbQf{{*!{k{FUd(M5H=ic9Q?z!jO`<&nT-4P)x zY#nR?09X-<$3+3aBG{sLFSW8D_Mw%vh1Txg853kSn=SIi^jnbn=ogE6KLrB8;`34` z%W^3tDk2)Nm=?yMFvbf2Y_OrYz?f4AEhIa0gSR?pkE|!pybWu+)bt(hgz_FdlL79) zU#MxWldiT)UcY`P?g{BTJnb@SLnyx(EVt0IyD;q_Y9m5IpcSK>1?U~L%Qe=MgIR>3 z2Ry?*n&D?Ck*!>#ey%y~H9`8xKBFt4eO^Z?ui22nz1Cd@me=sZ!XVvmK1%;uI9deR zP7`x)yAMqLo~H3#fqc_$zVf^RpJ11NE{k%=q4m#+D@4aziK-1%C}-!J@E7UTw-uj+ zwCXNKq$}QiZ$jt0E{SXJ4k^=r)>D%;-J&}nyw4|^05Ih^Y zJWhS{AQ!A`f_)3&Iz2D46Rn6)1WUJ3W?nH`u_eb`^Z)HkQRJ)G@Gr9RgaI|=eqBV zex3$-3$M1Icg6dpD_dmLUMaDBuv05J>x>^TiVbZqP;PS_nbW~B1M!JBrU(uEPm2!I z*$7%Gt<-WlVLrpbAzuMK4oXICw32YX?i!$?a?g6@Cb z_}`DRH#O9YR$4%Z?d-l>{|JYh+XC2(apw@5EyQkuEoe09JF!-43#vQO7F4KG?&aES z2Kbji3vRsI1K6xXNbCgwO0ZD2-kS-J}WzH-+*Hvd!lxra4x*31K>GhG~zw=1J!(NDwsu?G? zDO;vbj_Zfq(}1D7*dz~SNh#+5 ztQ-BCkQy=7PA{uJtd51;sG>TT=J2Mh`Oh7`!fNs)1OAdMdZd05>z5X6>yhoCQ6~gdZ{koUm_y$qav+L{Lt~8Du+i+2Fsa?DRv4z55T*K@n z%JgCm;|~|gwfyHoxgRICK~^0&o>Na|Prky192jL%bvl&33r_A>MZrRJGMZGD>6b2q zJTi4ih<)4zbXUbLRvR;N*aY~Ue9uq&#SOCA)WIx2)@k<2R_6XVee1NE=y7oFR>E~M zd;hL!w-OG12yRZCi0AkwKucIb+T)lxA~c$sulP*8ww7xKc+V2g-ACuF zHe1nGUE?`Tcns&DU9-{K1|7#fmcthtyan7GPZIyWGk4H*FUorJ`+&ds_kat+RSU7R dG=sb -Member List +tbb::vector_iterator< Container, Value > Class Template Reference @@ -31,17 +31,20 @@
  • Class Members
  • +
    -
    __TBB_malloc_proxy_caller Member List
    +
    tbb::vector_iterator< Container, Value > Class Template Reference
    - -

    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
    +
    The documentation for this class was generated from the following file:
      +
    • concurrent_vector.h
    • +
    +

    Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00209.html b/doc/html/a00209.html new file mode 100644 index 0000000000..46736233e6 --- /dev/null +++ b/doc/html/a00209.html @@ -0,0 +1,318 @@ + + + + + + +tbb::flow::interface8::write_once_node< T > Class Template Reference + + + + + + + +
    + +
    +
    tbb::flow::interface8::write_once_node< T > Class Template Reference
    +
    +
    +
    +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 > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +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.
     
    + + + + + + + + + + + +

    +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
     
    +
    The documentation for this class was generated from the following file: +
    +
    +

    +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/a00209.png b/doc/html/a00209.png new file mode 100644 index 0000000000000000000000000000000000000000..6919a098dfb96a008fc3a9a5c549365e9ad3a262 GIT binary patch literal 2518 zcmZuz3sh3+76ziCQUkrWAuUBwySJ%~%+%6!3{QF!?cuSRQc259P0D9W^W)Z+#h?@nTevX!#z(CyU7wE0m>%sKR(5FOR{aG-ZzJ)^J z?95&(@QO>=?!N;C78$OtCxL5FsCf~-)E@#<(8GPh$M3E-J+1Ok=$=d#sWhkU(XnZ= z=;Vi#T--c#W0#%2=m;ZzO_MW$dd8AJk^Bw`cMXh@es5T{=t zqOF~5AWzo0NFt?8qFN`35)_2^hd$yB&86SIsATGB;n<84i?~+Rj(X?(R`va!MT5-3 z^gJTEf6^(ufgRuUR`gms_>@_wELsM6ezt)8w8O!k?Jt0{+U(rLaqiIz49*<}x*$Kb zTP5%uDm3FhQyxtfG<5vLQcpzrMPsokv&D~VfQ`8+1LQw&I0vV2y19wmO{|_HUTy+R z8BJA~$L+pg@L~_Vv_P$DHxC{N9unbjt4+xyPd0&q@#3%v_&xjbi{EljpwOY>bdo1a z0HR_Y#t(RGGkiT7U2jAEm4&hfLKGU4@!NlF=Gguu<~0$Mkmf-hIQ5)jnh9D+C1n!dmY3~J| zIiA6ob5tK2TRg=kb1NLXg%nOTwLWnZF=rEeGq3|zoQv7RQ)TWR#>+G@L3OKk!f<&W zWBg!1FkCVCeY{&CPQSz2#V`IDf;?(G1x;N&&}*qWjDK`U)caUzGF|*pVOhdvefBa3kNh((h3k`oANfc6s|$GY z5G$7YNc>c&W+(5kdv$9<+BF0T_*OKNLpwaY%t{!=5oomC3~h$5gdHj0lJaVIsK*3iVBscw{3g+$irBwRR2$MyPyoIZgJ$MxL{k> zFk^m{r2V^8-u!{N-mQV7v`=OW!W{9%HCt4)t(Hl+_h0%1;NveJ?477_|+2 zdb!J&KX@y+3oTS9Gd{l>)iLmvl!1R~nGv#-a>=m9IVMXM{a97y+Bb4x!6okxYc)ql z%WwTue1L}_BV#PWZQSpOLRKfbl2?J`kH20&835JVTUVp*`;IyOkRoIw$akx2#fsZI z;l$jzW>=AS`d_dEVvCNQCo2fri2nb=aM~$bFU&TWrfqNvzdTY3KB;aKMm52`iD(jY zaPz3J(@MyeV9F+*quxZ``Fsn&@YUf0`S9~xdqPr8-$xJ#~9#G~CwNdD^ zSCnv2NpD+6YsjoTq>#Qw5X4E+R)`?6d|nWonAK*jl`pLXLJFpSFSNwOGN7r(#GNmy zvxuAclZXzJvm3ms^#yCjt8ZFLrHbYjo_%w6N%qp*+mbwqn^KV^wdg2{;nx+qZ-kxo zN8X2xC;g068w%sb$eVbRZ|$4@ek?BMo~J58eMD9Nd5sguz<@8W*hcxB1; z^MvcGfcK?jO=s<^9YxGE68$&*YC6ZDRlVUn8&0a3n2o`vxLe^#Lb(~pw+l{1uro9PkX$e7yctAf znSE6o^}X4n7W@D(RlV*Y|D15Q|c(1N~V%Fr_~)rOn34z)$f9XmJ5ZoJ-QA~R1vtx?o?jGk0FWnm&O?`HS z4EkF&;mj$AeQm2>@iz%dwBBS!J_hZTYj);SyxuipC~>9xs! zEMc}c4Ku2a_NR<8F7R)x2X#xLrW^xg#|RVe3V|-LIsfzB1OwKt-6=6k<*+$!Xe;weQb#`h9U<{84F7_q}7=$s@*5MRuTD9?NTFN8~+ + + + + + +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-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/a00210.png b/doc/html/a00210.png new file mode 100644 index 0000000000000000000000000000000000000000..f03aec2f32170173a41127ef3c3e9c637b353f95 GIT binary patch literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^=YcqYgBeJ6=3o2`q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0cs*SlLn;{G&b^uU+JJ|(UElKm|Kq%` zT)Q*XuzR^xgV{Y`kWU!=P<)~_{il(0b40cN-ynitqQLSYF8iOqTfC=PDMjmIV?51CP zx`UW4Tz^U}NVLB*Y2voM`mMj;+xb1Vnfu!=_}RbMH9Ix3EzI@z-d3G^dwJuuywJe7 zdk^itS<0@vJzw)oP|0k2-hfxBPQLZ)SJ>;fKHgkrBfO6L#=PxkTMP?c@<&TA$k&>` zbvJj&`E}>(cAR^$`241;r#Iem%lf`~mc!jG+bXZ`KPyme7q_GL;&i)nakBHx^B3B` z^RL~vpSOIA{n@`S+YT&vc + + + + + +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-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/a00211.png b/doc/html/a00211.png new file mode 100644 index 0000000000000000000000000000000000000000..f97e606d73f34771792a992f3bb005438d9cd609 GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0vp^4}ds;gBeJgTXrr3QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;yA2;j&|Hq|W zQVtuorIzzf_FI2LF{X&+k+zbOF?V3-+;GMft6oKd31x=Khl}1u#?DLPmHBywox#g1 zgXKZ{$5pFrdD&y`*_@A$OrCDLBVl9W%XeuF)k(*0WNi8(Tw%G3W6L?lCG~eQH$`W|rKVV0+-b;C{9<-Y*z8Y;=9S;6FXpkl{q2pEZ>g`A3qE0 z2ZzkfAAV^FbY-m3W?-}-0lRs*q@*b_eAa?$%Vv*}+Ra?yZ6>wgLh9~sUtT_c{?D8# z=h*t6wfr;UBu+p5sW1JdX7ZAEx>b9(Gk7O(pO)G!bN;Z^C7Zf5JLa0p|2H(9Ov_&N zcH_DI_r)!vYF3|YkG{;OGjCpR&GG#PE4ROBWN2LW>Tjgfl~}ViGxkh=nSEeied`aQ zg4;aXy0exS9o@|GY2DuSr}ldW>?&uB{>Of#yP@~0&HY7Z_q-OZ;hZsl;_83t+7WXO zW^u7_)fTZyt3P>A$ot{U{$jS*TD#7MhXw9FzbZp(-C3>aXFfe_s9oD49%^#mkoD;9 ze{WB5eW*7zSnkg_fBF735)8>Em%h!@<}mPJH?-J N22WQ%mvv4FO#r(vCr1DP literal 0 HcmV?d00001 diff --git a/doc/html/a00229.html b/doc/html/a00229.html new file mode 100644 index 0000000000..22d4eac1cc --- /dev/null +++ b/doc/html/a00229.html @@ -0,0 +1,283 @@ + + + + + + +flow_graph.h File Reference + + + + + + + +
    + +
    +
    flow_graph.h File Reference
    +
    +
    + +

    The graph related classes and functions. +More...

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

    +Classes

    class  tbb::flow::interface8::internal::successor_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::edge_container< C >
     
    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::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::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::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::internal::edge_container< C >
     
    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
     The graph class. 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...
     
    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::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::continue_node< Output >
     Implements an executable node that supports continue_msg -> Output. More...
     
    class  tbb::flow::interface8::overwrite_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::buffer_node< T, A >
     Forwards messages in arbitrary order. More...
     
    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::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::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, reserving >
     
    class  tbb::flow::interface8::join_node< OutputTuple, queueing >
     
    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 >
     
    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, T3 >
     
    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, 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, T8 >
     
    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< 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<>, 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::internal::async_body< Input, Ports, AsyncGateway, Body >
     
    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
     
    + + + + +

    +Namespaces

     tbb
     The namespace tbb contains all components of the library.
     
    + + + + +

    +Constant Groups

     tbb
     The namespace tbb contains all components of the library.
     
    + + + + + + +

    +Enumerations

    enum  concurrency { unlimited = 0, +serial = 1 + }
     An enumeration the provides the two most common concurrency levels: unlimited and serial.
     
    enum  reset_flags { rf_reset_protocol = 0, +rf_reset_bodies = 1<<0, +rf_clear_edges = 1<<1 + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    +static tbb::task * tbb::flow::interface8::combine_tasks (tbb::task *left, tbb::task *right)
     
    +template<typename K , typename T >
    tbb::flow::key_from_message (const T &t)
     
    +template<typename T >
    void tbb::flow::interface8::make_edge (sender< T > &p, receiver< T > &s)
     Makes an edge between a single predecessor and a single successor.
     
    +template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
    void tbb::flow::interface8::make_edge (T &output, V &input)
     
    +template<typename T , typename R , typename = typename T::output_ports_type>
    void tbb::flow::interface8::make_edge (T &output, receiver< R > &input)
     
    +template<typename S , typename V , typename = typename V::input_ports_type>
    void tbb::flow::interface8::make_edge (sender< S > &output, V &input)
     
    +template<typename T >
    void tbb::flow::interface8::remove_edge (sender< T > &p, receiver< T > &s)
     Removes an edge between a single predecessor and a single successor.
     
    +template<typename T , typename V , typename = typename T::output_ports_type, typename = typename V::input_ports_type>
    void tbb::flow::interface8::remove_edge (T &output, V &input)
     
    +template<typename T , typename R , typename = typename T::output_ports_type>
    void tbb::flow::interface8::remove_edge (T &output, receiver< R > &input)
     
    +template<typename S , typename V , typename = typename V::input_ports_type>
    void tbb::flow::interface8::remove_edge (sender< S > &output, V &input)
     
    +template<typename Body , typename Node >
    Body tbb::flow::interface8::copy_body (Node &n)
     Returns a copy of the body from a function or continue node.
     
    + + + +

    +Variables

    +static tbb::task *const tbb::flow::interface8::SUCCESSFULLY_ENQUEUED = (task *)-1
     
    +

    Detailed Description

    +

    The graph related classes and functions.

    +

    There are some applications that best express dependencies as messages passed between nodes in a graph. These messages may contain data or simply act as signals that a predecessors has completed. The graph class and its associated node classes can be used to express such applications.

    +
    +
    +

    +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/a00232.html b/doc/html/a00232.html new file mode 100644 index 0000000000..0d6c0e4afb --- /dev/null +++ b/doc/html/a00232.html @@ -0,0 +1,99 @@ + + + + + + +memory_pool.h File Reference + + + + + + + +
    + +
    +
    memory_pool.h File Reference
    +
    +
    + + + + + + + + + + + + + + + + + +

    +Classes

    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 >
     
    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 >
     
    class  tbb::interface6::memory_pool< Alloc >
     Thread-safe growable pool allocator for variable-size requests. More...
     
    class  tbb::interface6::fixed_pool
     
    + + + + +

    +Namespaces

     tbb
     The namespace tbb contains all components of the library.
     
    + + + + +

    +Constant Groups

     tbb
     The namespace tbb contains all components of the library.
     
    + + + + + + + +

    +Functions

    +template<typename T , typename U , typename P >
    bool tbb::interface6::operator== (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
     
    +template<typename T , typename U , typename P >
    bool tbb::interface6::operator!= (const memory_pool_allocator< T, P > &a, const memory_pool_allocator< U, P > &b)
     
    +
    +
    +

    +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/a00238.html b/doc/html/a00238.html deleted file mode 100644 index 23922b2b3e..0000000000 --- a/doc/html/a00238.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - -rml Namespace Reference - - - - - - - -
    - -
    -
    rml Namespace Reference
    -
    -
    - -

    The namespace rml contains components of low-level memory pool interface. -More...

    - - - - -

    -Classes

    struct  MemPoolPolicy
     
    - - - - - -

    -Typedefs

    -typedef void *(* rawAllocType )(intptr_t pool_id, size_t &bytes)
     
    -typedef int(* rawFreeType )(intptr_t pool_id, void *raw_ptr, size_t raw_bytes)
     
    - - - -

    -Enumerations

    enum  MemPoolError {
    -  POOL_OK = TBBMALLOC_OK, -INVALID_POLICY = TBBMALLOC_INVALID_PARAM, -UNSUPPORTED_POLICY = TBBMALLOC_UNSUPPORTED, -NO_MEMORY = TBBMALLOC_NO_MEMORY, -
    -  NO_EFFECT = TBBMALLOC_NO_EFFECT -
    - }
     
    - - - - - - - - - - - - - - - - - - - -

    -Functions

    -MemPoolError pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
     
    -bool pool_destroy (MemoryPool *memPool)
     
    -void * pool_malloc (MemoryPool *memPool, size_t size)
     
    -void * pool_realloc (MemoryPool *memPool, void *object, size_t size)
     
    -void * pool_aligned_malloc (MemoryPool *mPool, size_t size, size_t alignment)
     
    -void * pool_aligned_realloc (MemoryPool *mPool, void *ptr, size_t size, size_t alignment)
     
    -bool pool_reset (MemoryPool *memPool)
     
    -bool pool_free (MemoryPool *memPool, void *object)
     
    -MemoryPool * pool_identify (void *object)
     
    -

    Detailed Description

    -

    The namespace rml contains components of low-level memory pool interface.

    -
    -
    -

    -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/a00241.html b/doc/html/a00241.html deleted file mode 100644 index 9d9328168f..0000000000 --- a/doc/html/a00241.html +++ /dev/null @@ -1,689 +0,0 @@ - - - - - - -tbb Namespace Reference - - - - - - - -
    - -
    -
    tbb Namespace Reference
    -
    -
    - -

    The namespace tbb contains all components of the library. -More...

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Classes

    class  aligned_space
     Block of space aligned sufficiently to construct an array T with N elements. More...
     
    struct  atomic
     Primary template for atomic. More...
     
    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_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  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  combinable
     Thread-local storage with optional reduction. More...
     
    class  concurrent_bounded_queue
     A high-performance thread-safe blocking concurrent bounded queue. More...
     
    class  concurrent_vector
     Concurrent vector container. More...
     
    class  vector_iterator
     
    class  mutex
     Wrapper around the platform's native reader-writer lock. More...
     
    class  null_mutex
     A 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...
     
    struct  task_group_context
     
    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...
     
    class  parallel_while
     Parallel iteration over a stream, with optional addition of more work. 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  pipeline
     A processing pipeline that applies filters to items. 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  recursive_mutex
     
    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  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  task_handle
     
    class  task_group
     
    class  structured_task_group
     
    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< 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< 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  improper_lock
     Exception for PPL locks. More...
     
    class  user_abort
     Exception for user-initiated abort. 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  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  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...
     
    - - - - - - - - - - - - - - - -

    -Typedefs

    -typedef
    -internal::critical_section_v4 
    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...
     
    -typedef spin_rw_mutex_v3 spin_rw_mutex
     
    -typedef std::size_t stack_size_type
     
    -typedef
    -tbb::internal::task_scheduler_observer_v3 
    task_scheduler_observer
     
    -typedef internal::tbb_thread_v3 tbb_thread
     Users reference thread class by name tbb_thread.
     
    - - - - - - - - - -

    -Enumerations

    enum  memory_semantics { full_fence, -acquire, -release, -relaxed - }
     Specifies memory semantics. More...
     
    enum  ets_key_usage_type { ets_key_per_instance, -ets_no_key - }
     enum for selecting between single key and key-per-instance versions
     
    enum  task_group_status { not_complete, -complete, -canceled - }
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -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
     
    -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 * >
     Specialization for atomic<T*> with arithmetic and operator->.
     
    -template<memory_semantics M, typename T >
    load (const atomic< T > &a)
     
    -template<memory_semantics M, typename T >
    void store (atomic< T > &a, T value)
     
    -template<typename T , typename 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 > &)
     
    -template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
    bool operator== (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
     
    -template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
    bool operator!= (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
     
    -template<typename Key , typename T , typename HashCompare , typename A >
    void swap (concurrent_hash_map< Key, T, HashCompare, A > &a, concurrent_hash_map< Key, T, HashCompare, A > &b)
     
    -template<typename T , class A1 , class A2 >
    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)
     
    -template<typename T , class A1 , class A2 >
    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)
     
    -template<typename T , class A1 , class A2 >
    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)
     
    -template<typename T , class A >
    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 > &)
     
    -template<typename T , typename 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)
     
    -template<typename T , typename 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 > &)
     
    -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)
     
    -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)
     
    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)
     
    -void move (tbb_thread &t1, tbb_thread &t2)
     
    -tick_count::interval_t 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...
     
    -template<typename Range , typename Body >
    void parallel_do (Range &rng, const Body &body)
     
    -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...
     
    -template<typename Range , typename Body >
    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)
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    -template<typename Iterator , typename Function >
    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)
     Uses default context.
     
    -template<typename Range , typename Function >
    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...
     
    -template<typename F0 , typename F1 >
    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)
     
    -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)
     
    -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)
     
    -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)
     
    -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)
     
    -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)
     
    -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)
     
    -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)
     
    -template<typename F0 , typename F1 >
    void parallel_invoke (const F0 &f0, const F1 &f1)
     
    -template<typename F0 , typename F1 , typename F2 >
    void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
     
    -template<typename F0 , typename F1 , typename F2 , typename F3 >
    void 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 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 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 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 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 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 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 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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    template<typename RandomAccessIterator >
    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...
     
    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...
     
    template<typename Range >
    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...
     
    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...
     
    -

    Detailed Description

    -

    The namespace tbb contains all components of the library.

    -

    Enumeration Type Documentation

    - -
    -
    - - - - -
    enum tbb::memory_semantics
    -
    - -

    Specifies memory semantics.

    - - - - - -
    Enumerator
    full_fence  -

    Sequential consistency.

    -
    acquire  -

    Acquire.

    -
    release  -

    Release.

    -
    relaxed  -

    No ordering.

    -
    - -
    -
    -

    Function Documentation

    - -
    -
    - - - - - - - -
    int __TBB_EXPORTED_FUNC tbb::TBB_runtime_interface_version ()
    -
    - -

    The function returns the interface version of the TBB shared library being used.

    -

    The version it returns is determined at runtime, not at compile/link time. So it can be different than the value of TBB_INTERFACE_VERSION obtained at compile time.

    - -
    -
    -
    -
    -

    -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/a00218.html b/doc/html/a00251.html similarity index 90% rename from doc/html/a00218.html rename to doc/html/a00251.html index 20481316ee..cf807004bd 100644 --- a/doc/html/a00218.html +++ b/doc/html/a00251.html @@ -50,35 +50,35 @@ - + - - + + - + - - + + - +

    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 @@

    - + - + - + - + - + - + - + - + - + - + - + diff --git a/doc/html/a00256.html b/doc/html/a00256.html deleted file mode 100644 index d248af6b83..0000000000 --- a/doc/html/a00256.html +++ /dev/null @@ -1,2012 +0,0 @@ - - - - - - -Algorithms - - - - - - - -
    - -
    -
    Algorithms
    -
    -
    -

    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

    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, 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, 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, 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, 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, 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, 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,
    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,
    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,
    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,
    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,
    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,
    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/a00257.html b/doc/html/a00257.html deleted file mode 100644 index 7b283772f2..0000000000 --- a/doc/html/a00257.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/a00258.html b/doc/html/a00258.html deleted file mode 100644 index d2aa131c14..0000000000 --- a/doc/html/a00258.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - -Memory Allocation - - - - - - - -
    - -
    -
    Memory Allocation
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Classes

    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. -

    -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/a00259.html b/doc/html/a00259.html deleted file mode 100644 index eaa72172f2..0000000000 --- a/doc/html/a00259.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -Synchronization - - - - - - - -
    - -
    -
    Synchronization
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Classes

    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. -

    -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/a00260.html b/doc/html/a00260.html deleted file mode 100644 index 75c08f877d..0000000000 --- a/doc/html/a00260.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -Timing - - - - - - - -
    - -
    -
    Timing
    -
    -
    - - - - - -

    -Classes

    class  tbb::tick_count
     Absolute timestamp. 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/a00261.html b/doc/html/a00261.html deleted file mode 100644 index b275ece3fd..0000000000 --- a/doc/html/a00261.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -Task Scheduling - - - - - - - -
    - -
    -
    Task Scheduling
    -
    -
    - - - - - -

    -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. -

    -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/a00264.html b/doc/html/a00264.html deleted file mode 100644 index 62dc55d2d0..0000000000 --- a/doc/html/a00264.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/a00268.html b/doc/html/a00268.html deleted file mode 100644 index 033cc97cad..0000000000 --- a/doc/html/a00268.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::blocked_range< Value > Member List
    -
    -
    - -

    This is the complete list of members for tbb::blocked_range< Value >, 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 >
    -
    -

    -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/a00269.html b/doc/html/a00269.html deleted file mode 100644 index ce282704a6..0000000000 --- a/doc/html/a00269.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::blocked_range2d< RowValue, ColValue > Member List
    -
    -
    - -

    This is the complete list of members for tbb::blocked_range2d< RowValue, ColValue >, 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
    -
    -

    -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/a00270.html b/doc/html/a00270.html deleted file mode 100644 index b567b4198b..0000000000 --- a/doc/html/a00270.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::blocked_range3d< PageValue, RowValue, ColValue > Member List
    -
    -
    - -

    This is the complete list of members for tbb::blocked_range3d< PageValue, RowValue, ColValue >, 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
    -
    -

    -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/a00271.html b/doc/html/a00271.html index b51cb9db68..de9d0a8d24 100644 --- a/doc/html/a00271.html +++ b/doc/html/a00271.html @@ -4,7 +4,7 @@ -Member List +rml Namespace Reference @@ -19,51 +19,92 @@
  • Main Page
  • Related Pages
  • Modules
  • -
  • Namespaces
  • -
  • Classes
  • +
  • Namespaces
  • +
  • Classes
  • Files
  • -
    +
    -
    tbb::cache_aligned_allocator< T > Member List
    +
    rml Namespace Reference
    -

    This is the complete list of members for tbb::cache_aligned_allocator< T >, 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 >
    +

    The namespace rml contains components of low-level memory pool interface. +More...

    + + + + +

    +Classes

    struct  MemPoolPolicy
     
    + + + + + +

    +Typedefs

    +typedef void *(* rawAllocType )(intptr_t pool_id, size_t &bytes)
     
    +typedef int(* rawFreeType )(intptr_t pool_id, void *raw_ptr, size_t raw_bytes)
     
    + + + +

    +Enumerations

    enum  MemPoolError {
    +  POOL_OK = TBBMALLOC_OK, +INVALID_POLICY = TBBMALLOC_INVALID_PARAM, +UNSUPPORTED_POLICY = TBBMALLOC_UNSUPPORTED, +NO_MEMORY = TBBMALLOC_NO_MEMORY, +
    +  NO_EFFECT = TBBMALLOC_NO_EFFECT +
    + }
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    +MemPoolError pool_create_v1 (intptr_t pool_id, const MemPoolPolicy *policy, rml::MemoryPool **pool)
     
    +bool pool_destroy (MemoryPool *memPool)
     
    +void * pool_malloc (MemoryPool *memPool, size_t size)
     
    +void * pool_realloc (MemoryPool *memPool, void *object, size_t size)
     
    +void * pool_aligned_malloc (MemoryPool *mPool, size_t size, size_t alignment)
     
    +void * pool_aligned_realloc (MemoryPool *mPool, void *ptr, size_t size, size_t alignment)
     
    +bool pool_reset (MemoryPool *memPool)
     
    +bool pool_free (MemoryPool *memPool, void *object)
     
    +MemoryPool * pool_identify (void *object)
     
    +

    Detailed Description

    +

    The namespace rml contains components of low-level memory pool interface.

    +

    Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00274.html b/doc/html/a00274.html index 34810cd9f4..d8a92f5288 100644 --- a/doc/html/a00274.html +++ b/doc/html/a00274.html @@ -4,7 +4,7 @@ -Member List +tbb Namespace Reference @@ -19,33 +19,689 @@
  • Main Page
  • Related Pages
  • Modules
  • -
  • Namespaces
  • -
  • Classes
  • +
  • Namespaces
  • +
  • Classes
  • Files
  • -
    +
    -
    tbb::cache_aligned_allocator< void >::rebind< U > Member List
    +
    tbb Namespace Reference
    -

    This is the complete list of members for tbb::cache_aligned_allocator< void >::rebind< U >, including all inherited members.

    - - -
    other typedef (defined in tbb::cache_aligned_allocator< void >::rebind< U >)tbb::cache_aligned_allocator< void >::rebind< U >
    +

    The namespace tbb contains all components of the library. +More...

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

    +Classes

    class  aligned_space
     Block of space aligned sufficiently to construct an array T with N elements. More...
     
    struct  atomic
     Primary template for atomic. More...
     
    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_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  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  combinable
     Thread-local storage with optional reduction. More...
     
    class  concurrent_bounded_queue
     A high-performance thread-safe blocking concurrent bounded queue. More...
     
    class  concurrent_vector
     Concurrent vector container. More...
     
    class  vector_iterator
     
    class  mutex
     Wrapper around the platform's native reader-writer lock. More...
     
    class  null_mutex
     A 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...
     
    struct  task_group_context
     
    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...
     
    class  parallel_while
     Parallel iteration over a stream, with optional addition of more work. 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  pipeline
     A processing pipeline that applies filters to items. 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  recursive_mutex
     
    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  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  task_handle
     
    class  task_group
     
    class  structured_task_group
     
    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< 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< 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  improper_lock
     Exception for PPL locks. More...
     
    class  user_abort
     Exception for user-initiated abort. 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  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  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...
     
    + + + + + + + + + + + + + + + +

    +Typedefs

    +typedef
    +internal::critical_section_v4 
    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...
     
    +typedef spin_rw_mutex_v3 spin_rw_mutex
     
    +typedef std::size_t stack_size_type
     
    +typedef
    +tbb::internal::task_scheduler_observer_v3 
    task_scheduler_observer
     
    +typedef internal::tbb_thread_v3 tbb_thread
     Users reference thread class by name tbb_thread.
     
    + + + + + + + + + +

    +Enumerations

    enum  memory_semantics { full_fence, +acquire, +release, +relaxed + }
     Specifies memory semantics. More...
     
    enum  ets_key_usage_type { ets_key_per_instance, +ets_no_key + }
     enum for selecting between single key and key-per-instance versions
     
    enum  task_group_status { not_complete, +complete, +canceled + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +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
     
    +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 * >
     Specialization for atomic<T*> with arithmetic and operator->.
     
    +template<memory_semantics M, typename T >
    load (const atomic< T > &a)
     
    +template<memory_semantics M, typename T >
    void store (atomic< T > &a, T value)
     
    +template<typename T , typename 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 > &)
     
    +template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
    bool operator== (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
     
    +template<typename Key , typename T , typename HashCompare , typename A1 , typename A2 >
    bool operator!= (const concurrent_hash_map< Key, T, HashCompare, A1 > &a, const concurrent_hash_map< Key, T, HashCompare, A2 > &b)
     
    +template<typename Key , typename T , typename HashCompare , typename A >
    void swap (concurrent_hash_map< Key, T, HashCompare, A > &a, concurrent_hash_map< Key, T, HashCompare, A > &b)
     
    +template<typename T , class A1 , class A2 >
    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)
     
    +template<typename T , class A1 , class A2 >
    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)
     
    +template<typename T , class A1 , class A2 >
    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)
     
    +template<typename T , class A >
    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 > &)
     
    +template<typename T , typename 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)
     
    +template<typename T , typename 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 > &)
     
    +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)
     
    +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)
     
    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)
     
    +void move (tbb_thread &t1, tbb_thread &t2)
     
    +tick_count::interval_t 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...
     
    +template<typename Range , typename Body >
    void parallel_do (Range &rng, const Body &body)
     
    +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...
     
    +template<typename Range , typename Body >
    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)
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    +template<typename Iterator , typename Function >
    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)
     Uses default context.
     
    +template<typename Range , typename Function >
    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...
     
    +template<typename F0 , typename F1 >
    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)
     
    +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)
     
    +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)
     
    +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)
     
    +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)
     
    +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)
     
    +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)
     
    +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)
     
    +template<typename F0 , typename F1 >
    void parallel_invoke (const F0 &f0, const F1 &f1)
     
    +template<typename F0 , typename F1 , typename F2 >
    void parallel_invoke (const F0 &f0, const F1 &f1, const F2 &f2)
     
    +template<typename F0 , typename F1 , typename F2 , typename F3 >
    void 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 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 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 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 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 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 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 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...
     
    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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    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...
     
    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...
     
    template<typename Range , typename Body >
    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...
     
    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...
     
    template<typename RandomAccessIterator >
    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...
     
    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...
     
    template<typename Range >
    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...
     
    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...
     
    +

    Detailed Description

    +

    The namespace tbb contains all components of the library.

    +

    Enumeration Type Documentation

    + +
    +
    + + + + +
    enum tbb::memory_semantics
    +
    + +

    Specifies memory semantics.

    + + + + + +
    Enumerator
    full_fence  +

    Sequential consistency.

    +
    acquire  +

    Acquire.

    +
    release  +

    Release.

    +
    relaxed  +

    No ordering.

    +
    + +
    +
    +

    Function Documentation

    + +
    +
    + + + + + + + +
    int __TBB_EXPORTED_FUNC tbb::TBB_runtime_interface_version ()
    +
    + +

    The function returns the interface version of the TBB shared library being used.

    +

    The version it returns is determined at runtime, not at compile/link time. So it can be different than the value of TBB_INTERFACE_VERSION obtained at compile time.

    + +
    +
    +

    Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00275.html b/doc/html/a00275.html deleted file mode 100644 index 138a38414d..0000000000 --- a/doc/html/a00275.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::combinable< T > Member List
    -
    -
    - -

    This is the complete list of members for tbb::combinable< T >, 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
    -
    -

    -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/a00276.html b/doc/html/a00276.html deleted file mode 100644 index 2d377adb26..0000000000 --- a/doc/html/a00276.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::concurrent_bounded_queue< T, A > Member List
    -
    -
    - -

    This is the complete list of members for tbb::concurrent_bounded_queue< T, A >, 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 >
    -
    -

    -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/a00277.html b/doc/html/a00277.html deleted file mode 100644 index 99afc096be..0000000000 --- a/doc/html/a00277.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::concurrent_vector< T, A > Member List
    -
    -
    - -

    This is the complete list of members for tbb::concurrent_vector< T, A >, 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
    -
    -

    -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/a00278.html b/doc/html/a00278.html deleted file mode 100644 index 0b53adabca..0000000000 --- a/doc/html/a00278.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Member List
    -
    - -
    -

    -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/a00279.html b/doc/html/a00279.html deleted file mode 100644 index 2d6ede55ee..0000000000 --- a/doc/html/a00279.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::mutex Member List
    -
    -
    - -

    This is the complete list of members for tbb::mutex, 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
    -
    -

    -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/a00280.html b/doc/html/a00280.html deleted file mode 100644 index 877525856d..0000000000 --- a/doc/html/a00280.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::mutex::scoped_lock Member List
    -
    -
    - -

    This is the complete list of members for tbb::mutex::scoped_lock, including all inherited members.

    - - - - - - - - -
    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. -

    -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/a00283.html b/doc/html/a00283.html deleted file mode 100644 index 4cbc79a9b6..0000000000 --- a/doc/html/a00283.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::null_rw_mutex Member List
    -
    -
    - -

    This is the complete list of members for tbb::null_rw_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
    -
    -

    -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/a00284.html b/doc/html/a00284.html deleted file mode 100644 index 185e5931d2..0000000000 --- a/doc/html/a00284.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::null_rw_mutex::scoped_lock Member List
    -
    -
    - -

    This is the complete list of members for tbb::null_rw_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
    -
    -

    -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/a00289.html b/doc/html/a00289.html index c16aef7887..7708a97e48 100644 --- a/doc/html/a00289.html +++ b/doc/html/a00289.html @@ -4,7 +4,7 @@ -Member List +Algorithms @@ -20,36 +20,2269 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::filter Member List
    +
    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 
    )
    +
    -

    This is the complete list of members for tbb::filter, 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
    +

    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. diff --git a/doc/html/a00290.html b/doc/html/a00290.html index e8f3c6b79b..e29a2d72d0 100644 --- a/doc/html/a00290.html +++ b/doc/html/a00290.html @@ -4,7 +4,7 @@ -Member List +Containers @@ -20,43 +20,42 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::thread_bound_filter Member List
    +
    Containers
    - -

    This is the complete list of members for tbb::thread_bound_filter, 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
    + + + + + + + + + + + + + + + + + + + + +

    +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. diff --git a/doc/html/a00291.html b/doc/html/a00291.html index 0261e0b0e1..abfc585ead 100644 --- a/doc/html/a00291.html +++ b/doc/html/a00291.html @@ -4,7 +4,7 @@ -Member List +Memory Allocation @@ -20,43 +20,357 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::pipeline Member List
    +
    Memory Allocation
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    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.

    -

    This is the complete list of members for tbb::pipeline, 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
    +
    +
    + +
    +
    + + + + + + + + +
    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. diff --git a/doc/html/a00292.html b/doc/html/a00292.html index f027e6712c..a2a329d8e9 100644 --- a/doc/html/a00292.html +++ b/doc/html/a00292.html @@ -4,7 +4,7 @@ -Member List +Synchronization @@ -20,36 +20,100 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::queuing_mutex Member List
    +
    Synchronization
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    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.

    -

    This is the complete list of members for tbb::queuing_mutex, 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
    +
    +
    + +
    +
    + + + + +
    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. diff --git a/doc/html/a00293.html b/doc/html/a00293.html index f3e4085d50..bd8a100f03 100644 --- a/doc/html/a00293.html +++ b/doc/html/a00293.html @@ -4,7 +4,7 @@ -Member List +Timing @@ -20,37 +20,27 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::queuing_mutex::scoped_lock Member List
    +
    Timing
    + + + + + +

    +Classes

    class  tbb::tick_count
     Absolute timestamp. More...
     
    +

    Detailed Description

    +

    Copyright © 2005-2015 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00294.html b/doc/html/a00294.html index b0a15519e5..d2bd6666aa 100644 --- a/doc/html/a00294.html +++ b/doc/html/a00294.html @@ -4,7 +4,7 @@ -Member List +Task Scheduling @@ -20,37 +20,27 @@
  • Related Pages
  • Modules
  • Namespaces
  • -
  • Classes
  • +
  • Classes
  • Files
  • - -
    +
    -
    tbb::queuing_rw_mutex Member List
    +
    Task Scheduling
    - -

    This is the complete list of members for tbb::queuing_rw_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
    + + + + + +

    +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. diff --git a/doc/html/a00295.html b/doc/html/a00295.html deleted file mode 100644 index 9239d27364..0000000000 --- a/doc/html/a00295.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - -Member List - - - - - - - -
    -
    -
    tbb::queuing_rw_mutex::scoped_lock Member List
    -
    - -
    -

    -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/a00296.html b/doc/html/a00296.html index 8f96aa736f..98f187ffa4 100644 --- a/doc/html/a00296.html +++ b/doc/html/a00296.html @@ -31,31 +31,16 @@
  • Class Members
  • -
    -
    tbb::recursive_mutex Member List
    +
    __TBB_malloc_proxy_caller 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_malloc_proxy_caller, 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
    __TBB_malloc_proxy_caller() (defined in __TBB_malloc_proxy_caller)__TBB_malloc_proxy_callerinline

    diff --git a/doc/html/a00297.html b/doc/html/a00297.html index 8c503a5c1d..514e695a56 100644 --- a/doc/html/a00297.html +++ b/doc/html/a00297.html @@ -33,24 +33,26 @@
    -
    tbb::recursive_mutex::scoped_lock Member List
    +
    rml::MemPoolPolicy Member List
    -

    This is the complete list of members for tbb::recursive_mutex::scoped_lock, including all inherited members.

    +

    This is the complete list of members for rml::MemPoolPolicy, including all inherited members.

    - - - - - - - + + + + + + + + +
    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
    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

    diff --git a/doc/html/a00298.html b/doc/html/a00298.html index 1f87bb5d60..0c7f3f7086 100644 --- a/doc/html/a00298.html +++ b/doc/html/a00298.html @@ -33,36 +33,19 @@
    -
    tbb::scalable_allocator< T > Member List
    +
    tbb::aligned_space< T, N > 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::aligned_space< T, N >, 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 >
    begin()tbb::aligned_space< T, N >inline
    end()tbb::aligned_space< T, N >inline

    diff --git a/doc/html/a00299.html b/doc/html/a00299.html index 33cd7fa193..0199d9dfad 100644 --- a/doc/html/a00299.html +++ b/doc/html/a00299.html @@ -33,18 +33,21 @@
    -
    tbb::scalable_allocator< T >::rebind< U > Member List
    +
    tbb::atomic< T > 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::atomic< T >, including all inherited members.

    - + + + +
    other typedef (defined in tbb::scalable_allocator< T >::rebind< U >)tbb::scalable_allocator< T >::rebind< U >
    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

    diff --git a/doc/html/a00300.html b/doc/html/a00300.html index 8a823ee782..1c08054bf3 100644 --- a/doc/html/a00300.html +++ b/doc/html/a00300.html @@ -33,20 +33,21 @@
    -
    tbb::scalable_allocator< void > Member List
    +
    tbb::atomic< void * > 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::atomic< void * >, 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 >
    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

    diff --git a/doc/html/a00301.html b/doc/html/a00301.html index cbb066a649..01730576b7 100644 --- a/doc/html/a00301.html +++ b/doc/html/a00301.html @@ -33,18 +33,32 @@
    -
    tbb::scalable_allocator< void >::rebind< U > Member List
    +
    tbb::blocked_range< Value > 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::blocked_range< Value >, including all inherited members.

    - + + + + + + + + + + + + + + +
    other typedef (defined in tbb::scalable_allocator< void >::rebind< U >)tbb::scalable_allocator< void >::rebind< U >
    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 >

    diff --git a/doc/html/a00302.html b/doc/html/a00302.html index 1c613aaeba..84ed405844 100644 --- a/doc/html/a00302.html +++ b/doc/html/a00302.html @@ -33,26 +33,29 @@
    -
    tbb::spin_mutex Member List
    +
    tbb::blocked_range2d< RowValue, ColValue > 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::blocked_range2d< RowValue, ColValue >, 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
    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

    diff --git a/doc/html/a00303.html b/doc/html/a00303.html index 94511e1040..94ea0365ed 100644 --- a/doc/html/a00303.html +++ b/doc/html/a00303.html @@ -33,24 +33,31 @@
    -
    tbb::spin_mutex::scoped_lock Member List
    +
    tbb::blocked_range3d< PageValue, RowValue, ColValue > 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::blocked_range3d< PageValue, RowValue, ColValue >, 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
    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

    diff --git a/doc/html/a00304.html b/doc/html/a00304.html index 973fc406bc..bf77b27eb2 100644 --- a/doc/html/a00304.html +++ b/doc/html/a00304.html @@ -33,34 +33,36 @@
    -
    tbb::spin_rw_mutex_v3 Member List
    +
    tbb::cache_aligned_allocator< T > 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::cache_aligned_allocator< T >, 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
    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 >

    diff --git a/doc/html/a00305.html b/doc/html/a00305.html index 698eb3061d..0e5497a243 100644 --- a/doc/html/a00305.html +++ b/doc/html/a00305.html @@ -33,28 +33,18 @@
    -
    tbb::spin_rw_mutex_v3::scoped_lock Member List
    +
    tbb::cache_aligned_allocator< T >::rebind< U > Member List

    diff --git a/doc/html/a00306.html b/doc/html/a00306.html index 848084614a..28740bc63a 100644 --- a/doc/html/a00306.html +++ b/doc/html/a00306.html @@ -33,22 +33,20 @@
    -
    tbb::task_handle< F > Member List
    +
    tbb::cache_aligned_allocator< void > 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::cache_aligned_allocator< void >, 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
    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 >

    diff --git a/doc/html/a00307.html b/doc/html/a00307.html index ac3f3e8034..faa3bd00e9 100644 --- a/doc/html/a00307.html +++ b/doc/html/a00307.html @@ -33,32 +33,18 @@
    -
    tbb::task_group Member List
    +
    tbb::cache_aligned_allocator< void >::rebind< U > 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::cache_aligned_allocator< void >::rebind< U >, 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
    other typedef (defined in tbb::cache_aligned_allocator< void >::rebind< U >)tbb::cache_aligned_allocator< void >::rebind< U >

    diff --git a/doc/html/a00308.html b/doc/html/a00308.html index a828fbbf4a..d7025a12c7 100644 --- a/doc/html/a00308.html +++ b/doc/html/a00308.html @@ -33,29 +33,27 @@
    -
    tbb::structured_task_group Member List
    +
    tbb::combinable< T > 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::combinable< T >, 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
    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

    diff --git a/doc/html/a00309.html b/doc/html/a00309.html index 524e92d6d5..887d3c0406 100644 --- a/doc/html/a00309.html +++ b/doc/html/a00309.html @@ -33,28 +33,51 @@
    -
    tbb::task_scheduler_init Member List
    +
    tbb::concurrent_bounded_queue< T, A > 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::concurrent_bounded_queue< T, A >, 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
    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 >

    diff --git a/doc/html/a00310.html b/doc/html/a00310.html index 75d49edef2..50535c9cdb 100644 --- a/doc/html/a00310.html +++ b/doc/html/a00310.html @@ -33,40 +33,95 @@
    -
    tbb::tbb_allocator< T > Member List
    +
    tbb::concurrent_vector< T, A > 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::concurrent_vector< T, A >, 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 >
    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

    diff --git a/doc/html/a00311.html b/doc/html/a00311.html index 08dca6b671..779a87e788 100644 --- a/doc/html/a00311.html +++ b/doc/html/a00311.html @@ -33,18 +33,21 @@
    -
    tbb::tbb_allocator< T >::rebind< U > Member List
    +
    tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Member List

    diff --git a/doc/html/a00312.html b/doc/html/a00312.html index 566fe806ad..6c5fee5539 100644 --- a/doc/html/a00312.html +++ b/doc/html/a00312.html @@ -33,20 +33,34 @@
    -
    tbb::tbb_allocator< void > Member List
    +
    tbb::mutex 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::mutex, 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 >
    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

    diff --git a/doc/html/a00313.html b/doc/html/a00313.html index a5b2fcc7b0..201cc64d20 100644 --- a/doc/html/a00313.html +++ b/doc/html/a00313.html @@ -33,18 +33,24 @@
    -
    tbb::tbb_allocator< void >::rebind< U > Member List
    +
    tbb::mutex::scoped_lock 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::mutex::scoped_lock, including all inherited members.

    - + + + + + + +
    other typedef (defined in tbb::tbb_allocator< void >::rebind< U >)tbb::tbb_allocator< void >::rebind< U >
    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

    diff --git a/doc/html/a00314.html b/doc/html/a00314.html index ee06e5d88b..7ad18d413b 100644 --- a/doc/html/a00314.html +++ b/doc/html/a00314.html @@ -33,29 +33,21 @@
    -
    tbb::zero_allocator< T, Allocator > Member List
    +
    tbb::null_mutex 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::null_mutex, 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
    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

    diff --git a/doc/html/a00315.html b/doc/html/a00315.html index 0fbac07bfc..3e9d55e1b4 100644 --- a/doc/html/a00315.html +++ b/doc/html/a00315.html @@ -33,18 +33,23 @@
    -
    tbb::zero_allocator< T, Allocator >::rebind< U > Member List
    +
    tbb::null_mutex::scoped_lock 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::null_mutex::scoped_lock, including all inherited members.

    - + + + + + +
    other typedef (defined in tbb::zero_allocator< T, Allocator >::rebind< U >)tbb::zero_allocator< T, Allocator >::rebind< U >
    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

    diff --git a/doc/html/a00316.html b/doc/html/a00316.html index 1dde030485..be540b533e 100644 --- a/doc/html/a00316.html +++ b/doc/html/a00316.html @@ -33,21 +33,21 @@
    -
    tbb::zero_allocator< void, Allocator > Member List
    +
    tbb::null_rw_mutex 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::null_rw_mutex, 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 >
    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

    diff --git a/doc/html/a00317.html b/doc/html/a00317.html index 890233fe26..7be96b1457 100644 --- a/doc/html/a00317.html +++ b/doc/html/a00317.html @@ -33,18 +33,25 @@
    -
    tbb::zero_allocator< void, Allocator >::rebind< U > Member List
    +
    tbb::null_rw_mutex::scoped_lock 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::null_rw_mutex::scoped_lock, including all inherited members.

    - + + + + + + + +
    other typedef (defined in tbb::zero_allocator< void, Allocator >::rebind< U >)tbb::zero_allocator< void, Allocator >::rebind< U >
    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

    diff --git a/doc/html/a00318.html b/doc/html/a00318.html index fc20431863..9227f457cf 100644 --- a/doc/html/a00318.html +++ b/doc/html/a00318.html @@ -33,19 +33,19 @@
    -
    tbb::bad_last_alloc Member List
    +
    tbb::parallel_do_feeder< Item > 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::parallel_do_feeder< Item >, 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
    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

    diff --git a/doc/html/a00319.html b/doc/html/a00319.html index 2c8940b37c..f8216210bd 100644 --- a/doc/html/a00319.html +++ b/doc/html/a00319.html @@ -33,18 +33,18 @@
    -
    tbb::improper_lock Member List
    +
    tbb::pre_scan_tag 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::pre_scan_tag, including all inherited members.

    - +
    what() const (defined in tbb::improper_lock)tbb::improper_lock
    is_final_scan() (defined in tbb::pre_scan_tag)tbb::pre_scan_taginlinestatic

    diff --git a/doc/html/a00320.html b/doc/html/a00320.html index fb3767757e..b66b843901 100644 --- a/doc/html/a00320.html +++ b/doc/html/a00320.html @@ -33,18 +33,18 @@
    -
    tbb::user_abort Member List
    +
    tbb::final_scan_tag 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::final_scan_tag, including all inherited members.

    - +
    what() const (defined in tbb::user_abort)tbb::user_abort
    is_final_scan() (defined in tbb::final_scan_tag)tbb::final_scan_taginlinestatic

    diff --git a/doc/html/a00321.html b/doc/html/a00321.html index a0999d79f1..6201199999 100644 --- a/doc/html/a00321.html +++ b/doc/html/a00321.html @@ -33,18 +33,22 @@
    -
    tbb::missing_wait Member List
    +
    tbb::parallel_while< Body > 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::parallel_while< Body >, including all inherited members.

    - + + + + +
    what() const (defined in tbb::missing_wait)tbb::missing_wait
    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

    diff --git a/doc/html/a00322.html b/doc/html/a00322.html index 5f51da8397..8673a9e0d5 100644 --- a/doc/html/a00322.html +++ b/doc/html/a00322.html @@ -33,18 +33,22 @@
    -
    tbb::invalid_multiple_scheduling Member List
    +
    tbb::filter 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::filter, including all inherited members.

    - + + + + +
    what() const (defined in tbb::invalid_multiple_scheduling)tbb::invalid_multiple_scheduling
    exact_exception_propagationtbb::filterprotectedstatic
    filter_is_boundtbb::filterprotectedstatic
    filter_is_out_of_ordertbb::filterprotectedstatic
    filter_is_serialtbb::filterprotectedstatic
    filter_may_emit_nulltbb::filterprotectedstatic

    diff --git a/doc/html/a00323.html b/doc/html/a00323.html index 3f6d9847a1..00b1c656d2 100644 --- a/doc/html/a00323.html +++ b/doc/html/a00323.html @@ -33,24 +33,29 @@
    -
    tbb::tbb_exception Member List
    +
    tbb::thread_bound_filter 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::thread_bound_filter, 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
    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

    diff --git a/doc/html/a00324.html b/doc/html/a00324.html index 6698c35e34..e5b62b3f82 100644 --- a/doc/html/a00324.html +++ b/doc/html/a00324.html @@ -33,30 +33,29 @@
    -
    tbb::captured_exception Member List
    +
    tbb::pipeline 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::pipeline, 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
    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

    diff --git a/doc/html/a00325.html b/doc/html/a00325.html index 824268f0c0..0b62524e20 100644 --- a/doc/html/a00325.html +++ b/doc/html/a00325.html @@ -33,31 +33,22 @@
    -
    tbb::movable_exception< ExceptionData > Member List
    +
    tbb::queuing_mutex 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::queuing_mutex, 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
    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

    diff --git a/doc/html/a00326.html b/doc/html/a00326.html index 0f87fe170c..43ee577fc9 100644 --- a/doc/html/a00326.html +++ b/doc/html/a00326.html @@ -33,21 +33,23 @@
    -
    tbb::tick_count Member List
    +
    tbb::queuing_mutex::scoped_lock 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::queuing_mutex::scoped_lock, 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
    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

    diff --git a/doc/html/a00327.html b/doc/html/a00327.html index e1355ac550..2d7543c3f2 100644 --- a/doc/html/a00327.html +++ b/doc/html/a00327.html @@ -33,26 +33,23 @@
    -
    tbb::tick_count::interval_t Member List
    +
    tbb::queuing_rw_mutex 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::queuing_rw_mutex, 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
    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

    diff --git a/doc/html/a00328.html b/doc/html/a00328.html index f542d9ecb7..167a7a298a 100644 --- a/doc/html/a00328.html +++ b/doc/html/a00328.html @@ -33,33 +33,25 @@
    -
    tbb::flow::interface8::sender< T > Member List
    +
    tbb::queuing_rw_mutex::scoped_lock 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::queuing_rw_mutex::scoped_lock, 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
    acquire(queuing_rw_mutex &m, bool write=true)tbb::queuing_rw_mutex::scoped_lock
    downgrade_to_reader()tbb::queuing_rw_mutex::scoped_lock
    release()tbb::queuing_rw_mutex::scoped_lock
    scoped_lock()tbb::queuing_rw_mutex::scoped_lockinline
    scoped_lock(queuing_rw_mutex &m, bool write=true)tbb::queuing_rw_mutex::scoped_lockinline
    try_acquire(queuing_rw_mutex &m, bool write=true)tbb::queuing_rw_mutex::scoped_lock
    upgrade_to_writer()tbb::queuing_rw_mutex::scoped_lock
    ~scoped_lock()tbb::queuing_rw_mutex::scoped_lockinline

    diff --git a/doc/html/a00329.html b/doc/html/a00329.html index e61c122f8b..700701fbeb 100644 --- a/doc/html/a00329.html +++ b/doc/html/a00329.html @@ -33,38 +33,29 @@
    -
    tbb::flow::interface8::receiver< T > Member List
    +
    tbb::recursive_mutex 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::recursive_mutex, 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 >
    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
    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

    diff --git a/doc/html/a00330.html b/doc/html/a00330.html index 656284786d..cedd77d9c7 100644 --- a/doc/html/a00330.html +++ b/doc/html/a00330.html @@ -33,66 +33,24 @@
    -
    tbb::flow::interface8::limiter_node< T > Member List
    +
    tbb::recursive_mutex::scoped_lock 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::recursive_mutex::scoped_lock, 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
    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

    diff --git a/doc/html/a00331.html b/doc/html/a00331.html index c539d932e5..2a9c3d1bce 100644 --- a/doc/html/a00331.html +++ b/doc/html/a00331.html @@ -33,47 +33,36 @@
    -
    tbb::flow::interface8::continue_receiver Member List
    +
    tbb::scalable_allocator< 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::scalable_allocator< 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
    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 >

    diff --git a/doc/html/a00332.html b/doc/html/a00332.html index 096b1411e5..ce7d4f1083 100644 --- a/doc/html/a00332.html +++ b/doc/html/a00332.html @@ -33,34 +33,18 @@
    -
    tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > Member List
    +
    tbb::scalable_allocator< T >::rebind< U > 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::scalable_allocator< T >::rebind< U >, 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 >
    other typedef (defined in tbb::scalable_allocator< T >::rebind< U >)tbb::scalable_allocator< T >::rebind< U >

    diff --git a/doc/html/a00333.html b/doc/html/a00333.html index 91ff624115..996203e903 100644 --- a/doc/html/a00333.html +++ b/doc/html/a00333.html @@ -33,43 +33,20 @@
    -
    tbb::flow::interface8::graph Member List
    +
    tbb::scalable_allocator< void > 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::scalable_allocator< void >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
    add_task_to_reset_list(task *tp) (defined in tbb::flow::interface8::graph)tbb::flow::interface8::graphinline
    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::graphinlineexplicit
    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
    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 >

    diff --git a/doc/html/a00334.html b/doc/html/a00334.html index a401e02fa2..b30d66cede 100644 --- a/doc/html/a00334.html +++ b/doc/html/a00334.html @@ -33,27 +33,18 @@
    -
    tbb::flow::interface8::graph_node Member List
    +
    tbb::scalable_allocator< void >::rebind< U > 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::scalable_allocator< void >::rebind< U >, 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
    other typedef (defined in tbb::scalable_allocator< void >::rebind< U >)tbb::scalable_allocator< void >::rebind< U >

    diff --git a/doc/html/a00335.html b/doc/html/a00335.html index 56a582099b..f3a0da1291 100644 --- a/doc/html/a00335.html +++ b/doc/html/a00335.html @@ -33,48 +33,26 @@
    -
    tbb::flow::interface8::source_node< Output > Member List
    +
    tbb::spin_mutex 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::spin_mutex, 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
    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

    diff --git a/doc/html/a00336.html b/doc/html/a00336.html index d1541b6e81..ef169da792 100644 --- a/doc/html/a00336.html +++ b/doc/html/a00336.html @@ -33,18 +33,24 @@
    -
    tbb::flow::interface8::allocate_buffer< T > Member List
    +
    tbb::spin_mutex::scoped_lock 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::spin_mutex::scoped_lock, including all inherited members.

    - + + + + + + +
    value (defined in tbb::flow::interface8::allocate_buffer< T >)tbb::flow::interface8::allocate_buffer< T >static
    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

    diff --git a/doc/html/a00337.html b/doc/html/a00337.html index 0261fe67a3..305fe10338 100644 --- a/doc/html/a00337.html +++ b/doc/html/a00337.html @@ -33,18 +33,34 @@
    -
    tbb::flow::interface8::allocate_buffer< queueing > Member List
    +
    tbb::spin_rw_mutex_v3 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::spin_rw_mutex_v3, including all inherited members.

    - + + + + + + + + + + + + + + + + +
    value (defined in tbb::flow::interface8::allocate_buffer< queueing >)tbb::flow::interface8::allocate_buffer< queueing >static
    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

    diff --git a/doc/html/a00338.html b/doc/html/a00338.html index 13e7560779..713548d3e9 100644 --- a/doc/html/a00338.html +++ b/doc/html/a00338.html @@ -33,38 +33,28 @@
    -
    tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > Member List
    +
    tbb::spin_rw_mutex_v3::scoped_lock 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::spin_rw_mutex_v3::scoped_lock, 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
    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

    diff --git a/doc/html/a00339.html b/doc/html/a00339.html index 5180ee04be..118c4dd856 100644 --- a/doc/html/a00339.html +++ b/doc/html/a00339.html @@ -33,33 +33,22 @@
    -
    tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > Member List
    +
    tbb::task_handle< F > 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::task_handle< F >, 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
    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

    diff --git a/doc/html/a00340.html b/doc/html/a00340.html index 1282dce293..50ba00ace8 100644 --- a/doc/html/a00340.html +++ b/doc/html/a00340.html @@ -33,35 +33,32 @@
    -
    tbb::flow::interface8::split_node< TupleType, Allocator > Member List
    +
    tbb::task_group 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::task_group, 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
    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

    diff --git a/doc/html/a00341.html b/doc/html/a00341.html index ea1c7819fb..fa99304c22 100644 --- a/doc/html/a00341.html +++ b/doc/html/a00341.html @@ -33,38 +33,29 @@
    -
    tbb::flow::interface8::continue_node< Output > Member List
    +
    tbb::structured_task_group 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::structured_task_group, 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
    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

    diff --git a/doc/html/a00342.html b/doc/html/a00342.html index b063494c80..91df3539af 100644 --- a/doc/html/a00342.html +++ b/doc/html/a00342.html @@ -33,71 +33,28 @@
    -
    tbb::flow::interface8::overwrite_node< T > Member List
    +
    tbb::task_scheduler_init 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::task_scheduler_init, 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
    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

    diff --git a/doc/html/a00343.html b/doc/html/a00343.html index 540f2091a0..2fc5720a26 100644 --- a/doc/html/a00343.html +++ b/doc/html/a00343.html @@ -33,73 +33,40 @@
    -
    tbb::flow::interface8::write_once_node< T > Member List
    +
    tbb::tbb_allocator< T > 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::tbb_allocator< T >, 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
    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 >

    diff --git a/doc/html/a00344.html b/doc/html/a00344.html index e43d74fb28..fb63c61a7d 100644 --- a/doc/html/a00344.html +++ b/doc/html/a00344.html @@ -33,63 +33,18 @@
    -
    tbb::flow::interface8::broadcast_node< T > Member List
    +
    tbb::tbb_allocator< T >::rebind< U > 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::tbb_allocator< T >::rebind< U >, 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
    other typedef (defined in tbb::tbb_allocator< T >::rebind< U >)tbb::tbb_allocator< T >::rebind< U >

    diff --git a/doc/html/a00345.html b/doc/html/a00345.html index a0d1510458..0d34a0c298 100644 --- a/doc/html/a00345.html +++ b/doc/html/a00345.html @@ -33,114 +33,20 @@
    -
    tbb::flow::interface8::buffer_node< T, A > Member List
    +
    tbb::tbb_allocator< void > 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::tbb_allocator< void >, 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
    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 >

    diff --git a/doc/html/a00346.html b/doc/html/a00346.html index 3acc0933d2..c428fc1fe4 100644 --- a/doc/html/a00346.html +++ b/doc/html/a00346.html @@ -33,27 +33,18 @@
    -
    tbb::flow::interface8::buffer_node< T, A >::buffer_operation Member List
    +
    tbb::tbb_allocator< void >::rebind< U > 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::tbb_allocator< void >::rebind< U >, 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
    other typedef (defined in tbb::tbb_allocator< void >::rebind< U >)tbb::tbb_allocator< void >::rebind< U >

    diff --git a/doc/html/a00347.html b/doc/html/a00347.html new file mode 100644 index 0000000000..a53237c31f --- /dev/null +++ b/doc/html/a00347.html @@ -0,0 +1,68 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::zero_allocator< T, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for tbb::zero_allocator< T, Allocator >, 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
    +
    +

    +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/a00348.html b/doc/html/a00348.html index ae13b319c9..a73478c3ef 100644 --- a/doc/html/a00348.html +++ b/doc/html/a00348.html @@ -33,113 +33,18 @@
    -
    tbb::flow::interface8::queue_node< T, A > Member List
    +
    tbb::zero_allocator< T, Allocator >::rebind< U > 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::zero_allocator< T, Allocator >::rebind< U >, 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
    other typedef (defined in tbb::zero_allocator< T, Allocator >::rebind< U >)tbb::zero_allocator< T, Allocator >::rebind< U >

    diff --git a/doc/html/a00349.html b/doc/html/a00349.html index b891e2e317..7218c25f25 100644 --- a/doc/html/a00349.html +++ b/doc/html/a00349.html @@ -33,116 +33,21 @@
    -
    tbb::flow::interface8::sequencer_node< T, A > Member List
    +
    tbb::zero_allocator< void, Allocator > Member List
    -

    This is the complete list of members for tbb::flow::interface8::sequencer_node< T, A >, including all inherited members.

    +

    This is the complete list of members for tbb::zero_allocator< void, Allocator >, 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
    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 >

    diff --git a/doc/html/a00350.html b/doc/html/a00350.html index 74182fdc8c..0bb723820d 100644 --- a/doc/html/a00350.html +++ b/doc/html/a00350.html @@ -33,114 +33,18 @@
    -
    tbb::flow::interface8::priority_queue_node< T, Compare, A > Member List
    +
    tbb::zero_allocator< void, Allocator >::rebind< U > 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::zero_allocator< void, Allocator >::rebind< U >, 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
    other typedef (defined in tbb::zero_allocator< void, Allocator >::rebind< U >)tbb::zero_allocator< void, Allocator >::rebind< U >

    diff --git a/doc/html/a00351.html b/doc/html/a00351.html index 974cc8f19e..80f4e1c62a 100644 --- a/doc/html/a00351.html +++ b/doc/html/a00351.html @@ -33,22 +33,19 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, reserving > Member List
    +
    tbb::bad_last_alloc Member List

    diff --git a/doc/html/a00352.html b/doc/html/a00352.html index b10a7dea95..bd4633e7d9 100644 --- a/doc/html/a00352.html +++ b/doc/html/a00352.html @@ -33,22 +33,18 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, queueing > Member List
    +
    tbb::improper_lock Member List

    diff --git a/doc/html/a00353.html b/doc/html/a00353.html index de16b407a1..ded6eae9ce 100644 --- a/doc/html/a00353.html +++ b/doc/html/a00353.html @@ -33,30 +33,18 @@
    -
    tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > Member List
    +
    tbb::user_abort 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::user_abort, 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, __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
    what() const (defined in tbb::user_abort)tbb::user_abort

    diff --git a/doc/html/a00354.html b/doc/html/a00354.html index 5e97352802..6c1ddcb706 100644 --- a/doc/html/a00354.html +++ b/doc/html/a00354.html @@ -33,23 +33,18 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Member List
    +
    tbb::missing_wait Member List

    diff --git a/doc/html/a00355.html b/doc/html/a00355.html index 1e1509b901..5782eb727d 100644 --- a/doc/html/a00355.html +++ b/doc/html/a00355.html @@ -33,23 +33,18 @@
    -
    tbb::flow::interface8::indexer_node< T0 > Member List
    +
    tbb::invalid_multiple_scheduling 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::invalid_multiple_scheduling, 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 >
    what() const (defined in tbb::invalid_multiple_scheduling)tbb::invalid_multiple_scheduling

    diff --git a/doc/html/a00356.html b/doc/html/a00356.html index 3246a732c0..fb05275223 100644 --- a/doc/html/a00356.html +++ b/doc/html/a00356.html @@ -33,23 +33,24 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1 > Member List
    +
    tbb::tbb_exception 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::tbb_exception, 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 >
    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

    diff --git a/doc/html/a00357.html b/doc/html/a00357.html index a1e17e5517..b30af85946 100644 --- a/doc/html/a00357.html +++ b/doc/html/a00357.html @@ -33,23 +33,30 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2 > Member List
    +
    tbb::captured_exception 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::captured_exception, 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 >
    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

    diff --git a/doc/html/a00358.html b/doc/html/a00358.html index 9beed9b329..598921eddd 100644 --- a/doc/html/a00358.html +++ b/doc/html/a00358.html @@ -33,23 +33,31 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Member List
    +
    tbb::movable_exception< ExceptionData > 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::movable_exception< ExceptionData >, 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 >
    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

    diff --git a/doc/html/a00359.html b/doc/html/a00359.html index d052fd36e3..d3f2e4bf8e 100644 --- a/doc/html/a00359.html +++ b/doc/html/a00359.html @@ -33,23 +33,21 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > Member List
    +
    tbb::tick_count Member List

    diff --git a/doc/html/a00360.html b/doc/html/a00360.html index 7edf2292e8..1741cfd8c7 100644 --- a/doc/html/a00360.html +++ b/doc/html/a00360.html @@ -33,23 +33,26 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > Member List
    +
    tbb::tick_count::interval_t 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::tick_count::interval_t, 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 >
    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

    diff --git a/doc/html/a00361.html b/doc/html/a00361.html index 082f6cc689..9c9098e2f8 100644 --- a/doc/html/a00361.html +++ b/doc/html/a00361.html @@ -33,23 +33,33 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6 > Member List
    +
    tbb::flow::interface8::sender< T > 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::sender< T >, 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 >
    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

    diff --git a/doc/html/a00362.html b/doc/html/a00362.html index 33e0b6e5ab..8e444035ff 100644 --- a/doc/html/a00362.html +++ b/doc/html/a00362.html @@ -33,23 +33,39 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > Member List
    +
    tbb::flow::interface8::receiver< T > 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::receiver< T >, 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 >
    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

    diff --git a/doc/html/a00363.html b/doc/html/a00363.html index fe3a510ac2..60dad58855 100644 --- a/doc/html/a00363.html +++ b/doc/html/a00363.html @@ -33,23 +33,66 @@
    -
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > Member List
    +
    tbb::flow::interface8::limiter_node< T > 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::limiter_node< T >, 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 >
    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

    diff --git a/doc/html/a00364.html b/doc/html/a00364.html index 685db08b76..d3d3f1febd 100644 --- a/doc/html/a00364.html +++ b/doc/html/a00364.html @@ -33,37 +33,47 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > Member List
    +
    tbb::flow::interface8::continue_receiver 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::continue_receiver, 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
    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

    diff --git a/doc/html/a00365.html b/doc/html/a00365.html index 29b9a2479d..e93826e8aa 100644 --- a/doc/html/a00365.html +++ b/doc/html/a00365.html @@ -33,35 +33,34 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > Member List
    +
    tbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType > 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::graph_iterator< GraphContainerType, GraphNodeType >, 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
    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 >

    diff --git a/doc/html/a00366.html b/doc/html/a00366.html index 1a7a2709a8..32fdc31ce2 100644 --- a/doc/html/a00366.html +++ b/doc/html/a00366.html @@ -33,35 +33,44 @@
    -
    tbb::flow::interface8::composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > Member List
    +
    tbb::flow::interface8::graph 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::graph, 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_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

    diff --git a/doc/html/a00367.html b/doc/html/a00367.html index 15bd4b2f13..38b9e4ec54 100644 --- a/doc/html/a00367.html +++ b/doc/html/a00367.html @@ -33,44 +33,27 @@
    -
    tbb::flow::interface8::async_node< Input, Output, Allocator > Member List
    +
    tbb::flow::interface8::graph_node Member List
    -

    This is the complete list of members for tbb::flow::interface8::async_node< Input, Output, Allocator >, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::graph_node, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + +
    async_commit() (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotectedvirtual
    async_gateway() (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inline
    async_gateway_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    async_input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    async_node(graph &g, Body body)tbb::flow::interface8::async_node< Input, Output, Allocator >inline
    async_node(const async_node &src)tbb::flow::interface8::async_node< Input, Output, Allocator >inline
    async_output_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    async_reserve() (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotectedvirtual
    async_try_put(const output_type &i)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotectedvirtual
    extract() (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotectedvirtual
    graph_node(graph &g) (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinline
    input_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    internal::broadcast_cache (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >friend
    internal::round_robin_cache (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >friend
    my_class typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    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::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    predecessor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    prev (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeprotected
    reset_node(reset_flags f) (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotectedvirtual
    run_and_put_task (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >friend
    set_name(const char *name) (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlinevirtual
    successor_type typedef (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >
    successors() (defined in tbb::flow::interface8::async_node< Input, Output, Allocator >)tbb::flow::interface8::async_node< Input, Output, Allocator >inlineprotected
    ~async_gateway() (defined in tbb::flow::interface8::internal::async_gateway< Output >)tbb::flow::interface8::internal::async_gateway< Output >inlinevirtual
    ~graph_node() (defined in tbb::flow::interface8::graph_node)tbb::flow::interface8::graph_nodeinlinevirtual
    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

    diff --git a/doc/html/a00368.html b/doc/html/a00368.html index fef80a1990..a2827cc38f 100644 --- a/doc/html/a00368.html +++ b/doc/html/a00368.html @@ -33,25 +33,48 @@
    -
    tbb::flow::interface8::internal::edge_container< C > Member List
    +
    tbb::flow::interface8::source_node< Output > 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::source_node< Output >, 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 >
    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

    diff --git a/doc/html/a00369.html b/doc/html/a00369.html index ce92c345b7..711eb6690d 100644 --- a/doc/html/a00369.html +++ b/doc/html/a00369.html @@ -33,22 +33,18 @@
    -
    tbb::flow::interface8::internal::async_gateway< Output > Member List
    +
    tbb::flow::interface8::allocate_buffer< T > Member List

    diff --git a/doc/html/a00370.html b/doc/html/a00370.html index 042a819b3e..2a25057e5c 100644 --- a/doc/html/a00370.html +++ b/doc/html/a00370.html @@ -33,104 +33,18 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Member List
    +
    tbb::flow::interface8::allocate_buffer< queueing > 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::allocate_buffer< queueing >, 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
    value (defined in tbb::flow::interface8::allocate_buffer< queueing >)tbb::flow::interface8::allocate_buffer< queueing >static

    diff --git a/doc/html/a00371.html b/doc/html/a00371.html index 14a24dc012..288e92d0a4 100644 --- a/doc/html/a00371.html +++ b/doc/html/a00371.html @@ -33,27 +33,38 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Member List
    +
    tbb::flow::interface8::function_node< Input, Output, Policy, Allocator > 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::function_node< Input, Output, Policy, Allocator >, 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
    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

    diff --git a/doc/html/a00372.html b/doc/html/a00372.html index 0631c6e2fc..620ad06ac5 100644 --- a/doc/html/a00372.html +++ b/doc/html/a00372.html @@ -33,18 +33,33 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Member List
    +
    tbb::flow::interface8::multifunction_node< Input, Output, Policy, Allocator > 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::multifunction_node< Input, Output, Policy, Allocator >, 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
    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

    diff --git a/doc/html/a00373.html b/doc/html/a00373.html index f4c71d1440..19031d0e6b 100644 --- a/doc/html/a00373.html +++ b/doc/html/a00373.html @@ -33,21 +33,35 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Member List
    +
    tbb::flow::interface8::split_node< TupleType, Allocator > 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::flow::interface8::split_node< TupleType, Allocator >, 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
    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

    diff --git a/doc/html/a00374.html b/doc/html/a00374.html index 50533a58f0..adb30bcaff 100644 --- a/doc/html/a00374.html +++ b/doc/html/a00374.html @@ -33,21 +33,38 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Member List
    +
    tbb::flow::interface8::continue_node< Output > 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::flow::interface8::continue_node< Output >, 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
    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

    diff --git a/doc/html/a00375.html b/doc/html/a00375.html index 5e71fc03af..fec52ad729 100644 --- a/doc/html/a00375.html +++ b/doc/html/a00375.html @@ -33,29 +33,71 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Member List
    +
    tbb::flow::interface8::overwrite_node< T > 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::flow::interface8::overwrite_node< T >, 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
    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

    diff --git a/doc/html/a00376.html b/doc/html/a00376.html index 1e604fb51f..39081ac36e 100644 --- a/doc/html/a00376.html +++ b/doc/html/a00376.html @@ -33,27 +33,73 @@
    -
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Member List
    +
    tbb::flow::interface8::write_once_node< T > 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::flow::interface8::write_once_node< T >, 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
    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

    diff --git a/doc/html/a00377.html b/doc/html/a00377.html index b8ba5ff8af..9431092a7a 100644 --- a/doc/html/a00377.html +++ b/doc/html/a00377.html @@ -33,45 +33,63 @@
    -
    tbb::interface5::concurrent_priority_queue< T, Compare, A > Member List
    +
    tbb::flow::interface8::broadcast_node< T > 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::flow::interface8::broadcast_node< T >, 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 >
    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

    diff --git a/doc/html/a00378.html b/doc/html/a00378.html index adcda40522..611cb6abdb 100644 --- a/doc/html/a00378.html +++ b/doc/html/a00378.html @@ -33,26 +33,114 @@
    -
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Member List
    +
    tbb::flow::interface8::buffer_node< T, A > 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::flow::interface8::buffer_node< T, A >, 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
    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

    diff --git a/doc/html/a00379.html b/doc/html/a00379.html index a16dfd33d4..0b1ceae47e 100644 --- a/doc/html/a00379.html +++ b/doc/html/a00379.html @@ -33,21 +33,27 @@
    -
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Member List
    +
    tbb::flow::interface8::buffer_node< T, A >::buffer_operation 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::flow::interface8::buffer_node< T, A >::buffer_operation, 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
    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

    diff --git a/doc/html/a00381.html b/doc/html/a00381.html index 451eb444b6..447b4befe9 100644 --- a/doc/html/a00381.html +++ b/doc/html/a00381.html @@ -33,44 +33,113 @@
    -
    tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Member List
    +
    tbb::flow::interface8::queue_node< T, A > 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::flow::interface8::queue_node< T, A >, 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 >
    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

    diff --git a/doc/html/a00382.html b/doc/html/a00382.html index 60aa51f86c..45800618ba 100644 --- a/doc/html/a00382.html +++ b/doc/html/a00382.html @@ -33,27 +33,116 @@
    -
    tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Member List
    +
    tbb::flow::interface8::sequencer_node< T, A > 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::flow::interface8::sequencer_node< T, A >, 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
    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

    diff --git a/doc/html/a00383.html b/doc/html/a00383.html index 0e0849070c..1217f67a65 100644 --- a/doc/html/a00383.html +++ b/doc/html/a00383.html @@ -33,44 +33,114 @@
    -
    tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Member List
    +
    tbb::flow::interface8::priority_queue_node< T, Compare, A > 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::flow::interface8::priority_queue_node< T, Compare, A >, 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 >
    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

    diff --git a/doc/html/a00384.html b/doc/html/a00384.html index 5cdea28725..24432d8b1a 100644 --- a/doc/html/a00384.html +++ b/doc/html/a00384.html @@ -33,44 +33,22 @@
    -
    tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, reserving > 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::flow::interface8::join_node< OutputTuple, reserving >, 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 >
    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

    diff --git a/doc/html/a00385.html b/doc/html/a00385.html index 18090e44ca..32fc294da2 100644 --- a/doc/html/a00385.html +++ b/doc/html/a00385.html @@ -33,31 +33,22 @@
    -
    tbb::interface5::reader_writer_lock Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, queueing > 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::flow::interface8::join_node< OutputTuple, queueing >, 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
    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

    diff --git a/doc/html/a00386.html b/doc/html/a00386.html index 23af3a6188..5e01248d1f 100644 --- a/doc/html/a00386.html +++ b/doc/html/a00386.html @@ -33,22 +33,31 @@
    -
    tbb::interface5::reader_writer_lock::scoped_lock Member List
    +
    tbb::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > > 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::flow::interface8::join_node< OutputTuple, key_matching< K, KHash > >, 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
    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

    diff --git a/doc/html/a00387.html b/doc/html/a00387.html index f6b1bab802..e551440b77 100644 --- a/doc/html/a00387.html +++ b/doc/html/a00387.html @@ -33,22 +33,23 @@
    -
    tbb::interface5::reader_writer_lock::scoped_lock_read 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::interface5::reader_writer_lock::scoped_lock_read, 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.

    - - - - - + + + + + +
    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
    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 >

    diff --git a/doc/html/a00388.html b/doc/html/a00388.html index af05f34495..c421439c9e 100644 --- a/doc/html/a00388.html +++ b/doc/html/a00388.html @@ -33,19 +33,23 @@
    -
    tbb::interface5::internal::use_element_copy_constructor< T, C > Member List
    +
    tbb::flow::interface8::indexer_node< T0 > Member List

    diff --git a/doc/html/a00389.html b/doc/html/a00389.html index 48d05b1766..e18b4699db 100644 --- a/doc/html/a00389.html +++ b/doc/html/a00389.html @@ -33,18 +33,23 @@
    -
    tbb::interface5::internal::use_element_copy_constructor< T, false > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1 > Member List

    diff --git a/doc/html/a00390.html b/doc/html/a00390.html index 0029102e53..e45b20a206 100644 --- a/doc/html/a00390.html +++ b/doc/html/a00390.html @@ -33,26 +33,23 @@
    -
    tbb::interface6::aggregator_operation Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2 > 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::flow::interface8::indexer_node< T0, T1, T2 >, 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
    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 >

    diff --git a/doc/html/a00391.html b/doc/html/a00391.html index 4b93f749a1..2c921f39f0 100644 --- a/doc/html/a00391.html +++ b/doc/html/a00391.html @@ -33,20 +33,23 @@
    -
    tbb::interface6::aggregator_ext< handler_type > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3 > Member List

    diff --git a/doc/html/a00392.html b/doc/html/a00392.html index 3b797e73fc..adac27abb5 100644 --- a/doc/html/a00392.html +++ b/doc/html/a00392.html @@ -33,22 +33,23 @@
    -
    tbb::interface6::aggregator Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4 > 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::flow::interface8::indexer_node< T0, T1, T2, T3, T4 >, 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
    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 >

    diff --git a/doc/html/a00393.html b/doc/html/a00393.html index ea80506ec2..764b1834da 100644 --- a/doc/html/a00393.html +++ b/doc/html/a00393.html @@ -33,21 +33,23 @@
    -
    tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Member List
    +
    tbb::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 > 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::flow::interface8::indexer_node< T0, T1, T2, T3, T4, T5 >, 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
    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 >

    diff --git a/doc/html/a00394.html b/doc/html/a00394.html index 99eeb1828a..1df1b2b500 100644 --- a/doc/html/a00394.html +++ b/doc/html/a00394.html @@ -33,57 +33,23 @@
    -
    tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > 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::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >, 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.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +
    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
    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 >

    diff --git a/doc/html/a00395.html b/doc/html/a00395.html index 9122011429..44ef48aa7f 100644 --- a/doc/html/a00395.html +++ b/doc/html/a00395.html @@ -33,34 +33,23 @@
    -
    tbb::interface6::flattened2d< Container > 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::interface6::flattened2d< Container >, 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.

    - - - - - - - - - - - - - - - - - + + + + + +
    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 >
    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 >

    diff --git a/doc/html/a00396.html b/doc/html/a00396.html index ab1a37cb5d..6b85a4b599 100644 --- a/doc/html/a00396.html +++ b/doc/html/a00396.html @@ -33,41 +33,23 @@
    -
    tbb::interface6::memory_pool_allocator< T, P > 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::interface6::memory_pool_allocator< T, P >, 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.

    - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +
    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 >
    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 >

    diff --git a/doc/html/a00397.html b/doc/html/a00397.html index 54797ef1c1..2f761c1757 100644 --- a/doc/html/a00397.html +++ b/doc/html/a00397.html @@ -33,18 +33,37 @@
    -
    tbb::interface6::memory_pool_allocator< T, P >::rebind< U > 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::interface6::memory_pool_allocator< T, P >::rebind< U >, 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.

    - + + + + + + + + + + + + + + + + + + + +
    other typedef (defined in tbb::interface6::memory_pool_allocator< T, P >::rebind< U >)tbb::interface6::memory_pool_allocator< T, P >::rebind< U >
    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

    diff --git a/doc/html/a00398.html b/doc/html/a00398.html index 0ae696ed12..547b157bba 100644 --- a/doc/html/a00398.html +++ b/doc/html/a00398.html @@ -33,28 +33,35 @@
    -
    tbb::interface6::memory_pool_allocator< void, P > 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::interface6::memory_pool_allocator< void, P >, 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.

    - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
    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 >
    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

    diff --git a/doc/html/a00399.html b/doc/html/a00399.html index 3f7b71f658..fb4d92648d 100644 --- a/doc/html/a00399.html +++ b/doc/html/a00399.html @@ -33,18 +33,35 @@
    -
    tbb::interface6::memory_pool_allocator< void, P >::rebind< U > 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::interface6::memory_pool_allocator< void, P >::rebind< U >, 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.

    - + + + + + + + + + + + + + + + + + +
    other typedef (defined in tbb::interface6::memory_pool_allocator< void, P >::rebind< U >)tbb::interface6::memory_pool_allocator< void, P >::rebind< U >
    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

    diff --git a/doc/html/a00400.html b/doc/html/a00400.html index 3afa403775..6b9f7cee14 100644 --- a/doc/html/a00400.html +++ b/doc/html/a00400.html @@ -33,19 +33,65 @@
    -
    tbb::interface6::memory_pool< Alloc > Member List
    +
    tbb::flow::interface8::async_node< Input, Output, Policy, Allocator > 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::flow::interface8::async_node< Input, Output, Policy, Allocator >, including all inherited members.

    - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    memory_pool(const Alloc &src=Alloc())tbb::interface6::memory_pool< Alloc >
    ~memory_pool()tbb::interface6::memory_pool< Alloc >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

    diff --git a/doc/html/a00401.html b/doc/html/a00401.html index 6ee01232f3..71fe18270d 100644 --- a/doc/html/a00401.html +++ b/doc/html/a00401.html @@ -33,19 +33,23 @@
    -
    tbb::interface6::fixed_pool 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::interface6::fixed_pool, 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.

    - - + + + + + +
    fixed_pool(void *buf, size_t size)tbb::interface6::fixed_poolinline
    ~fixed_pool()tbb::interface6::fixed_poolinline
    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

    diff --git a/doc/html/a00402.html b/doc/html/a00402.html index 7e97ac3e9e..31c5e9b741 100644 --- a/doc/html/a00402.html +++ b/doc/html/a00402.html @@ -33,19 +33,35 @@
    -
    tbb::interface6::flow_control Member List
    +
    tbb::flow::interface8::opencl_buffer_impl< Factory > 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::flow::interface8::opencl_buffer_impl< Factory >, 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
    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

    diff --git a/doc/html/a00403.html b/doc/html/a00403.html index bcae87d843..777a5c62d9 100644 --- a/doc/html/a00403.html +++ b/doc/html/a00403.html @@ -33,26 +33,52 @@
    -
    tbb::interface6::filter_t< T, U > Member List
    +
    tbb::flow::interface8::opencl_graph 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::flow::interface8::opencl_graph, 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
    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

    diff --git a/doc/html/a00404.html b/doc/html/a00404.html index 39eaa5364c..930754e832 100644 --- a/doc/html/a00404.html +++ b/doc/html/a00404.html @@ -33,33 +33,35 @@
    -
    tbb::interface6::runtime_loader Member List
    +
    tbb::flow::interface8::dependency_msg< T, Factory > 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::flow::interface8::dependency_msg< T, Factory >, 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
    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

    diff --git a/doc/html/a00405.html b/doc/html/a00405.html index b90c326270..43686e69ac 100644 --- a/doc/html/a00405.html +++ b/doc/html/a00405.html @@ -33,32 +33,28 @@
    -
    tbb::interface6::task_scheduler_observer Member List
    +
    tbb::flow::interface8::proxy_dependency_receiver< T, Factory > 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::flow::interface8::proxy_dependency_receiver< T, Factory >, 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
    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

    diff --git a/doc/html/a00406.html b/doc/html/a00406.html index 065fe094b9..7dd335d423 100644 --- a/doc/html/a00406.html +++ b/doc/html/a00406.html @@ -33,28 +33,27 @@
    -
    tbb::interface6::internal::basic_operation_base Member List
    +
    tbb::flow::interface8::receiver< dependency_msg< T, Factory > > 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::flow::interface8::receiver< dependency_msg< T, Factory > >, 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
    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

    diff --git a/doc/html/a00407.html b/doc/html/a00407.html index 60b348da28..9510c434d1 100644 --- a/doc/html/a00407.html +++ b/doc/html/a00407.html @@ -33,28 +33,29 @@
    -
    tbb::interface6::internal::basic_operation< Body > Member List
    +
    tbb::flow::interface8::proxy_dependency_sender< T, Factory > 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::flow::interface8::proxy_dependency_sender< T, Factory >, 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
    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

    diff --git a/doc/html/a00408.html b/doc/html/a00408.html index 630512ac43..f01d078cc9 100644 --- a/doc/html/a00408.html +++ b/doc/html/a00408.html @@ -33,19 +33,26 @@
    -
    tbb::interface6::internal::basic_handler Member List
    +
    tbb::flow::interface8::sender< dependency_msg< T, Factory > > 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::flow::interface8::sender< dependency_msg< T, Factory > >, 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
    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

    diff --git a/doc/html/a00409.html b/doc/html/a00409.html index 96d5ff01fe..155adb75fe 100644 --- a/doc/html/a00409.html +++ b/doc/html/a00409.html @@ -33,31 +33,48 @@
    -
    tbb::interface7::task_arena Member List
    +
    tbb::flow::interface8::opencl_device 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::flow::interface8::opencl_device, 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
    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
    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

    diff --git a/doc/html/a00410.html b/doc/html/a00410.html index fb189c11b8..90eaf5690c 100644 --- a/doc/html/a00410.html +++ b/doc/html/a00410.html @@ -33,24 +33,30 @@
    -
    tbb::interface9::global_control Member List
    +
    tbb::flow::interface8::opencl_device_list 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::flow::interface8::opencl_device_list, 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
    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

    diff --git a/doc/html/a00411.html b/doc/html/a00411.html index 41b633e442..28bc8851b8 100644 --- a/doc/html/a00411.html +++ b/doc/html/a00411.html @@ -33,26 +33,19 @@
    -
    tbb::internal::critical_section_v4 Member List
    +
    tbb::flow::interface8::callback_base 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::flow::interface8::callback_base, 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
    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

    diff --git a/doc/html/a00412.html b/doc/html/a00412.html index c0b923b882..6355659b83 100644 --- a/doc/html/a00412.html +++ b/doc/html/a00412.html @@ -33,19 +33,21 @@
    -
    tbb::internal::critical_section_v4::scoped_lock Member List
    +
    tbb::flow::interface8::callback< Callback, T > 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::flow::interface8::callback< Callback, T >, 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
    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

    diff --git a/doc/html/a00413.html b/doc/html/a00413.html index a16734bddd..3cfbe83ea6 100644 --- a/doc/html/a00413.html +++ b/doc/html/a00413.html @@ -33,18 +33,32 @@
    -
    tbb::internal::task_handle_task< F > Member List
    +
    tbb::flow::interface8::opencl_memory< Factory > 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::flow::interface8::opencl_memory< Factory >, 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
    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

    diff --git a/doc/html/a00414.html b/doc/html/a00414.html index 64f6de5143..9c30cdb217 100644 --- a/doc/html/a00414.html +++ b/doc/html/a00414.html @@ -33,28 +33,36 @@
    -
    tbb::internal::task_group_base Member List
    +
    tbb::flow::interface8::opencl_buffer< T, Factory > 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::flow::interface8::opencl_buffer< T, Factory >, 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
    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

    diff --git a/doc/html/a00415.html b/doc/html/a00415.html index b265164006..d7ef0dcae5 100644 --- a/doc/html/a00415.html +++ b/doc/html/a00415.html @@ -33,26 +33,24 @@
    -
    tbb::internal::task_scheduler_observer_v3 Member List
    +
    tbb::flow::interface8::opencl_factory< DeviceFilter > Member List
    -

    This is the complete list of members for tbb::internal::task_scheduler_observer_v3, including all inherited members.

    +

    This is the complete list of members for tbb::flow::interface8::opencl_factory< DeviceFilter >, including all inherited members.

    - - - - - - - - - + + + + + + +
    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
    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

    diff --git a/doc/html/a00416.html b/doc/html/a00416.html index cae00c4071..412c9ec812 100644 --- a/doc/html/a00416.html +++ b/doc/html/a00416.html @@ -33,22 +33,18 @@
    -
    tbb::internal::tbb_exception_ptr Member List
    +
    tbb::flow::interface8::default_opencl_factory_device_filter 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::flow::interface8::default_opencl_factory_device_filter, 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
    operator()(const opencl_device_list &devices) (defined in tbb::flow::interface8::default_opencl_factory_device_filter)tbb::flow::interface8::default_opencl_factory_device_filterinline

    diff --git a/doc/html/a00417.html b/doc/html/a00417.html index 32b58013a6..c6ee99fb8c 100644 --- a/doc/html/a00417.html +++ b/doc/html/a00417.html @@ -33,19 +33,21 @@
    -
    tbb::internal::thread_closure_base Member List
    +
    tbb::flow::interface8::default_opencl_factory Member List

    diff --git a/doc/html/a00418.html b/doc/html/a00418.html index 6777f60916..1d454492ca 100644 --- a/doc/html/a00418.html +++ b/doc/html/a00418.html @@ -33,22 +33,21 @@
    -
    tbb::internal::thread_closure_0< F > Member List
    +
    tbb::flow::interface8::opencl_foundation 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::flow::interface8::opencl_foundation, 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
    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

    diff --git a/doc/html/a00419.html b/doc/html/a00419.html index 52a4e83cd5..3d9864af75 100644 --- a/doc/html/a00419.html +++ b/doc/html/a00419.html @@ -33,23 +33,22 @@
    -
    tbb::internal::thread_closure_1< F, X > Member List
    +
    tbb::flow::interface8::opencl_program< Factory > 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::flow::interface8::opencl_program< Factory >, 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
    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

    diff --git a/doc/html/a00420.html b/doc/html/a00420.html index 7e69b3606c..c57ecbaf0e 100644 --- a/doc/html/a00420.html +++ b/doc/html/a00420.html @@ -33,24 +33,18 @@
    -
    tbb::internal::thread_closure_2< F, X, Y > Member List
    +
    tbb::flow::interface8::port_ref_impl< N1, N2 > Member List

    diff --git a/doc/html/a00421.html b/doc/html/a00421.html index f8050a145d..b9e7495e25 100644 --- a/doc/html/a00421.html +++ b/doc/html/a00421.html @@ -33,36 +33,18 @@
    -
    tbb::internal::tbb_thread_v3 Member List
    +
    tbb::flow::interface8::num_arguments< T > 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::flow::interface8::num_arguments< T >, 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
    value (defined in tbb::flow::interface8::num_arguments< T >)tbb::flow::interface8::num_arguments< T >static

    diff --git a/doc/html/a00422.html b/doc/html/a00422.html index cf813a9a4a..e1992ecb9a 100644 --- a/doc/html/a00422.html +++ b/doc/html/a00422.html @@ -33,29 +33,18 @@
    -
    tbb::internal::tbb_thread_v3::id Member List
    +
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()> 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::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>, 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
    value (defined in tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>)tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>static

    diff --git a/doc/html/a00423.html b/doc/html/a00423.html index 3cb3fe73ce..9ba94aa92d 100644 --- a/doc/html/a00423.html +++ b/doc/html/a00423.html @@ -33,44 +33,18 @@
    -
    tbb::strict_ppl::concurrent_queue< T, A > Member List
    +
    tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > > 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::flow::interface8::num_arguments< port_ref_impl< N1, N2 > >, 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 >
    value (defined in tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > >)tbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > >static

    diff --git a/doc/html/a00424.html b/doc/html/a00424.html new file mode 100644 index 0000000000..ec86c3d706 --- /dev/null +++ b/doc/html/a00424.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::key_from_policy< JP > Member List
    +
    +
    + +

    This is the complete list of members for tbb::flow::interface8::key_from_policy< JP >, 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 >
    +
    +

    +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/a00425.html b/doc/html/a00425.html new file mode 100644 index 0000000000..ef8425a4d8 --- /dev/null +++ b/doc/html/a00425.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::key_from_policy< key_matching< Key > > Member List
    +
    + +
    +

    +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/a00426.html b/doc/html/a00426.html new file mode 100644 index 0000000000..25779b73a2 --- /dev/null +++ b/doc/html/a00426.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::key_from_policy< key_matching< Key & > > Member List
    +
    + +
    +

    +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/a00427.html b/doc/html/a00427.html new file mode 100644 index 0000000000..cfda054d79 --- /dev/null +++ b/doc/html/a00427.html @@ -0,0 +1,60 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::opencl_device_with_key< Key > Member List
    +
    + +
    +

    +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/a00428.html b/doc/html/a00428.html new file mode 100644 index 0000000000..4f1e95b2e6 --- /dev/null +++ b/doc/html/a00428.html @@ -0,0 +1,69 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory > Member List
    +
    +
    + +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP, Factory >, 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
    +
    +

    +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/a00429.html b/doc/html/a00429.html new file mode 100644 index 0000000000..0e96286409 --- /dev/null +++ b/doc/html/a00429.html @@ -0,0 +1,59 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...>, JP > Member List
    +
    +
    + +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...>, JP >, 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
    +
    +

    +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/a00430.html b/doc/html/a00430.html new file mode 100644 index 0000000000..5ad70c23d6 --- /dev/null +++ b/doc/html/a00430.html @@ -0,0 +1,59 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::flow::interface8::opencl_node< tuple< Ports...> > Member List
    +
    +
    + +

    This is the complete list of members for tbb::flow::interface8::opencl_node< tuple< Ports...> >, 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
    +
    +

    +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/a00431.html b/doc/html/a00431.html new file mode 100644 index 0000000000..7c4d844f41 --- /dev/null +++ b/doc/html/a00431.html @@ -0,0 +1,64 @@ + + + + + + +Member List + + + + + + +
    + + + + + +
    +
    +
    +
    tbb::flow::interface8::internal::edge_container< C > Member List
    +
    + +
    +

    +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/a00432.html b/doc/html/a00432.html new file mode 100644 index 0000000000..31cdfc7c80 --- /dev/null +++ b/doc/html/a00432.html @@ -0,0 +1,61 @@ + + + + + + +Member List + + + + + + +
    + + + + + +
    +
    +
    +
    tbb::flow::interface8::internal::async_gateway< Output > Member List
    +
    + +
    +

    +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/a00433.html b/doc/html/a00433.html new file mode 100644 index 0000000000..2e22bf7203 --- /dev/null +++ b/doc/html/a00433.html @@ -0,0 +1,62 @@ + + + + + + +Member List + + + + + + +
    + + + + + +
    +
    +
    +
    tbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body > Member List
    +
    + +
    +

    +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/a00434.html b/doc/html/a00434.html new file mode 100644 index 0000000000..4e285cc64e --- /dev/null +++ b/doc/html/a00434.html @@ -0,0 +1,143 @@ + + + + + + +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 >, 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
    +
    +

    +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/a00435.html b/doc/html/a00435.html new file mode 100644 index 0000000000..ab5c8ba11f --- /dev/null +++ b/doc/html/a00435.html @@ -0,0 +1,66 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Member List
    +
    + +
    +

    +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/a00436.html b/doc/html/a00436.html new file mode 100644 index 0000000000..ecfeae340c --- /dev/null +++ b/doc/html/a00436.html @@ -0,0 +1,57 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Member List
    +
    + +
    +

    +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/a00288.html b/doc/html/a00437.html similarity index 51% rename from doc/html/a00288.html rename to doc/html/a00437.html index 4f199734bd..cfcf8bd42e 100644 --- a/doc/html/a00288.html +++ b/doc/html/a00437.html @@ -33,22 +33,21 @@
    -
    tbb::parallel_while< Body > Member List
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Member List

    diff --git a/doc/html/a00438.html b/doc/html/a00438.html new file mode 100644 index 0000000000..73e70430da --- /dev/null +++ b/doc/html/a00438.html @@ -0,0 +1,60 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Member List
    +
    + +
    +

    +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/a00439.html b/doc/html/a00439.html new file mode 100644 index 0000000000..155c8106c3 --- /dev/null +++ b/doc/html/a00439.html @@ -0,0 +1,68 @@ + + + + + + +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_hash_map< Key, T, HashCompare, A >::const_accessor, 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
    +
    +

    +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/a00440.html b/doc/html/a00440.html new file mode 100644 index 0000000000..712cb4ac4e --- /dev/null +++ b/doc/html/a00440.html @@ -0,0 +1,66 @@ + + + + + + +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_hash_map< Key, T, HashCompare, A >::node, 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
    +
    +

    +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/a00441.html b/doc/html/a00441.html new file mode 100644 index 0000000000..779e920c30 --- /dev/null +++ b/doc/html/a00441.html @@ -0,0 +1,84 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_priority_queue< T, Compare, A > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface5::concurrent_priority_queue< T, Compare, A >, 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 >
    +
    +

    +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/a00442.html b/doc/html/a00442.html new file mode 100644 index 0000000000..a004576102 --- /dev/null +++ b/doc/html/a00442.html @@ -0,0 +1,65 @@ + + + + + + +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_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >, 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
    +
    +

    +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/a00443.html b/doc/html/a00443.html new file mode 100644 index 0000000000..6d703188d3 --- /dev/null +++ b/doc/html/a00443.html @@ -0,0 +1,60 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >::value_compare Member List
    +
    + +
    +

    +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/a00380.html b/doc/html/a00444.html similarity index 74% rename from doc/html/a00380.html rename to doc/html/a00444.html index 7788c6a9d0..e5931e39d3 100644 --- a/doc/html/a00380.html +++ b/doc/html/a00444.html @@ -33,7 +33,7 @@
    @@ -42,38 +42,38 @@
    -

    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_unordered_map< Key, T, Hasher, Key_equality, Allocator >, 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 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 >

    diff --git a/doc/html/a00445.html b/doc/html/a00445.html new file mode 100644 index 0000000000..62d5db93a5 --- /dev/null +++ b/doc/html/a00445.html @@ -0,0 +1,83 @@ + + + + + + +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_multimap< Key, T, Hasher, Key_equality, Allocator >, 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 >
    +
    +

    +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/a00446.html b/doc/html/a00446.html new file mode 100644 index 0000000000..72bdc5e985 --- /dev/null +++ b/doc/html/a00446.html @@ -0,0 +1,66 @@ + + + + + + +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::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >, 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
    +
    +

    +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/a00447.html b/doc/html/a00447.html new file mode 100644 index 0000000000..20651efa8d --- /dev/null +++ b/doc/html/a00447.html @@ -0,0 +1,83 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_unordered_set< Key, 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.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    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. +

    +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/a00448.html b/doc/html/a00448.html new file mode 100644 index 0000000000..59e4b265d8 --- /dev/null +++ b/doc/html/a00448.html @@ -0,0 +1,83 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::concurrent_unordered_multiset< Key, 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.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    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. +

    +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/a00449.html b/doc/html/a00449.html new file mode 100644 index 0000000000..8b0e0d6e0c --- /dev/null +++ b/doc/html/a00449.html @@ -0,0 +1,70 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::reader_writer_lock Member List
    +
    + +
    +

    +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/a00450.html b/doc/html/a00450.html new file mode 100644 index 0000000000..dc5e74b633 --- /dev/null +++ b/doc/html/a00450.html @@ -0,0 +1,61 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::reader_writer_lock::scoped_lock Member List
    +
    + +
    +

    +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/a00282.html b/doc/html/a00451.html similarity index 50% rename from doc/html/a00282.html rename to doc/html/a00451.html index 2c2c3c50b6..28b3ea8aa3 100644 --- a/doc/html/a00282.html +++ b/doc/html/a00451.html @@ -33,23 +33,22 @@
    -
    tbb::null_mutex::scoped_lock Member List
    +
    tbb::interface5::reader_writer_lock::scoped_lock_read Member List

    diff --git a/doc/html/a00452.html b/doc/html/a00452.html new file mode 100644 index 0000000000..845e45342b --- /dev/null +++ b/doc/html/a00452.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface5::internal::use_element_copy_constructor< T, C > Member List
    +
    + +
    +

    +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/a00265.html b/doc/html/a00453.html similarity index 71% rename from doc/html/a00265.html rename to doc/html/a00453.html index 9557a579b8..e74459fcc8 100644 --- a/doc/html/a00265.html +++ b/doc/html/a00453.html @@ -33,19 +33,18 @@
    -
    tbb::aligned_space< T, N > Member List
    +
    tbb::interface5::internal::use_element_copy_constructor< T, false > 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::interface5::internal::use_element_copy_constructor< T, false >, including all inherited members.

    - - +
    begin()tbb::aligned_space< T, N >inline
    end()tbb::aligned_space< T, N >inline
    type typedef (defined in tbb::interface5::internal::use_element_copy_constructor< T, false >)tbb::interface5::internal::use_element_copy_constructor< T, false >

    diff --git a/doc/html/a00454.html b/doc/html/a00454.html new file mode 100644 index 0000000000..d26e934413 --- /dev/null +++ b/doc/html/a00454.html @@ -0,0 +1,65 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::aggregator_operation Member List
    +
    + +
    +

    +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/a00273.html b/doc/html/a00455.html similarity index 59% rename from doc/html/a00273.html rename to doc/html/a00455.html index e0c5e312f4..678a767c64 100644 --- a/doc/html/a00273.html +++ b/doc/html/a00455.html @@ -33,20 +33,20 @@
    -
    tbb::cache_aligned_allocator< void > Member List
    +
    tbb::interface6::aggregator_ext< handler_type > 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::interface6::aggregator_ext< handler_type >, 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 >
    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

    diff --git a/doc/html/a00456.html b/doc/html/a00456.html new file mode 100644 index 0000000000..b5c029cf17 --- /dev/null +++ b/doc/html/a00456.html @@ -0,0 +1,61 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::aggregator Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::aggregator, 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
    +
    +

    +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/a00457.html b/doc/html/a00457.html new file mode 100644 index 0000000000..20a876f0be --- /dev/null +++ b/doc/html/a00457.html @@ -0,0 +1,60 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Member List
    +
    + +
    +

    +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/a00458.html b/doc/html/a00458.html new file mode 100644 index 0000000000..bda7e42b68 --- /dev/null +++ b/doc/html/a00458.html @@ -0,0 +1,96 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_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.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    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. +

    +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/a00459.html b/doc/html/a00459.html new file mode 100644 index 0000000000..ee3ff081fe --- /dev/null +++ b/doc/html/a00459.html @@ -0,0 +1,73 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::flattened2d< Container > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::flattened2d< Container >, 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 >
    +
    +

    +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/a00460.html b/doc/html/a00460.html new file mode 100644 index 0000000000..bbe5444db8 --- /dev/null +++ b/doc/html/a00460.html @@ -0,0 +1,80 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::memory_pool_allocator< T, P > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< T, P >, 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 >
    +
    +

    +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/a00272.html b/doc/html/a00461.html similarity index 73% rename from doc/html/a00272.html rename to doc/html/a00461.html index 56fd708d54..472faa6718 100644 --- a/doc/html/a00272.html +++ b/doc/html/a00461.html @@ -33,18 +33,18 @@
    -
    tbb::cache_aligned_allocator< T >::rebind< U > Member List
    +
    tbb::interface6::memory_pool_allocator< T, P >::rebind< U > 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::interface6::memory_pool_allocator< T, P >::rebind< U >, including all inherited members.

    - +
    other typedef (defined in tbb::cache_aligned_allocator< T >::rebind< U >)tbb::cache_aligned_allocator< T >::rebind< U >
    other typedef (defined in tbb::interface6::memory_pool_allocator< T, P >::rebind< U >)tbb::interface6::memory_pool_allocator< T, P >::rebind< U >

    diff --git a/doc/html/a00462.html b/doc/html/a00462.html new file mode 100644 index 0000000000..5ea3c4ac46 --- /dev/null +++ b/doc/html/a00462.html @@ -0,0 +1,67 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::memory_pool_allocator< void, P > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::memory_pool_allocator< void, P >, 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 >
    +
    +

    +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/a00463.html b/doc/html/a00463.html new file mode 100644 index 0000000000..e270a2a07f --- /dev/null +++ b/doc/html/a00463.html @@ -0,0 +1,57 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Member List
    +
    + +
    +

    +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/a00464.html b/doc/html/a00464.html new file mode 100644 index 0000000000..409e547612 --- /dev/null +++ b/doc/html/a00464.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::memory_pool< Alloc > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::memory_pool< Alloc >, including all inherited members.

    + + + +
    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. +

    +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/a00465.html b/doc/html/a00465.html new file mode 100644 index 0000000000..e12d3f4bc7 --- /dev/null +++ b/doc/html/a00465.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::fixed_pool Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::fixed_pool, including all inherited members.

    + + + +
    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. +

    +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/a00285.html b/doc/html/a00466.html similarity index 69% rename from doc/html/a00285.html rename to doc/html/a00466.html index 297be21161..01dbb021cd 100644 --- a/doc/html/a00285.html +++ b/doc/html/a00466.html @@ -33,19 +33,19 @@
    -
    tbb::parallel_do_feeder< Item > Member List
    +
    tbb::interface6::flow_control 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::interface6::flow_control, 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
    internal::concrete_filter (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlfriend
    stop() (defined in tbb::interface6::flow_control)tbb::interface6::flow_controlinline

    diff --git a/doc/html/a00467.html b/doc/html/a00467.html new file mode 100644 index 0000000000..06882fdb49 --- /dev/null +++ b/doc/html/a00467.html @@ -0,0 +1,65 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::filter_t< T, U > Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::filter_t< T, U >, 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
    +
    +

    +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/a00468.html b/doc/html/a00468.html new file mode 100644 index 0000000000..eb26e870c9 --- /dev/null +++ b/doc/html/a00468.html @@ -0,0 +1,72 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::runtime_loader Member List
    +
    + +
    +

    +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/a00469.html b/doc/html/a00469.html new file mode 100644 index 0000000000..d48f5db069 --- /dev/null +++ b/doc/html/a00469.html @@ -0,0 +1,71 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::task_scheduler_observer Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::task_scheduler_observer, 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
    +
    +

    +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/a00470.html b/doc/html/a00470.html new file mode 100644 index 0000000000..39a5b000bf --- /dev/null +++ b/doc/html/a00470.html @@ -0,0 +1,67 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface6::internal::basic_operation_base Member List
    +
    + +
    +

    +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/a00471.html b/doc/html/a00471.html new file mode 100644 index 0000000000..a8dfcef34c --- /dev/null +++ b/doc/html/a00471.html @@ -0,0 +1,67 @@ + + + + + + +Member List + + + + + + +
    + + + + + +
    +
    +
    +
    tbb::interface6::internal::basic_operation< Body > Member List
    +
    + +
    +

    +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/a00472.html b/doc/html/a00472.html new file mode 100644 index 0000000000..ad2b8a3045 --- /dev/null +++ b/doc/html/a00472.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + +
    + + + + + +
    +
    +
    +
    tbb::interface6::internal::basic_handler Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface6::internal::basic_handler, 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
    +
    +

    +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/a00473.html b/doc/html/a00473.html new file mode 100644 index 0000000000..1bfffbee89 --- /dev/null +++ b/doc/html/a00473.html @@ -0,0 +1,71 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface7::task_arena Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface7::task_arena, 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
    +
    +

    +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/a00474.html b/doc/html/a00474.html new file mode 100644 index 0000000000..906bddc88d --- /dev/null +++ b/doc/html/a00474.html @@ -0,0 +1,63 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::interface9::global_control Member List
    +
    +
    + +

    This is the complete list of members for tbb::interface9::global_control, 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
    +
    +

    +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/a00475.html b/doc/html/a00475.html new file mode 100644 index 0000000000..2a9e7793b1 --- /dev/null +++ b/doc/html/a00475.html @@ -0,0 +1,65 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::critical_section_v4 Member List
    +
    + +
    +

    +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/a00476.html b/doc/html/a00476.html new file mode 100644 index 0000000000..556470ed9d --- /dev/null +++ b/doc/html/a00476.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::critical_section_v4::scoped_lock Member List
    +
    +
    + +

    This is the complete list of members for tbb::internal::critical_section_v4::scoped_lock, 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
    +
    +

    +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/a00287.html b/doc/html/a00477.html similarity index 74% rename from doc/html/a00287.html rename to doc/html/a00477.html index 5c2edd94a3..40baa0fc4a 100644 --- a/doc/html/a00287.html +++ b/doc/html/a00477.html @@ -33,18 +33,18 @@
    -
    tbb::final_scan_tag Member List
    +
    tbb::internal::task_handle_task< F > 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::internal::task_handle_task< F >, including all inherited members.

    - +
    is_final_scan() (defined in tbb::final_scan_tag)tbb::final_scan_taginlinestatic
    task_handle_task(task_handle< F > &h) (defined in tbb::internal::task_handle_task< F >)tbb::internal::task_handle_task< F >inline

    diff --git a/doc/html/a00478.html b/doc/html/a00478.html new file mode 100644 index 0000000000..0749b2b8a8 --- /dev/null +++ b/doc/html/a00478.html @@ -0,0 +1,67 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::task_group_base Member List
    +
    +
    + +

    This is the complete list of members for tbb::internal::task_group_base, 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
    +
    +

    +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/a00479.html b/doc/html/a00479.html new file mode 100644 index 0000000000..3eef4e70a7 --- /dev/null +++ b/doc/html/a00479.html @@ -0,0 +1,65 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::task_scheduler_observer_v3 Member List
    +
    + +
    +

    +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/a00267.html b/doc/html/a00480.html similarity index 54% rename from doc/html/a00267.html rename to doc/html/a00480.html index 307f098e86..010b27545a 100644 --- a/doc/html/a00267.html +++ b/doc/html/a00480.html @@ -33,21 +33,22 @@
    -
    tbb::atomic< void * > Member List
    +
    tbb::internal::tbb_exception_ptr 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::internal::tbb_exception_ptr, 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
    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

    diff --git a/doc/html/a00481.html b/doc/html/a00481.html new file mode 100644 index 0000000000..56e6c01ded --- /dev/null +++ b/doc/html/a00481.html @@ -0,0 +1,58 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::thread_closure_base Member List
    +
    +
    + +

    This is the complete list of members for tbb::internal::thread_closure_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
    +
    +

    +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/a00482.html b/doc/html/a00482.html new file mode 100644 index 0000000000..73e5c650ae --- /dev/null +++ b/doc/html/a00482.html @@ -0,0 +1,61 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::thread_closure_0< F > Member List
    +
    +
    + +

    This is the complete list of members for tbb::internal::thread_closure_0< F >, 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
    +
    +

    +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/a00483.html b/doc/html/a00483.html new file mode 100644 index 0000000000..3af199bca1 --- /dev/null +++ b/doc/html/a00483.html @@ -0,0 +1,62 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::thread_closure_1< F, X > Member List
    +
    + +
    +

    +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/a00484.html b/doc/html/a00484.html new file mode 100644 index 0000000000..7dffd7b5b5 --- /dev/null +++ b/doc/html/a00484.html @@ -0,0 +1,63 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::thread_closure_2< F, X, Y > Member List
    +
    + +
    +

    +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/a00485.html b/doc/html/a00485.html new file mode 100644 index 0000000000..a901bd4753 --- /dev/null +++ b/doc/html/a00485.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-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/a00486.html b/doc/html/a00486.html new file mode 100644 index 0000000000..ab7a4d647c --- /dev/null +++ b/doc/html/a00486.html @@ -0,0 +1,68 @@ + + + + + + +Member List + + + + + + + +
    +
    +
    tbb::internal::tbb_thread_v3::id Member List
    +
    + +
    +

    +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/a00487.html b/doc/html/a00487.html new file mode 100644 index 0000000000..7cf8655c06 --- /dev/null +++ b/doc/html/a00487.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-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/annotated.html b/doc/html/annotated.html index d85034b622..6e75e75572 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -39,188 +39,220 @@
    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
    |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
    \C__TBB_malloc_proxy_caller
    diff --git a/doc/html/classes.html b/doc/html/classes.html index 39ec88ac0d..5e48dc37e4 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -37,78 +37,88 @@
    Class Index
    -
    A | B | C | E | F | G | I | J | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _
    +
    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_priority_queue (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4 > (tbb::flow::interface8)   queuing_mutex (tbb)   
      T  
    +
    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_queue (tbb::strict_ppl)   indexer_node< T0, T1, T2, T3, T4, T5 > (tbb::flow::interface8)   queuing_rw_mutex (tbb)   
    concurrent_hash_map::accessor (tbb::interface5)   concurrent_unordered_map (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5, T6 > (tbb::flow::interface8)   
      R  
    -
    task_arena (tbb::interface7)   
    concurrent_hash_map::accessor_not_used (tbb::interface5)   concurrent_unordered_map_traits (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7 > (tbb::flow::interface8)   task_group (tbb)   
    aggregator (tbb::interface6)   concurrent_unordered_multimap (tbb::interface5)   indexer_node< T0, T1, T2, T3, T4, T5, T6, T7, T8 > (tbb::flow::interface8)   reader_writer_lock (tbb::interface5)   task_group_base (tbb::internal)   
    aggregator_ext (tbb::interface6)   concurrent_unordered_multiset (tbb::interface5)   tick_count::interval_t (tbb)   zero_allocator< void, Allocator >::rebind (tbb)   task_group_context (tbb)   
    aggregator_operation (tbb::interface6)   concurrent_unordered_set (tbb::interface5)   invalid_multiple_scheduling (tbb)   cache_aligned_allocator::rebind (tbb)   task_handle (tbb)   
    aligned_space (tbb)   concurrent_unordered_set_traits (tbb::interface5)   
      J  
    -
    tbb_allocator::rebind (tbb)   task_handle_task (tbb::internal)   
    allocate_buffer (tbb::flow::interface8)   concurrent_vector (tbb)   memory_pool_allocator::rebind (tbb::interface6)   task_scheduler_init (tbb)   
    allocate_buffer< queueing > (tbb::flow::interface8)   concurrent_hash_map::const_accessor (tbb::interface5)   join_node (tbb::flow::interface8)   memory_pool_allocator< void, P >::rebind (tbb::interface6)   task_scheduler_observer (tbb::interface6)   
    async_gateway (tbb::flow::interface8::internal)   continue_msg (tbb::flow::interface8)   join_node< OutputTuple, key_matching< K, KHash > > (tbb::flow::interface8)   zero_allocator::rebind (tbb)   task_scheduler_observer_v3 (tbb::internal)   
    async_node (tbb::flow::interface8)   continue_node (tbb::flow::interface8)   join_node< OutputTuple, queueing > (tbb::flow::interface8)   tbb_allocator< void >::rebind (tbb)   tbb_allocator (tbb)   
    atomic (tbb)   continue_receiver (tbb::flow::interface8)   join_node< OutputTuple, reserving > (tbb::flow::interface8)   scalable_allocator< void >::rebind (tbb)   tbb_allocator< void > (tbb)   
    atomic< void * > (tbb)   critical_section_v4 (tbb::internal)   
      L  
    -
    scalable_allocator::rebind (tbb)   tbb_exception (tbb)   
    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  
    +
      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)   
      B  
    -
      E  
    -
    cache_aligned_allocator< void >::rebind (tbb)   tbb_exception_ptr (tbb::internal)   
    limiter_node (tbb::flow::interface8)   receiver (tbb::flow::interface8)   tbb_thread_v3 (tbb::internal)   
    bad_last_alloc (tbb)   edge_container (tbb::flow::interface8::internal)   
      M  
    -
    recursive_mutex (tbb)   thread_bound_filter (tbb)   
    basic_handler (tbb::interface6::internal)   concurrent_vector::push_back_helper::element_construction_guard (tbb)   round_robin_cache (tbb::flow::interface8::internal)   thread_closure_0 (tbb::internal)   
    basic_operation (tbb::interface6::internal)   enumerable_thread_specific (tbb::interface6)   memory_pool (tbb::interface6)   run_and_put_task (tbb::flow::interface8)   thread_closure_1 (tbb::internal)   
    basic_operation_base (tbb::interface6::internal)   
      F  
    -
    memory_pool_allocator (tbb::interface6)   runtime_loader (tbb::interface6)   thread_closure_2 (tbb::internal)   
    blocked_range (tbb)   memory_pool_allocator< void, P > (tbb::interface6)   
      S  
    -
    thread_closure_base (tbb::internal)   
    blocked_range2d (tbb)   filter (tbb)   MemPoolPolicy (rml)   tick_count (tbb)   
    blocked_range3d (tbb)   filter_t (tbb::interface6)   missing_wait (tbb)   scalable_allocator (tbb)   
      U  
    -
    broadcast_cache (tbb::flow::interface8::internal)   final_scan_tag (tbb)   movable_exception (tbb)   scalable_allocator< void > (tbb)   
    broadcast_node (tbb::flow::interface8)   fixed_pool (tbb::interface6)   multifunction_node (tbb::flow::interface8)   critical_section_v4::scoped_lock (tbb::internal)   use_element_copy_constructor (tbb::interface5::internal)   
    concurrent_hash_map::bucket_accessor (tbb::interface5)   flattened2d (tbb::interface6)   mutex (tbb)   spin_rw_mutex_v3::scoped_lock (tbb)   use_element_copy_constructor< T, false > (tbb::interface5::internal)   
    buffer_node (tbb::flow::interface8)   flow_control (tbb::interface6)   
      N  
    -
    recursive_mutex::scoped_lock (tbb)   user_abort (tbb)   
    buffer_node::buffer_operation (tbb::flow::interface8)   function_node (tbb::flow::interface8)   null_rw_mutex::scoped_lock (tbb)   
      V  
    +
    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)   
      C  
    -
      G  
    -
    concurrent_hash_map::node (tbb::interface5)   mutex::scoped_lock (tbb)   
    null_mutex (tbb)   queuing_mutex::scoped_lock (tbb)   concurrent_unordered_map_traits::value_compare (tbb::interface5)   
    cache_aligned_allocator (tbb)   global_control (tbb::interface9)   null_rw_mutex (tbb)   spin_mutex::scoped_lock (tbb)   vector_iterator (tbb)   
    cache_aligned_allocator< void > (tbb)   graph (tbb::flow::interface8)   null_type (tbb::flow::interface8)   reader_writer_lock::scoped_lock (tbb::interface5)   
      W  
    +
    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  
    +
    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  
    concurrent_hash_map::call_clear_on_leave (tbb::interface5)   graph_iterator (tbb::flow::interface8)   
      O  
    -
    queuing_rw_mutex::scoped_lock (tbb)   
    captured_exception (tbb)   graph_node (tbb::flow::interface8)   null_mutex::scoped_lock (tbb)   write_once_node (tbb::flow::interface8)   
    combinable (tbb)   
      I  
    -
    overwrite_node (tbb::flow::interface8)   reader_writer_lock::scoped_lock_read (tbb::interface5)   
      Z  
    +
    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::interface8)   
      P  
    -
    sender (tbb::flow::interface8)   
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   tbb_thread_v3::id (tbb::internal)   sequencer_node (tbb::flow::interface8)   zero_allocator (tbb)   
    composite_node< tbb::flow::tuple< InputTypes...>, tbb::flow::tuple<> > (tbb::flow::interface8)   improper_lock (tbb)   parallel_do_feeder (tbb)   source_node (tbb::flow::interface8)   zero_allocator< void, Allocator > (tbb)   
    composite_node< tbb::flow::tuple<>, tbb::flow::tuple< OutputTypes...> > (tbb::flow::interface8)   indexer_node (tbb::flow::interface8)   parallel_while (tbb)   spin_mutex (tbb)   
      _  
    +
    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 > (tbb::flow::interface8)   pipeline (tbb)   spin_rw_mutex_v3 (tbb)   
    concurrent_bounded_queue (tbb)   indexer_node< T0, T1 > (tbb::flow::interface8)   pre_scan_tag (tbb)   split_node (tbb::flow::interface8)   __TBB_malloc_proxy_caller   
    concurrent_hash_map (tbb::interface5)   indexer_node< T0, T1, T2 > (tbb::flow::interface8)   priority_queue_node (tbb::flow::interface8)   structured_task_group (tbb)   
    concurrent_lru_cache (tbb::interface6)   indexer_node< T0, T1, T2, T3 > (tbb::flow::interface8)   
      Q  
    -
    successor_cache (tbb::flow::interface8::internal)   
    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)   
    queue_node (tbb::flow::interface8)   
    join_node (tbb::flow::interface8)   
    -
    A | B | C | E | F | G | I | J | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _
    +
    A | B | C | D | E | F | G | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Z | _

    diff --git a/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html b/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html index 62603e49bf..85948b313a 100644 --- a/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html +++ b/doc/html/dir_87119f26c7695cbc270003e99bc7f49f.html @@ -37,118 +37,120 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + +

    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  global_control.h
    file  flow_graph_opencl_node.h
     
    file  memory_pool.h
    file  global_control.h
     
    file  mutex.h
    file  memory_pool.h
     
    file  null_mutex.h
    file  mutex.h
     
    file  null_rw_mutex.h
    file  null_mutex.h
     
    file  parallel_do.h
    file  null_rw_mutex.h
     
    file  parallel_for.h
    file  parallel_do.h
     
    file  parallel_for_each.h
    file  parallel_for.h
     
    file  parallel_invoke.h
    file  parallel_for_each.h
     
    file  parallel_reduce.h
    file  parallel_invoke.h
     
    file  parallel_scan.h
    file  parallel_reduce.h
     
    file  parallel_sort.h
    file  parallel_scan.h
     
    file  parallel_while.h
    file  parallel_sort.h
     
    file  partitioner.h
    file  parallel_while.h
     
    file  pipeline.h
    file  partitioner.h
     
    file  queuing_mutex.h
    file  pipeline.h
     
    file  queuing_rw_mutex.h
    file  queuing_mutex.h
     
    file  reader_writer_lock.h
    file  queuing_rw_mutex.h
     
    file  recursive_mutex.h
    file  reader_writer_lock.h
     
    file  runtime_loader.h
    file  recursive_mutex.h
     
    file  scalable_allocator.h
    file  runtime_loader.h
     
    file  spin_mutex.h
    file  scalable_allocator.h
     
    file  spin_rw_mutex.h
    file  spin_mutex.h
     
    file  task.h
    file  spin_rw_mutex.h
     
    file  task_arena.h
    file  task.h
     
    file  task_group.h
    file  task_arena.h
     
    file  task_scheduler_init.h
    file  task_group.h
     
    file  task_scheduler_observer.h
    file  task_scheduler_init.h
     
    file  tbb.h
    file  task_scheduler_observer.h
     
    file  tbb_allocator.h
    file  tbb.h
     
    file  tbb_config.h
    file  tbb_allocator.h
     
    file  tbb_exception.h
    file  tbb_config.h
     
    file  tbb_machine.h
    file  tbb_exception.h
     
    file  tbb_profiling.h
    file  tbb_machine.h
     
    file  tbb_stddef.h
    file  tbb_profiling.h
     
    file  tbb_thread.h
    file  tbb_stddef.h
     
    file  tbbmalloc_proxy.h
    file  tbb_thread.h
     
    file  tick_count.h
    file  tbbmalloc_proxy.h
     
    file  tick_count.h
     
    diff --git a/doc/html/files.html b/doc/html/files.html index 31752bd9a3..f8203a0b25 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -38,9 +38,9 @@
    Here is a list of all documented files with brief descriptions:
    - - - + + +
    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
    diff --git a/doc/html/functions.html b/doc/html/functions.html index 3d0bb4528f..3d9ae901d3 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -75,57 +75,67 @@

    - a -

    diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html index f8654b7c13..3af043bc29 100644 --- a/doc/html/functions_0x62.html +++ b/doc/html/functions_0x62.html @@ -75,29 +75,30 @@

    - b -

    diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html index 6903063aa9..25064b2d85 100644 --- a/doc/html/functions_0x63.html +++ b/doc/html/functions_0x63.html @@ -75,90 +75,90 @@

    - c -

    diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html index 6b4476e494..77266444bf 100644 --- a/doc/html/functions_0x64.html +++ b/doc/html/functions_0x64.html @@ -75,46 +75,52 @@

    - d -

    diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html index 1379bf4aca..c28155ba4a 100644 --- a/doc/html/functions_0x65.html +++ b/doc/html/functions_0x65.html @@ -75,84 +75,84 @@

    - e -

    oC__TBB_malloc_proxy_caller
    oCtbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used
    oCaggregated_operation
    oCtbb::interface6::aggregator_operation
    oCtbb::aligned_space< T, N >Block of space aligned sufficiently to construct an array T with N elements
    oCtbb::flow::interface8::allocate_buffer< T >
    oCtbb::flow::interface8::allocate_buffer< queueing >
    oCAllocator
    oCallocator_base
    oCtbb::flow::interface8::internal::async_gateway< Output >Pure virtual template class that defines interface for async communication
    oCasync_input
    oCtbb::flow::interface8::internal::async_body< Input, Ports, AsyncGateway, Body >
    oCtbb::flow::interface8::internal::async_gateway< Output >Pure virtual template class that defines interface for async communication
    oCatomic_impl
    oCbad_alloc
    oCtbb::interface6::internal::basic_handler
    oCtbb::interface6::internal::basic_handler
    oCbinary_function
    oCtbb::blocked_range< Value >A range over which to iterate
    oCtbb::blocked_range2d< RowValue, ColValue >A 2-dimensional range that models the Range concept
    oCtbb::blocked_range3d< PageValue, RowValue, ColValue >A 3-dimensional range that models the Range concept
    oCtbb::blocked_range< ColValue >
    oCtbb::blocked_range< I >
    oCtbb::blocked_range< PageValue >
    oCtbb::blocked_range< RowValue >
    oCtbb::flow::interface8::internal::broadcast_cache< T, M >
    oCtbb::flow::interface8::internal::broadcast_cache< input_type >
    oCtbb::flow::interface8::internal::broadcast_cache< input_type, tbb::null_rw_mutex >
    oCtbb::flow::interface8::internal::broadcast_cache< output_type >
    oCtbb::flow::interface8::internal::broadcast_cache< T >
    oCtbb::cache_aligned_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::cache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCtbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave
    oCtbb::combinable< T >Thread-local storage with optional reduction
    oCtbb::flow::interface8::composite_node< InputTuple, OutputTuple >
    oCtbb::interface6::internal::concrete_filter< T, U, Body >
    oCtbb::interface5::concurrent_priority_queue< T, Compare, A >Concurrent priority queue
    oCconcurrent_queue_base_v3
    oCconcurrent_queue_base_v8
    oCconcurrent_unordered_base
    oCtbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
    oCtbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >
    oCconcurrent_vector_base
    oCcontinue_input
    oCtbb::flow::interface8::continue_msgAn empty class used for messages that mean "I'm done"
    oCtbb::flow::interface8::internal::edge_container< C >
    oCtbb::flow::interface8::internal::edge_container< predecessor_type >
    oCtbb::flow::interface8::internal::edge_container< tbb::flow::interface8::sender >
    oCets_base
    oCexception
    oCtbb::interface6::filter_t< T, U >Class representing a chain of type-safe pipeline filters
    oCtbb::final_scan_tagUsed to indicate that the final scan is being performed
    oCtbb::interface6::flattened2d< Container >
    oCtbb::interface6::flow_controlInput_filter control to signal end-of-input for parallel_pipeline
    oCfunction_input
    oCfunction_output
    oCtbb::interface9::global_control
    oCtbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    oChash_map_base
    oCtbb::internal::tbb_thread_v3::id
    oCtbb::tick_count::interval_tRelative time interval
    oCtbb::flow::interface8::join_node< OutputTuple, JP >
    oCtbb::interface6::memory_pool_allocator< T, P >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::interface6::memory_pool_allocator< void, P >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCrml::MemPoolPolicy
    oCmultifunction_input
    oCmutex_copy_deprecated_and_disabled
    oCno_assign
    oCno_assign
    oCno_assign
    oCno_copy
    oCnode_base
    oCtbb::flow::interface8::null_type
    oCtbb::pipelineA processing pipeline that applies filters to items
    oCpool_base
    oCtbb::pre_scan_tagUsed to indicate that the initial scan is being performed
    oCtbb::cache_aligned_allocator< void >::rebind< U >
    oCtbb::scalable_allocator< T >::rebind< U >
    oCtbb::scalable_allocator< void >::rebind< U >
    oCtbb::tbb_allocator< void >::rebind< U >
    oCtbb::zero_allocator< T, Allocator >::rebind< U >
    oCtbb::interface6::memory_pool_allocator< void, P >::rebind< U >
    oCtbb::interface6::memory_pool_allocator< T, P >::rebind< U >
    oCtbb::tbb_allocator< T >::rebind< U >
    oCtbb::cache_aligned_allocator< T >::rebind< U >
    oCtbb::zero_allocator< void, Allocator >::rebind< U >
    oCtbb::flow::interface8::receiver< T >Pure virtual template class that defines a receiver of messages of type T
    oCtbb::flow::interface8::receiver< continue_msg >
    oCreservable_item_buffer
    oCtbb::flow::interface8::internal::round_robin_cache< T, M >
    oCtbb::flow::interface8::internal::round_robin_cache< T, tbb::null_rw_mutex >
    oCtbb::flow::interface8::run_and_put_task< R, B >
    oCtbb::scalable_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::scalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCscoped_t
    oCscoped_t
    oCtbb::flow::interface8::sender< T >Pure virtual template class that defines a sender of messages of type T
    oCtbb::flow::interface8::sender< Output >
    oCtbb::flow::interface8::internal::successor_cache< T, M >
    oCtask
    oCtask_arena_base
    oCtbb::task_group_context
    oCtbb::internal::task_scheduler_observer_v3
    oCtbb::tbb_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::tbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCtbb::internal::tbb_exception_ptrException container that preserves the exact copy of the original exception
    oCtbb::internal::tbb_thread_v3Versioned thread class
    oCtbb::internal::thread_closure_base
    oCtbb::tick_countAbsolute timestamp
    oCunfolded_indexer_node
    oCunfolded_join_node
    oCtbb::interface5::internal::use_element_copy_constructor< T, C >
    oCtbb::interface5::internal::use_element_copy_constructor< T, false >
    \Ctbb::vector_iterator< Container, Value >
    oCtbb::blocked_range< Value >A range over which to iterate
    oCtbb::blocked_range2d< RowValue, ColValue >A 2-dimensional range that models the Range concept
    oCtbb::blocked_range3d< PageValue, RowValue, ColValue >A 3-dimensional range that models the Range concept
    oCtbb::blocked_range< ColValue >
    oCtbb::blocked_range< I >
    oCtbb::blocked_range< PageValue >
    oCtbb::blocked_range< RowValue >
    oCtbb::flow::interface8::internal::broadcast_cache< T, M >
    oCtbb::flow::interface8::internal::broadcast_cache< input_type >
    oCtbb::flow::interface8::internal::broadcast_cache< input_type, tbb::null_rw_mutex >
    oCtbb::flow::interface8::internal::broadcast_cache< output_type >
    oCtbb::flow::interface8::internal::broadcast_cache< T >
    oCtbb::cache_aligned_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::cache_aligned_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCtbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave
    oCtbb::combinable< T >Thread-local storage with optional reduction
    oCtbb::flow::interface8::composite_node< InputTuple, OutputTuple >
    oCtbb::flow::interface8::composite_node< tuple< dependency_msg< Ports, Factory >...>, tuple< dependency_msg< Ports, Factory >...> >
    oCtbb::interface6::internal::concrete_filter< T, U, Body >
    oCtbb::interface5::concurrent_priority_queue< T, Compare, A >Concurrent priority queue
    oCconcurrent_queue_base_v3
    oCconcurrent_queue_base_v8
    oCconcurrent_unordered_base
    oCtbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping >
    oCtbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping >
    oCconcurrent_vector_base
    oCcontinue_input
    oCtbb::flow::interface8::continue_msgAn empty class used for messages that mean "I'm done"
    oCtbb::flow::interface8::default_opencl_factory_device_filter
    oCtbb::flow::interface8::dependency_msg< T, Factory >
    oCtbb::flow::interface8::internal::edge_container< C >
    oCtbb::flow::interface8::internal::edge_container< predecessor_type >
    oCtbb::flow::interface8::internal::edge_container< tbb::flow::interface8::sender >
    oCets_base
    oCexception
    oCtbb::interface6::filter_t< T, U >Class representing a chain of type-safe pipeline filters
    oCtbb::final_scan_tagUsed to indicate that the final scan is being performed
    oCtbb::interface6::flattened2d< Container >
    oCtbb::interface6::flow_controlInput_filter control to signal end-of-input for parallel_pipeline
    oCfunction_input
    oCfunction_output
    oCtbb::interface9::global_control
    oCtbb::flow::interface8::graph_iterator< GraphContainerType, GraphNodeType >
    oChash_map_base
    oCtbb::internal::tbb_thread_v3::id
    oCtbb::tick_count::interval_tRelative time interval
    oCtbb::flow::interface8::join_node< OutputTuple, JP >
    oCtbb::flow::interface8::join_node< kernel_input_tuple, JP >
    oCtbb::flow::interface8::key_from_policy< JP >
    oCtbb::flow::interface8::key_from_policy< key_matching< Key & > >
    oCtbb::flow::interface8::key_from_policy< key_matching< Key > >
    oCtbb::interface6::memory_pool_allocator< T, P >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::interface6::memory_pool_allocator< void, P >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCrml::MemPoolPolicy
    oCmultifunction_input
    oCmutex_copy_deprecated_and_disabled
    oCno_assign
    oCno_assign
    oCno_copy
    oCnode_base
    oCtbb::flow::interface8::null_type
    oCtbb::flow::interface8::num_arguments< T >
    oCtbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 > >
    oCtbb::flow::interface8::num_arguments< port_ref_impl< N1, N2 >(*)()>
    oCtbb::flow::interface8::opencl_buffer< T, Factory >
    oCtbb::flow::interface8::opencl_device
    oCtbb::flow::interface8::opencl_device_list
    oCtbb::flow::interface8::opencl_device_with_key< Key >
    oCtbb::flow::interface8::opencl_factory< DeviceFilter >
    oCtbb::flow::interface8::opencl_factory< default_opencl_factory_device_filter >
    oCtbb::flow::interface8::opencl_memory< Factory >
    oCtbb::flow::interface8::opencl_node< Args >
    oCtbb::flow::interface8::opencl_node< tuple< Ports...>, JP, default_opencl_factory >
    oCtbb::flow::interface8::opencl_node< tuple< Ports...>, queueing, default_opencl_factory >
    oCtbb::pipelineA processing pipeline that applies filters to items
    oCpool_base
    oCtbb::flow::interface8::port_ref_impl< N1, N2 >
    oCtbb::pre_scan_tagUsed to indicate that the initial scan is being performed
    oCtbb::zero_allocator< void, Allocator >::rebind< U >
    oCtbb::interface6::memory_pool_allocator< void, P >::rebind< U >
    oCtbb::interface6::memory_pool_allocator< T, P >::rebind< U >
    oCtbb::cache_aligned_allocator< T >::rebind< U >
    oCtbb::cache_aligned_allocator< void >::rebind< U >
    oCtbb::scalable_allocator< T >::rebind< U >
    oCtbb::scalable_allocator< void >::rebind< U >
    oCtbb::tbb_allocator< T >::rebind< U >
    oCtbb::tbb_allocator< void >::rebind< U >
    oCtbb::zero_allocator< T, Allocator >::rebind< U >
    oCtbb::flow::interface8::receiver< T >Pure virtual template class that defines a receiver of messages of type T
    oCtbb::flow::interface8::receiver< continue_msg >
    oCtbb::flow::interface8::receiver< dependency_msg< T, Factory > >
    oCtbb::flow::interface8::receiver< tbb::flow::interface8::dependency_msg< T, Factory > >
    oCreservable_item_buffer
    oCtbb::flow::interface8::internal::round_robin_cache< T, M >
    oCtbb::flow::interface8::internal::round_robin_cache< T, tbb::null_rw_mutex >
    oCtbb::flow::interface8::run_and_put_task< R, B >
    oCtbb::scalable_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::scalable_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCscoped_t
    oCscoped_t
    oCtbb::flow::interface8::sender< T >Pure virtual template class that defines a sender of messages of type T
    oCtbb::flow::interface8::sender< dependency_msg< T, Factory > >
    oCtbb::flow::interface8::sender< Output >
    oCtbb::flow::interface8::sender< tbb::flow::interface8::dependency_msg< T, Factory > >
    oCtbb::flow::interface8::internal::successor_cache< T, M >
    oCtask
    oCtask_arena_base
    oCtbb::task_group_context
    oCtbb::internal::task_scheduler_observer_v3
    oCtbb::tbb_allocator< T >Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5
    oCtbb::tbb_allocator< void >Analogous to std::allocator<void>, as defined in ISO C++ Standard, Section 20.4.1
    oCtbb::internal::tbb_exception_ptrException container that preserves the exact copy of the original exception
    oCtbb::internal::tbb_thread_v3Versioned thread class
    oCtbb::internal::thread_closure_base
    oCtbb::tick_countAbsolute timestamp
    oCtbb::flow::interface8::async_node< Input, Output, Policy, Allocator >::try_put_functor
    oCunfolded_indexer_node
    oCunfolded_join_node
    oCtbb::interface5::internal::use_element_copy_constructor< T, C >
    oCtbb::interface5::internal::use_element_copy_constructor< T, false >
    \Ctbb::vector_iterator< Container, Value >
    diff --git a/doc/html/modules.html b/doc/html/modules.html index 76f8b41f29..4998949799 100644 --- a/doc/html/modules.html +++ b/doc/html/modules.html @@ -32,12 +32,12 @@ diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html index e622cadb12..810898a032 100644 --- a/doc/html/namespacemembers.html +++ b/doc/html/namespacemembers.html @@ -58,90 +58,90 @@

    - _ -

    • __TBB_DECL_ATOMIC_ALT() -: tbb +: tbb

    - a -

    - e -

    • ets_key_usage_type -: tbb +: tbb

    - f -

    - m -

    • memory_semantics -: tbb +: tbb

    - p -

    • parallel_deterministic_reduce() -: tbb +: tbb
    • parallel_do() -: tbb +: tbb
    • parallel_for() -: tbb +: tbb
    • parallel_for_each() -: tbb +: tbb
    • parallel_invoke() -: tbb +: tbb
    • parallel_reduce() -: tbb +: tbb
    • parallel_scan() -: tbb +: tbb
    • parallel_sort() -: tbb +: tbb

    - r -

    - s -

    • speculative_spin_mutex -: tbb +: tbb

    - t -

    • TBB_runtime_interface_version() -: tbb +: tbb
    • tbb_thread -: tbb +: tbb
    diff --git a/doc/html/namespacemembers_enum.html b/doc/html/namespacemembers_enum.html index 6e7c677508..24a7dd5187 100644 --- a/doc/html/namespacemembers_enum.html +++ b/doc/html/namespacemembers_enum.html @@ -43,10 +43,10 @@
     
    • ets_key_usage_type -: tbb +: tbb
    • memory_semantics -: tbb +: tbb
    diff --git a/doc/html/namespacemembers_eval.html b/doc/html/namespacemembers_eval.html index 63609de362..522a5b41ad 100644 --- a/doc/html/namespacemembers_eval.html +++ b/doc/html/namespacemembers_eval.html @@ -43,16 +43,16 @@
     
    diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html index 6c65b7fe7c..94e3f30e10 100644 --- a/doc/html/namespacemembers_func.html +++ b/doc/html/namespacemembers_func.html @@ -52,42 +52,42 @@

    - _ -

    • __TBB_DECL_ATOMIC_ALT() -: tbb +: tbb

    - p -

    • parallel_deterministic_reduce() -: tbb +: tbb
    • parallel_do() -: tbb +: tbb
    • parallel_for() -: tbb +: tbb
    • parallel_for_each() -: tbb +: tbb
    • parallel_invoke() -: tbb +: tbb
    • parallel_reduce() -: tbb +: tbb
    • parallel_scan() -: tbb +: tbb
    • parallel_sort() -: tbb +: tbb

    - t -

    • TBB_runtime_interface_version() -: tbb +: tbb
    diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html index 561c26e84d..85c0b0aab6 100644 --- a/doc/html/namespacemembers_type.html +++ b/doc/html/namespacemembers_type.html @@ -43,10 +43,10 @@
     
    • speculative_spin_mutex -: tbb +: tbb
    • tbb_thread -: tbb +: tbb
    diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html index fdc3a6773a..71c3533b07 100644 --- a/doc/html/namespaces.html +++ b/doc/html/namespaces.html @@ -38,8 +38,8 @@
    Here is a list of all documented namespaces with brief descriptions:
    - - + +
    oNrmlThe namespace rml contains components of low-level memory pool interface
    \NtbbThe namespace tbb contains all components of the library
    oNrmlThe namespace rml contains components of low-level memory pool interface
    \NtbbThe namespace tbb contains all components of the library
    diff --git a/examples/common/gui/xvideo.cpp b/examples/common/gui/xvideo.cpp index de62123853..841b3c9969 100644 --- a/examples/common/gui/xvideo.cpp +++ b/examples/common/gui/xvideo.cpp @@ -244,12 +244,13 @@ bool video::init_window(int xsize, int ysize) goto fail; } } - // Note: It may be more efficient to adopt the server's byte order - // and swap once per get_color() call instead of once per pixel. - const uint32_t probe = 0x03020100; - const bool big_endian = (((const char*)(&probe))[0]==0x03); - ximage->byte_order = big_endian ? MSBFirst : LSBFirst; - + if( ximage ) { + // Note: It may be more efficient to adopt the server's byte order + // and swap once per get_color() call instead of once per pixel. + const uint32_t probe = 0x03020100; + const bool big_endian = (((const char*)(&probe))[0]==0x03); + ximage->byte_order = big_endian ? MSBFirst : LSBFirst; + } printf("Note: using %s with %s visual for %d-bit color depth\n", vidstr, vis==DefaultVisual(dpy, theScreen)?"default":"non-default", dispdepth); running = true; return true; diff --git a/examples/graph/cholesky/Makefile b/examples/graph/cholesky/Makefile new file mode 100644 index 0000000000..fa66bc75c1 --- /dev/null +++ b/examples/graph/cholesky/Makefile @@ -0,0 +1,51 @@ +# 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. + +# GNU Makefile that builds and runs example. +run_cmd= +PROG=cholesky +ARGS=4 2 + +# The C++ compiler +ifneq (,$(shell which icpc 2>/dev/null)) +CXX=icpc +endif # which icpc + +ifeq ($(shell uname), Linux) +LIBS+= -lrt +endif + +# MKL support +override MKL_LIBS += -lmkl_rt + +# C++0x support +override CXXFLAGS += -std=c++0x + +all: release test + +release: *.cpp + $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(MKL_LIBS) $(LIBS) + +debug: *.cpp + $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(MKL_LIBS) $(LIBS) + +clean: + $(RM) $(PROG) *.o *.d + +test: + $(run_cmd) ./$(PROG) $(ARGS) diff --git a/examples/graph/cholesky/Makefile.windows b/examples/graph/cholesky/Makefile.windows new file mode 100644 index 0000000000..a084c9fd5b --- /dev/null +++ b/examples/graph/cholesky/Makefile.windows @@ -0,0 +1,48 @@ +# 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. + +# Common Makefile that builds and runs example. + +# Just specify your program basename +PROG=Cholesky +ARGS=4 2 + +# Trying to find if icl.exe is set +CXX1 = $(TBB_CXX)- +CXX2 = $(CXX1:icl.exe-=icl.exe) +CXX = $(CXX2:-=cl.exe) + +# MKL support +override MKL_LIBS += mkl_rt.lib + +# The C++ compiler options +MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _WIN32_WINNT=0x0501 $(CXXFLAGS) +MYLDFLAGS = /INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) + +all: release test +release: compiler_check + $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(MKL_LIBS) $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe +debug: compiler_check + $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(MKL_LIBS) $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe +clean: + @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest +test: + $(PROG) $(ARGS) +compiler_check: + @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" + @cmd.exe /C del compiler_test diff --git a/examples/graph/cholesky/cholesky.cpp b/examples/graph/cholesky/cholesky.cpp new file mode 100644 index 0000000000..2207c498ad --- /dev/null +++ b/examples/graph/cholesky/cholesky.cpp @@ -0,0 +1,714 @@ +/* + 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. +*/ + +#include +#include +#include +#include +#include +#include + +#include "mkl_lapack.h" +#include "mkl.h" + +#include "tbb/tbb_config.h" +#include "tbb/flow_graph.h" +#include "tbb/tick_count.h" +#include "tbb/task_scheduler_init.h" + +// Application command line arguments parsing +#include "../../common/utility/utility.h" + +/************************************************************ + FORWARD DECLARATIONS +************************************************************/ + +/********************************************** + Read or generate a positive-definite matrix + -- reads from file if fname != NULL + -- sets n to matrix size + -- allocates and reads values in to A + -- otherwise generates a matrix + -- uses n to determine size + -- allocates and generates values in to A +**********************************************/ +void matrix_init( double * &A, int &n, const char *fname ); + +/********************************************** + Writes a lower triangular matrix to a file + -- first line of file is n + -- subsequently 1 row per line +**********************************************/ +void matrix_write ( double *A, int n, const char *fname, bool is_triangular = false ); + +/************************************************************ + GLOBAL VARIABLES +************************************************************/ +bool g_benchmark_run = false; +int g_num_tbb_threads = tbb::task_scheduler_init::default_num_threads(); +int g_n = -1, g_b = -1, g_num_trials = 1; +char *g_input_file_name = NULL; +char *g_output_prefix = NULL; +std::string g_alg_name; + +// Creates tiled array +static double ***create_tile_array( double *A, int n, int b ) { + const int p = n/b; + double ***tile = (double ***)calloc( sizeof( double ** ), p ); + + for ( int j = 0; j < p; ++j ) { + tile[j] = (double **)calloc( sizeof( double * ), p ); + } + + for ( int j = 0; j < p; ++j ) { + for ( int i = 0; i < p; ++i ) { + double *temp_block = (double *)calloc( sizeof( double ), b*b ); + + for ( int A_j = j*b, T_j = 0; T_j < b; ++A_j, ++T_j ) { + for ( int A_i = i*b, T_i = 0; T_i < b; ++A_i, ++T_i ) { + temp_block[T_j*b+T_i] = A[A_j*n+A_i]; + } + } + + tile[j][i] = temp_block; + } + } + return tile; +} + +static void collapse_tile_array( double ***tile, double *A, int n, int b ) { + const int p = n/b; + + for ( int j = 0; j < p; ++j ) { + for ( int i = 0; i < p; ++i ) { + double *temp_block = tile[j][i]; + + for ( int A_j = j*b, T_j = 0; T_j < b; ++A_j, ++T_j ) { + for ( int A_i = i*b, T_i = 0; T_i < b; ++A_i, ++T_i ) { + A[A_j*n+A_i] = temp_block[T_j*b+T_i]; + } + } + + free( temp_block ); + tile[j][i] = NULL; + } + + free( tile[j] ); + } + + free( tile ); +} + +/************************************************************ + Helper base class: algorithm +************************************************************/ +class algorithm { + + std::string name; + bool is_tiled; + + bool check_if_valid( double *A0, double *C, double *A, int n ) { + char transa = 'n', transb = 't'; + double alpha = 1; + double beta = 0; + + for ( int i = 0; i < n; ++i ) { + for ( int j = i+1; j < n; ++j ) { + A0[j*n+i] = 0.; + } + } + + dgemm ( &transa, &transb, &n, &n, &n, &alpha, A0, &n, A0, &n, &beta, C, &n ); + + for ( int j = 0; j < n; ++j ) { + for ( int i = 0; i < n; ++i ) { + const double epsilon = std::abs( A[j*n+i]*0.1 ); + + if ( std::abs( C[j*n+i] - A[j*n+i] ) > epsilon ) { + printf( "ERROR: %s did not validate at C(%d,%d) = %lf != A(%d,%d) = %lf\n", + name.c_str(), i, j, C[j*n+i], i, j, A[j*n+i] ); + printf( "ERROR: %g; %g < %g < %g\n", epsilon, A[j*n+i] - epsilon, C[j*n+i], A[j*n+i] + epsilon ); + return false; + } + } + } + return true; + } + +public: + algorithm( const std::string& alg_name, bool t ) : name(alg_name), is_tiled(t) {} + + double operator() ( double *A, int n, int b, int trials ) { + tbb::tick_count t0, t1; + double elapsed_time = 0.0; + double *A0 = (double *)calloc( sizeof( double ), n*n ); + double *C = (double *)calloc( sizeof( double ), n*n ); + + for ( int t = 0; t < trials+1; ++t ) { + if ( is_tiled ) { + double ***tile = create_tile_array( A, n, b ); + t0 = tbb::tick_count::now(); + func( tile, n, b ); + t1 = tbb::tick_count::now(); + + collapse_tile_array( tile, A0, n, b ); + } + else { + memcpy( A0, A, sizeof( double )*n*n ); + t0 = tbb::tick_count::now(); + func( A0, n, b ); + t1 = tbb::tick_count::now(); + } + + if ( t ) elapsed_time += (t1-t0).seconds(); + + if( !g_benchmark_run && !check_if_valid( A0, C, A, n ) ) { + if ( g_output_prefix ) { + std::string s( g_output_prefix ); + s += "_" + name + ".txt"; + matrix_write( A0, g_n, s.c_str(), true ); + free( A0 ); + free( C ); + return 0.; + } + } + } + + if ( g_output_prefix ) { + std::string s( g_output_prefix ); + s += "_" + name + ".txt"; + matrix_write( A0, g_n, s.c_str(), true ); + } + + printf( "%s %d %d %d %d %lf %lf\n", name.c_str(), g_num_tbb_threads, trials, n, b, elapsed_time, elapsed_time/trials ); + free( A0 ); + free( C ); + return elapsed_time; + } + +protected: + // Main algorithm body function must be defined in any direved class + virtual void func( void * ptr, int n, int b ) = 0; +}; + +/***********************************************************/ + +static void call_dpotf2( double ***tile, int b, int k ) { + double *A_block = tile[k][k]; + char uplo = 'l'; + int info = 0; + dpotf2( &uplo, &b, A_block, &b, &info ); + return; +} + +static void call_dtrsm( double ***tile, int b, int k, int j ) { + double *A_block = tile[k][j]; + double *L_block = tile[k][k]; + char uplo = 'l', side = 'r', transa = 't', diag = 'n'; + double alpha = 1; + dtrsm( &side, &uplo, &transa, &diag, &b, &b, &alpha, L_block, &b, A_block, &b ); + return; +} + +static void call_dsyr2k( double ***tile, int b, int k, int j, int i ) { + double *A_block = tile[i][j]; + char transa = 'n', transb = 't'; + char uplo = 'l'; + double alpha = -1; + double beta = 1; + + if ( i == j ) { // Diagonal block + double *L_block = tile[k][i]; + dsyrk( &uplo, &transa, &b, &b, &alpha, L_block, &b, &beta, A_block, &b ); + } else { // Non-diagonal block + double *L2_block = tile[k][i]; + double *L1_block = tile[k][j]; + dgemm( &transa, &transb, &b, &b, &b, &alpha, L1_block, &b, L2_block, &b, &beta, A_block, &b ); + } + return; +} + +class algorithm_crout : public algorithm +{ +public: + algorithm_crout() : algorithm("crout_cholesky", true) {} + +protected: + virtual void func( void * ptr, int n, int b ) { + double ***tile = (double ***)ptr; + const int p = n/b; + + for ( int k = 0; k < p; ++k ) { + call_dpotf2( tile, b, k ); + + for ( int j = k+1; j < p; ++j ) { + call_dtrsm( tile, b, k, j ); + + for ( int i = k+1; i <= j; ++i ) { + call_dsyr2k( tile, b, k, j, i ); + } + } + } + } +}; + +class algorithm_dpotrf : public algorithm +{ +public: + algorithm_dpotrf() : algorithm("dpotrf_cholesky", false) {} + +protected: + virtual void func( void * ptr, int n, int /* b */ ) { + double *A = (double *)ptr; + int lda = n; + int info = 0; + char uplo = 'l'; + dpotrf( &uplo, &n, A, &lda, &info ); + } +}; + +/************************************************************ + Begin data join graph based version of cholesky +************************************************************/ + +typedef union { + char a[4]; + size_t tag; +} tag_t; + +typedef double * tile_t; + +typedef std::pair< tag_t, tile_t > tagged_tile_t; +typedef tbb::flow::tuple< tagged_tile_t > t1_t; +typedef tbb::flow::tuple< tagged_tile_t, tagged_tile_t > t2_t; +typedef tbb::flow::tuple< tagged_tile_t, tagged_tile_t, tagged_tile_t > t3_t; + +typedef tbb::flow::multifunction_node< tagged_tile_t, t1_t > dpotf2_node_t; +typedef tbb::flow::multifunction_node< t2_t, t2_t > dtrsm_node_t; +typedef tbb::flow::multifunction_node< t3_t, t3_t > dsyr2k_node_t; + +typedef tbb::flow::join_node< t2_t, tbb::flow::tag_matching > dtrsm_join_t; +typedef tbb::flow::join_node< t3_t, tbb::flow::tag_matching > dsyr2k_join_t; + +class dpotf2_body { + int p; + int b; +public: + dpotf2_body( int p_, int b_ ) : p(p_), b(b_) {} + + void operator()( const tagged_tile_t &in, dpotf2_node_t::output_ports_type &ports ) { + int k = in.first.a[0]; + tile_t A_block = in.second; + tag_t t; + t.tag = 0; + t.a[0] = k; + char uplo = 'l'; + int info = 0; + dpotf2( &uplo, &b, A_block, &b, &info ); + + // Send to dtrsms in same column + // k == k j == k + t.a[2] = k; + for ( int j = k+1; j < p; ++j ) { + t.a[1] = j; + tbb::flow::get<0>( ports ).try_put( std::make_pair( t, A_block ) ); + } + } +}; + +class dtrsm_body { + int p; + int b; +public: + dtrsm_body( int p_, int b_ ) : p(p_), b(b_) {} + + void operator()( const t2_t &in, dtrsm_node_t::output_ports_type &ports ) { + using tbb::flow::get; + + tagged_tile_t in0 = get<0>( in ); + tagged_tile_t in1 = get<1>( in ); + int k = in0.first.a[0]; + int j = in0.first.a[1]; + tile_t L_block = in0.second; + tile_t A_block = in1.second; + tag_t t; + t.tag = 0; + t.a[0] = k; + char uplo = 'l', side = 'r', transa = 't', diag = 'n'; + double alpha = 1; + dtrsm( &side, &uplo, &transa, &diag, &b, &b, &alpha, L_block, &b, A_block, &b); + + // Send to rest of my row + t.a[1] = j; + for ( int i = k+1; i <= j; ++i ) { + t.a[2] = i; + get<0>( ports ).try_put( std::make_pair( t, A_block ) ); + } + + // Send to transposed row + t.a[2] = j; + for ( int i = j; i < p; ++i ) { + t.a[1] = i; + get<1>( ports ).try_put( std::make_pair( t, A_block ) ); + } + } +}; + +class dsyr2k_body { + int p; + int b; +public: + dsyr2k_body( int p_, int b_ ) : p(p_), b(b_) {} + + void operator()( const t3_t &in, dsyr2k_node_t::output_ports_type &ports ) { + using tbb::flow::get; + + tag_t t; + t.tag = 0; + char transa = 'n', transb = 't'; + char uplo = 'l'; + double alpha = -1; + double beta = 1; + + tagged_tile_t in0 = get<0>( in ); + tagged_tile_t in1 = get<1>( in ); + tagged_tile_t in2 = get<2>( in ); + int k = in2.first.a[0]; + int j = in2.first.a[1]; + int i = in2.first.a[2]; + + tile_t A_block = in2.second; + if ( i == j ) { // Diagonal block + tile_t L_block = in0.second; + dsyrk( &uplo, &transa, &b, &b, &alpha, L_block, &b, &beta, A_block, &b ); + } else { // Non-diagonal block + tile_t L1_block = in0.second; + tile_t L2_block = in1.second; + dgemm( &transa, &transb, &b, &b, &b, &alpha, L1_block, &b, L2_block, &b, &beta, A_block, &b ); + } + + // All outputs flow to next step + t.a[0] = k+1; + t.a[1] = j; + t.a[2] = i; + if ( k != p-1 && j == k+1 && i == k+1 ) { + get<0>( ports ).try_put( std::make_pair( t, A_block ) ); + } + + if ( k < p-2 ) { + if ( i == k+1 && j > i ) { + t.a[0] = k+1; + t.a[1] = j; + get<1>( ports ).try_put( std::make_pair( t, A_block ) ); + } + + if ( j != k+1 && i != k+1 ) { + t.a[0] = k+1; + t.a[1] = j; + t.a[2] = i; + get<2>( ports ).try_put( std::make_pair( t, A_block ) ); + } + } + } +}; + +struct tagged_tile_to_size_t { + size_t operator()( const tagged_tile_t &t ) { + return t.first.tag; + } +}; + +class algorithm_join : public algorithm +{ +public: + algorithm_join() : algorithm("data_join_cholesky", true) {} + +protected: + virtual void func( void * ptr, int n, int b ) { + using tbb::flow::unlimited; + using tbb::flow::output_port; + using tbb::flow::input_port; + + double ***tile = (double ***)ptr; + const int p = n/b; + tbb::flow::graph g; + + dpotf2_node_t dpotf2_node( g, unlimited, dpotf2_body(p, b) ); + dtrsm_node_t dtrsm_node( g, unlimited, dtrsm_body(p, b) ); + dsyr2k_node_t dsyr2k_node( g, unlimited, dsyr2k_body(p, b) ); + dtrsm_join_t dtrsm_join( g, tagged_tile_to_size_t(), tagged_tile_to_size_t() ); + dsyr2k_join_t dsyr2k_join( g, tagged_tile_to_size_t(), tagged_tile_to_size_t(), tagged_tile_to_size_t() ); + + make_edge( output_port<0>( dsyr2k_node ), dpotf2_node ); + + make_edge( output_port<0>( dpotf2_node ), input_port<0>( dtrsm_join ) ); + make_edge( output_port<1>( dsyr2k_node ), input_port<1>( dtrsm_join ) ); + make_edge( dtrsm_join, dtrsm_node ); + + make_edge( output_port<0>( dtrsm_node ), input_port<0>( dsyr2k_join ) ); + make_edge( output_port<1>( dtrsm_node ), input_port<1>( dsyr2k_join ) ); + make_edge( output_port<2>( dsyr2k_node ), input_port<2>( dsyr2k_join ) ); + make_edge( dsyr2k_join, dsyr2k_node ); + + // Now we need to send out the tiles to their first nodes + tag_t t; + t.tag = 0; + t.a[0] = 0; + t.a[1] = 0; + t.a[2] = 0; + + // Send to feedback input of first dpotf2 + // k == 0, j == 0, i == 0 + dpotf2_node.try_put( std::make_pair( t, tile[0][0] ) ); + + // Send to feedback input (port 1) of each dtrsm + // k == 0, j == 1..p-1 + for ( int j = 1; j < p; ++j ) { + t.a[1] = j; + input_port<1>( dtrsm_join ).try_put( std::make_pair( t, tile[0][j] ) ); + } + + // Send to feedback input (port 2) of each dsyr2k + // k == 0 + for ( int i = 1; i < p; ++i ) { + t.a[2] = i; + + for ( int j = i; j < p; ++j ) { + t.a[1] = j; + input_port<2>( dsyr2k_join ).try_put( std::make_pair( t, tile[i][j] ) ); + } + } + + g.wait_for_all(); + } +}; + +/************************************************************ + End data join graph based version of cholesky +************************************************************/ + +/************************************************************ + Begin dependence graph based version of cholesky +************************************************************/ + +typedef tbb::flow::continue_node< tbb::flow::continue_msg > continue_type; +typedef continue_type * continue_ptr_type; + +#if !__TBB_CPP11_LAMBDAS_PRESENT +// Using helper functor classes (instead of built-in C++ 11 lambda functions) +class call_dpotf2_functor +{ + double ***tile; + int b, k; +public: + call_dpotf2_functor( double ***tile_, int b_, int k_ ) + : tile(tile_), b(b_), k(k_) {} + + void operator()( const tbb::flow::continue_msg & ) { call_dpotf2( tile, b, k ); } +}; + +class call_dtrsm_functor +{ + double ***tile; + int b, k, j; +public: + call_dtrsm_functor( double ***tile_, int b_, int k_, int j_ ) + : tile(tile_), b(b_), k(k_), j(j_) {} + + void operator()( const tbb::flow::continue_msg & ) { call_dtrsm( tile, b, k, j ); } +}; + +class call_dsyr2k_functor +{ + double ***tile; + int b, k, j, i; +public: + call_dsyr2k_functor( double ***tile_, int b_, int k_, int j_, int i_ ) + : tile(tile_), b(b_), k(k_), j(j_), i(i_) {} + + void operator()( const tbb::flow::continue_msg & ) { call_dsyr2k( tile, b, k, j, i ); } +}; + +#endif // !__TBB_CPP11_LAMBDAS_PRESENT + +class algorithm_depend : public algorithm +{ +public: + algorithm_depend() : algorithm("depend_cholesky", true) {} + +protected: + virtual void func( void * ptr, int n, int b ) { + double ***tile = (double ***)ptr; + + const int p = n/b; + continue_ptr_type *c = new continue_ptr_type[p]; + continue_ptr_type **t = new continue_ptr_type *[p]; + continue_ptr_type ***u = new continue_ptr_type **[p]; + + tbb::flow::graph g; + for ( int k = p-1; k >= 0; --k ) { + c[k] = new continue_type( g, +#if __TBB_CPP11_LAMBDAS_PRESENT + [=]( const tbb::flow::continue_msg & ) { call_dpotf2( tile, b, k ); } ); +#else + call_dpotf2_functor( tile, b, k ) ); +#endif // __TBB_CPP11_LAMBDAS_PRESENT + t[k] = new continue_ptr_type[p]; + u[k] = new continue_ptr_type *[p]; + + for ( int j = k+1; j < p; ++j ) { + t[k][j] = new continue_type( g, +#if __TBB_CPP11_LAMBDAS_PRESENT + [=]( const tbb::flow::continue_msg & ) { call_dtrsm( tile, b, k, j ); } ); +#else + call_dtrsm_functor( tile, b, k, j ) ); +#endif // __TBB_CPP11_LAMBDAS_PRESENT + make_edge( *c[k], *t[k][j] ); + u[k][j] = new continue_ptr_type[p]; + + for ( int i = k+1; i <= j; ++i ) { + u[k][j][i] = new continue_type( g, +#if __TBB_CPP11_LAMBDAS_PRESENT + [=]( const tbb::flow::continue_msg & ) { call_dsyr2k( tile, b, k, j, i ); } ); +#else + call_dsyr2k_functor( tile, b, k, j, i ) ); +#endif // __TBB_CPP11_LAMBDAS_PRESENT + + if ( k < p-2 && k+1 != j && k+1 != i ) { + make_edge( *u[k][j][i], *u[k+1][j][i] ); + } + + make_edge( *t[k][j], *u[k][j][i] ); + + if ( i != j ) { + make_edge( *t[k][i], *u[k][j][i] ); + } + + if ( k < p-2 && j > i && i == k+1 ) { + make_edge( *u[k][j][i], *t[i][j] ); + } + } + } + + if ( k != p-1 ) { + make_edge( *u[k][k+1][k+1], *c[k+1] ); + } + } + + c[0]->try_put( tbb::flow::continue_msg() ); + g.wait_for_all(); + } +}; // class algorithm_depend + +/************************************************************ + End dependence graph based version of cholesky +************************************************************/ + +bool process_args( int argc, char *argv[] ) { + utility::parse_cli_arguments( argc, argv, + utility::cli_argument_pack() + //"-h" option for displaying help is present implicitly + .positional_arg( g_n, "size", "the row/column size of NxN matrix (size <= 46000)" ) + .positional_arg( g_b, "blocksize", "the block size; size must be a multiple of the blocksize" ) + .positional_arg( g_num_trials, "num_trials", "the number of times to run each algorithm" ) + .positional_arg( g_output_prefix, "output_prefix", + "if provided the prefix will be preappended to output files:\n" + " output_prefix_posdef.txt\n" + " output_prefix_X.txt; where X is the algorithm used\n" + " if output_prefix is not provided, no output will be written" ) + .positional_arg( g_alg_name, "algorithm", "name of the used algorithm - can be dpotrf, crout, depend or join" ) + .positional_arg( g_num_tbb_threads, "num_tbb_threads", "number of started TBB threads" ) + + .arg( g_input_file_name, "input_file", "if provided it will be read to get the input matrix" ) + .arg( g_benchmark_run, "-x", "skips all validation" ) + ); + + if ( g_n > 46000 ) { + printf( "ERROR: invalid 'size' value (must be less or equal 46000): %d\n", g_n ); + return false; + } + + if ( g_n%g_b != 0 ) { + printf( "ERROR: size %d must be a multiple of the blocksize %d\n", g_n, g_b ); + return false; + } + + if ( g_n/g_b > 256 ) { + // Because tile index size is 1 byte only in tag_t type + printf( "ERROR: size / blocksize must be less or equal 256, but %d / %d = %d\n", g_n, g_b, g_n/g_b ); + return false; + } + + if ( g_b == -1 || (g_n == -1 && g_input_file_name == NULL) ) { + return false; + } + + return true; +} + +int main(int argc, char *argv[]) { + typedef std::map< std::string, algorithm * > algmap_t; + algmap_t algmap; + + // Init algorithms + algmap["dpotrf"] = new algorithm_dpotrf; + algmap["crout"] = new algorithm_crout; + algmap["depend"] = new algorithm_depend; + algmap["join"] = new algorithm_join; + + if ( !process_args( argc, argv ) ) { + printf( "ERROR: Invalid arguments. Run: %s -h\n", argv[0] ); + exit( 1 ); + } + + tbb::task_scheduler_init init( g_num_tbb_threads ); + double *A = NULL; + + // Read input matrix + matrix_init( A, g_n, g_input_file_name ); + + // Write input matrix if output_prefix is set and we didn't read from a file + if ( !g_input_file_name && g_output_prefix ) { + std::string s( g_output_prefix ); + s += "_posdef.txt"; + matrix_write( A, g_n, s.c_str() ); + } + + if ( g_alg_name.empty() ) { + for ( algmap_t::iterator i = algmap.begin(); i != algmap.end(); ++i ) { + algorithm* const alg = i->second; + (*alg)( A, g_n, g_b, g_num_trials ); + } + } + else { + algorithm* const alg = algmap[g_alg_name]; + + if ( alg != NULL ) { + (*alg)( A, g_n, g_b, g_num_trials ); + } + else { + printf( "ERROR: Invalid algorithm name: %s\n", g_alg_name.c_str() ); + exit( 2 ); + } + } + + free( A ); + return 0; +} diff --git a/examples/graph/cholesky/index.html b/examples/graph/cholesky/index.html new file mode 100644 index 0000000000..b41a4abccc --- /dev/null +++ b/examples/graph/cholesky/index.html @@ -0,0 +1,69 @@ + + + +

    Overview

    +This directory contains an example of several versions of Cholesky +Factorization algorithm. +
    +
    dpotrf: An implementation that calls the Intel® Math Kernel Library (Intel® MKL) dpotrf function to directly perform the factorization. This can be a serial implementation or threaded implementation depending on the version of the Intel MKL library that is linked against. +
    +
    crout: A serial implementation that uses the Crout-Cholesky algorithm for factorization. The same approach is parallelized for the other Intel® Threading Building Blocks (Intel® TBB) based approaches below. +
    +
    depend: A parallel version of Crout-Cholesky factorization that uses an Intel TBB flow graph. This version uses a dependence graph made solely of continue_node objects. This an inspector-executor approach, where a loop nest that is similar to the serial implementation is used to create an unrolled version of the computation. Where the Intel MKL calls would have been made in the original serial implementation of Crout-Cholesky, instead nodes are created and these nodes are linked by edges to the other nodes that they are dependent upon. The resulting graph is relatively large, with a node for each instance of each Intel MKL call. For example, there are many nodes that call dtrsm; one for each invocation of dtrsm in the serial implementation. The is very little overhead in message management for this version and so it is often the highest performing. +
    +
    join: A parallel version of Crout-Cholesky factorization that uses an Intel TBB flow graph. This version uses a data flow approach. This is a small, compact graph that passes tiles along its edges. There is one node per type of Intel MKL call, plus join_nodes that combine the inputs required for each call. So for example, there is only a single node that applies all calls to dtrsm. This node is invoked when the tiles that hold the inputs and outputs for an invocation are matched together in the tag-matching join_node that precedes it. The tag represents the iteration values of the i, j, k loops in the serial implementation at that invocation of the call. There is some overhead in message matching and forwarding, so it may not perform as well as the dependence graph implementation. +
    +
    This sample code requires a recent Intel TBB library (one that supports the flow graph). And also the Intel MKL library. +

    Files

    +
    +
    cholesky.cpp +
    Source code for example. +
    init.cpp +
    Source code for example. +
    cholesky.h +
    Header file for example. +
    Makefile +
    Makefile for building example. +
    + +

    Directories

    +
    +
    msvs +
    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* + systems only).
    + +

    To Build

    +General build directions can be found here. + +

    Usage

    +
    +
    cholesky [size=value] [blocksize=value] [num_trials=value] [output_prefix=value] [algorithm=value] [num_tbb_threads=value] [input_file=value] [-x] [-h] [size [blocksize [num_trials [output_prefix [algorithm [num_tbb_threads]]]]]] +
    where: +
    size - the row/column size of NxN matrix (size <= 46000) +
    blocksize - the block size; size must be a multiple of the blocksize +
    num_trials - the number of times to run each algorithm +
    output_prefix - if provided the prefix will be preappended to output files: + output_prefix_posdef.txt and + output_prefix_X.txt; where X is the algorithm used +
    if output_prefix is not provided, no output will be written +
    algorithm - name of the used algorithm - can be dpotrf, crout, depend or join +
    num_tbb_threads - number of started TBB threads +
    input_file - if provided it will be read to get the input matrix +
    -x - skips all validation +
    -h - show this message +
    + +
    +Up to parent directory +

    +Copyright © 2005-2015 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. +

    +* Other names and brands may be claimed as the property of others. + + diff --git a/examples/graph/cholesky/init.cpp b/examples/graph/cholesky/init.cpp new file mode 100644 index 0000000000..b9095fedce --- /dev/null +++ b/examples/graph/cholesky/init.cpp @@ -0,0 +1,138 @@ +/* + 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. +*/ + +#include +#include +#include +#include +#include + +static void posdef_gen( double * A, int n ) +{ + /* Allocate memory for the matrix and its transpose */ + double *L = (double *)calloc( sizeof( double ), n*n ); + assert( L ); + + double *LT = (double *)calloc( sizeof( double ), n*n) ; + assert( LT ); + + memset( A, 0, sizeof( double )*n*n ); + + /* Generate a conditioned matrix and fill it with random numbers */ + for ( int j = 0; j < n; ++j ) { + for ( int k = 0; k < j; ++k ) { + // The initial value has to be between [0,1]. + L[k*n+j] = ( ( (j*k) / ((double)(j+1)) / ((double)(k+2)) * 2.0) - 1.0 ) / ((double)n); + } + + L[j*n+j] = 1; + } + + /* Compute transpose of the matrix */ + for ( int i = 0; i < n; ++i ) { + for ( int j = 0; j < n; ++j ) { + LT[j*n+i] = L[i*n+j]; + } + } + cblas_dgemm( CblasColMajor, CblasNoTrans, CblasNoTrans, n, n, n, 1, L, n, LT, n, 0, A, n ); + + free( L ); + free( LT ); +} + +// Read the matrix from the input file +void matrix_init( double * &A, int &n, const char *fname ) { + if( fname ) { + int i; + int j; + FILE *fp; + + fp = fopen( fname, "r" ); + if ( fp == NULL ) { + fprintf( stderr, "\nFile does not exist\n" ); + exit( 0 ); + } + if ( fscanf( fp, "%d", &n ) <= 0 ) { + fprintf( stderr,"\nCouldn't read n from %s\n", fname ); + exit( 1 ); + } + A = (double *)calloc( sizeof( double ), n*n ); + for ( i = 0; i < n; ++i ) { + for ( j = 0; j <= i; ++j ) { + if( fscanf( fp, "%lf ", &A[i*n+j] ) <= 0) { + fprintf( stderr,"\nMatrix size incorrect %i %i\n", i, j ); + exit( 1 ); + } + if ( i != j ) { + A[j*n+i] = A[i*n+j]; + } + } + } + fclose( fp ); + } else { + A = (double *)calloc( sizeof( double ), n*n ); + posdef_gen( A, n ); + } +} + +// write matrix to file +void matrix_write ( double *A, int n, const char *fname, bool is_triangular = false ) +{ + if( fname ) { + int i = 0; + int j = 0; + FILE *fp = NULL; + + fp = fopen( fname, "w" ); + if ( fp == NULL ) { + fprintf( stderr, "\nCould not open file %s for writing.\n", fname ); + exit( 0 ); + } + fprintf( fp, "%d\n", n ); + for ( i = 0; i < n; ++i) { + for ( j = 0; j <= i; ++j ) { + fprintf( fp, "%lf ", A[j*n+i] ); + } + if ( !is_triangular ) { + for ( ; j < n; ++j ) { + fprintf( fp, "%lf ", A[i*n+j] ); + } + } else { + for ( ; j < n; ++j ) { + fprintf( fp, "%lf ", 0.0 ); + } + } + fprintf( fp, "\n" ); + } + if ( is_triangular ) { + fprintf( fp, "\n" ); + for ( i = 0; i < n; ++i ) { + for ( j = 0; j < i; ++j ) { + fprintf( fp, "%lf ", 0.0 ); + } + for ( ; j < n; ++j ) { + fprintf( fp, "%lf ", A[i*n+j] ); + } + fprintf( fp, "\n" ); + } + } + fclose( fp ); + } +} diff --git a/examples/graph/cholesky/msvs/cholesky.sln b/examples/graph/cholesky/msvs/cholesky.sln new file mode 100644 index 0000000000..fa06b532e0 --- /dev/null +++ b/examples/graph/cholesky/msvs/cholesky.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cholesky", "cholesky.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64 + {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/graph/cholesky/msvs/cholesky.vcxproj b/examples/graph/cholesky/msvs/cholesky.vcxproj new file mode 100644 index 0000000000..d852704f99 --- /dev/null +++ b/examples/graph/cholesky/msvs/cholesky.vcxproj @@ -0,0 +1,202 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + cholesky + {3AA40693-F93D-4D4B-B32E-068F511A252E} + cholesky + Win32Proj + + + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(TEMP)\tbb_examples\$(Configuration)\ + $(TEMP)\tbb_examples\$(SolutionName)\$(Configuration)\ + false + $(TEMP)\tbb_examples\$(Platform)\$(Configuration)\ + $(TEMP)\tbb_examples\$(SolutionName)\$(Platform)\$(Configuration)\ + false + $(TEMP)\tbb_examples\$(Configuration)\ + $(TEMP)\tbb_examples\$(SolutionName)\$(Configuration)\ + false + $(TEMP)\tbb_examples\$(Platform)\$(Configuration)\ + $(TEMP)\tbb_examples\$(SolutionName)\$(Platform)\$(Configuration)\ + false + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + Disabled + $(TBBROOT)\include;$(MKLROOT)\include;$(SolutionDir)\..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_CONSOLE;TBB_USE_DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + ProgramDatabase + GenerateParallelCode + + + tbb_debug.lib;mkl_rt.lib;%(AdditionalDependencies) + $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc10;$(MKLROOT)\lib\ia32;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc10;%(AdditionalLibraryDirectories) + true + Console + MachineX86 + false + + + Copying DLLs and PDBs + call "$(SolutionDir)\..\..\..\common\copy_libraries.bat" ia32 debug "$(OutDir)" + + + + + X64 + + + Disabled + $(TBBROOT)\include;$(MKLROOT)\include;$(SolutionDir)\..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN64;_DEBUG;_CONSOLE;TBB_USE_DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + ProgramDatabase + GenerateParallelCode + + + tbb_debug.lib;mkl_rt.lib;%(AdditionalDependencies) + $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc10;$(MKLROOT)\lib\intel64;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc10;%(AdditionalLibraryDirectories) + true + Console + MachineX64 + false + + + Copying DLLs and PDBs + call "$(SolutionDir)\..\..\..\common\copy_libraries.bat" intel64 debug "$(OutDir)" + + + + + $(TBBROOT)\include;$(MKLROOT)\include;$(SolutionDir)\..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + ProgramDatabase + GenerateParallelCode + + + tbb.lib;mkl_rt.lib;%(AdditionalDependencies) + $(TBBROOT)\lib\ia32\vc_mt;$(TBBROOT)\lib\ia32\vc10;$(MKLROOT)\lib\ia32;$(SolutionDir)\..\..\..\..\lib\ia32\vc_mt;$(SolutionDir)\..\..\..\..\lib\ia32\vc10;%(AdditionalLibraryDirectories) + true + Console + true + true + MachineX86 + false + + + Copying DLLs and PDBs + call "$(SolutionDir)\..\..\..\common\copy_libraries.bat" ia32 release "$(OutDir)" + + + + + X64 + + + $(TBBROOT)\include;$(MKLROOT)\include;$(SolutionDir)\..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDLL + + + ProgramDatabase + GenerateParallelCode + + + tbb.lib;mkl_rt.lib;%(AdditionalDependencies) + $(TBBROOT)\lib\intel64\vc_mt;$(TBBROOT)\lib\intel64\vc10;$(MKLROOT)\lib\intel64;$(SolutionDir)\..\..\..\..\lib\intel64\vc_mt;$(SolutionDir)\..\..\..\..\lib\intel64\vc10;%(AdditionalLibraryDirectories) + true + Console + true + true + MachineX64 + false + + + Copying DLLs and PDBs + call "$(SolutionDir)\..\..\..\common\copy_libraries.bat" intel64 release "$(OutDir)" + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj b/examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..63a3b2cb54 --- /dev/null +++ b/examples/graph/cholesky/xcode/cholesky.xcodeproj/project.pbxproj @@ -0,0 +1,309 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + A1F593A60B8F042A00073279 /* Cholesky.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* Cholesky.cpp */; }; + A1F593A60B8F053A00073279 /* init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F053A00073279 /* init.cpp */; }; + A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; + A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 8DD76F690486A84900D96B5E /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 8DD76F6C0486A84900D96B5E /* Cholesky */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Cholesky; sourceTree = BUILT_PRODUCTS_DIR; }; + A1F593A50B8F042A00073279 /* Cholesky.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Cholesky.cpp; path = ../Cholesky.cpp; sourceTree = SOURCE_ROOT; }; + A1F593A50B8F053A00073279 /* init.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = init.cpp; path = ../init.cpp; sourceTree = SOURCE_ROOT; }; + A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = ../../../../lib/libtbb.dylib; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8DD76F660486A84900D96B5E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* Cholesky */ = { + isa = PBXGroup; + children = ( + 08FB7795FE84155DC02AAC07 /* Source */, + A1F593B20B8F06F900073279 /* External Frameworks and Libraries */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + ); + name = Cholesky; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + A1F593A50B8F042A00073279 /* Cholesky.cpp */, + A1F593A50B8F053A00073279 /* init.cpp */, + ); + name = Source; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8DD76F6C0486A84900D96B5E /* Cholesky */, + ); + name = Products; + sourceTree = ""; + }; + A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + A1F593B30B8F06F900073279 /* libtbb.dylib */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8DD76F620486A84900D96B5E /* Cholesky */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Cholesky" */; + buildPhases = ( + 8DD76F640486A84900D96B5E /* Sources */, + 8DD76F660486A84900D96B5E /* Frameworks */, + 8DD76F690486A84900D96B5E /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Cholesky; + productInstallPath = "$(HOME)/bin"; + productName = Cholesky; + productReference = 8DD76F6C0486A84900D96B5E /* Cholesky */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0410; + }; + buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "cholesky" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + en, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* Cholesky */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8DD76F620486A84900D96B5E /* Cholesky */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 8DD76F640486A84900D96B5E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A1F593A60B8F042A00073279 /* Cholesky.cpp in Sources */, + A1F593A60B8F053A00073279 /* init.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB923208733DC60010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ../../../../include; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + ../../../../lib, + ); + PRODUCT_NAME = Cholesky; + ZERO_LINK = NO; + }; + name = Debug; + }; + 1DEB923308733DC60010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ../../../../include; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + ../../../../lib, + ); + PRODUCT_NAME = Cholesky; + ZERO_LINK = NO; + }; + name = Release; + }; + 1DEB923608733DC60010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = i386; + GCC_ENABLE_CPP_RTTI = YES; + GCC_MODEL_TUNING = ""; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SYMROOT = "/tmp/tbb-$(USER)"; + }; + name = Debug; + }; + 1DEB923708733DC60010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = i386; + GCC_ENABLE_CPP_RTTI = YES; + GCC_MODEL_TUNING = ""; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SYMROOT = "/tmp/tbb-$(USER)"; + }; + name = Release; + }; + A1F593C60B8F0E6E00073279 /* Debug64 */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ../../../../include; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + ../../../../lib, + ); + PRODUCT_NAME = Cholesky; + ZERO_LINK = NO; + }; + name = Debug64; + }; + A1F593C70B8F0E6E00073279 /* Release64 */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_VERSION = ""; + HEADER_SEARCH_PATHS = ../../../../include; + INSTALL_PATH = "$(HOME)/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + ../../../../lib, + ); + PRODUCT_NAME = Cholesky; + ZERO_LINK = NO; + }; + name = Release64; + }; + A1F593C80B8F0E6E00073279 /* Debug64 */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = i386; + GCC_ENABLE_CPP_RTTI = YES; + GCC_MODEL_TUNING = ""; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-m64", + ); + OTHER_LDFLAGS = "-m64"; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SYMROOT = "/tmp/tbb-$(USER)"; + }; + name = Debug64; + }; + A1F593C90B8F0E6E00073279 /* Release64 */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = i386; + GCC_ENABLE_CPP_RTTI = YES; + GCC_MODEL_TUNING = ""; + GCC_VERSION = 4.0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-m64", + ); + OTHER_LDFLAGS = "-m64"; + PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO; + SYMROOT = "/tmp/tbb-$(USER)"; + }; + name = Release64; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "Cholesky" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB923208733DC60010E9CD /* Debug */, + A1F593C60B8F0E6E00073279 /* Debug64 */, + 1DEB923308733DC60010E9CD /* Release */, + A1F593C70B8F0E6E00073279 /* Release64 */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "Cholesky" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB923608733DC60010E9CD /* Debug */, + A1F593C80B8F0E6E00073279 /* Debug64 */, + 1DEB923708733DC60010E9CD /* Release */, + A1F593C90B8F0E6E00073279 /* Release64 */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/examples/graph/fgbzip2/fgbzip2.cpp b/examples/graph/fgbzip2/fgbzip2.cpp index 360c976e3f..01245a083b 100644 --- a/examples/graph/fgbzip2/fgbzip2.cpp +++ b/examples/graph/fgbzip2/fgbzip2.cpp @@ -21,7 +21,7 @@ #include "tbb/tbb_config.h" #include "../../common/utility/utility.h" -#if __TBB_CPP11_LAMBDAS_PRESENT +#if __TBB_PREVIEW_ASYNC_NODE && __TBB_CPP11_LAMBDAS_PRESENT #include #include @@ -180,7 +180,7 @@ void fgCompressionAsyncIO( std::ifstream& inputStream, std::ofstream& outputStre tbb::flow::graph g; - async_file_reader_node file_reader( g, [&ioActivity]( const tbb::flow::continue_msg& msg, async_file_reader_node::async_gateway_type& asyncGateway ) { + async_file_reader_node file_reader( g, tbb::flow::unlimited, [&ioActivity]( const tbb::flow::continue_msg& msg, async_file_reader_node::async_gateway_type& asyncGateway ) { ioActivity.start_read( asyncGateway ); } ); @@ -190,7 +190,7 @@ void fgCompressionAsyncIO( std::ifstream& inputStream, std::ofstream& outputStre return buffer.seq_id; }); - async_file_writer_node output_writer( g, [&ioActivity](const buffer_t& buffer, async_file_writer_node::async_gateway_type& asyncGateway ) { + async_file_writer_node output_writer( g, tbb::flow::unlimited, [&ioActivity](const buffer_t& buffer, async_file_writer_node::async_gateway_type& asyncGateway ) { ioActivity.write( buffer ); }); @@ -307,4 +307,4 @@ int main() { utility::report_skipped(); return 0; } -#endif /* __TBB_CPP11_LAMBDAS_PRESENT */ +#endif /* __TBB_PREVIEW_ASYNC_NODE && __TBB_CPP11_LAMBDAS_PRESENT */ diff --git a/examples/graph/index.html b/examples/graph/index.html index 71cc09aeac..b1b804233b 100644 --- a/examples/graph/index.html +++ b/examples/graph/index.html @@ -16,6 +16,8 @@

    Directories

    A simple example of a Kohonen Self-Organizing Map using cancellation.
    fgbzip2
    A parallel implementation of bzip2 block-sorting file compressor. +
    cholesky +
    Several versions of Cholesky Factorization algorithm implementation.
    diff --git a/examples/pipeline/square/Makefile.windows b/examples/pipeline/square/Makefile.windows index 4de0b434d2..2914ce78f9 100644 --- a/examples/pipeline/square/Makefile.windows +++ b/examples/pipeline/square/Makefile.windows @@ -29,7 +29,7 @@ CXX2 = $(CXX1:icl.exe-=icl.exe) CXX = $(CXX2:-=cl.exe) # The C++ compiler options -MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) /D _CRT_SECURE_NO_DEPRECATE /arch:sse2 +MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 $(CXXFLAGS) /D _CRT_SECURE_NO_DEPRECATE MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) SOURCES = square.cpp gen_input.cpp diff --git a/include/serial/tbb/parallel_for.h b/include/serial/tbb/parallel_for.h index 89e5483ba1..a0d5403cfa 100644 --- a/include/serial/tbb/parallel_for.h +++ b/include/serial/tbb/parallel_for.h @@ -43,7 +43,7 @@ namespace tbb { namespace serial { -namespace interface7 { +namespace interface9 { // parallel_for serial annotated implementation @@ -104,28 +104,37 @@ void start_for< Range, Body, Partitioner >::execute() { /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body ) { - serial::interface7::start_for::run(range,body,__TBB_DEFAULT_PARTITIONER()); + serial::interface9::start_for::run(range,body,__TBB_DEFAULT_PARTITIONER()); } //! Parallel iteration over range with simple partitioner. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner ) { - serial::interface7::start_for::run(range,body,partitioner); + serial::interface9::start_for::run(range,body,partitioner); } //! Parallel iteration over range with auto_partitioner. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner ) { - serial::interface7::start_for::run(range,body,partitioner); + serial::interface9::start_for::run(range,body,partitioner); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over range with static_partitioner. +/** @ingroup algorithms **/ +template +void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) { + serial::interface9::start_for::run(range,body,partitioner); +} +#endif + //! Parallel iteration over range with affinity_partitioner. /** @ingroup algorithms **/ template void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner ) { - serial::interface7::start_for::run(range,body,partitioner); + serial::interface9::start_for::run(range,body,partitioner); } //! Implementation of parallel iteration over stepped range of integers with explicit step and partitioner (ignored) @@ -160,6 +169,13 @@ template void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& p) { parallel_for_impl(first, last, step, f, p); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with explicit step and static partitioner +template +void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& p) { + parallel_for_impl(first, last, step, f, p); +} +#endif //! Parallel iteration over a range of integers with explicit step and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& p) { @@ -181,20 +197,27 @@ template void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& p) { parallel_for_impl(first, last, static_cast(1), f, p); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with default step and static partitioner +template +void parallel_for(Index first, Index last, const Function& f, const static_partitioner& p) { + parallel_for_impl(first, last, static_cast(1), f, p); +} +#endif //! Parallel iteration over a range of integers with default step and affinity_partitioner template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& p) { parallel_for_impl(first, last, static_cast(1), f, p); } -} // namespace interface7 +} // namespace interfaceX -using interface7::parallel_for; +using interface9::parallel_for; } // namespace serial #ifndef __TBB_NORMAL_EXECUTION -using serial::interface7::parallel_for; +using serial::interface9::parallel_for; #endif } // namespace tbb diff --git a/include/tbb/concurrent_vector.h b/include/tbb/concurrent_vector.h index 80a57f12de..ec27013e4f 100644 --- a/include/tbb/concurrent_vector.h +++ b/include/tbb/concurrent_vector.h @@ -84,7 +84,7 @@ namespace internal { //! Exception helper function template void handle_unconstructed_elements(T* array, size_t n_of_elements){ - std::memset(array, 0, n_of_elements * sizeof(T)); + std::memset( array, 0, n_of_elements * sizeof( T ) ); } //! Base class of concurrent vector implementation. diff --git a/include/tbb/flow_graph.h b/include/tbb/flow_graph.h index f3466388a9..f7d44c9976 100644 --- a/include/tbb/flow_graph.h +++ b/include/tbb/flow_graph.h @@ -34,6 +34,10 @@ #include "internal/_aggregator_impl.h" #include "tbb_profiling.h" +#if __TBB_PREVIEW_ASYNC_NODE +#include "task_arena.h" +#endif + #if TBB_DEPRECATED_FLOW_ENQUEUE #define FLOW_SPAWN(a) tbb::task::enqueue((a)) #else @@ -147,7 +151,7 @@ static tbb::task * const SUCCESSFULLY_ENQUEUED = (task *)-1; enum reset_flags { rf_reset_protocol = 0, rf_reset_bodies = 1<<0, // delete the current node body, reset to a copy of the initial node body. - rf_clear_edges = 1<<1 // delete edges + rf_clear_edges = 1<<1 // delete edges }; // enqueue left task if necessary. Returns the non-enqueued task if there is one. @@ -182,7 +186,7 @@ class receiver { //! Put an item to the receiver bool try_put( const T& t ) { task *res = try_put_task(t); - if(!res) return false; + if (!res) return false; if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); return true; } @@ -216,10 +220,13 @@ class receiver { template friend class limiter_node; virtual void reset_receiver(reset_flags f = rf_reset_protocol) = 0; - template - friend class internal::successor_cache; + template friend class internal::successor_cache; virtual bool is_continue_receiver() { return false; } -}; // class receiver + +#if __TBB_PREVIEW_OPENCL_NODE + template< typename, typename > friend class proxy_dependency_receiver; +#endif /* __TBB_PREVIEW_OPENCL_NODE */ +}; // class receiver #if TBB_PREVIEW_FLOW_GRAPH_FEATURES //* holder of edges both for caches and for those nodes which do not have predecessor caches. @@ -336,7 +343,7 @@ class continue_receiver : public receiver< continue_msg > { } #endif /* TBB_PREVIEW_FLOW_GRAPH_FEATURES */ - + protected: template< typename R, typename B > friend class run_and_put_task; template friend class internal::broadcast_cache; @@ -351,8 +358,7 @@ class continue_receiver : public receiver< continue_msg > { my_current_count = 0; } task * res = execute(); - if(!res) return SUCCESSFULLY_ENQUEUED; - return res; + return res? res : SUCCESSFULLY_ENQUEUED; } #if TBB_PREVIEW_FLOW_GRAPH_FEATURES @@ -370,7 +376,7 @@ class continue_receiver : public receiver< continue_msg > { /*override*/void reset_receiver( reset_flags f ) { my_current_count = 0; - if(f & rf_clear_edges) { + if (f & rf_clear_edges) { #if TBB_PREVIEW_FLOW_GRAPH_FEATURES my_built_predecessors.clear(); #endif @@ -382,12 +388,22 @@ class continue_receiver : public receiver< continue_msg > { /** This should be very fast or else spawn a task. This is called while the sender is blocked in the try_put(). */ virtual task * execute() = 0; - template - friend class internal::successor_cache; + template friend class internal::successor_cache; /*override*/ bool is_continue_receiver() { return true; } }; // class continue_receiver } // interface8 + +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + template + K key_from_message( const T &t ) { + return t.key(); + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ + + using interface8::sender; + using interface8::receiver; + using interface8::continue_receiver; } // flow } // tbb @@ -495,7 +511,7 @@ class graph : tbb::internal::no_copy { run_and_put_task( Receiver &r, Body& body ) : my_receiver(r), my_body(body) {} task *execute() { task *res = my_receiver.try_put_task( my_body() ); - if(res == SUCCESSFULLY_ENQUEUED) res = NULL; + if (res == SUCCESSFULLY_ENQUEUED) res = NULL; return res; } private: @@ -504,10 +520,28 @@ class graph : tbb::internal::no_copy { }; typedef std::list task_list_type; +#if __TBB_PREVIEW_ASYNC_NODE + class wait_functor { + task* graph_root_task; + public: + wait_functor( task* t ) : graph_root_task(t) {} + 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()) + my_task_arena->initialize(); // create a new, default-initialized arena + __TBB_ASSERT(my_task_arena->is_active(), NULL); + } +#endif + public: //! Constructs a graph with isolated task_group_context - explicit graph() : my_nodes(NULL), my_nodes_last(NULL) - { + graph() : my_nodes(NULL), my_nodes_last(NULL) { +#if __TBB_PREVIEW_ASYNC_NODE + prepare_task_arena(); +#endif own_context = true; cancelled = false; caught_exception = false; @@ -520,8 +554,10 @@ class graph : tbb::internal::no_copy { //! Constructs a graph with use_this_context as context explicit graph(task_group_context& use_this_context) : - my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL) - { + my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL) { +#if __TBB_PREVIEW_ASYNC_NODE + prepare_task_arena(); +#endif own_context = false; my_root_task = ( new ( task::allocate_root(*my_context) ) empty_task ); my_root_task->set_ref_count(1); @@ -536,6 +572,9 @@ class graph : tbb::internal::no_copy { my_root_task->set_ref_count(0); task::destroy( *my_root_task ); if (own_context) delete my_context; +#if __TBB_PREVIEW_ASYNC_NODE + delete my_task_arena; +#endif } #if TBB_PREVIEW_FLOW_GRAPH_TRACE @@ -590,7 +629,11 @@ class graph : tbb::internal::no_copy { #if TBB_USE_EXCEPTIONS try { #endif +#if __TBB_PREVIEW_ASYNC_NODE + my_task_arena->execute(wait_functor(my_root_task)); +#else my_root_task->wait_for_all(); +#endif cancelled = my_context->is_group_execution_cancelled(); #if TBB_USE_EXCEPTIONS } @@ -602,8 +645,13 @@ class graph : tbb::internal::no_copy { throw; } #endif - my_context->reset(); // consistent with behavior in catch() - my_root_task->set_ref_count(1); + // TODO: the "if" condition below is just a work-around to support the concurrent wait + // mode. The cancelation and exception mechanisms are still broken in this mode. + // Consider using task group not to re-implement the same functionality. + if ( !(my_context->traits() & task_group_context::concurrent_wait) ) { + my_context->reset(); // consistent with behavior in catch() + my_root_task->set_ref_count(1); + } } } @@ -662,13 +710,17 @@ class graph : tbb::internal::no_copy { bool my_is_active; task_list_type my_reset_task_list; - graph_node *my_nodes, *my_nodes_last; spin_mutex nodelist_mutex; void register_node(graph_node *n); void remove_node(graph_node *n); +#if __TBB_PREVIEW_ASYNC_NODE + template < typename Input, typename Output, typename Policy, typename Allocator > + friend class async_node; + task_arena* my_task_arena; +#endif }; // class graph template @@ -758,6 +810,12 @@ inline void graph::reset( reset_flags f ) { graph_node *my_p = &(*ii); my_p->reset_node(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(); +#endif set_active(true); // now spawn the tasks necessary to start the graph for(task_list_type::iterator rti = my_reset_task_list.begin(); rti != my_reset_task_list.end(); ++rti) { @@ -973,7 +1031,7 @@ class source_node : public graph_node, public sender< Output > { bool my_has_cached_item; output_type my_cached_item; - // used by apply_body, can invoke body of node. + // used by apply_body_bypass, can invoke body of node. bool try_reserve_apply_body(output_type &v) { spin_mutex::scoped_lock lock(my_mutex); if ( my_reserved ) { @@ -1421,7 +1479,7 @@ class overwrite_node : public graph_node, public receiver, public sender { my_buffer = v; my_buffer_is_valid = true; task * rtask = my_successors.try_put_task(v); - if(!rtask) rtask = SUCCESSFULLY_ENQUEUED; + if (!rtask) rtask = SUCCESSFULLY_ENQUEUED; return rtask; } @@ -1482,7 +1540,7 @@ class write_once_node : public overwrite_node { this->my_buffer = v; this->my_buffer_is_valid = true; task *res = this->my_successors.try_put_task(v); - if(!res) res = SUCCESSFULLY_ENQUEUED; + if (!res) res = SUCCESSFULLY_ENQUEUED; return res; } } @@ -1601,7 +1659,7 @@ class broadcast_node : public graph_node, public receiver, public sender { //! build a task to run the successor if possible. Default is old behavior. /*override*/ task *try_put_task(const T& t) { task *new_task = my_successors.try_put_task(t); - if(!new_task) new_task = SUCCESSFULLY_ENQUEUED; + if (!new_task) new_task = SUCCESSFULLY_ENQUEUED; return new_task; } @@ -2558,7 +2616,7 @@ class limiter_node : public graph_node, public receiver< T >, public sender< T > return NULL; } - //SUCCESS + //SUCCESS // if we can reserve and can put, we consume the reservation // we increment the count and decrement the tries if ( (my_predecessors.try_reserve(v)) == true ){ @@ -2854,6 +2912,10 @@ class join_node > : public internal::unfolde typedef OutputTuple output_type; typedef typename unfolded_type::input_ports_type input_ports_type; +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + join_node(graph &g) : unfolded_type(g) {} +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ + template join_node(graph &g, __TBB_B0 b0, __TBB_B1 b1) : unfolded_type(g, b0, b1) { tbb::internal::fgt_multiinput_node( tbb::internal::FLOW_JOIN_NODE_TAG_MATCHING, &this->my_graph, @@ -3225,7 +3287,7 @@ inline void make_edge( T& output, V& input) { } //Makes an edge from port 0 of a multi-output predecessor to a receiver. -template< typename T, typename R, +template< typename T, typename R, typename = typename T::output_ports_type > inline void make_edge( T& output, receiver& input) { make_edge(get<0>(output.output_ports()), input); @@ -3364,12 +3426,12 @@ class composite_node , tbb::flow::tuple, tbb::flow::tuple<> > : pu } #endif - input_ports_type input_ports() { + input_ports_type input_ports() { __TBB_ASSERT(my_input_ports, "input ports not set, call set_external_ports to set input ports"); return *my_input_ports; } @@ -3511,7 +3573,7 @@ class composite_node , tbb::flow::tuple > : p } #endif - output_ports_type output_ports() { + output_ports_type output_ports() { __TBB_ASSERT(my_output_ports, "output ports not set, call set_external_ports to set output ports"); return *my_output_ports; } @@ -3538,53 +3600,117 @@ class async_gateway { public: typedef Output output_type; - //! Submit signal from Async Activity to FG - virtual bool async_try_put(const output_type &i ) = 0; + //! Submit signal from an asynchronous activity to FG + virtual bool async_try_put( const output_type &i ) = 0; + //! Increment reference count of graph to prevent premature return from wait_for_all virtual void async_reserve() = 0; + //! Decrement reference count of graph to allow return from wait_for_all virtual void async_commit() = 0; virtual ~async_gateway() {} }; + +template +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 & ) { + my_body(v, *my_async_gateway); + } + + Body get_body() { return my_body; } + + void set_async_gateway(async_gateway_type *gateway) { + my_async_gateway = gateway; + } + +private: + Body my_body; + async_gateway_type *my_async_gateway; +}; + } -//! Implements a async node -template < typename Input, typename Output, typename Allocator=cache_aligned_allocator > -class async_node : public graph_node, public internal::async_input >, public internal::function_output, public internal::async_gateway { +//! Implements async node +template < typename Input, typename Output, typename Policy = queueing, typename Allocator=cache_aligned_allocator > +class async_node : public multifunction_node< Input, tuple< Output >, Policy, Allocator >, public internal::async_gateway, public sender< Output > { protected: - using graph_node::my_graph; + typedef multifunction_node< Input, tuple< Output >, Policy, Allocator > base_type; + public: typedef Input input_type; typedef Output output_type; - typedef async_node< input_type, output_type, Allocator > my_class; typedef sender< input_type > predecessor_type; typedef receiver< output_type > successor_type; typedef internal::async_gateway< output_type > async_gateway_type; - typedef internal::async_input async_input_type; - typedef internal::function_output async_output_type; +protected: + typedef typename internal::multifunction_input mfn_input_type; - //! Constructor - template< typename Body > - async_node( graph &g, Body body ) : - graph_node( g ), async_input_type( g, body ) { - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_ASYNC_NODE, &this->graph_node::my_graph, - static_cast *>(this), - static_cast *>(this), this->my_body ); + struct try_put_functor { + typedef internal::multifunction_output output_port_type; + output_port_type *port; + const Output *value; + bool result; + try_put_functor(output_port_type &p, const Output &v) : port(&p), value(&v), result(false) { } + void operator()() { + result = port->try_put(*value); + } + }; + +public: + template + async_node( graph &g, size_t concurrency, Body body ) : + base_type( g, concurrency, internal::async_body(body, this) ) { + tbb::internal::fgt_multioutput_node<1>( tbb::internal::FLOW_ASYNC_NODE, + &this->graph_node::my_graph, + static_cast *>(this), + this->output_ports() ); } - //! Copy constructor - async_node( const async_node& src ) : - graph_node(src.graph_node::my_graph), async_input_type( src ), async_output_type(){ - tbb::internal::fgt_node_with_body( tbb::internal::FLOW_ASYNC_NODE, &this->graph_node::my_graph, - static_cast *>(this), - static_cast *>(this), this->my_body ); + async_node( const async_node &other ) : base_type(other) { + typedef internal::multifunction_body mfn_body_type; + mfn_body_type &body_ref = *this->my_body; + body_ref.set_gateway(static_cast(this)); + mfn_body_type &init_body_ref = *this->my_init_body; + init_body_ref.set_gateway(static_cast(this)); + tbb::internal::fgt_multioutput_node<1>( tbb::internal::FLOW_ASYNC_NODE, &this->graph_node::my_graph, static_cast *>(this), this->output_ports() ); } + virtual ~async_node() {} + /* override */ async_gateway_type& async_gateway() { return static_cast< async_gateway_type& >(*this); - } + } + + //! Implements async_gateway::async_try_put for an external activity to submit a message to FG + /*override*/ bool async_try_put(const output_type &i ) { + internal::multifunction_output &port_0 = internal::output_port<0>(*this); + graph &g = this->graph_node::my_graph; + tbb::internal::fgt_async_try_put_begin(static_cast *>(this), &port_0); + __TBB_ASSERT(g.my_task_arena && g.my_task_arena->is_active(), NULL); + try_put_functor tpf(port_0, i); + g.my_task_arena->execute(tpf); + tbb::internal::fgt_async_try_put_end(static_cast *>(this), &port_0); + return tpf.result; + } + + /*override*/ void async_reserve() { + this->graph_node::my_graph.increment_wait_count(); + tbb::internal::fgt_async_reserve(static_cast *>(this), &this->graph_node::my_graph); + } + + /*override*/ void async_commit() { + this->graph_node::my_graph.decrement_wait_count(); + tbb::internal::fgt_async_commit(static_cast *>(this), &this->graph_node::my_graph); + } #if TBB_PREVIEW_FLOW_GRAPH_TRACE /* override */ void set_name( const char *name ) { @@ -3592,44 +3718,59 @@ class async_node : public graph_node, public internal::async_input friend class run_and_put_task; - template friend class internal::broadcast_cache; - template friend class internal::round_robin_cache; - using async_input_type::try_put_task; + // Define sender< Output > - /*override*/void reset_node( reset_flags f) { - async_input_type::reset_async_input(f); - if(f & rf_clear_edges) successors().clear(); - __TBB_ASSERT(!(f & rf_clear_edges) || successors().empty(), "function_node successors not empty"); - __TBB_ASSERT(!(f & rf_clear_edges) || this->my_predecessors.empty(), "function_node predecessors not empty"); + //! Add a new successor to this node + /* override */ bool register_successor( successor_type &r ) { + return internal::output_port<0>(*this).register_successor(r); + } + + //! Removes a successor from this node + /* override */ bool remove_successor( successor_type &r ) { + return internal::output_port<0>(*this).remove_successor(r); + } + + template + Body copy_function_object() { + 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(); + return ab.get_body(); } + #if TBB_PREVIEW_FLOW_GRAPH_FEATURES - /*override*/void extract() { - this->my_predecessors.built_predecessors().receiver_extract(*this); - successors().built_successors().sender_extract(*this); + //! interface to record edges for traversal & deletion + typedef typename internal::edge_container built_successors_type; + typedef typename built_successors_type::edge_list_type successor_list_type; + /* override */ built_successors_type &built_successors() { + return internal::output_port<0>(*this).built_successors(); } -#endif - internal::broadcast_cache &successors () { return async_output_type::my_successors; } + /* override */ void internal_add_built_successor( successor_type &r ) { + internal::output_port<0>(*this).internal_add_built_successor(r); + } - //! Submit signal from Async Activity to FG - /*override*/ bool async_try_put(const output_type &i ) { - // TODO: enqueue a task to a FG arena - task *res = successors().try_put_task(i); - if(!res) return false; - if (res != SUCCESSFULLY_ENQUEUED) FLOW_SPAWN(*res); - return true; + /* override */ void internal_delete_built_successor( successor_type &r ) { + internal::output_port<0>(*this).internal_delete_built_successor(r); } - /*override*/ void async_reserve() { - my_graph.increment_wait_count(); + /* override */ void copy_successors( successor_list_type &l ) { + internal::output_port<0>(*this).copy_successors(l); } - /*override*/ void async_commit() { - my_graph.decrement_wait_count(); + /* override */ size_t successor_count() { + return internal::output_port<0>(*this).successor_count(); } -}; +#endif + +protected: + + /*override*/ void reset_node( reset_flags f) { + base_type::reset_node(f); + } + +}; #endif // __TBB_PREVIEW_ASYNC_NODE @@ -3643,9 +3784,6 @@ class async_node : public graph_node, public internal::async_input +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +namespace tbb { +namespace flow { + +namespace interface8 { + +class opencl_foundation; +class opencl_device_list; + +template +class opencl_buffer_impl; + +class default_opencl_factory; + +class opencl_graph : public graph { +public: + //! Constructs a graph with isolated task_group_context + opencl_graph() : my_opencl_foundation( NULL ) {} + //! Constructs a graph with an user context + explicit opencl_graph( task_group_context& context ) : graph( context ), my_opencl_foundation( NULL ) {} + //! Destroys a graph + ~opencl_graph(); + //! Available devices + const opencl_device_list& available_devices(); + default_opencl_factory& opencl_factory(); +protected: + opencl_foundation *my_opencl_foundation; + opencl_foundation &get_opencl_foundation(); + + template + friend class opencl_buffer; + template + friend class opencl_image2d; + template + friend class opencl_node; + template + friend class opencl_factory; +}; + +template +class dependency_msg; + +template< typename T, typename Factory > +class proxy_dependency_receiver; + +template< typename T, typename Factory > +class receiver> { +public: + //! The predecessor type for this node + typedef sender> dependency_predecessor_type; + typedef proxy_dependency_receiver proxy; + + receiver() : my_ordinary_receiver( *this ) {} + + //! Put an item to the receiver + bool try_put( const T& t ) { + return my_ordinary_receiver.try_put(t); + } + + //! Put an item to the receiver + virtual task *try_put_task( const dependency_msg& ) = 0; + + //! Add a predecessor to the node + virtual bool register_predecessor( dependency_predecessor_type & ) { return false; } + + //! Remove a predecessor from the node + virtual bool remove_predecessor( dependency_predecessor_type & ) { return false; } + +protected: + //! put receiver back in initial state + virtual void reset_receiver( reset_flags f = rf_reset_protocol ) = 0; + virtual bool is_continue_receiver() { return false; } +private: + class ordinary_receiver : public receiver < T >, tbb::internal::no_assign { + //! The predecessor type for this node + typedef sender predecessor_type; + public: + ordinary_receiver(receiver>& owner) : my_owner(owner) {} + + //! Put an item to the receiver + /* override */ task *try_put_task( const T& t ) { + return my_owner.try_put_task( dependency_msg( t ) ); + } + + //! Add a predecessor to the node + /* override */ bool register_predecessor( predecessor_type &p ) { + tbb::spin_mutex::scoped_lock lock( my_predecessor_map_mutex ); + typename predecessor_map_type::iterator it = my_predecessor_map.emplace( std::piecewise_construct_t(), std::make_tuple( &p ), std::tie( p ) ); + if ( !my_owner.register_predecessor( it->second ) ) { + my_predecessor_map.erase( it ); + return false; + } + return true; + } + + //! Remove a predecessor from the node + /* override */ bool remove_predecessor( predecessor_type &p ) { + tbb::spin_mutex::scoped_lock lock( my_predecessor_map_mutex ); + typename predecessor_map_type::iterator it = my_predecessor_map.find( &p ); + __TBB_ASSERT( it != my_predecessor_map.end(), "Failed to find the predecessor" ); + if ( !my_owner.remove_predecessor( it->second ) ) + return false; + my_predecessor_map.erase( it ); + return true; + } + + protected: + //! put receiver back in initial state + /* override */ void reset_receiver( reset_flags f = rf_reset_protocol ) { + my_owner.reset_receiver( f ); + }; + /* override */ bool is_continue_receiver() { + return my_owner.is_continue_receiver(); + } + + private: + receiver>& my_owner; + + typedef std::multimap predecessor_map_type; + predecessor_map_type my_predecessor_map; + tbb::spin_mutex my_predecessor_map_mutex; + }; + ordinary_receiver my_ordinary_receiver; +public: + ordinary_receiver& ordinary_receiver() { return my_ordinary_receiver; } +}; + +template< typename T, typename Factory > +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; + + proxy_dependency_receiver( receiver& r ) : my_r( r ) {} + + //! Put an item to the receiver + /* override */ task *try_put_task( const dependency_msg &d ) { + receive_if_memory_object( d ); + receiver *r = &my_r; + d.register_callback( [r]( const T& t ) { + r->try_put( t ); + } ); + d.clear_event(); + return SUCCESSFULLY_ENQUEUED; + } + + //! Add a predecessor to the node + /* override */ bool register_predecessor( dependency_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 ) { + return my_r.remove_predecessor( s.ordinary_sender() ); + } +protected: + //! put receiver back in initial state + /* override */ void reset_receiver( reset_flags f = rf_reset_protocol ) { + my_r.reset_receiver( f ); + }; + + /* override */ bool is_continue_receiver() { + return my_r.is_continue_receiver(); + } +private: + receiver &my_r; +}; + +template< typename T, typename Factory > +class sender> { +public: + sender() : my_ordinary_sender( *this ) {} + + //! The successor type for this sender + typedef receiver> dependency_successor_type; + typedef proxy_dependency_sender proxy; + + //! Add a new successor to this node + virtual bool register_successor( dependency_successor_type &r ) = 0; + + //! Removes a successor from this node + virtual bool remove_successor( dependency_successor_type &r ) = 0; + + //! Request an item from the sender + virtual bool try_get( dependency_msg & ) { return false; } + + //! Reserves an item in the sender + virtual bool try_reserve( dependency_msg & ) { return false; } +private: + class ordinary_sender : public sender < T >, tbb::internal::no_assign { + //! The successor type for this sender + typedef receiver successor_type; + public: + ordinary_sender(sender>& owner) : my_owner(owner) {} + + //! Add a new successor to this node + /* override */ bool register_successor( successor_type &r ) { + tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); + typename successor_map_type::iterator it = my_successor_map.emplace( std::piecewise_construct_t(), std::make_tuple( &r ), std::tie( r ) ); + if ( !my_owner.register_successor( it->second ) ) { + my_successor_map.erase( it ); + return false; + } + return true; + } + + //! Removes a successor from this node + /* override */ bool remove_successor( successor_type &r ) { + tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); + typename successor_map_type::iterator it = my_successor_map.find( &r ); + __TBB_ASSERT( it != my_successor_map.end(), "The predecessor has already been registered" ); + if ( !my_owner.remove_successor( it->second ) ) + return false; + my_successor_map.erase( it ); + return true; + } + + //! Request an item from the sender + /* override */ bool try_get( T &t ) { + dependency_msg d; + if ( my_owner.try_get( d ) ) { + t = d.data(); + return true; + } + return false; + } + + /* override */ bool try_reserve( T &t ) { + dependency_msg d; + if ( my_owner.try_reserve( d ) ) { + t = d.data(); + return true; + } + return false; + } + + bool has_host_successors() { + tbb::spin_mutex::scoped_lock lock( my_successor_map_mutex ); + return !my_successor_map.empty(); + } + private: + sender>& my_owner; + + typedef std::multimap successor_map_type; + successor_map_type my_successor_map; + tbb::spin_mutex my_successor_map_mutex; + }; + ordinary_sender my_ordinary_sender; +public: + ordinary_sender& ordinary_sender() { return my_ordinary_sender; } + + bool has_host_successors() { + return my_ordinary_sender.has_host_successors(); + } +}; + +template< typename T, typename Factory > +class proxy_dependency_sender : public sender < dependency_msg >, tbb::internal::no_assign { +public: + typedef receiver> dependency_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 ) { + return my_s.register_successor( r.ordinary_receiver() ); + } + + //! Removes a successor from this node + /* override */ bool remove_successor( dependency_successor_type &r ) { + return my_s.remove_successor( r.ordinary_receiver() ); + } + + //! Request an item from the sender + /* override */ bool try_get( dependency_msg &d ) { + return my_s.try_get( d.data() ); + } + + //! Reserves an item in the sender + /* override */ bool try_reserve( dependency_msg &d ) { + return my_s.try_reserve( d.data() ); + } + + //! Releases the reserved item + /* override */ bool try_release() { + return my_s.try_release(); + } + + //! Consumes the reserved item + /* override */ bool try_consume() { + return my_s.try_consume(); + } +private: + sender &my_s; +}; + +template +inline void make_edge( sender &s, receiver> &r ) { + make_edge( s, r.ordinary_receiver() ); +} + +template +inline void make_edge( sender> &s, receiver &r ) { + make_edge( s.ordinary_sender(), r ); +} + +template +inline void remove_edge( sender &s, receiver> &r ) { + remove_edge( s, r.ordinary_receiver() ); +} + +template +inline void remove_edge( sender> &s, receiver &r ) { + remove_edge( s.ordinary_sender(), r ); +} + +inline void enforce_cl_retcode( cl_int err, std::string msg ) { + if ( err != CL_SUCCESS ) { + std::cerr << msg << std::endl; + throw msg; + } +} + +template +T event_info( cl_event e, cl_event_info i ) { + T res; + enforce_cl_retcode( clGetEventInfo( e, i, sizeof( res ), &res, NULL ), "Failed to get OpenCL event information" ); + return res; +} + +template +T device_info( cl_device_id d, cl_device_info i ) { + T res; + enforce_cl_retcode( clGetDeviceInfo( d, i, sizeof( res ), &res, NULL ), "Failed to get OpenCL device information" ); + return res; +} +template <> +std::string device_info( cl_device_id d, cl_device_info i ) { + size_t required; + enforce_cl_retcode( clGetDeviceInfo( d, i, 0, NULL, &required ), "Failed to get OpenCL device information" ); + + char *buff = (char*)alloca( required ); + enforce_cl_retcode( clGetDeviceInfo( d, i, required, buff, NULL ), "Failed to get OpenCL device information" ); + + return buff; +} +template +T platform_info( cl_platform_id p, cl_platform_info i ) { + T res; + enforce_cl_retcode( clGetPlatformInfo( p, i, sizeof( res ), &res, NULL ), "Failed to get OpenCL platform information" ); + return res; +} +template <> +std::string platform_info( cl_platform_id p, cl_platform_info i ) { + size_t required; + enforce_cl_retcode( clGetPlatformInfo( p, i, 0, NULL, &required ), "Failed to get OpenCL platform information" ); + + char *buff = (char*)alloca( required ); + enforce_cl_retcode( clGetPlatformInfo( p, i, required, buff, NULL ), "Failed to get OpenCL platform information" ); + + return buff; +} + + +class opencl_device { + 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 ) {} + + std::string platform_profile() const { + return platform_info( platform(), CL_PLATFORM_PROFILE ); + } + std::string platform_version() const { + return platform_info( platform(), CL_PLATFORM_VERSION ); + } + std::string platform_name() const { + return platform_info( platform(), CL_PLATFORM_NAME ); + } + std::string platform_vendor() const { + return platform_info( platform(), CL_PLATFORM_VENDOR ); + } + std::string platform_extensions() const { + return platform_info( platform(), CL_PLATFORM_EXTENSIONS ); + } + + template + void info( cl_device_info i, T &t ) const { + t = device_info( my_cl_device_id, i ); + } + std::string version() const { + // The version string format: OpenCL + return device_info( my_cl_device_id, CL_DEVICE_VERSION ); + } + int major_version() const { + int major; + std::sscanf( version().c_str(), "OpenCL %d", &major ); + return major; + } + int minor_version() const { + int major, minor; + std::sscanf( version().c_str(), "OpenCL %d.%d", &major, &minor ); + return minor; + } + bool out_of_order_exec_mode_on_host_present() const { +#if CL_VERSION_2_0 + if ( major_version() >= 2 ) + return (device_info( my_cl_device_id, CL_DEVICE_QUEUE_ON_HOST_PROPERTIES ) & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) != 0; + else +#endif /* CL_VERSION_2_0 */ + return (device_info( my_cl_device_id, CL_DEVICE_QUEUE_PROPERTIES ) & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) != 0; + } + bool out_of_order_exec_mode_on_device_present() const { +#if CL_VERSION_2_0 + if ( major_version() >= 2 ) + return (device_info( my_cl_device_id, CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES ) & CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE) != 0; + else +#endif /* CL_VERSION_2_0 */ + return false; + } + std::array max_work_item_sizes() const { + return device_info>( my_cl_device_id, CL_DEVICE_MAX_WORK_ITEM_SIZES ); + } + size_t max_work_group_size() const { + return device_info( my_cl_device_id, CL_DEVICE_MAX_WORK_GROUP_SIZE ); + } + bool built_in_kernel_available( const std::string& k ) const { + const std::string semi = ";"; + // Added semicolumns to force an exact match (to avoid a partial match, e.g. "add" is partly matched with "madd"). + return (semi + built_in_kernels() + semi).find( semi + k + semi ) != std::string::npos; + } + std::string built_in_kernels() const { + return device_info( my_cl_device_id, CL_DEVICE_BUILT_IN_KERNELS ); + } + std::string name() const { + return device_info( my_cl_device_id, CL_DEVICE_NAME ); + } + cl_bool available() const { + return device_info( my_cl_device_id, CL_DEVICE_AVAILABLE ); + } + cl_bool compiler_available() const { + return device_info( my_cl_device_id, CL_DEVICE_COMPILER_AVAILABLE ); + } + cl_bool linker_available() const { + return device_info( my_cl_device_id, CL_DEVICE_LINKER_AVAILABLE ); + } + bool extension_available( const std::string &ext ) const { + const std::string space = " "; + // Added space to force an exact match (to avoid a partial match, e.g. "ext" is partly matched with "ext2"). + return (space + extensions() + space).find( space + ext + space ) != std::string::npos; + } + std::string extensions() const { + return device_info( my_cl_device_id, CL_DEVICE_EXTENSIONS ); + } + + cl_device_type type() const { + return device_info( my_cl_device_id, CL_DEVICE_TYPE ); + } + + std::string vendor() const { + return device_info( my_cl_device_id, CL_DEVICE_VENDOR ); + } + + cl_uint address_bits() const { + return device_info( my_cl_device_id, CL_DEVICE_ADDRESS_BITS ); + } + +private: + opencl_device( cl_device_id d_id ) : my_device_id( unknown ), my_cl_device_id( d_id ) {} + + cl_platform_id platform() const { + return device_info( my_cl_device_id, CL_DEVICE_PLATFORM ); + } + + device_id_type my_device_id; + cl_device_id my_cl_device_id; + cl_command_queue my_cl_command_queue; + + friend bool operator==(opencl_device d1, opencl_device d2) { return d1.my_cl_device_id == d2.my_cl_device_id; } + + template + friend class opencl_factory; + template + friend class opencl_memory; + template + friend class opencl_program; + friend class opencl_foundation; + +#if TBB_USE_ASSERT + template + friend class opencl_buffer; +#endif +}; + +class opencl_device_list { + typedef std::vector container_type; +public: + typedef container_type::iterator iterator; + typedef container_type::const_iterator const_iterator; + typedef container_type::size_type size_type; + + opencl_device_list() {} + opencl_device_list( std::initializer_list il ) : my_container( il ) {} + + void add( opencl_device d ) { my_container.push_back( d ); } + size_type size() const { return my_container.size(); } + iterator begin() { return my_container.begin(); } + iterator end() { return my_container.end(); } + const_iterator begin() const { return my_container.begin(); } + const_iterator end() const { return my_container.end(); } + const_iterator cbegin() const { return my_container.cbegin(); } + const_iterator cend() const { return my_container.cend(); } +private: + container_type my_container; +}; + +class callback_base : tbb::internal::no_copy { +public: + virtual void call() const = 0; + virtual ~callback_base() {} +}; + +template +class callback : public callback_base { + graph &my_graph; + Callback my_callback; + T my_data; +public: + callback( graph &g, Callback c, const T& t ) : my_graph( g ), my_callback( c ), my_data( t ) { + // Extend the graph lifetime until the callback completion. + my_graph.increment_wait_count(); + } + ~callback() { + // Release the reference to the graph. + my_graph.decrement_wait_count(); + } + /* override */ void call() const { + my_callback( my_data ); + } +}; + +template +class dependency_msg { +public: + typedef T value_type; + + dependency_msg() = default; + explicit dependency_msg( const T& data ) : my_data( data ) {} + dependency_msg( opencl_graph &g, const T& data ) : my_data( data ), my_graph( &g ) {} + dependency_msg( const T& data, cl_event event ) : my_data( data ), my_event( event ), my_is_event( true ) { + enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); + } + T& data( bool wait = true ) { + if ( my_is_event && wait ) { + enforce_cl_retcode( clWaitForEvents( 1, &my_event ), "Failed to wait for an event" ); + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to release an event" ); + my_is_event = false; + } + return my_data; + } + + const T& data( bool wait = true ) const { + if ( my_is_event && wait ) { + enforce_cl_retcode( clWaitForEvents( 1, &my_event ), "Failed to wait for an event" ); + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to release an event" ); + my_is_event = false; + } + return my_data; + } + + dependency_msg( const dependency_msg &dmsg ) : my_data( dmsg.my_data ), my_event( dmsg.my_event ), my_is_event( dmsg.my_is_event ), my_graph( dmsg.my_graph ) { + if ( my_is_event ) + enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); + } + + dependency_msg( dependency_msg &&dmsg ) : my_data( std::move(dmsg.my_data) ), my_event( dmsg.my_event ), my_is_event( dmsg.my_is_event ), my_graph( dmsg.my_graph ) { + dmsg.my_is_event = false; + } + + dependency_msg& operator=(const dependency_msg &dmsg) { + my_data = dmsg.my_data; + my_event = dmsg.my_event; + my_is_event = dmsg.my_is_event; + my_graph = dmsg.my_graph; + if ( my_is_event ) + enforce_cl_retcode( clRetainEvent( my_event ), "Failed to retain an event" ); + return *this; + } + + ~dependency_msg() { + if ( my_is_event ) + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to release an event" ); + } + + cl_event const * get_event() const { return my_is_event ? &my_event : NULL; } + void set_event( cl_event e ) const { + if ( my_is_event ) { + cl_command_queue cq = event_info( my_event, CL_EVENT_COMMAND_QUEUE ); + if ( cq != event_info( e, CL_EVENT_COMMAND_QUEUE ) ) + enforce_cl_retcode( clFlush( cq ), "Failed to flush an OpenCL command queue" ); + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to release an event" ); + } + my_is_event = true; + my_event = e; + clRetainEvent( my_event ); + } + + void set_graph( graph &g ) { + my_graph = &g; + } + + void clear_event() const { + if ( my_is_event ) { + enforce_cl_retcode( clFlush( event_info( my_event, CL_EVENT_COMMAND_QUEUE ) ), "Failed to flush an OpenCL command queue" ); + enforce_cl_retcode( clReleaseEvent( my_event ), "Failed to release an event" ); + } + my_is_event = false; + } + + template + void register_callback( Callback c ) const { + __TBB_ASSERT( my_is_event, "The OpenCL event is not set" ); + __TBB_ASSERT( my_graph, "The graph is not set" ); + enforce_cl_retcode( clSetEventCallback( my_event, CL_COMPLETE, register_callback_func, new callback( *my_graph, c, my_data ) ), "Failed to set an OpenCL callback" ); + } + + operator T&() { return data(); } + operator const T&() const { return data(); } + +private: + static void CL_CALLBACK register_callback_func( cl_event, cl_int event_command_exec_status, void *data ) { + tbb::internal::suppress_unused_warning( event_command_exec_status ); + __TBB_ASSERT( event_command_exec_status == CL_COMPLETE, NULL ); + __TBB_ASSERT( data, NULL ); + callback_base *c = static_cast(data); + c->call(); + delete c; + } + + T my_data; + mutable cl_event my_event; + mutable bool my_is_event = false; + graph *my_graph = NULL; +}; + +template +K key_from_message( const dependency_msg &dmsg ) { + using tbb::flow::key_from_message; + const T &t = dmsg.data( false ); + __TBB_STATIC_ASSERT( true, "" ); + return key_from_message( t ); +} + +template +class opencl_memory { +public: + opencl_memory() {} + opencl_memory( Factory &f ) : my_host_ptr( NULL ), my_factory( &f ), my_sending_event_present( false ) { + my_curr_device_id = my_factory->devices().begin()->my_device_id; + } + + ~opencl_memory() { + if ( my_sending_event_present ) enforce_cl_retcode( clReleaseEvent( my_sending_event ), "Failed to release an event for the OpenCL buffer" ); + enforce_cl_retcode( clReleaseMemObject( my_cl_mem ), "Failed to release an memory object" ); + } + + cl_mem get_cl_mem() const { + return my_cl_mem; + } + + void* get_host_ptr() { + if ( !my_host_ptr ) { + dependency_msg d = receive( NULL ); + d.data(); + __TBB_ASSERT( d.data() == my_host_ptr, NULL ); + } + return my_host_ptr; + } + + 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; +protected: + cl_mem my_cl_mem; + tbb::atomic 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; +}; + +template +class opencl_buffer_impl : public opencl_memory { + size_t my_size; +public: + opencl_buffer_impl( size_t size, Factory& f ) : opencl_memory( f ), my_size( size ) { + cl_int err; + this->my_cl_mem = clCreateBuffer( this->my_factory->context(), CL_MEM_ALLOC_HOST_PTR, size, NULL, &err ); + enforce_cl_retcode( err, "Failed to create an OpenCL buffer" ); + } + + size_t size() const { + return my_size; + } + + /* override */ void map_memory( opencl_device device, dependency_msg &dmsg ) { + this->my_factory->enque_map_buffer( device, *this, dmsg ); + } + +#if TBB_USE_ASSERT + template + friend class opencl_buffer; +#endif +}; + +enum access_type { + read_write, + write_only, + read_only +}; + +template +class opencl_buffer { +public: + typedef cl_mem native_object_type; + typedef opencl_buffer memory_object_type; + typedef Factory opencl_factory_type; + + template using iterator = T*; + + template + iterator access() const { + T* ptr = (T*)my_impl->get_host_ptr(); + __TBB_ASSERT( ptr, NULL ); + return iterator( ptr ); + } + + T* data() const { return &access()[0]; } + + template + iterator begin() const { return access(); } + + template + iterator end() const { return access()+my_impl->size()/sizeof(T); } + + size_t size() const { return my_impl->size()/sizeof(T); } + + T& operator[] ( ptrdiff_t k ) { return begin()[k]; } + + opencl_buffer() {} + opencl_buffer( opencl_graph &g, size_t size ); + opencl_buffer( Factory &f, size_t size ) : my_impl( std::make_shared( size*sizeof(T), f ) ) {} + + cl_mem native_object() const { + return my_impl->get_cl_mem(); + } + + const opencl_buffer& memory_object() const { + return *this; + } + + void send( opencl_device device, dependency_msg &dependency ) const { + __TBB_ASSERT( dependency.data( /*wait = */false ) == *this, NULL ); + dependency_msg d = my_impl->send( device, dependency.get_event() ); + const cl_event *e = d.get_event(); + if ( e ) dependency.set_event( *e ); + else dependency.clear_event(); + } + void receive( const dependency_msg &dependency ) const { + __TBB_ASSERT( dependency.data( /*wait = */false ) == *this, NULL ); + dependency_msg d = my_impl->receive( dependency.get_event() ); + const cl_event *e = d.get_event(); + if ( e ) dependency.set_event( *e ); + else dependency.clear_event(); + } + +private: + typedef opencl_buffer_impl impl_type; + + std::shared_ptr my_impl; + + friend bool operator==(const opencl_buffer &lhs, const opencl_buffer &rhs) { + return lhs.my_impl == rhs.my_impl; + } + + template + friend class opencl_factory; +}; + + +template +class opencl_factory { +public: + opencl_factory( opencl_graph &g ) : my_graph( g ) {} + ~opencl_factory() { + if ( my_devices.size() ) { + for ( opencl_device d : my_devices ) { + enforce_cl_retcode( clReleaseCommandQueue( d.my_cl_command_queue ), "Failed to release a command queue" ); + } + enforce_cl_retcode( clReleaseContext( my_cl_context ), "Failed to release a context" ); + } + } + + bool init( const opencl_device_list &device_list ) { + tbb::spin_mutex::scoped_lock lock( my_devices_mutex ); + if ( !my_devices.size() ) { + my_devices = device_list; + return true; + } + return false; + } + + +private: + template + void enque_map_buffer( opencl_device device, opencl_buffer_impl &buffer, dependency_msg& dmsg ) { + cl_event const* e1 = dmsg.get_event(); + cl_event e2; + cl_int err; + void *ptr = clEnqueueMapBuffer( device.my_cl_command_queue, buffer.get_cl_mem(), false, CL_MAP_READ | CL_MAP_WRITE, 0, buffer.size(), + e1 == NULL ? 0 : 1, e1, &e2, &err ); + enforce_cl_retcode( err, "Failed to map a buffer" ); + dmsg.data( false ) = ptr; + dmsg.set_event( e2 ); + enforce_cl_retcode( clReleaseEvent( e2 ), "Failed to release an event" ); + } + + + template + void enque_unmap_buffer( opencl_device device, opencl_memory &memory, dependency_msg& dmsg ) { + cl_event const* e1 = dmsg.get_event(); + cl_event e2; + enforce_cl_retcode( + clEnqueueUnmapMemObject( device.my_cl_command_queue, memory.get_cl_mem(), memory.get_host_ptr(), e1 == NULL ? 0 : 1, e1, &e2 ), + "Failed to unmap a buffer" ); + dmsg.set_event( e2 ); + enforce_cl_retcode( clReleaseEvent( e2 ), "Failed to release an event" ); + } + + template + cl_event enqueue_kernel( opencl_device device, cl_kernel kernel, + GlbNDRange&& global_work_size, LclNDRange&& local_work_size, cl_uint num_events, cl_event* event_list ) { + auto g_it = global_work_size.begin(); + auto l_it = local_work_size.begin(); + __TBB_ASSERT( g_it != global_work_size.end() , "Empty global work size" ); + __TBB_ASSERT( l_it != local_work_size.end() , "Empty local work size" ); + std::array g_size, l_size, g_offset = { { 0, 0, 0 } }; + cl_uint s; + for ( s = 0; s < 3 && g_it != global_work_size.end() && l_it != local_work_size.end(); ++s ) { + g_size[s] = *g_it++; + l_size[s] = *l_it++; + } + cl_event event; + enforce_cl_retcode( + clEnqueueNDRangeKernel( device.my_cl_command_queue, kernel, s, + g_offset.data(), g_size.data(), l_size[0] ? l_size.data() : NULL, num_events, num_events ? event_list : NULL, &event ), + "Failed to enqueue a kernel" ); + return event; + } + + void flush( opencl_device device ) { + enforce_cl_retcode( clFlush( device.my_cl_command_queue ), "Failed to flush an OpenCL command queue" ); + } + + const opencl_device_list& devices() { + std::call_once( my_once_flag, &opencl_factory::init_once, this ); + return my_devices; + } + + 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. + if ( d1 != opencl_device::host && d2 != opencl_device::host ) + return true; + return d1 == d2; + } + + opencl_factory( const opencl_factory& ); + opencl_factory& operator=(const opencl_factory&); + + cl_context context() { + std::call_once( my_once_flag, &opencl_factory::init_once, this ); + return my_cl_context; + } + + void init_once(); + + std::once_flag my_once_flag; + opencl_device_list my_devices; + cl_context my_cl_context; + opencl_graph &my_graph; + + tbb::spin_mutex my_devices_mutex; + + template + friend class opencl_program; + template + friend class opencl_buffer_impl; + template + friend class opencl_memory; + template + friend class opencl_node; +}; + +template +dependency_msg opencl_memory::receive( const cl_event *e ) { + dependency_msg d = e ? dependency_msg( my_host_ptr, *e ) : dependency_msg( my_host_ptr ); + // Concurrent receives are prohibited so we do not worry about synchronization. + if ( my_curr_device_id.load() != opencl_device::host ) { + map_memory( *my_factory->devices().begin(), d ); + my_curr_device_id.store( opencl_device::host ); + my_host_ptr = d.data( false ); + } + // Release the sending event + if ( my_sending_event_present ) { + enforce_cl_retcode( clReleaseEvent( my_sending_event ), "Failed to release an event" ); + my_sending_event_present = false; + } + return d; +} + +template +dependency_msg opencl_memory::send( opencl_device device, const cl_event *e ) { + opencl_device::device_id_type device_id = device.my_device_id; + if ( !my_factory->is_same_context( my_curr_device_id.load(), device_id ) ) { + __TBB_ASSERT( !e, "The buffer has come from another opencl_node but it is not on a device" ); + { + tbb::spin_mutex::scoped_lock lock( my_sending_lock ); + if ( !my_factory->is_same_context( my_curr_device_id.load(), device_id ) ) { + __TBB_ASSERT( my_host_ptr, "The buffer has not been mapped" ); + dependency_msg d( my_host_ptr ); + my_factory->enque_unmap_buffer( device, *this, d ); + my_sending_event = *d.get_event(); + my_sending_event_present = true; + enforce_cl_retcode( clRetainEvent( my_sending_event ), "Failed to retain an event" ); + my_host_ptr = NULL; + my_curr_device_id.store(device_id); + } + } + __TBB_ASSERT( my_sending_event_present, NULL ); + } + + // !e means that buffer has come from the host + if ( !e && my_sending_event_present ) e = &my_sending_event; + + __TBB_ASSERT( !my_host_ptr, "The buffer has not been unmapped" ); + return e ? dependency_msg( NULL, *e ) : dependency_msg( NULL ); +} + +struct default_opencl_factory_device_filter { + opencl_device_list operator()( const opencl_device_list &devices ) { + opencl_device_list dl; + dl.add( *devices.begin() ); + return dl; + } +}; + +class default_opencl_factory : public opencl_factory < default_opencl_factory_device_filter > { +public: + default_opencl_factory( opencl_graph &g ) : opencl_factory( g ) {} +private: + default_opencl_factory( const default_opencl_factory& ); + default_opencl_factory& operator=(const default_opencl_factory&); +}; + +class opencl_foundation : tbb::internal::no_assign { + struct default_device_selector_type { + opencl_device operator()( const opencl_device_list& devices ) { + return *devices.begin(); + } + }; +public: + opencl_foundation( opencl_graph &g ) : my_default_opencl_factory( g ), my_default_device_selector() { + cl_uint num_platforms; + enforce_cl_retcode( clGetPlatformIDs( 0, NULL, &num_platforms ), "clGetPlatformIDs failed" ); + + std::vector platforms( num_platforms ); + enforce_cl_retcode( clGetPlatformIDs( num_platforms, platforms.data(), NULL ), "clGetPlatformIDs failed" ); + + cl_uint num_all_devices = 0; + for ( cl_platform_id p : platforms ) { + cl_uint num_devices; + enforce_cl_retcode( clGetDeviceIDs( p, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices ), "clGetDeviceIDs failed" ); + num_all_devices += num_devices; + } + + std::vector devices( num_all_devices ); + std::vector::iterator it = devices.begin(); + for ( cl_platform_id p : platforms ) { + cl_uint num_devices; + enforce_cl_retcode( clGetDeviceIDs( p, CL_DEVICE_TYPE_ALL, (cl_uint)std::distance( it, devices.end() ), &*it, &num_devices ), "clGetDeviceIDs failed" ); + it += num_devices; + } + + for ( cl_device_id d : devices ) my_devices.add( opencl_device( d ) ); + } + + default_opencl_factory &get_default_opencl_factory() { + return my_default_opencl_factory; + } + + const opencl_device_list &get_all_devices() { + return my_devices; + } + + default_device_selector_type get_default_device_selector() { return my_default_device_selector; } + +private: + default_opencl_factory my_default_opencl_factory; + opencl_device_list my_devices; + + const default_device_selector_type my_default_device_selector; +}; + +opencl_foundation &opencl_graph::get_opencl_foundation() { + opencl_foundation* INITIALIZATION = (opencl_foundation*)1; + if ( my_opencl_foundation <= INITIALIZATION ) { + if ( tbb::internal::as_atomic( my_opencl_foundation ).compare_and_swap( INITIALIZATION, NULL ) == 0 ) { + my_opencl_foundation = new opencl_foundation( *this ); + } + else { + tbb::internal::spin_wait_while_eq( my_opencl_foundation, INITIALIZATION ); + } + } + + __TBB_ASSERT( my_opencl_foundation > INITIALIZATION, "opencl_foundation is not initialized"); + return *my_opencl_foundation; +} + +opencl_graph::~opencl_graph() { + if ( my_opencl_foundation ) + delete my_opencl_foundation; +} + +template +void opencl_factory::init_once() { + { + tbb::spin_mutex::scoped_lock lock( my_devices_mutex ); + if ( !my_devices.size() ) + my_devices = DeviceFilter()(my_graph.get_opencl_foundation().get_all_devices()); + } + + enforce_cl_retcode( my_devices.size() ? CL_SUCCESS : CL_INVALID_DEVICE, "No devices in the device list" ); + cl_platform_id platform_id = my_devices.begin()->platform(); + for ( opencl_device_list::iterator it = ++my_devices.begin(); it != my_devices.end(); ++it ) + enforce_cl_retcode( it->platform() == platform_id ? CL_SUCCESS : CL_INVALID_PLATFORM, "All devices should be in the same platform" ); + + std::vector cl_device_ids; + for ( opencl_device d : my_devices ) cl_device_ids.push_back( d.my_cl_device_id ); + + cl_context_properties context_properties[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platform_id, (cl_context_properties)NULL }; + cl_int err; + cl_context ctx = clCreateContext( context_properties, + (cl_uint)cl_device_ids.size(), + cl_device_ids.data(), + NULL, NULL, &err ); + enforce_cl_retcode( err, "Failed to create context" ); + my_cl_context = ctx; + + size_t device_counter = 0; + for ( opencl_device &d : my_devices ) { + d.my_device_id = device_counter++; + cl_int err2; + cl_command_queue cq; +#if CL_VERSION_2_0 + if ( d.major_version() >= 2 ) { + if ( d.out_of_order_exec_mode_on_host_present() ) { + cl_queue_properties props[] = { CL_QUEUE_PROPERTIES, CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE, 0 }; + cq = clCreateCommandQueueWithProperties( ctx, d.my_cl_device_id, props, &err2 ); + } else { + cl_queue_properties props[] = { 0 }; + cq = clCreateCommandQueueWithProperties( ctx, d.my_cl_device_id, props, &err2 ); + } + } else +#endif + { + cl_command_queue_properties props = d.out_of_order_exec_mode_on_host_present() ? CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE : 0; + // Suppress "declared deprecated" warning for the next line. +#if __TBB_GCC_WARNING_SUPPRESSION_PRESENT +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif +#if _MSC_VER || __INTEL_COMPILER +#pragma warning( push ) +#if __INTEL_COMPILER +#pragma warning (disable: 1478) +#else +#pragma warning (disable: 4996) +#endif +#endif + cq = clCreateCommandQueue( ctx, d.my_cl_device_id, props, &err2 ); +#if _MSC_VER || __INTEL_COMPILER +#pragma warning( pop ) +#endif +#if __TBB_GCC_WARNING_SUPPRESSION_PRESENT +#pragma GCC diagnostic pop +#endif + } + enforce_cl_retcode( err2, "Failed to create command queue" ); + d.my_cl_command_queue = cq; + } +} + +const opencl_device_list &opencl_graph::available_devices() { + return get_opencl_foundation().get_all_devices(); +} + +default_opencl_factory &opencl_graph::opencl_factory() { + return get_opencl_foundation().get_default_opencl_factory(); +} + +template +opencl_buffer::opencl_buffer( opencl_graph &g, size_t size ) : my_impl( std::make_shared( size*sizeof(T), g.get_opencl_foundation().get_default_opencl_factory() ) ) {} + + +enum class opencl_program_type { + SOURCE, + PRECOMPILED, + SPIR +}; + +template +class opencl_program : tbb::internal::no_assign { +public: + opencl_program( opencl_program_type type, const std::string& program_name ) : my_type(type) , my_arg_str( program_name) {} + opencl_program( const char* program_name ) : opencl_program( std::string( program_name ) ) {} + opencl_program( const std::string& program_name ) : opencl_program( opencl_program_type::SOURCE, program_name ) {} + + opencl_program( const opencl_program &src ) : my_type( src.type ), my_arg_str( src.my_arg_str ), my_cl_program( src.my_cl_program ) { + // Set my_do_once_flag to the called state. + std::call_once( my_do_once_flag, [](){} ); + } +private: + opencl_program( cl_program program ) : my_cl_program( program ) { + // Set my_do_once_flag to the called state. + std::call_once( my_do_once_flag, [](){} ); + } + + cl_kernel get_kernel( const std::string& k, Factory &f ) const { + std::call_once( my_do_once_flag, [this, &k, &f](){ this->init( f, k ); } ); + cl_int err; + cl_kernel kernel = clCreateKernel( my_cl_program, k.c_str(), &err ); + enforce_cl_retcode( err, std::string( "Failed to create kernel: " ) + k ); + return kernel; + } + + class file_reader { + public: + file_reader( const std::string& filepath ) { + std::ifstream file_descriptor( filepath, std::ifstream::binary ); + if ( !file_descriptor.is_open() ) { + std::string str = std::string( "Could not open file: " ) + filepath; + std::cerr << str << std::endl; + throw str; + } + file_descriptor.seekg( 0, file_descriptor.end ); + size_t length = size_t( file_descriptor.tellg() ); + file_descriptor.seekg( 0, file_descriptor.beg ); + my_content.resize( length ); + char* begin = &*my_content.begin(); + file_descriptor.read( begin, length ); + file_descriptor.close(); + } + const char* content() { return &*my_content.cbegin(); } + size_t length() { return my_content.length(); } + private: + std::string my_content; + }; + + class opencl_program_builder { + public: + typedef void (CL_CALLBACK *cl_callback_type)(cl_program, void*); + opencl_program_builder( Factory& f, const std::string& name, cl_program program, + cl_uint num_devices, cl_device_id* device_list, + const char* options, cl_callback_type callback, + void* user_data ) { + cl_int err = clBuildProgram( program, num_devices, device_list, options, + callback, user_data ); + if( err == CL_SUCCESS ) + return; + std::string str = std::string( "Failed to build program: " ) + name; + if ( err == CL_BUILD_PROGRAM_FAILURE ) { + const opencl_device_list &devices = f.devices(); + for ( opencl_device d : devices ) { + std::cerr << "Build log for device: " << d.name() << std::endl; + size_t log_size; + cl_int query_err = clGetProgramBuildInfo( + program, d.my_cl_device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, + &log_size ); + enforce_cl_retcode( query_err, "Failed to get build log size" ); + if( log_size ) { + std::vector output; + output.resize( log_size ); + query_err = clGetProgramBuildInfo( + program, d.my_cl_device_id, CL_PROGRAM_BUILD_LOG, + output.size(), output.data(), NULL ); + enforce_cl_retcode( query_err, "Failed to get build output" ); + std::cerr << output.data() << std::endl; + } else { + std::cerr << "No build log available" << std::endl; + } + } + } + enforce_cl_retcode( err, str ); + } + }; + + class opencl_device_filter { + public: + template + opencl_device_filter( cl_uint& num_devices, cl_device_id* device_list, + Filter filter, const char* message ) { + for ( cl_uint i = 0; i < num_devices; ++i ) + if ( filter(device_list[i]) ) { + device_list[i--] = device_list[--num_devices]; + } + if ( !num_devices ) + enforce_cl_retcode( CL_DEVICE_NOT_AVAILABLE, message ); + } + }; + + void init( Factory &f, const std::string& ) const { + cl_uint num_devices; + enforce_cl_retcode( clGetContextInfo( f.context(), CL_CONTEXT_NUM_DEVICES, sizeof( num_devices ), &num_devices, NULL ), + "Failed to get OpenCL context info" ); + if ( !num_devices ) + enforce_cl_retcode( CL_DEVICE_NOT_FOUND, "No supported devices found" ); + cl_device_id *device_list = (cl_device_id *)alloca( num_devices*sizeof( cl_device_id ) ); + enforce_cl_retcode( clGetContextInfo( f.context(), CL_CONTEXT_DEVICES, num_devices*sizeof( cl_device_id ), device_list, NULL ), + "Failed to get OpenCL context info" ); + const char *options = NULL; + switch ( my_type ) { + case opencl_program_type::SOURCE: { + file_reader fr( my_arg_str ); + const char *s[] = { fr.content() }; + const size_t l[] = { fr.length() }; + cl_int err; + my_cl_program = clCreateProgramWithSource( f.context(), 1, s, l, &err ); + enforce_cl_retcode( err, std::string( "Failed to create program: " ) + my_arg_str ); + opencl_device_filter( + num_devices, device_list, + []( const opencl_device& d ) -> bool { + return !d.compiler_available() || !d.linker_available(); + }, "No one device supports building program from sources" ); + opencl_program_builder( + f, my_arg_str, my_cl_program, num_devices, device_list, + options, /*callback*/ NULL, /*user data*/NULL ); + break; + } + case opencl_program_type::SPIR: + options = "-x spir"; + case opencl_program_type::PRECOMPILED: { + file_reader fr( my_arg_str ); + std::vector s( + num_devices, reinterpret_cast(fr.content()) ); + std::vector l( num_devices, fr.length() ); + std::vector bin_statuses( num_devices, -1 ); + cl_int err; + my_cl_program = clCreateProgramWithBinary( f.context(), num_devices, + device_list, l.data(), s.data(), + bin_statuses.data(), &err ); + if( err != CL_SUCCESS ) { + std::string statuses_str; + for( cl_int st : bin_statuses ) + statuses_str += std::to_string( st ); + enforce_cl_retcode( err, std::string( "Failed to create program, error " + std::to_string( err ) + " : " ) + my_arg_str + + std::string( ", binary_statuses = " ) + statuses_str ); + } + opencl_program_builder( + f, my_arg_str, my_cl_program, num_devices, device_list, + options, /*callback*/ NULL, /*user data*/NULL ); + break; + } + default: + __TBB_ASSERT( false, "Unsupported program type" ); + } + } + + opencl_program_type my_type; + std::string my_arg_str; + mutable cl_program my_cl_program; + mutable std::once_flag my_do_once_flag; + + template + friend class opencl_node; +}; + +template +struct port_ref_impl { + // "+1" since the port_ref range is a closed interval (includes its endpoints). + static const int size = N2-N1+1; + +}; + +// The purpose of the port_ref_impl is the pretty syntax: the deduction of a compile-time constant is processed from the return type. +// So it is possible to use this helper without parentheses, e.g. "port_ref<0>". +template +port_ref_impl port_ref() { + return port_ref_impl(); +}; + +template +struct num_arguments { + static const int value = 1; +}; + +template +struct num_arguments(*)()> { + static const int value = port_ref_impl::size; +}; + +template +struct num_arguments> { + static const int value = port_ref_impl::size; +}; + +template +class opencl_node; + +template +void ignore_return_values( Args&&... ) {} + +template +T or_return_values( T&& t ) { return t; } +template +T or_return_values( T&& t, Rest&&... rest ) { + return t | or_return_values( std::forward(rest)... ); +} + + +#define is_typedef(type) \ + template \ + struct is_##type { \ + template \ + static std::true_type check( typename C::type* ); \ + template \ + static std::false_type check( ... ); \ + \ + static const bool value = decltype(check(0))::value; \ + } + +is_typedef( native_object_type ); +is_typedef( memory_object_type ); + +template +typename std::enable_if::value, typename T::native_object_type>::type get_native_object( const T &t ) { + return t.native_object(); +} + +template +typename std::enable_if::value, T>::type get_native_object( T t ) { + return t; +} + +// send_if_memory_object checks if the T type has memory_object_type and call the send method for the object. +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device device, dependency_msg &dmsg ) { + const T &t = dmsg.data( false ); + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg d( mem_obj ); + if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); + mem_obj.send( device, d ); + if ( d.get_event() ) dmsg.set_event( *d.get_event() ); +} + +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device device, const T &t ) { + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg dmsg( mem_obj ); + mem_obj.send( device, dmsg ); +} + +template +typename std::enable_if::value>::type send_if_memory_object( opencl_device, const T& ) {}; + +// receive_if_memory_object checks if the T type has memory_object_type and call the receive method for the object. +template +typename std::enable_if::value>::type receive_if_memory_object( const dependency_msg &dmsg ) { + const T &t = dmsg.data( false ); + typedef typename T::memory_object_type mem_obj_t; + mem_obj_t mem_obj = t.memory_object(); + dependency_msg d( mem_obj ); + if ( dmsg.get_event() ) d.set_event( *dmsg.get_event() ); + mem_obj.receive( d ); + if ( d.get_event() ) dmsg.set_event( *d.get_event() ); +} + +template +typename std::enable_if::value>::type receive_if_memory_object( const T& ) {} + +template +struct key_from_policy { + typedef size_t type; + typedef std::false_type is_key_matching; +}; + +template +struct key_from_policy< key_matching > { + typedef Key type; + typedef std::true_type is_key_matching; +}; + +template +struct key_from_policy< key_matching > { + typedef const Key &type; + typedef std::true_type is_key_matching; +}; + +template +class opencl_device_with_key { + opencl_device my_device; + typename std::decay::type my_key; +public: + // TODO: investigate why defaul ctor is required + opencl_device_with_key() {} + opencl_device_with_key( opencl_device d, Key k ) : my_device( d ), my_key( k ) {} + Key key() const { return my_key; } + opencl_device device() const { return my_device; } +}; + +/* + /---------------------------------------- opencl_node ---------------------------------------\ + | | + | /--------------\ /----------------------\ /-----------\ /----------------------\ | + | | | | (device_with_key) O---O | | | | + | | | | | | | | | | + O---O indexer_node O---O device_selector_node O---O join_node O---O kernel_node O---O + | | | | (multifunction_node) | | | | (multifunction_node) | | + O---O | | O---O | | O---O + | \--------------/ \----------------------/ \-----------/ \----------------------/ | + | | + \--------------------------------------------------------------------------------------------/ +*/ + +template +class opencl_node< tuple, JP, Factory > : public composite_node < tuple...>, tuple...> >{ + typedef tuple...> input_tuple; + typedef input_tuple output_tuple; + typedef typename key_from_policy::type key_type; + typedef composite_node base_type; + static const size_t NUM_INPUTS = tuple_size::value; + static const size_t NUM_OUTPUTS = tuple_size::value; + + typedef typename internal::make_sequence::type input_sequence; + typedef typename internal::make_sequence::type output_sequence; + + typedef indexer_node...> indexer_node_type; + typedef typename indexer_node_type::output_type indexer_node_output_type; + typedef tuple, dependency_msg...> kernel_input_tuple; + typedef multifunction_node device_selector_node; + typedef multifunction_node kernel_multifunction_node; + + template + typename base_type::input_ports_type get_input_ports( internal::sequence ) { + return std::tie( internal::input_port( my_indexer_node )... ); + } + + template + typename base_type::output_ports_type get_output_ports( internal::sequence ) { + return std::tie( internal::output_port( my_kernel_node )... ); + } + + typename base_type::input_ports_type get_input_ports() { + return get_input_ports( input_sequence() ); + } + + typename base_type::output_ports_type get_output_ports() { + return get_output_ports( output_sequence() ); + } + + template + int make_Nth_edge() { + make_edge( internal::output_port( my_device_selector_node ), internal::input_port( my_join_node ) ); + return 0; + } + + template + void make_edges( internal::sequence ) { + make_edge( my_indexer_node, my_device_selector_node ); + make_edge( my_device_selector_node, my_join_node ); + ignore_return_values( make_Nth_edge()... ); + make_edge( my_join_node, my_kernel_node ); + } + + void make_edges() { + make_edges( input_sequence() ); + } + + class device_selector_base { + public: + virtual void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) = 0; + virtual device_selector_base *clone( opencl_node &n ) const = 0; + virtual ~device_selector_base() {} + }; + + template + class device_selector : public device_selector_base, tbb::internal::no_assign { + public: + device_selector( UserFunctor uf, opencl_node &n, Factory &f ) : my_user_functor( uf ), my_node(n), my_factory( f ) { + my_port_epoches.fill( 0 ); + } + + /* override */ void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { + send_and_put( my_port_epoches[v.tag()], v, op, input_sequence() ); + __TBB_ASSERT( (std::is_same::is_key_matching, std::false_type>::value) || my_port_epoches[v.tag()] == 0, "Epoch is changed when key matching is requested" ); + } + + /* override */ device_selector_base *clone( opencl_node &n ) const { + return new device_selector( my_user_functor, n, my_factory ); + } + private: + template + void send_and_put( size_t &epoch, const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op, internal::sequence ) { + typedef void(device_selector::*send_and_put_fn)(size_t &, const indexer_node_output_type &, typename device_selector_node::output_ports_type &); + static std::array dispatch = { { &device_selector::send_and_put_impl... } }; + (this->*dispatch[v.tag()])( epoch, v, op ); + } + + template + key_type get_key( std::false_type, const T &, size_t &epoch ) { + __TBB_STATIC_ASSERT( (std::is_same::value), "" ); + return epoch++; + } + + template + key_type get_key( std::true_type, const T &t, size_t &/*epoch*/ ) { + using tbb::flow::key_from_message; + return key_from_message( t ); + } + + template + void send_and_put_impl( size_t &epoch, const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { + typedef typename tuple_element::type::output_type elem_type; + elem_type e = internal::cast_to( v ); + opencl_device device = get_device( get_key( typename key_from_policy::is_key_matching(), e, epoch ), get<0>( op ) ); + send_if_memory_object( device, e ); + get( op ).try_put( e ); + } + + template< typename DevicePort > + opencl_device get_device( key_type key, DevicePort& dp ) { + typename std::unordered_map::type, epoch_desc>::iterator it = my_devices.find( key ); + if ( it == my_devices.end() ) { + opencl_device d = my_user_functor( my_factory.devices() ); + std::tie( it, std::ignore ) = my_devices.insert( std::make_pair( key, d ) ); + bool res = dp.try_put( opencl_device_with_key( d, key ) ); + __TBB_ASSERT_EX( res, NULL ); + my_node.notify_new_device( d ); + } + epoch_desc &e = it->second; + opencl_device d = e.my_device; + if ( ++e.my_request_number == NUM_INPUTS ) my_devices.erase( it ); + return d; + } + + struct epoch_desc { + epoch_desc( opencl_device d ) : my_device( d ), my_request_number( 0 ) {} + opencl_device my_device; + size_t my_request_number; + }; + + std::unordered_map::type, epoch_desc> my_devices; + std::array my_port_epoches; + UserFunctor my_user_functor; + opencl_node &my_node; + Factory &my_factory; + }; + + class device_selector_body { + public: + device_selector_body( device_selector_base *d ) : my_device_selector( d ) {} + + /* override */ void operator()( const indexer_node_output_type &v, typename device_selector_node::output_ports_type &op ) { + (*my_device_selector)(v, op); + } + private: + device_selector_base *my_device_selector; + }; + + // Forward declaration. + class ndranges_mapper_base; + + class opencl_kernel_base : tbb::internal::no_copy { + cl_kernel clone_kernel() const { + size_t ret_size; + + std::vector kernel_name; + for ( size_t curr_size = 32;; curr_size <<= 1 ) { + kernel_name.resize( curr_size <<= 1 ); + enforce_cl_retcode( clGetKernelInfo( my_kernel, CL_KERNEL_FUNCTION_NAME, curr_size, kernel_name.data(), &ret_size ), "Failed to get kernel info" ); + if ( ret_size < curr_size ) break; + } + + cl_program program; + enforce_cl_retcode( clGetKernelInfo( my_kernel, CL_KERNEL_PROGRAM, sizeof( program ), &program, &ret_size ), "Failed to get kernel info" ); + __TBB_ASSERT( ret_size == sizeof( program ), NULL ); + + return opencl_program( program ).get_kernel( kernel_name.data(), my_factory ); + } + + // ------------- NDRange getters ------------- // + 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 { + // "+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 { + __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 { + return ndrange_value(port_ref(), ip); + } + template + void ndrange_value( port_ref_impl(*)(), const kernel_input_tuple& ip ) const { + return ndrange_value(port_ref(), ip); + } + // ------------------------------------------- // + public: + typedef typename kernel_multifunction_node::output_ports_type output_ports_type; + + virtual void enqueue( const ndranges_mapper_base *ndranges_mapper, const kernel_input_tuple &ip, output_ports_type &op, graph &g ) = 0; + virtual void send_memory_objects( opencl_device d ) = 0; + virtual opencl_kernel_base *clone() const = 0; + virtual ~opencl_kernel_base () { + enforce_cl_retcode( clReleaseKernel( my_kernel ), "Failed to release a kernel" ); + } + + template + cl_event enqueue( GlbNDRange&& glb_range, LclNDRange&& lcl_range, int num_events, std::array events, const kernel_input_tuple& ip ) { + return my_factory.enqueue_kernel( get<0>( ip ).device(), my_kernel, ndrange_value( glb_range, ip ), ndrange_value( lcl_range, ip ), num_events, events.data() ); + } + protected: + opencl_kernel_base( const opencl_program& p, const std::string& kernel_name, Factory &f ) + : my_kernel( p.get_kernel( kernel_name, f ) ), my_factory( f ) + {} + + opencl_kernel_base( const opencl_kernel_base &k ) + : my_kernel( k.clone_kernel() ), my_factory( k.my_factory ) + {} + + const cl_kernel my_kernel; + Factory &my_factory; + }; + + // Container for ndrandes. It can contain either port references or real ndranges. + class ndranges_mapper_base { + public: + virtual cl_event enqueue_kernel( opencl_kernel_base *k, const kernel_input_tuple& ip, int num_events, const std::array &events ) const = 0; + virtual ndranges_mapper_base *clone() const = 0; + virtual ~ndranges_mapper_base() {} + }; + + template + class opencl_kernel : public opencl_kernel_base { + typedef typename opencl_kernel_base::output_ports_type output_ports_type; + // --------- Kernel argument helpers --------- // + template + void set_one_kernel_arg(const T& t) { + auto p = get_native_object( t ); + enforce_cl_retcode( clSetKernelArg( this->my_kernel, Place, sizeof( p ), &p ), "Failed to set a kernel argument" ); + } + + template + int set_one_arg_from_range( const kernel_input_tuple& ip ) { + // "+1" since get<0>(ip) is opencl_device + set_one_kernel_arg( get( ip ).data( false ) ); + return 0; + } + + template + void set_args_range(const kernel_input_tuple& ip, internal::sequence) { + ignore_return_values( set_one_arg_from_range( ip )... ); + } + + template + void set_arg_impl( const kernel_input_tuple& ip, port_ref_impl ) { + set_args_range( ip, typename internal::make_sequence::size>::type() ); + } + + template + void set_arg_impl( const kernel_input_tuple& ip, port_ref_impl(*)() ) { + set_arg_impl( ip, port_ref() ); + } + + template + void set_arg_impl( const kernel_input_tuple&, const T& t ) { + set_one_kernel_arg( t ); + } + + template + void set_args( const kernel_input_tuple& ) {} + + template + void set_args( const kernel_input_tuple& ip, const T& t, Rest&&... rest ) { + set_arg_impl( ip, t ); + set_args::value>( ip, std::forward(rest)... ); + } + // ------------------------------------------- // + + // -------- Kernel event list helpers -------- // + int add_event_to_list( std::array &events, int &num_events, const cl_event *e ) { + __TBB_ASSERT( (static_cast::size_type>(num_events) < events.size()), NULL ); + if ( e ) events[num_events++] = *e; + return 0; + } + + template + int generate_event_list( std::array &events, const kernel_input_tuple& ip, internal::sequence ) { + int num_events = 0; + ignore_return_values( add_event_to_list( events, num_events, get( ip ).get_event() )... ); + return num_events; + } + // ------------------------------------------- // + + // ---------- Update events helpers ---------- // + template + bool update_event_and_try_put( graph &g, cl_event e, const kernel_input_tuple& ip, output_ports_type &op ) { + auto t = get( ip ); + t.set_event( e ); + t.set_graph( g ); + auto &port = get( op ); + return port.try_put( t ); + } + + template + bool update_events_and_try_put( graph &g, cl_event e, const kernel_input_tuple& ip, output_ports_type &op, internal::sequence ) { + return or_return_values( update_event_and_try_put( g, e, ip, op )... ); + } + // ------------------------------------------- // + + class set_args_func : tbb::internal::no_assign { + public: + 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 + void operator()( A&&... a ) { + my_opencl_kernel.set_args<0>( my_ip, std::forward( a )... ); + } + private: + opencl_kernel &my_opencl_kernel; + const kernel_input_tuple &my_ip; + }; + + class send_func : tbb::internal::no_assign { + public: + send_func( opencl_device d ) : my_device( d ) {} + void operator()() {} + template + void operator()( T &&t, Rest&&... rest ) { + send_if_memory_object( my_device, std::forward( t ) ); + (*this)( std::forward( rest )... ); + } + private: + opencl_device my_device; + }; + + static void CL_CALLBACK decrement_wait_count_callback( cl_event, cl_int event_command_exec_status, void *data ) { + tbb::internal::suppress_unused_warning( event_command_exec_status ); + __TBB_ASSERT( event_command_exec_status == CL_COMPLETE, NULL ); + graph &g = *static_cast(data); + g.decrement_wait_count(); + } + + public: + opencl_kernel( const opencl_program& p, const std::string &kernel_name, Factory &f, Args&&... args ) + : opencl_kernel_base( p, kernel_name, f ) + , my_args_pack( std::forward( args )... ) + {} + + opencl_kernel( const opencl_kernel_base &k ) : opencl_kernel_base( k ), my_args_pack( k.my_args_pack ) {} + + opencl_kernel( const opencl_kernel_base &k, Args&&... args ) : opencl_kernel_base( k ), my_args_pack( std::forward(args)... ) {} + + /* override */ void enqueue( const ndranges_mapper_base *ndrange_mapper, const kernel_input_tuple &ip, output_ports_type &op, graph &g ) { + // Set arguments for the kernel. + tbb::internal::call( set_args_func( *this, ip ), my_args_pack ); + + // Gather events from all ports to an array. + std::array events; + int num_events = generate_event_list( events, ip, input_sequence() ); + + // Enqueue the kernel. ndrange_mapper is used only to obtain ndrange. Actually, it calls opencl_kernel_base::enqueue. + cl_event e = ndrange_mapper->enqueue_kernel( this, ip, num_events, events ); + + // Update events in dependency messages and try_put them to the output ports. + if ( !update_events_and_try_put( g, e, ip, op, input_sequence() ) ) { + // No one message was passed to successors so set a callback to extend the graph lifetime until the kernel completion. + g.increment_wait_count(); + enforce_cl_retcode( clSetEventCallback( e, CL_COMPLETE, decrement_wait_count_callback, &g ), "Failed to set a callback" ); + this->my_factory.flush( get<0>( ip ).device() ); + } + // Release our own reference to cl_event. + enforce_cl_retcode( clReleaseEvent( e ), "Failed to release an event" ); + } + + virtual void send_memory_objects( opencl_device d ) { + // Find opencl_buffer and send them to the devece. + tbb::internal::call( send_func( d ), my_args_pack ); + } + + /* override */ opencl_kernel_base *clone() const { + // Create new opencl_kernel with copying constructor. + return new opencl_kernel( *this ); + } + + private: + tbb::internal::stored_pack my_args_pack; + }; + + template + class ndranges_mapper : public ndranges_mapper_base, tbb::internal::no_assign { + public: + template + ndranges_mapper( GRange&& glb, LRange&& lcl ) : my_global_work_size( glb ), my_local_work_size( lcl ) {} + + /*override*/ cl_event enqueue_kernel( opencl_kernel_base *k, const kernel_input_tuple &ip, int num_events, const std::array &events ) const { + return k->enqueue( my_global_work_size, my_local_work_size, num_events, events, ip ); + } + + /*override*/ ndranges_mapper_base *clone() const { + return new ndranges_mapper( my_global_work_size, my_local_work_size ); + } + + private: + GlbNDRange my_global_work_size; + LclNDRange my_local_work_size; + }; + + void enqueue_kernel( const kernel_input_tuple &ip, typename opencl_kernel_base::output_ports_type &op ) const { + __TBB_ASSERT(my_ndranges_mapper, "NDRanges are not set. Call set_ndranges before running opencl_node."); + my_opencl_kernel->enqueue( my_ndranges_mapper, ip, op, this->my_graph ); + } + + // Body for kernel_multifunction_node. + class kernel_body : tbb::internal::no_assign { + public: + kernel_body( const opencl_node &node ) : my_opencl_node( node ) {} + void operator()( const kernel_input_tuple &ip, typename opencl_kernel_base::output_ports_type &op ) { + my_opencl_node.enqueue_kernel( ip, op ); + } + private: + const opencl_node &my_opencl_node; + }; + + template + opencl_kernel_base *make_opencl_kernel( const opencl_program &p, const std::string &kernel_name, Factory &f, Args&&... args ) const { + return new opencl_kernel( p, kernel_name, f, std::forward( args )... ); + } + + template > + void set_ndranges_impl( GlobalNDRange&& global_work_size, LocalNDRange&& local_work_size = std::array( { { 0, 0, 0 } } ) ) { + if ( my_ndranges_mapper ) delete my_ndranges_mapper; + my_ndranges_mapper = new ndranges_mapper::type, typename std::decay::type> + ( std::forward( global_work_size ), std::forward( local_work_size ) ); + } + + void notify_new_device( opencl_device d ) { + my_opencl_kernel->send_memory_objects( d ); + } + +public: + template + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel_name, DeviceSelector d, Factory &f ) + : base_type( g ) + , my_indexer_node( g ) + , my_device_selector( new device_selector( d, *this, f ) ) + , my_device_selector_node( g, serial, device_selector_body( my_device_selector ) ) + , my_join_node( g ) + , my_kernel_node( g, serial, kernel_body( *this ) ) + // By default, opencl_node maps all its ports to the kernel arguments on a one-to-one basis. + , my_opencl_kernel( make_opencl_kernel( p , kernel_name, f, port_ref<0, NUM_INPUTS - 1>()) ) + , my_ndranges_mapper( NULL ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + } + + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel_name, Factory &f ) + : opencl_node( g, p, kernel_name, g.get_opencl_foundation().get_default_device_selector(), f ) + {} + + + opencl_node( const opencl_node &node ) + : base_type( node.my_graph ) + , my_indexer_node( node.my_indexer_node ) + , my_device_selector( node.my_device_selector->clone( *this ) ) + , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) + , my_join_node( node.my_join_node ) + , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) + , my_opencl_kernel( node.my_opencl_kernel->clone() ) + , my_ndranges_mapper( node.my_ndranges_mapper ? node.my_ndranges_mapper->clone() : NULL ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + } + + opencl_node( opencl_node &&node ) + : base_type( node.my_graph ) + , my_indexer_node( std::move( node.my_indexer_node ) ) + , my_device_selector( node.my_device_selector->clone(*this) ) + , my_device_selector_node( node.my_graph, serial, device_selector_body( my_device_selector ) ) + , my_join_node( std::move( node.my_join_node ) ) + , my_kernel_node( node.my_graph, serial, kernel_body( *this ) ) + , my_opencl_kernel( node.my_opencl_kernel ) + , my_ndranges_mapper( node.my_ndranges_mapper ) + { + base_type::set_external_ports( get_input_ports(), get_output_ports() ); + make_edges(); + // Set moving node mappers to NULL to prevent double deallocation. + node.my_opencl_kernel = NULL; + node.my_ndranges_mapper = NULL; + } + + ~opencl_node() { + if ( my_opencl_kernel ) delete my_opencl_kernel; + if ( my_ndranges_mapper ) delete my_ndranges_mapper; + if ( my_device_selector ) delete my_device_selector; + } + + template + void set_ndranges( std::initializer_list global_work_size ) { + set_ndranges_impl( internal::initializer_list_wrapper( global_work_size ) ); + } + + template + void set_ndranges( GlobalNDRange&& global_work_size ) { + set_ndranges_impl( std::forward( global_work_size ) ); + } + + template + void set_ndranges( std::initializer_list global_work_size, LocalNDRange&& local_work_size ) { + set_ndranges_impl( internal::initializer_list_wrapper(global_work_size), std::forward( local_work_size ) ); + } + + template + void set_ndranges( std::initializer_list global_work_size, std::initializer_list local_work_size ) { + set_ndranges_impl( internal::initializer_list_wrapper(global_work_size), internal::initializer_list_wrapper(local_work_size) ); + } + + template + void set_ndranges( GlobalNDRange&& global_work_size, LocalNDRange&& local_work_size ) { + set_ndranges_impl( std::forward(global_work_size), std::forward(local_work_size) ); + } + + template + void set_ndranges( GlobalNDRange&& global_work_size, std::initializer_list local_work_size ) { + set_ndranges_impl( std::forward( global_work_size ), internal::initializer_list_wrapper( local_work_size ) ); + } + + template + void set_args( Args&&... args ) { + // Copy the base class of opencl_kernal and create new storage for "Args...". + opencl_kernel_base *new_opencl_kernel = new opencl_kernel( *my_opencl_kernel, std::forward( args )... ); + delete my_opencl_kernel; + my_opencl_kernel = new_opencl_kernel; + } + +protected: + /* override */ void reset_node( reset_flags = rf_reset_protocol ) { __TBB_ASSERT( false, "Not implemented yet" ); } + +private: + indexer_node_type my_indexer_node; + device_selector_base *my_device_selector; + device_selector_node my_device_selector_node; + join_node my_join_node; + kernel_multifunction_node my_kernel_node; + + opencl_kernel_base *my_opencl_kernel; + ndranges_mapper_base *my_ndranges_mapper; +}; + +template +class opencl_node< tuple, JP > : public opencl_node < tuple, JP, default_opencl_factory > { + typedef opencl_node < tuple, JP, default_opencl_factory > base_type; +public: + opencl_node( opencl_graph &g, const std::string &kernel ) + : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) + {} + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel ) + : base_type( g, p, kernel, + g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) + {} + template + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel, DeviceSelector d ) + : base_type( g, p , kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) + {} +}; + +template +class opencl_node< tuple > : public opencl_node < tuple, queueing, default_opencl_factory > { + typedef opencl_node < tuple, queueing, default_opencl_factory > base_type; +public: + opencl_node( opencl_graph &g, const std::string &kernel ) + : base_type( g, kernel, g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) + {} + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel ) + : base_type( g, p, kernel, + g.get_opencl_foundation().get_default_device_selector(), g.get_opencl_foundation().get_default_opencl_factory() ) + {} + template + opencl_node( opencl_graph &g, const opencl_program &p, const std::string &kernel, DeviceSelector d ) + : base_type( g, p, kernel, d, g.get_opencl_foundation().get_default_opencl_factory() ) + {} +}; + +} // namespace interface8 + +using interface8::opencl_graph; +using interface8::opencl_node; +using interface8::read_only; +using interface8::read_write; +using interface8::write_only; +using interface8::opencl_buffer; +using interface8::opencl_device; +using interface8::opencl_device_list; +using interface8::opencl_program; +using interface8::opencl_program_type; +using interface8::dependency_msg; +using interface8::port_ref; +using interface8::opencl_factory; + +} // namespace flow +} // namespace tbb +#endif /* __TBB_PREVIEW_OPENCL_NODE */ + +#endif // __TBB_flow_graph_opencl_node_H diff --git a/include/tbb/internal/_flow_graph_impl.h b/include/tbb/internal/_flow_graph_impl.h index c2f73b75df..8f72f12726 100644 --- a/include/tbb/internal/_flow_graph_impl.h +++ b/include/tbb/internal/_flow_graph_impl.h @@ -25,7 +25,7 @@ #error Do not #include this internal file directly; use public TBB headers instead. #endif -// included in namespace tbb::flow::interface8 (in flow_graph.h) +// included in namespace tbb::flow::interfaceX (in flow_graph.h) namespace internal { @@ -151,6 +151,15 @@ namespace internal { B body; }; +#if __TBB_PREVIEW_ASYNC_NODE +template< typename T, typename = typename T::async_gateway_type > +void set_async_gateway(T *body, void *g) { + body->set_async_gateway(static_cast(g)); +} + +void set_async_gateway(...) { } +#endif + //! function_body that takes an Input and a set of output ports template class multifunction_body : tbb::internal::no_assign { @@ -158,10 +167,13 @@ namespace internal { virtual ~multifunction_body () {} virtual void operator()(const Input &/* input*/, OutputSet &/*oset*/) = 0; virtual multifunction_body* clone() = 0; +#if __TBB_PREVIEW_ASYNC_NODE + virtual void set_gateway(void *gateway) = 0; +#endif }; //! leaf for multifunction. OutputSet can be a std::tuple or a vector. - template + template class multifunction_body_leaf : public multifunction_body { public: multifunction_body_leaf(const B &_body) : body(_body) { } @@ -169,9 +181,16 @@ namespace internal { 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); + } +#endif /*override*/ multifunction_body_leaf* clone() { return new multifunction_body_leaf(body); } + private: B body; }; @@ -214,7 +233,7 @@ class type_to_key_function_body_leaf : public type_to_key_funct type_to_key_function_body_leaf( const B &_body ) : body(_body) { } /*override*/const Output& operator()(const Input &i) { - return const_cast(body(i)); + return body(i); } B get_body() { return body; } @@ -227,32 +246,6 @@ class type_to_key_function_body_leaf : public type_to_key_funct B body; }; -#if __TBB_PREVIEW_ASYNC_NODE - - //! A functor that takes Input and submit it to Asynchronous Activity - template< typename Input, typename AsyncGateway > - class async_body : tbb::internal::no_assign { - public: - virtual ~async_body() {} - virtual void operator()(const Input &output, AsyncGateway& gateway) = 0; - virtual async_body* clone() = 0; - }; - - //! The leaf for async_body - template< typename Input, typename Body, typename AsyncGateway > - class async_body_leaf : public async_body< Input, AsyncGateway > { - public: - async_body_leaf( const Body &_body ) : body(_body) { } - /*override*/ void operator()(const Input &input, AsyncGateway& gateway) { body( input, gateway ); } - /*override*/ async_body_leaf* clone() { - return new async_body_leaf< Input, Body, AsyncGateway >(body); - } - Body get_body() { return body; } - private: - Body body; - }; -#endif - // --------------------------- end of function_body containers ------------------------ // --------------------------- node task bodies --------------------------------------- @@ -293,7 +286,7 @@ class type_to_key_function_body_leaf : public type_to_key_funct } }; - //! A task that calls a node's apply_body function with no input + //! A task that calls a node's apply_body_bypass function with no input template< typename NodeType > class source_task_bypass : public task { @@ -442,7 +435,7 @@ class type_to_key_function_body_leaf : public type_to_key_funct if (msg == false) { // Relinquish ownership of the edge - if ( my_owner) + if (my_owner) src->register_successor( *my_owner ); } else { // Retain ownership of the edge @@ -454,14 +447,14 @@ class type_to_key_function_body_leaf : public type_to_key_funct // If we are removing arcs (rf_clear_edges), call clear() rather than reset(). void reset() { - if(my_owner) { + if (my_owner) { for(;;) { predecessor_type *src; { - if(this->internal_empty()) break; + if (this->internal_empty()) break; src = &this->internal_pop(); } - src->register_successor( *my_owner); + src->register_successor( *my_owner ); } } } diff --git a/include/tbb/internal/_flow_graph_indexer_impl.h b/include/tbb/internal/_flow_graph_indexer_impl.h index 0ad4a993ee..a65590f07f 100644 --- a/include/tbb/internal/_flow_graph_indexer_impl.h +++ b/include/tbb/internal/_flow_graph_indexer_impl.h @@ -157,6 +157,9 @@ namespace internal { typedef OutputType output_type; typedef InputTuple input_type; + // Some versions of Intel C++ compiler fail to generate an implicit constructor for the class which has std::tuple as a member. + indexer_node_FE() : my_inputs() {} + input_type &input_ports() { return my_inputs; } protected: input_type my_inputs; diff --git a/include/tbb/internal/_flow_graph_item_buffer_impl.h b/include/tbb/internal/_flow_graph_item_buffer_impl.h index 7a96734c23..a6d8936dda 100644 --- a/include/tbb/internal/_flow_graph_item_buffer_impl.h +++ b/include/tbb/internal/_flow_graph_item_buffer_impl.h @@ -27,7 +27,7 @@ #include "tbb/internal/_flow_graph_types_impl.h" // for aligned_pair -// in namespace tbb::flow::interface8 (included in _flow_graph_node_impl.h) +// in namespace tbb::flow::interfaceX (included in _flow_graph_node_impl.h) //! Expandable buffer of items. The possible operations are push, pop, //* tests for empty and so forth. No mutual exclusion is built in. diff --git a/include/tbb/internal/_flow_graph_join_impl.h b/include/tbb/internal/_flow_graph_join_impl.h index f86d68dd5f..acb2cc61bd 100644 --- a/include/tbb/internal/_flow_graph_join_impl.h +++ b/include/tbb/internal/_flow_graph_join_impl.h @@ -1505,6 +1505,23 @@ namespace internal { unfolded_join_node(const unfolded_join_node &other) : base_type(other) {} }; +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + template + struct key_from_message_body { + K operator()(const T& t) const { + using tbb::flow::key_from_message; + return key_from_message(t); + } + }; + // Adds const to reference type + template + struct key_from_message_body { + const K& operator()(const T& t) const { + using tbb::flow::key_from_message; + return key_from_message(t); + } + }; +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ // key_matching unfolded_join_node. This must be a separate specialization because the constructors // differ. @@ -1522,6 +1539,14 @@ namespace internal { typedef typename internal::type_to_key_function_body *f1_p; typedef typename tbb::flow::tuple< f0_p, f1_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1) : base_type(g, func_initializer_type( @@ -1549,6 +1574,15 @@ namespace internal { typedef typename internal::type_to_key_function_body *f2_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2) : base_type(g, func_initializer_type( @@ -1579,6 +1613,16 @@ namespace internal { typedef typename internal::type_to_key_function_body *f3_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3) : base_type(g, func_initializer_type( @@ -1612,6 +1656,17 @@ namespace internal { typedef typename internal::type_to_key_function_body *f4_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4) : base_type(g, func_initializer_type( @@ -1649,6 +1704,18 @@ namespace internal { typedef typename internal::type_to_key_function_body *f5_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4, Body5 body5) : base_type(g, func_initializer_type( @@ -1690,6 +1757,19 @@ namespace internal { typedef typename internal::type_to_key_function_body *f6_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4, @@ -1735,6 +1815,20 @@ namespace internal { typedef typename internal::type_to_key_function_body *f7_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4, @@ -1783,6 +1877,21 @@ namespace internal { typedef typename internal::type_to_key_function_body *f8_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p, f8_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4, @@ -1834,6 +1943,22 @@ namespace internal { typedef typename internal::type_to_key_function_body *f9_p; typedef typename tbb::flow::tuple< f0_p, f1_p, f2_p, f3_p, f4_p, f5_p, f6_p, f7_p, f8_p, f9_p > func_initializer_type; public: +#if __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING + unfolded_join_node(graph &g) : base_type(g, + func_initializer_type( + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()), + new internal::type_to_key_function_body_leaf >(key_from_message_body()) + ) ) { + } +#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */ template unfolded_join_node(graph &g, Body0 body0, Body1 body1, Body2 body2, Body3 body3, Body4 body4, diff --git a/include/tbb/internal/_flow_graph_node_impl.h b/include/tbb/internal/_flow_graph_node_impl.h index f0efc907e9..6ca30193b4 100644 --- a/include/tbb/internal/_flow_graph_node_impl.h +++ b/include/tbb/internal/_flow_graph_node_impl.h @@ -330,17 +330,7 @@ namespace internal { __TBB_store_with_release(op->status, FAILED); forwarder_busy = false; } - - //! Applies the body to the provided input - // then decides if more work is available - void apply_body( input_type &i ) { - task *new_task = apply_body_bypass(i); - if(!new_task) return; - if(new_task == SUCCESSFULLY_ENQUEUED) return; - FLOW_SPAWN(*new_task); - return; - } - + //! Applies the body to the provided input // then decides if more work is available task * apply_body_bypass( input_type &i ) { @@ -354,7 +344,7 @@ namespace internal { return new_task; } - //! allocates a task to call apply_body( input ) + //! allocates a task to apply a body inline task * create_body_task( const input_type &input ) { return (my_graph.is_active()) ? @@ -363,7 +353,7 @@ namespace internal { NULL; } - //! Spawns a task that calls apply_body( input ) + //! Spawns a task that applies a body inline void spawn_body_task( const input_type &input ) { task* tp = create_body_task(input); // tp == NULL => g.reset(), which shouldn't occur in concurrent context @@ -674,7 +664,7 @@ namespace internal { friend class apply_body_task_bypass< continue_input< Output >, continue_msg >; //! Applies the body to the provided input - /* override */ task *apply_body_bypass( input_type ) { + task *apply_body_bypass( input_type ) { #if TBB_PREVIEW_FLOW_GRAPH_TRACE // There is an extra copied needed to capture the // body execution without the try_put @@ -697,73 +687,6 @@ namespace internal { }; // continue_input -#if __TBB_PREVIEW_ASYNC_NODE - - //! Implements methods for a async node that takes a type Input as input and - // submit it to Asynchronous activity - template < typename Input, typename A, typename AsyncGatewayType > - class async_input : public function_input_base > { - public: - typedef Input input_type; - typedef AsyncGatewayType async_gateway_type; - typedef async_body< input_type, async_gateway_type > async_body_type; - typedef async_input< Input, A, async_gateway_type > my_class; - typedef function_input_base base_type; - - // constructor - template - async_input( graph &g, Body& body ) : - base_type( g, unlimited ), - my_body( new internal::async_body_leaf< input_type, Body, async_gateway_type >(body) ), - my_init_body( new internal::async_body_leaf< input_type, Body, async_gateway_type >(body) ) - { - } - - //! Copy constructor - async_input( const async_input& src ) : - base_type( src ), - my_body( src.my_init_body->clone() ), - my_init_body(src.my_init_body->clone() ) { - } - - ~async_input() { - delete my_body; - delete my_init_body; - } - - template< typename Body > - Body copy_function_object() { - async_body_type &body_ref = *this->my_body; - return dynamic_cast< internal::async_body_leaf & >(body_ref).get_body(); - } - - task * apply_body_impl_bypass( const input_type &i) { - // TODO: This FGT instrumentation only captures the submission of the work - // but not the async thread activity. - // We will have to think about the best way to capture that. - tbb::internal::fgt_begin_body( my_body ); - (*my_body)( i, async_gateway() ); - tbb::internal::fgt_end_body( my_body ); - return NULL; - } - - virtual async_gateway_type& async_gateway() = 0; - - protected: - void reset_async_input(reset_flags f) { - base_type::reset_function_input_base(f); - if(f & rf_reset_bodies) { - async_body_type *tmp = my_init_body->clone(); - delete my_body; - my_body = tmp; - } - } - - async_body_type *my_body; - async_body_type *my_init_body; - }; -#endif // __TBB_PREVIEW_ASYNC_NODE - //! Implements methods for both executable and function nodes that puts Output to its successors template< typename Output > class function_output : public sender { diff --git a/include/tbb/internal/_flow_graph_tagged_buffer_impl.h b/include/tbb/internal/_flow_graph_tagged_buffer_impl.h index 7e17dc6c50..95bea24262 100644 --- a/include/tbb/internal/_flow_graph_tagged_buffer_impl.h +++ b/include/tbb/internal/_flow_graph_tagged_buffer_impl.h @@ -30,7 +30,7 @@ #error Do not #include this internal file directly; use public TBB headers instead. #endif -// included in namespace tbb::flow::interface8::internal +// included in namespace tbb::flow::interfaceX::internal // elements in the table are a simple list; we need pointer to next element to // traverse the chain diff --git a/include/tbb/internal/_flow_graph_trace_impl.h b/include/tbb/internal/_flow_graph_trace_impl.h index 17476bf532..3548596557 100644 --- a/include/tbb/internal/_flow_graph_trace_impl.h +++ b/include/tbb/internal/_flow_graph_trace_impl.h @@ -37,7 +37,7 @@ static inline void fgt_internal_create_output_port( void *node, void *p, string_ } template -void register_input_port(void *node, tbb::flow::interface8::receiver* port, string_index name_index) { +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); } @@ -58,9 +58,9 @@ struct fgt_internal_input_helper { }; template -void register_output_port(void *node, tbb::flow::interface8::sender* port, string_index name_index) { +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, port, name_index); + fgt_internal_create_output_port( node, static_cast(port), name_index); } template < typename PortsTuple, int N > @@ -80,7 +80,7 @@ struct fgt_internal_output_helper { template< typename NodeType > void fgt_multioutput_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::interface8::receiver< typename NodeType::input_type > * >(const_cast< NodeType *>(node)) ); + 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 ); } @@ -92,7 +92,7 @@ void fgt_multiinput_multioutput_node_desc( const NodeType *node, const char *des template< typename NodeType > static inline void fgt_node_desc( const NodeType *node, const char *desc ) { - void *addr = (void *)( static_cast< tbb::flow::interface8::sender< typename NodeType::output_type > * >(const_cast< NodeType *>(node)) ); + 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 ); } @@ -119,7 +119,6 @@ static inline void fgt_multioutput_node_with_body( string_index t, void *g, void 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 ); @@ -168,13 +167,29 @@ static inline void fgt_graph( void *g ) { } static inline void fgt_begin_body( void *body ) { - itt_task_begin( ITT_DOMAIN_FLOW, body, FLOW_BODY, NULL, FLOW_NULL, FLOW_NULL ); + itt_task_begin( ITT_DOMAIN_FLOW, body, FLOW_BODY, NULL, FLOW_NULL, FLOW_BODY ); } static inline void fgt_end_body( void * ) { itt_task_end( ITT_DOMAIN_FLOW ); } +static inline void fgt_async_try_put_begin( void *node, void *port ) { + itt_task_begin( ITT_DOMAIN_FLOW, port, FLOW_OUTPUT_PORT, node, FLOW_NODE, FLOW_OUTPUT_PORT ); +} + +static inline void fgt_async_try_put_end( void *, void * ) { + itt_task_end( ITT_DOMAIN_FLOW ); +} + +static inline void fgt_async_reserve( void *node, void *graph ) { + itt_region_begin( ITT_DOMAIN_FLOW, node, FLOW_NODE, graph, FLOW_GRAPH, FLOW_NULL ); +} + +static inline void fgt_async_commit( void *node, void *graph ) { + itt_region_end( ITT_DOMAIN_FLOW, node, FLOW_NODE ); +} + #else // TBB_PREVIEW_FLOW_GRAPH_TRACE static inline void fgt_graph( void * /*g*/ ) { } @@ -210,6 +225,10 @@ static inline void fgt_remove_edge( void * /*output_port*/, void * /*input_port* static inline void fgt_begin_body( void * /*body*/ ) { } static inline void fgt_end_body( void * /*body*/) { } +static inline void fgt_async_try_put_begin( void * /*node*/, void * /*port*/ ) { } +static inline void fgt_async_try_put_end( void * /*node*/ , void * /*port*/ ) { } +static inline void fgt_async_reserve( void * /*node*/, void * /*graph*/ ) { } +static inline void fgt_async_commit( void * /*node*/, void * /*graph*/ ) { } #endif // TBB_PREVIEW_FLOW_GRAPH_TRACE diff --git a/include/tbb/internal/_flow_graph_types_impl.h b/include/tbb/internal/_flow_graph_types_impl.h index 6270265448..d85af08e25 100644 --- a/include/tbb/internal/_flow_graph_types_impl.h +++ b/include/tbb/internal/_flow_graph_types_impl.h @@ -25,7 +25,7 @@ #error Do not #include this internal file directly; use public TBB headers instead. #endif -// included in namespace tbb::flow::interface8 +// included in namespace tbb::flow::interfaceX namespace internal { @@ -315,6 +315,66 @@ namespace internal { }; #endif +#if __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT + template< int... S > class sequence {}; + + template< int N, int... S > + struct make_sequence : make_sequence < N - 1, N - 1, S... > {}; + + template< int... S > + struct make_sequence < 0, S... > { + typedef sequence type; + }; +#endif /* __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT */ + +#if __TBB_INITIALIZER_LISTS_PRESENT + // Until C++14 std::initializer_list does not guarantee life time of contained objects. + template + class initializer_list_wrapper { + public: + typedef T value_type; + typedef const T& reference; + typedef const T& const_reference; + typedef size_t size_type; + + typedef T* iterator; + typedef const T* const_iterator; + + initializer_list_wrapper( std::initializer_list il ) __TBB_NOEXCEPT( true ) : my_begin( static_cast(malloc( il.size()*sizeof( T ) )) ) { + iterator dst = my_begin; + for ( typename std::initializer_list::const_iterator src = il.begin(); src != il.end(); ++src ) + new (dst++) T( *src ); + my_end = dst; + } + + initializer_list_wrapper( const initializer_list_wrapper& ilw ) __TBB_NOEXCEPT( true ) : my_begin( static_cast(malloc( ilw.size()*sizeof( T ) )) ) { + iterator dst = my_begin; + for ( typename std::initializer_list::const_iterator src = ilw.begin(); src != ilw.end(); ++src ) + new (dst++) T( *src ); + my_end = dst; + } + +#if __TBB_CPP11_RVALUE_REF_PRESENT + initializer_list_wrapper( initializer_list_wrapper&& ilw ) __TBB_NOEXCEPT( true ) : my_begin( ilw.my_begin ), my_end( ilw.my_end ) { + ilw.my_begin = ilw.my_end = NULL; + } +#endif /* __TBB_CPP11_RVALUE_REF_PRESENT */ + + ~initializer_list_wrapper() { + if ( my_begin ) + free( my_begin ); + } + + const_iterator begin() const __TBB_NOEXCEPT(true) { return my_begin; } + const_iterator end() const __TBB_NOEXCEPT(true) { return my_end; } + size_t size() const __TBB_NOEXCEPT(true) { return (size_t)(my_end - my_begin); } + + private: + iterator my_begin; + iterator my_end; + }; +#endif /* __TBB_INITIALIZER_LISTS_PRESENT */ + //! type mimicking std::pair but with trailing fill to ensure each element of an array //* will have the correct alignment template diff --git a/include/tbb/internal/_template_helpers.h b/include/tbb/internal/_template_helpers.h index dc5cba9eeb..429c8b9538 100644 --- a/include/tbb/internal/_template_helpers.h +++ b/include/tbb/internal/_template_helpers.h @@ -38,6 +38,8 @@ template struct strip { typedef T type; }; template struct strip { typedef T type; }; template struct strip { typedef T type; }; template struct strip { typedef T type; }; +//! Specialization for function pointers +template struct strip { typedef T(*type)(); }; #if __TBB_CPP11_RVALUE_REF_PRESENT template struct strip { typedef T type; }; template struct strip { typedef T type; }; diff --git a/include/tbb/machine/macos_common.h b/include/tbb/machine/macos_common.h index 05cfd74198..6689649752 100644 --- a/include/tbb/machine/macos_common.h +++ b/include/tbb/machine/macos_common.h @@ -74,7 +74,7 @@ static inline int64_t __TBB_machine_cmpswp8_OsX(volatile void *ptr, int64_t valu #if __TBB_UnknownArchitecture #ifndef __TBB_WORDSIZE -#define __TBB_WORDSIZE 4 +#define __TBB_WORDSIZE __SIZEOF_POINTER__ #endif #ifdef __TBB_ENDIANNESS diff --git a/include/tbb/parallel_do.h b/include/tbb/parallel_do.h index 1bae6b425d..6a2d8dd264 100644 --- a/include/tbb/parallel_do.h +++ b/include/tbb/parallel_do.h @@ -47,6 +47,7 @@ class parallel_do_feeder: internal::no_copy template friend class internal::parallel_do_feeder_impl; public: //! Add a work item to a running parallel_do. + // TODO: add an overload for r-value reference void add( const Item& item ) {internal_add(item);} }; @@ -94,6 +95,7 @@ namespace internal { /*override*/ task* execute() { + // TODO: use move semantics for my_value parallel_do_operator_selector::call(*my_feeder.my_body, my_value, my_feeder); return NULL; } @@ -120,9 +122,9 @@ namespace internal { return NULL; } - template friend class do_group_task_forward; - template friend class do_group_task_input; - template friend class do_task_iter; + template friend class do_group_task_forward; + template friend class do_group_task_input; + template friend class do_task_iter; }; // class do_iteration_task_iter //! For internal use only. @@ -168,18 +170,18 @@ namespace internal { //! For internal use only /** Unpacks a block of iterations. @ingroup algorithms */ - + template class do_group_task_forward: public task { - static const size_t max_arg_size = 4; + static const size_t max_arg_size = 4; typedef parallel_do_feeder_impl feeder_type; feeder_type& my_feeder; Iterator my_first; size_t my_size; - + do_group_task_forward( Iterator first, size_t size, feeder_type& feeder ) : my_feeder(feeder), my_first(first), my_size(size) {} @@ -209,15 +211,15 @@ namespace internal { template class do_group_task_input: public task { - static const size_t max_arg_size = 4; - + static const size_t max_arg_size = 4; + typedef parallel_do_feeder_impl feeder_type; feeder_type& my_feeder; size_t my_size; aligned_space my_arg; - do_group_task_input( feeder_type& feeder ) + do_group_task_input( feeder_type& feeder ) : my_feeder(feeder), my_size(0) {} @@ -246,7 +248,7 @@ namespace internal { template friend class do_task_iter; }; // class do_group_task_input - + //! For internal use only. /** Gets block of iterations and packages them into a do_group_task. @ingroup algorithms */ @@ -269,7 +271,7 @@ namespace internal { 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 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 @@ -284,13 +286,14 @@ namespace internal { /** This is the most restricted variant that operates on input iterators or iterators with unknown tags (tags not derived from the standard ones). **/ inline task* run( void* ) { return run_for_input_iterator(); } - + task* run_for_input_iterator() { 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; while( !(my_first == my_last) ) { + // TODO: move *my_first new (t.my_arg.begin() + k) Item(*my_first); ++my_first; if( ++k==block_type::max_arg_size ) { @@ -325,13 +328,13 @@ namespace internal { } return k==0 ? NULL : new( allocate_additional_child_of(*my_feeder.my_barrier) ) block_type(first, k, my_feeder); } - + inline task* run( std::random_access_iterator_tag* ) { return run_for_random_access_iterator(); } task* run_for_random_access_iterator() { typedef do_group_task_forward block_type; typedef do_iteration_task_iter iteration_type; - + size_t k = static_cast(my_last-my_first); if( k > block_type::max_arg_size ) { Iterator middle = my_first + k/2; @@ -431,15 +434,15 @@ namespace internal { cv_item_type item, parallel_do_feeder& feeder ) const - + OR B::operator()( cv_item_type& item ) const - \endcode Process item. - May be invoked concurrently for the same \c this but different \c item. - + \endcode Process item. + May be invoked concurrently for the same \c this but different \c item. + - \code item_type( const item_type& ) \endcode - Copy a work item. + Copy a work item. - \code ~item_type() \endcode Destroy a work item **/ diff --git a/include/tbb/parallel_for.h b/include/tbb/parallel_for.h index dd6eb99598..e8854ed4dc 100644 --- a/include/tbb/parallel_for.h +++ b/include/tbb/parallel_for.h @@ -29,7 +29,7 @@ namespace tbb { -namespace interface7 { +namespace interface9 { //! @cond INTERNAL namespace internal { @@ -133,7 +133,7 @@ namespace internal { //! @cond INTERNAL namespace internal { - using interface7::internal::start_for; + using interface9::internal::start_for; //! Calls the function with values from range [begin, end) with a step provided template @@ -200,6 +200,15 @@ void parallel_for( const Range& range, const Body& body, const auto_partitioner& internal::start_for::run(range,body,partitioner); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over range with static_partitioner. +/** @ingroup algorithms **/ +template +void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) { + internal::start_for::run(range,body,partitioner); +} +#endif + //! Parallel iteration over range with affinity_partitioner. /** @ingroup algorithms **/ template @@ -229,6 +238,15 @@ void parallel_for( const Range& range, const Body& body, const auto_partitioner& internal::start_for::run(range, body, partitioner, context); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over range with static_partitioner and user-supplied context. +/** @ingroup algorithms **/ +template +void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner, task_group_context& context ) { + internal::start_for::run(range, body, partitioner, context); +} +#endif + //! Parallel iteration over range with affinity_partitioner and user-supplied context. /** @ingroup algorithms **/ template @@ -270,6 +288,13 @@ template void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner) { parallel_for_impl(first, last, step, f, partitioner); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with a step provided and static partitioner +template +void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& partitioner) { + parallel_for_impl(first, last, step, f, partitioner); +} +#endif //! Parallel iteration over a range of integers with a step provided and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner) { @@ -291,6 +316,13 @@ template void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner) { parallel_for_impl(first, last, static_cast(1), f, partitioner); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with a default step value and static partitioner +template +void parallel_for(Index first, Index last, const Function& f, const static_partitioner& partitioner) { + parallel_for_impl(first, last, static_cast(1), f, partitioner); +} +#endif //! Parallel iteration over a range of integers with a default step value and affinity partitioner template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner) { @@ -327,6 +359,13 @@ void parallel_for(Index first, Index last, Index step, const Function& f, const void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, step, f, partitioner, context); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with explicit step, task group context, and static partitioner +template +void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& partitioner, tbb::task_group_context &context) { + parallel_for_impl(first, last, step, f, partitioner, context); +} +#endif //! Parallel iteration over a range of integers with explicit step, task group context, and affinity partitioner template void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { @@ -340,17 +379,24 @@ void parallel_for(Index first, Index last, const Function& f, tbb::task_group_co parallel_for_impl(first, last, static_cast(1), f, auto_partitioner(), context); } //! Parallel iteration over a range of integers with a default step value, explicit task group context, and simple partitioner - template + template void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, static_cast(1), f, partitioner, context); } //! Parallel iteration over a range of integers with a default step value, explicit task group context, and auto partitioner - template + template void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, static_cast(1), f, partitioner, context); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration over a range of integers with a default step value, explicit task group context, and static partitioner +template +void parallel_for(Index first, Index last, const Function& f, const static_partitioner& partitioner, tbb::task_group_context &context) { + parallel_for_impl(first, last, static_cast(1), f, partitioner, context); +} +#endif //! Parallel iteration over a range of integers with a default step value, explicit task group context, and affinity_partitioner - template + template void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& partitioner, tbb::task_group_context &context) { parallel_for_impl(first, last, static_cast(1), f, partitioner, context); } diff --git a/include/tbb/parallel_reduce.h b/include/tbb/parallel_reduce.h index b0e93574e9..1041a83290 100644 --- a/include/tbb/parallel_reduce.h +++ b/include/tbb/parallel_reduce.h @@ -29,7 +29,7 @@ namespace tbb { -namespace interface7 { +namespace interface9 { //! @cond INTERNAL namespace internal { @@ -281,8 +281,8 @@ namespace internal { //! @cond INTERNAL namespace internal { - using interface7::internal::start_reduce; - using interface7::internal::start_deterministic_reduce; + using interface9::internal::start_reduce; + using interface9::internal::start_deterministic_reduce; //! Auxiliary class for parallel_reduce; for internal use only. /** The adaptor class that implements \ref parallel_reduce_body_req "parallel_reduce Body" using given \ref parallel_reduce_lambda_req "anonymous function objects". @@ -374,6 +374,15 @@ void parallel_reduce( const Range& range, Body& body, const auto_partitioner& pa internal::start_reduce::run( range, body, partitioner ); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration with reduction and static_partitioner +/** @ingroup algorithms **/ +template +void parallel_reduce( const Range& range, Body& body, const static_partitioner& partitioner ) { + internal::start_reduce::run( range, body, partitioner ); +} +#endif + //! Parallel iteration with reduction and affinity_partitioner /** @ingroup algorithms **/ template @@ -396,6 +405,15 @@ void parallel_reduce( const Range& range, Body& body, const auto_partitioner& pa internal::start_reduce::run( range, body, partitioner, context ); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration with reduction, static_partitioner and user-supplied context +/** @ingroup algorithms **/ +template +void parallel_reduce( const Range& range, Body& body, const static_partitioner& partitioner, task_group_context& context ) { + internal::start_reduce::run( range, body, partitioner, context ); +} +#endif + //! Parallel iteration with reduction, affinity_partitioner and user-supplied context /** @ingroup algorithms **/ template @@ -439,6 +457,19 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody return body.result(); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration with reduction and static_partitioner +/** @ingroup algorithms **/ +template +Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, + const static_partitioner& partitioner ) { + internal::lambda_reduce_body body(identity, real_body, reduction); + internal::start_reduce,const static_partitioner> + ::run( range, body, partitioner ); + return body.result(); +} +#endif + //! Parallel iteration with reduction and affinity_partitioner /** @ingroup algorithms **/ template @@ -473,6 +504,19 @@ Value parallel_reduce( const Range& range, const Value& identity, const RealBody return body.result(); } +#if TBB_PREVIEW_STATIC_PARTITIONER +//! Parallel iteration with reduction, static_partitioner and user-supplied context +/** @ingroup algorithms **/ +template +Value parallel_reduce( const Range& range, const Value& identity, const RealBody& real_body, const Reduction& reduction, + const static_partitioner& partitioner, task_group_context& context ) { + internal::lambda_reduce_body body(identity, real_body, reduction); + internal::start_reduce,const static_partitioner> + ::run( range, body, partitioner, context ); + return body.result(); +} +#endif + //! Parallel iteration with reduction, affinity_partitioner and user-supplied context /** @ingroup algorithms **/ template diff --git a/include/tbb/partitioner.h b/include/tbb/partitioner.h index 656d7368ec..c5c249bb05 100644 --- a/include/tbb/partitioner.h +++ b/include/tbb/partitioner.h @@ -64,8 +64,12 @@ namespace tbb { class auto_partitioner; class simple_partitioner; +#if TBB_PREVIEW_STATIC_PARTITIONER +class static_partitioner; +#endif class affinity_partitioner; -namespace interface7 { + +namespace interface9 { namespace internal { class affinity_partition_type; } @@ -77,7 +81,7 @@ size_t __TBB_EXPORTED_FUNC get_initial_auto_partitioner_divisor(); //! Defines entry point for affinity partitioner into tbb run-time library. class affinity_partitioner_base_v3: no_copy { friend class tbb::affinity_partitioner; - friend class tbb::interface7::internal::affinity_partition_type; + friend class tbb::interface9::internal::affinity_partition_type; //! Array that remembers affinities of tree positions to affinity_id. /** NULL if my_size==0. */ affinity_id* my_array; @@ -109,12 +113,12 @@ template class start_scan; } //< namespace internal @endcond namespace serial { -namespace interface7 { +namespace interface9 { template class start_for; } } -namespace interface7 { +namespace interface9 { //! @cond INTERNAL namespace internal { using namespace tbb::internal; @@ -226,9 +230,13 @@ struct partition_type_base { depth_t max_depth() { return 0; } void align_depth(depth_t) { } template split_type get_split() { return split(); } - - // common function blocks Partition& self() { return *static_cast(this); } // CRTP helper + + template + void work_balance(StartType &start, Range &range) { + start.run_body( range ); // simple partitioner goes always here + } + template void execute(StartType &start, Range &range) { // The algorithm in a few words ([]-denotes calls to decision methods of partitioner): @@ -246,93 +254,66 @@ struct partition_type_base { } while ( range.is_divisible() && self().is_divisible() ); } } - if( !range.is_divisible() || !self().max_depth() ) - start.run_body( range ); // simple partitioner goes always here - else { // do range pool - internal::range_vector range_pool(range); - do { - range_pool.split_to_fill(self().max_depth()); // fill range pool - if( self().check_for_demand( start ) ) { - if( range_pool.size() > 1 ) { - start.offer_work( range_pool.front(), range_pool.front_depth() ); - range_pool.pop_front(); - continue; - } - if( range_pool.is_divisible(self().max_depth()) ) // was not enough depth to fork a task - continue; // note: next split_to_fill() should split range at least once - } - start.run_body( range_pool.back() ); - range_pool.pop_back(); - } while( !range_pool.empty() && !start.is_cancelled() ); - } + self().work_balance(start, range); } }; -//! Provides default methods for auto (adaptive) partition objects. +//! Provides default splitting strategy for partition objects. template -struct adaptive_partition_type_base : partition_type_base { +struct adaptive_mode : partition_type_base { + typedef Partition my_partition; + using partition_type_base::self; // CRTP helper to get access to derived classes size_t my_divisor; - depth_t my_max_depth; + // For affinity_partitioner, my_divisor indicates the number of affinity array indices the task reserves. + // A task which has only one index must produce the right split without reserved index in order to avoid + // it to be overwritten in note_affinity() of the created (right) task. + // I.e. a task created deeper than the affinity array can remember must not save its affinity (LIFO order) static const unsigned factor = 1; - adaptive_partition_type_base() : my_max_depth(__TBB_INIT_DEPTH) { - my_divisor = tbb::internal::get_initial_auto_partitioner_divisor() / 4 * Partition::factor; - __TBB_ASSERT(my_divisor, "initial value of get_initial_auto_partitioner_divisor() is not valid"); - } - adaptive_partition_type_base(adaptive_partition_type_base &src, split) { - my_max_depth = src.my_max_depth; -#if TBB_USE_ASSERT - size_t old_divisor = src.my_divisor; -#endif - -#if __TBB_INITIAL_TASK_IMBALANCE - if( src.my_divisor <= 1 ) my_divisor = 0; - else my_divisor = src.my_divisor = (src.my_divisor + 1u) / 2u; + adaptive_mode() : my_divisor(tbb::internal::get_initial_auto_partitioner_divisor() / 4 * my_partition::factor) {} + adaptive_mode(adaptive_mode &src, split) : my_divisor(do_split(src, split())) {} + adaptive_mode(adaptive_mode &src, const proportional_split& split_obj) : my_divisor(do_split(src, split_obj)) {} + /*! Override do_split methods in order to specify splitting strategy */ + size_t do_split(adaptive_mode &src, split) { + return src.my_divisor /= 2u; + } + size_t do_split(adaptive_mode &src, const proportional_split& split_obj) { +#if __TBB_ENABLE_RANGE_FEEDBACK + size_t portion = size_t(float(src.my_divisor) * float(split_obj.right()) + / float(split_obj.left() + split_obj.right()) + 0.5f); #else - my_divisor = src.my_divisor / 2u; - src.my_divisor = src.my_divisor - my_divisor; // TODO: check the effect separately - if (my_divisor) src.my_max_depth += static_cast(__TBB_Log2(src.my_divisor / my_divisor)); + size_t portion = split_obj.right() * my_partition::factor; #endif - // For affinity_partitioner, my_divisor indicates the number of affinity array indices the task reserves. - // A task which has only one index must produce the right split without reserved index in order to avoid - // it to be overwritten in note_affinity() of the created (right) task. - // I.e. a task created deeper than the affinity array can remember must not save its affinity (LIFO order) - __TBB_ASSERT( (old_divisor <= 1 && my_divisor == 0) || - (old_divisor > 1 && my_divisor != 0), NULL); - } - adaptive_partition_type_base(adaptive_partition_type_base &src, const proportional_split& split_obj) { - my_max_depth = src.my_max_depth; + portion = (portion + my_partition::factor/2) & (0ul - my_partition::factor); #if __TBB_ENABLE_RANGE_FEEDBACK - my_divisor = size_t(float(src.my_divisor) * float(split_obj.right()) - / float(split_obj.left() + split_obj.right())); -#else - my_divisor = split_obj.right() * Partition::factor; + /** Corner case handling */ + if (!portion) + portion = my_partition::factor; + else if (portion == src.my_divisor) + portion = src.my_divisor - my_partition::factor; #endif - src.my_divisor -= my_divisor; + src.my_divisor -= portion; + return portion; } - bool check_being_stolen( task &t) { // part of old should_execute_range() - if( !my_divisor ) { // if not from the top P tasks of binary tree - 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 - // 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: - // - initial value of my_divisor != 0 (protected by separate assertion) - // - is_stolen_task() always returns false for the root task. -#endif - flag_task::mark_task_stolen(t); - if( !my_max_depth ) my_max_depth++; - my_max_depth += __TBB_DEMAND_DEPTH_ADD; - return true; - } - } - return false; + bool is_divisible() { // part of old should_execute_range() + return my_divisor > my_partition::factor; } - void align_depth(depth_t base) { - __TBB_ASSERT(base <= my_max_depth, 0); - my_max_depth -= base; +}; + +//! Provides default linear indexing of partitioner's sequence +template +struct linear_affinity_mode : adaptive_mode { + using adaptive_mode::my_divisor; + size_t my_head; + using adaptive_mode::self; + linear_affinity_mode() : adaptive_mode(), my_head(0) {} + linear_affinity_mode(linear_affinity_mode &src, split) : adaptive_mode(src, split()) + , my_head(src.my_head + src.my_divisor) {} + linear_affinity_mode(linear_affinity_mode &src, const proportional_split& split_obj) : adaptive_mode(src, split_obj) + , my_head(src.my_head + src.my_divisor) {} + void set_affinity( task &t ) { + if( my_divisor ) + t.set_affinity( affinity_id(my_head) + 1 ); } - depth_t max_depth() { return my_max_depth; } }; //! Class determines whether template parameter has static boolean constant @@ -354,93 +335,132 @@ class is_splittable_in_proportion { static const bool value = (sizeof(decide(0)) == sizeof(yes)); }; -//! Provides default methods for affinity (adaptive) partition objects. -class affinity_partition_type : public adaptive_partition_type_base { - static const unsigned factor_power = 4; +//! Provides default methods for non-balancing partition objects. +template +struct unbalancing_partition_type : Mode { + using Mode::self; + unbalancing_partition_type() : Mode() {} + unbalancing_partition_type(unbalancing_partition_type& p, split) : Mode(p, split()) {} + unbalancing_partition_type(unbalancing_partition_type& p, const proportional_split& split_obj) : Mode(p, split_obj) {} +#if _MSC_VER && !defined(__INTEL_COMPILER) + // Suppress "conditional expression is constant" warning. + #pragma warning( push ) + #pragma warning( disable: 4127 ) +#endif + template + proportional_split get_split() { + if (is_splittable_in_proportion::value) { + size_t size = self().my_divisor / Mode::my_partition::factor; +#if __TBB_NONUNIFORM_TASK_CREATION + size_t right = (size + 2) / 3; +#else + size_t right = size / 2; +#endif + size_t left = size - right; + return proportional_split(left, right); + } else { + return proportional_split(1, 1); + } + } +#if _MSC_VER && !defined(__INTEL_COMPILER) + #pragma warning( pop ) +#endif // warning 4127 is back +}; + +/*! Determine work-balance phase implementing splitting & stealing actions */ +template +struct balancing_partition_type : unbalancing_partition_type { + using Mode::self; +#ifdef __TBB_USE_MACHINE_TIME_STAMPS + tbb::internal::machine_tsc_t my_dst_tsc; +#endif enum { - start = 0, + begin = 0, run, pass } my_delay; -#ifdef __TBB_USE_MACHINE_TIME_STAMPS - tbb::internal::machine_tsc_t my_dst_tsc; -#endif - size_t my_begin; - tbb::internal::affinity_id* my_array; -public: - static const unsigned factor = 1 << factor_power; // number of slots in affinity array per task - typedef proportional_split split_type; - - affinity_partition_type( tbb::internal::affinity_partitioner_base_v3& ap ) - : adaptive_partition_type_base(), my_delay(start) + depth_t my_max_depth; + static const unsigned range_pool_size = __TBB_RANGE_POOL_CAPACITY; + balancing_partition_type(): unbalancing_partition_type() #ifdef __TBB_USE_MACHINE_TIME_STAMPS , my_dst_tsc(0) #endif - { - __TBB_ASSERT( (factor&(factor-1))==0, "factor must be power of two" ); - ap.resize(factor); - my_array = ap.my_array; - my_begin = 0; - my_max_depth = factor_power + 1; // the first factor_power ranges will be spawned, and >=1 ranges should be left - __TBB_ASSERT( my_max_depth < __TBB_RANGE_POOL_CAPACITY, 0 ); - } - affinity_partition_type(affinity_partition_type& p, split) - : adaptive_partition_type_base(p, split()), - my_delay(pass), + , my_delay(begin) + , my_max_depth(__TBB_INIT_DEPTH) {} + balancing_partition_type(balancing_partition_type& p, split) + : unbalancing_partition_type(p, split()) #ifdef __TBB_USE_MACHINE_TIME_STAMPS - my_dst_tsc(0), + , my_dst_tsc(0) #endif - my_array(p.my_array) { - // the sum of the divisors represents original value of p.my_divisor before split - __TBB_ASSERT(my_divisor + p.my_divisor <= factor, NULL); - my_begin = p.my_begin + p.my_divisor; - } - affinity_partition_type(affinity_partition_type& p, const proportional_split& split_obj) - : adaptive_partition_type_base(p, split_obj), - my_delay(start), + , my_delay(pass) + , my_max_depth(p.my_max_depth) {} + balancing_partition_type(balancing_partition_type& p, const proportional_split& split_obj) + : unbalancing_partition_type(p, split_obj) #ifdef __TBB_USE_MACHINE_TIME_STAMPS - my_dst_tsc(0), + , my_dst_tsc(0) #endif - my_array(p.my_array) { - size_t total_divisor = my_divisor + p.my_divisor; - __TBB_ASSERT(total_divisor % factor == 0, NULL); - my_divisor = (my_divisor + factor/2) & (0u - factor); -#if __TBB_ENABLE_RANGE_FEEDBACK - if (!my_divisor) - my_divisor = factor; - else if (my_divisor == total_divisor) - my_divisor = total_divisor - factor; + , my_delay(begin) + , my_max_depth(p.my_max_depth) {} + bool check_being_stolen( task &t) { // part of old should_execute_range() + 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 + // 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: + // - initial value of my_divisor != 0 (protected by separate assertion) + // - is_stolen_task() always returns false for the root task. #endif - p.my_divisor = total_divisor - my_divisor; - __TBB_ASSERT(my_divisor && p.my_divisor, NULL); - my_begin = p.my_begin + p.my_divisor; - } - void set_affinity( task &t ) { - if( my_divisor ) { - if( !my_array[my_begin] ) - // TODO: consider code reuse for static_paritioner - t.set_affinity( affinity_id(my_begin / factor + 1) ); - else - t.set_affinity( my_array[my_begin] ); + flag_task::mark_task_stolen(t); + if( !my_max_depth ) my_max_depth++; + my_max_depth += __TBB_DEMAND_DEPTH_ADD; + return true; + } } + return false; } - void note_affinity( task::affinity_id id ) { - if( my_divisor ) - my_array[my_begin] = id; + depth_t max_depth() { return my_max_depth; } + void align_depth(depth_t base) { + __TBB_ASSERT(base <= my_max_depth, 0); + my_max_depth -= base; + } + template + void work_balance(StartType &start, Range &range) { + if( !range.is_divisible() || !self().max_depth() ) { + start.run_body( range ); // simple partitioner goes always here + } + else { // do range pool + internal::range_vector range_pool(range); + do { + range_pool.split_to_fill(self().max_depth()); // fill range pool + if( self().check_for_demand( start ) ) { + if( range_pool.size() > 1 ) { + start.offer_work( range_pool.front(), range_pool.front_depth() ); + range_pool.pop_front(); + continue; + } + if( range_pool.is_divisible(self().max_depth()) ) // was not enough depth to fork a task + continue; // note: next split_to_fill() should split range at least once + } + start.run_body( range_pool.back() ); + range_pool.pop_back(); + } while( !range_pool.empty() && !start.is_cancelled() ); + } } bool check_for_demand( task &t ) { if( pass == my_delay ) { - if( my_divisor > 1 ) // produce affinitized tasks while they have slot in array + if( self().my_divisor > 1 ) // produce affinitized tasks while they have slot in array return true; // do not do my_max_depth++ here, but be sure range_pool is splittable once more - else if( my_divisor && my_max_depth ) { // make balancing task - my_divisor = 0; // once for each task; depth will be decreased in align_depth() + else if( self().my_divisor && my_max_depth ) { // make balancing task + self().my_divisor = 0; // once for each task; depth will be decreased in align_depth() return true; } else if( flag_task::is_peer_stolen(t) ) { my_max_depth += __TBB_DEMAND_DEPTH_ADD; return true; } - } else if( start == my_delay ) { + } else if( begin == my_delay ) { #ifndef __TBB_USE_MACHINE_TIME_STAMPS my_delay = pass; #else @@ -449,6 +469,7 @@ class affinity_partition_type : public adaptive_partition_type_base 0, NULL); + my_max_depth--; // increase granularity since tasks seem having too small work return false; } my_delay = pass; @@ -457,45 +478,16 @@ class affinity_partition_type : public adaptive_partition_type_base factor; - } - -#if _MSC_VER && !defined(__INTEL_COMPILER) - // Suppress "conditional expression is constant" warning. - #pragma warning( push ) - #pragma warning( disable: 4127 ) -#endif - template - split_type get_split() { - if (is_splittable_in_proportion::value) { - size_t size = my_divisor / factor; -#if __TBB_NONUNIFORM_TASK_CREATION - size_t right = (size + 2) / 3; -#else - size_t right = size / 2; -#endif - size_t left = size - right; - return split_type(left, right); - } else { - return split_type(1, 1); - } - } -#if _MSC_VER && !defined(__INTEL_COMPILER) - #pragma warning( pop ) -#endif // warning 4127 is back - - static const unsigned range_pool_size = __TBB_RANGE_POOL_CAPACITY; }; -class auto_partition_type: public adaptive_partition_type_base { +class auto_partition_type: public balancing_partition_type > { public: - auto_partition_type( const auto_partitioner& ) { + auto_partition_type( const auto_partitioner& ) + : balancing_partition_type >() { my_divisor *= __TBB_INITIAL_CHUNKS; } auto_partition_type( auto_partition_type& src, split) - : adaptive_partition_type_base(src, split()) {} - + : balancing_partition_type >(src, split()) {} bool is_divisible() { // part of old should_execute_range() if( my_divisor > 1 ) return true; if( my_divisor && my_max_depth ) { // can split the task. TODO: on-stack flag instead @@ -511,8 +503,6 @@ class auto_partition_type: public adaptive_partition_type_base { @@ -527,7 +517,58 @@ class simple_partition_type: public partition_type_base { start.offer_work( split_obj ); start.run_body( range ); } - //static const unsigned range_pool_size = 1; - not necessary because execute() is overridden +}; + +#if TBB_PREVIEW_STATIC_PARTITIONER +#ifndef __TBB_STATIC_PARTITIONER_BASE_TYPE +#define __TBB_STATIC_PARTITIONER_BASE_TYPE unbalancing_partition_type +#endif +class static_partition_type : public __TBB_STATIC_PARTITIONER_BASE_TYPE > { +public: + typedef proportional_split split_type; + static_partition_type( const static_partitioner& ) + : __TBB_STATIC_PARTITIONER_BASE_TYPE >() {} + static_partition_type( static_partition_type& p, split ) + : __TBB_STATIC_PARTITIONER_BASE_TYPE >(p, split()) {} + static_partition_type( static_partition_type& p, const proportional_split& split_obj ) + : __TBB_STATIC_PARTITIONER_BASE_TYPE >(p, split_obj) {} +}; +#undef __TBB_STATIC_PARTITIONER_BASE_TYPE +#endif + +class affinity_partition_type : public balancing_partition_type > { + static const unsigned factor_power = 4; // TODO: get a unified formula based on number of computing units + tbb::internal::affinity_id* my_array; +public: + static const unsigned factor = 1 << factor_power; // number of slots in affinity array per task + typedef proportional_split split_type; + affinity_partition_type( tbb::internal::affinity_partitioner_base_v3& ap ) + : balancing_partition_type >() { + __TBB_ASSERT( (factor&(factor-1))==0, "factor must be power of two" ); + ap.resize(factor); + my_array = ap.my_array; + my_max_depth = factor_power + 1; + __TBB_ASSERT( my_max_depth < __TBB_RANGE_POOL_CAPACITY, 0 ); + } + affinity_partition_type(affinity_partition_type& p, split) + : balancing_partition_type >(p, split()) + , my_array(p.my_array) {} + affinity_partition_type(affinity_partition_type& p, const proportional_split& split_obj) + : balancing_partition_type >(p, split_obj) + , my_array(p.my_array) {} + void set_affinity( task &t ) { + if( my_divisor ) { + if( !my_array[my_head] ) + // TODO: consider new ideas with my_array for both affinity and static partitioner's, then code reuse + t.set_affinity( affinity_id(my_head / factor + 1) ); + else + t.set_affinity( my_array[my_head] ); + } + } + void note_affinity( task::affinity_id id ) { + if( my_divisor ) + my_array[my_head] = id; + } }; //! Backward-compatible partition for auto and affinity partition objects. @@ -560,9 +601,9 @@ class simple_partitioner { public: simple_partitioner() {} private: - template friend class serial::interface7::start_for; - template friend class interface7::internal::start_for; - template friend class interface7::internal::start_reduce; + template friend class serial::interface9::start_for; + template friend class interface9::internal::start_for; + template friend class interface9::internal::start_reduce; template friend class internal::start_scan; // backward compatibility class partition_type: public internal::partition_type_base { @@ -572,10 +613,10 @@ class simple_partitioner { partition_type( const partition_type&, split ) {} }; // new implementation just extends existing interface - typedef interface7::internal::simple_partition_type task_partition_type; + typedef interface9::internal::simple_partition_type task_partition_type; // TODO: consider to make split_type public - typedef interface7::internal::simple_partition_type::split_type split_type; + typedef interface9::internal::simple_partition_type::split_type split_type; }; //! An auto partitioner @@ -587,36 +628,56 @@ class auto_partitioner { auto_partitioner() {} private: - template friend class serial::interface7::start_for; - template friend class interface7::internal::start_for; - template friend class interface7::internal::start_reduce; + template friend class serial::interface9::start_for; + template friend class interface9::internal::start_for; + template friend class interface9::internal::start_reduce; template friend class internal::start_scan; // backward compatibility - typedef interface7::internal::old_auto_partition_type partition_type; + typedef interface9::internal::old_auto_partition_type partition_type; // new implementation just extends existing interface - typedef interface7::internal::auto_partition_type task_partition_type; + typedef interface9::internal::auto_partition_type task_partition_type; // TODO: consider to make split_type public - typedef interface7::internal::auto_partition_type::split_type split_type; + typedef interface9::internal::auto_partition_type::split_type split_type; }; +#if TBB_PREVIEW_STATIC_PARTITIONER +//! A static partitioner +class static_partitioner { +public: + static_partitioner() {} +private: + template friend class serial::interface9::start_for; + template friend class interface9::internal::start_for; + template friend class interface9::internal::start_reduce; + template friend class internal::start_scan; + // backward compatibility + typedef interface9::internal::old_auto_partition_type partition_type; + // new implementation just extends existing interface + typedef interface9::internal::static_partition_type task_partition_type; + + // TODO: consider to make split_type public + typedef interface9::internal::static_partition_type::split_type split_type; +}; +#endif + //! An affinity partitioner class affinity_partitioner: internal::affinity_partitioner_base_v3 { public: affinity_partitioner() {} private: - template friend class serial::interface7::start_for; - template friend class interface7::internal::start_for; - template friend class interface7::internal::start_reduce; + template friend class serial::interface9::start_for; + template friend class interface9::internal::start_for; + template friend class interface9::internal::start_reduce; template friend class internal::start_scan; // backward compatibility - for parallel_scan only - typedef interface7::internal::old_auto_partition_type partition_type; + typedef interface9::internal::old_auto_partition_type partition_type; // new implementation just extends existing interface - typedef interface7::internal::affinity_partition_type task_partition_type; + typedef interface9::internal::affinity_partition_type task_partition_type; // TODO: consider to make split_type public - typedef interface7::internal::affinity_partition_type::split_type split_type; + typedef interface9::internal::affinity_partition_type::split_type split_type; }; } // namespace tbb diff --git a/include/tbb/task.h b/include/tbb/task.h index 2c1029183c..2da0559db4 100644 --- a/include/tbb/task.h +++ b/include/tbb/task.h @@ -443,9 +443,9 @@ class task_group_context : internal::no_copy { introduced in the currently unused padding areas and these fields are updated by inline methods. **/ task_group_context ( kind_type relation_with_parent = bound, - uintptr_t traits = default_traits ) + uintptr_t t = default_traits ) : my_kind(relation_with_parent) - , my_version_and_traits(2 | traits) + , my_version_and_traits(2 | t) { init(); } @@ -505,6 +505,9 @@ class task_group_context : internal::no_copy { priority_t priority () const; #endif /* __TBB_TASK_PRIORITY */ + //! Returns the context's trait + uintptr_t traits() const { return my_version_and_traits & traits_mask; } + protected: //! Out-of-line part of the constructor. /** Singled out to ensure backward binary compatibility of the future versions. **/ diff --git a/include/tbb/task_arena.h b/include/tbb/task_arena.h index 2f26d94ecb..d811c9b4f3 100644 --- a/include/tbb/task_arena.h +++ b/include/tbb/task_arena.h @@ -37,6 +37,9 @@ 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 @@ -98,8 +101,9 @@ class task_arena_base { , my_version_and_traits(default_flags) {} - void __TBB_EXPORTED_METHOD internal_initialize( ); - void __TBB_EXPORTED_METHOD internal_terminate( ); + void __TBB_EXPORTED_METHOD internal_initialize(); + void __TBB_EXPORTED_METHOD internal_terminate(); + void __TBB_EXPORTED_METHOD internal_attach(); void __TBB_EXPORTED_METHOD internal_enqueue( task&, intptr_t ) const; void __TBB_EXPORTED_METHOD internal_execute( delegate_base& ) const; void __TBB_EXPORTED_METHOD internal_wait() const; @@ -140,6 +144,15 @@ class task_arena : public internal::task_arena_base { , my_initialized(false) {} + //! Creates an instance of task_arena attached to the current arena of the thread + task_arena( tbb::internal::attach ) + : task_arena_base(automatic, 1) // use default settings if attach fails + , my_initialized(false) + { + internal_attach(); + if( my_arena ) my_initialized = true; + } + //! Forces allocation of the resources for the task_arena as specified in constructor arguments inline void initialize() { if( !my_initialized ) { diff --git a/include/tbb/task_group.h b/include/tbb/task_group.h index b3fd2fa1ec..21a298a418 100644 --- a/include/tbb/task_group.h +++ b/include/tbb/task_group.h @@ -143,6 +143,7 @@ class task_group_base : internal::no_copy { __TBB_RETHROW(); } if ( my_context.is_group_execution_cancelled() ) { + // TODO: the reset method is not thread-safe. Ensure the correct behavior. my_context.reset(); return canceled; } diff --git a/include/tbb/tbb_config.h b/include/tbb/tbb_config.h index 8c2226fe98..58937e6111 100644 --- a/include/tbb/tbb_config.h +++ b/include/tbb/tbb_config.h @@ -231,9 +231,9 @@ // C++11 standard library features #define __TBB_CPP11_VARIADIC_TUPLE_PRESENT (!_MSC_VER || _MSC_VER >=1800) -#define __TBB_CPP11_TYPE_PROPERTIES_PRESENT (_LIBCPP_VERSION || _MSC_VER >= 1700) +#define __TBB_CPP11_TYPE_PROPERTIES_PRESENT (_LIBCPP_VERSION || _MSC_VER >= 1700 || (__TBB_GCC_VERSION >= 50000 && __GXX_EXPERIMENTAL_CXX0X__)) #define __TBB_TR1_TYPE_PROPERTIES_IN_STD_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300 || _MSC_VER >= 1600) -// GCC has a partial support of type properties +// GCC supported some of type properties since 4.7 #define __TBB_CPP11_IS_COPY_CONSTRUCTIBLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40700 || __TBB_CPP11_TYPE_PROPERTIES_PRESENT) // In GCC and MSVC, implementation of std::move_if_noexcept is not aligned with noexcept @@ -417,6 +417,10 @@ #endif /* __TBB_SLEEP_PERMISSION */ #if TBB_PREVIEW_FLOW_GRAPH_TRACE +// Users of flow-graph trace need to explicitly link against the preview library. This +// prevents the linker from implicitly linking an application with a preview version of +// TBB and unexpectedly bringing in other community preview features, which might change +// the behavior of the application. #define __TBB_NO_IMPLICIT_LINKAGE 1 #endif /* TBB_PREVIEW_FLOW_GRAPH_TRACE */ @@ -667,6 +671,7 @@ #define __TBB_FLOW_GRAPH_CPP11_FEATURES (__TBB_CPP11_VARIADIC_TEMPLATES_PRESENT \ && __TBB_CPP11_RVALUE_REF_PRESENT && __TBB_CPP11_AUTO_PRESENT) \ && __TBB_CPP11_VARIADIC_TUPLE_PRESENT && !__TBB_UPCAST_OF_TUPLE_OF_REF_BROKEN -#define __TBB_PREVIEW_ASYNC_NODE TBB_PREVIEW_FLOW_GRAPH_NODES -#define __TBB_PREVIEW_OPENCL_NODE __TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES +#define __TBB_PREVIEW_ASYNC_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES) +#define __TBB_PREVIEW_OPENCL_NODE (__TBB_FLOW_GRAPH_CPP11_FEATURES && TBB_PREVIEW_FLOW_GRAPH_NODES && !TBB_IMPLEMENT_CPP0X) +#define __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING (TBB_PREVIEW_FLOW_GRAPH_FEATURES || __TBB_PREVIEW_OPENCL_NODE) #endif /* __TBB_tbb_config_H */ diff --git a/include/tbb/tbb_profiling.h b/include/tbb/tbb_profiling.h index 63355ec5c6..9e604172f6 100644 --- a/include/tbb/tbb_profiling.h +++ b/include/tbb/tbb_profiling.h @@ -150,6 +150,10 @@ namespace tbb { 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 *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 // two template arguments are to workaround /Wp64 warning with tbb::atomic specialized for unsigned type @@ -263,6 +267,15 @@ namespace tbb { inline void itt_task_end( itt_domain_enum domain ) { itt_task_end_v7( domain ); } + + 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 ); + } + + inline void itt_region_end( itt_domain_enum domain, void *region, unsigned long long region_extra ) { + itt_region_end_v9( domain, region, region_extra ); + } #endif // __TBB_ITT_STRUCTURE_API } // namespace internal diff --git a/include/tbb/tbb_stddef.h b/include/tbb/tbb_stddef.h index fb66716801..579e08266b 100644 --- a/include/tbb/tbb_stddef.h +++ b/include/tbb/tbb_stddef.h @@ -26,7 +26,7 @@ #define TBB_VERSION_MINOR 4 // Engineering-focused interface version -#define TBB_INTERFACE_VERSION 9001 +#define TBB_INTERFACE_VERSION 9002 #define TBB_INTERFACE_VERSION_MAJOR TBB_INTERFACE_VERSION/1000 // The oldest major interface version still supported diff --git a/src/rml/server/rml_server.cpp b/src/rml/server/rml_server.cpp index 77f8dc0510..b7eaf55309 100644 --- a/src/rml/server/rml_server.cpp +++ b/src/rml/server/rml_server.cpp @@ -1526,7 +1526,7 @@ void tbb_connection_v2::adjust_job_count_estimate( int delta ) { // No unrealized threads left. break; // Eagerly start the thread off. - fpa.protect_affinity_mask(); + fpa.protect_affinity_mask( /*restore_process_mask=*/true ); my_thread_map.bind_one_thread( *this, *k ); server_thread& t = k->thread(); __TBB_ASSERT( !t.link, NULL ); diff --git a/src/tbb/arena.cpp b/src/tbb/arena.cpp index 29a7e81df3..170786134d 100644 --- a/src/tbb/arena.cpp +++ b/src/tbb/arena.cpp @@ -180,7 +180,7 @@ void arena::process( generic_scheduler& s ) { // In contrast to earlier versions of TBB (before 3.0 U5) now it is possible // that arena may be temporarily left unpopulated by threads. See comments in // arena::on_thread_leaving() for more details. - on_thread_leaving(); + on_thread_leaving(); } arena::arena ( market& m, unsigned num_slots, unsigned num_reserved_slots ) { @@ -193,10 +193,10 @@ arena::arena ( market& m, unsigned num_slots, unsigned num_reserved_slots ) { my_market = &m; my_limit = 1; // Two slots are mandatory: for the master, and for 1 worker (required to support starvation resistant tasks). - my_num_slots = num_slots_to_reserve(num_slots); + my_num_slots = num_arena_slots(num_slots); my_num_reserved_slots = num_reserved_slots; my_max_num_workers = num_slots-num_reserved_slots; - my_references = 1; // accounts for the master + my_references = ref_external; // accounts for the master #if __TBB_TASK_PRIORITY my_bottom_priority = my_top_priority = normalized_normal_priority; #endif /* __TBB_TASK_PRIORITY */ @@ -234,7 +234,7 @@ arena& arena::allocate_arena( market& m, unsigned num_slots, unsigned num_reserv unsigned char* storage = (unsigned char*)NFS_Allocate( 1, n, NULL ); // Zero all slots to indicate that they are empty memset( storage, 0, n ); - return *new( storage + num_slots_to_reserve(num_slots) * sizeof(mail_outbox) ) arena(m, num_slots, num_reserved_slots); + return *new( storage + num_arena_slots(num_slots) * sizeof(mail_outbox) ) arena(m, num_slots, num_reserved_slots); } void arena::free_arena () { @@ -265,7 +265,7 @@ void arena::free_arena () { #if __TBB_COUNT_TASK_NODES my_market->update_task_node_count( -drained ); #endif /* __TBB_COUNT_TASK_NODES */ - my_market->release(); + my_market->release(); // remove an internal reference #if __TBB_TASK_GROUP_CONTEXT __TBB_ASSERT( my_default_ctx, "Master thread never entered the arena?" ); my_default_ctx->~task_group_context(); @@ -663,8 +663,8 @@ void task_arena_base::internal_initialize( ) { arena* new_arena = market::create_arena( my_max_concurrency, my_master_slots, global_control::active_value(global_control::thread_stack_size), default_concurrency_requested ); - // increases market's ref count for task_arena - market &m = market::global_market(); + // 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 #if __TBB_TASK_GROUP_CONTEXT new_arena->my_default_ctx = new ( NFS_Allocate(1, sizeof(task_group_context), NULL) ) @@ -673,11 +673,11 @@ void task_arena_base::internal_initialize( ) { new_arena->my_default_ctx->capture_fp_settings(); #endif #endif /* __TBB_TASK_GROUP_CONTEXT */ - - if(as_atomic(my_arena).compare_and_swap(new_arena, NULL) != NULL) { // there is a race possible on my_initialized - __TBB_ASSERT(my_arena, NULL); // other thread was the first - m.release(/*is_public*/true); - new_arena->on_thread_leaving(); // deallocate new arena + // threads might race to initialize the arena + if(as_atomic(my_arena).compare_and_swap(new_arena, NULL) != NULL) { + __TBB_ASSERT(my_arena, NULL); // another thread won the race + m.release(/*is_public*/true); // release public market reference + new_arena->on_thread_leaving(); // destroy unneeded arena #if __TBB_TASK_GROUP_CONTEXT spin_wait_while_eq(my_context, (task_group_context*)NULL); } else { @@ -691,11 +691,8 @@ void task_arena_base::internal_initialize( ) { void task_arena_base::internal_terminate( ) { if( my_arena ) {// task_arena was initialized -#if __TBB_STATISTICS_EARLY_DUMP - GATHER_STATISTIC( my_arena->dump_arena_statistics() ); -#endif - my_arena->my_market->release( /*is_public*/true ); // remove market's public reference for task_arena - my_arena->on_thread_leaving(); + my_arena->my_market->release( /*is_public*/true ); + my_arena->on_thread_leaving(); my_arena = 0; #if __TBB_TASK_GROUP_CONTEXT my_context = 0; @@ -703,6 +700,27 @@ void task_arena_base::internal_terminate( ) { } } +void task_arena_base::internal_attach( ) { + __TBB_ASSERT(!my_arena, NULL); + generic_scheduler* s = governor::local_scheduler_if_initialized(); + if( s && s->my_arena ) { + // There is an active arena to attach to. + // It's still used by s, so won't be destroyed right away. + my_arena = s->my_arena; + __TBB_ASSERT( my_arena->my_references > 0, NULL ); + my_arena->my_references += arena::ref_external; +#if __TBB_TASK_GROUP_CONTEXT + my_context = my_arena->my_default_ctx; + my_version_and_traits |= my_context->my_version_and_traits & exact_exception_flag; +#endif + my_master_slots = my_arena->my_num_reserved_slots; + my_max_concurrency = my_master_slots + my_arena->my_max_num_workers; + __TBB_ASSERT(arena::num_arena_slots(my_max_concurrency)==my_arena->my_num_slots, NULL); + // increases market's ref count for task_arena + market::global_market( /*is_public=*/true ); + } +} + void task_arena_base::internal_enqueue( task& t, intptr_t prio ) const { __TBB_ASSERT(my_arena, NULL); generic_scheduler* s = governor::local_scheduler_if_initialized(); diff --git a/src/tbb/arena.h b/src/tbb/arena.h index 4189588898..8ffa0156bd 100644 --- a/src/tbb/arena.h +++ b/src/tbb/arena.h @@ -52,9 +52,10 @@ struct arena_base : padded { //! Number of workers that have been marked out by the resource manager to service the arena unsigned my_num_workers_allotted; // heavy use in stealing loop - //! References of the arena - /** Counts workers and master references separately. Bit 0 indicates reference from implicit - master or explicit task_arena; the next bits contain number of workers servicing the arena.*/ + //! Reference counter for the arena. + /** Worker and master references are counted separately: first several bits are for references + from master threads or explicit task_arenas (see arena::ref_external_bits below); + the rest counts the number of workers servicing the arena. */ atomic my_references; // heavy use in stealing loop #if __TBB_TASK_PRIORITY @@ -167,12 +168,12 @@ class arena: public padded //! Allocate an instance of arena. static arena& allocate_arena( market&, unsigned num_slots, unsigned num_reserved_slots ); - static int unsigned num_slots_to_reserve ( unsigned num_slots ) { + static int unsigned num_arena_slots ( unsigned num_slots ) { return max(2u, num_slots); } static int allocation_size ( unsigned max_num_workers ) { - return sizeof(base_type) + num_slots_to_reserve(max_num_workers) * (sizeof(mail_outbox) + sizeof(arena_slot)); + return sizeof(base_type) + num_arena_slots(max_num_workers) * (sizeof(mail_outbox) + sizeof(arena_slot)); } //! Get reference to mailbox corresponding to given affinity_id. @@ -194,12 +195,19 @@ class arena: public padded //! At least one task has been offered for stealing since the last snapshot started static const pool_state_t SNAPSHOT_FULL = pool_state_t(-1); + //! The number of least significant bits for external references + static const unsigned ref_external_bits = 12; // up to 4095 external and 1M workers + + //! Reference increment values for externals and workers + static const unsigned ref_external = 1; + static const unsigned ref_worker = 1<> 1; + return my_references >> ref_external_bits; } //! If necessary, raise a flag that there is new job in arena. @@ -216,7 +224,7 @@ class arena: public padded void process( generic_scheduler& ); //! Notification that worker or master leaves its arena - template + template inline void on_thread_leaving ( ); #if __TBB_STATISTICS @@ -249,7 +257,7 @@ class arena: public padded arena_slot my_slots[1]; }; // class arena -template +template inline void arena::on_thread_leaving ( ) { // // Implementation of arena destruction synchronization logic contained various @@ -264,6 +272,11 @@ inline void arena::on_thread_leaving ( ) { // to RML for threads, the arena object is destroyed only when both the last // thread is leaving it and arena's state is EMPTY (that is its master thread // left and it does not contain any work). + // Thus resetting arena to EMPTY state (as earlier TBB versions did) should not + // be done here (or anywhere else in the master thread to that matter); doing so + // can result either in arena's premature destruction (at least without + // additional costly checks in workers) or in unnecessary arena state changes + // (and ensuing workers migration). // // A worker that checks for work presence and transitions arena to the EMPTY // state (in snapshot taking procedure arena::is_out_of_work()) updates @@ -302,8 +315,14 @@ inline void arena::on_thread_leaving ( ) { // uintptr_t aba_epoch = my_aba_epoch; market* m = my_market; - __TBB_ASSERT(my_references > int(!is_master), "broken arena reference counter"); - if ( (my_references -= is_master? 1:2 ) == 0 ) // worker's counter starts from bit 1 + __TBB_ASSERT(my_references >= ref_param, "broken arena reference counter"); +#if __TBB_STATISTICS_EARLY_DUMP + // While still holding a reference to the arena, compute how many external references are left. + // 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 ( (my_references -= ref_param ) == 0 ) m->try_destroy_arena( this, aba_epoch ); } diff --git a/src/tbb/dynamic_link.cpp b/src/tbb/dynamic_link.cpp index 555802e002..b979e9c2ff 100644 --- a/src/tbb/dynamic_link.cpp +++ b/src/tbb/dynamic_link.cpp @@ -51,6 +51,7 @@ //TODO: use function attribute for weak symbols instead of the pragma. #pragma weak dlopen #pragma weak dlsym + #pragma weak dlclose #endif /* __TBB_WEAK_SYMBOLS_PRESENT && !__TBB_DYNAMIC_LOAD_ENABLED */ #include "tbb/tbb_misc.h" @@ -115,6 +116,7 @@ OPEN_INTERNAL_NAMESPACE (void) code; } // library_warning #endif /* !defined(DYNAMIC_LINK_WARNING) && !__TBB_WIN8UI_SUPPORT && __TBB_DYNAMIC_LOAD_ENABLED */ + static bool resolve_symbols( dynamic_link_handle module, const dynamic_link_descriptor descriptors[], size_t required ) { if ( !module ) @@ -158,12 +160,10 @@ OPEN_INTERNAL_NAMESPACE return false; } } - void dynamic_unlink( dynamic_link_handle ) { - } - void dynamic_unlink_all() { - } + void dynamic_unlink( dynamic_link_handle ) {} + void dynamic_unlink_all() {} #else - #if __TBB_DYNAMIC_LOAD_ENABLED +#if __TBB_DYNAMIC_LOAD_ENABLED /* There is a security issue on Windows: LoadLibrary() may load and execute malicious code. See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details. @@ -195,7 +195,7 @@ OPEN_INTERNAL_NAMESPACE static void atomic_once( void( *func ) (void), tbb::atomic< tbb::internal::do_once_state > &once_state ) { tbb::internal::atomic_do_once( func, once_state ); } -#define ATOMIC_ONCE_DECL( var ) tbb::atomic< tbb::internal::do_once_state > var + #define ATOMIC_ONCE_DECL( var ) tbb::atomic< tbb::internal::do_once_state > var #else static void pthread_assert( int error_code, const char* msg ) { LIBRARY_ASSERT( error_code == 0, msg ); @@ -233,7 +233,7 @@ OPEN_INTERNAL_NAMESPACE static void atomic_once( void( *func ) (), pthread_once_t &once_state ) { pthread_assert( pthread_once( &once_state, func ), "pthread_once failed" ); } -#define ATOMIC_ONCE_DECL( var ) pthread_once_t var = PTHREAD_ONCE_INIT + #define ATOMIC_ONCE_DECL( var ) pthread_once_t var = PTHREAD_ONCE_INIT #endif /* __USE_TBB_ATOMICS */ struct handles_t { @@ -378,7 +378,7 @@ OPEN_INTERNAL_NAMESPACE } return full_len; } - #endif // __TBB_DYNAMIC_LOAD_ENABLED +#endif // __TBB_DYNAMIC_LOAD_ENABLED void init_dynamic_link_data() { #if __TBB_DYNAMIC_LOAD_ENABLED @@ -416,28 +416,28 @@ OPEN_INTERNAL_NAMESPACE #endif /* __TBB_WEAK_SYMBOLS_PRESENT */ void dynamic_unlink( dynamic_link_handle handle ) { - ::tbb::internal::suppress_unused_warning( handle ); - #if __TBB_DYNAMIC_LOAD_ENABLED + #if !__TBB_DYNAMIC_LOAD_ENABLED /* only __TBB_WEAK_SYMBOLS_PRESENT is defined */ + if ( !dlclose ) return; + #endif if ( handle ) { dlclose( handle ); } - #endif /* __TBB_DYNAMIC_LOAD_ENABLED */ } void dynamic_unlink_all() { #if __TBB_DYNAMIC_LOAD_ENABLED handles.free(); - #endif /* __TBB_DYNAMIC_LOAD_ENABLED */ + #endif } #if !_WIN32 - static dynamic_link_handle pin_symbols( dynamic_link_handle library_handle, dynamic_link_descriptor desc, const dynamic_link_descriptor* descriptors, size_t required ) { - ::tbb::internal::suppress_unused_warning( desc, descriptors, required ); #if __TBB_DYNAMIC_LOAD_ENABLED + static dynamic_link_handle pin_symbols( dynamic_link_descriptor desc, const dynamic_link_descriptor* descriptors, size_t required ) { // It is supposed that all symbols are from the only one library // The library has been loaded by another module and contains at least one requested symbol. // But after we obtained the symbol the library can be unloaded by another thread // invalidating our symbol. Therefore we need to pin the library in memory. + dynamic_link_handle library_handle = 0; Dl_info info; // Get library's name from earlier found symbol if ( dladdr( (void*)*desc.handler, &info ) ) { @@ -457,13 +457,10 @@ OPEN_INTERNAL_NAMESPACE DYNAMIC_LINK_WARNING( dl_lib_not_found, info.dli_fname, err ); } } - else { - // The library have been unloaded by another thread - library_handle = 0; - } -#endif /* __TBB_DYNAMIC_LOAD_ENABLED */ + // else the library has been unloaded by another thread return library_handle; } +#endif /* __TBB_DYNAMIC_LOAD_ENABLED */ #endif /* !_WIN32 */ static dynamic_link_handle global_symbols_link( const char* library, const dynamic_link_descriptor descriptors[], size_t required ) { @@ -485,18 +482,27 @@ OPEN_INTERNAL_NAMESPACE // On Android dlopen( NULL ) returns NULL if it is called during dynamic module initialization. LIBRARY_ASSERT( library_handle, "The handle for the main program is NULL" ); #endif + #if __TBB_DYNAMIC_LOAD_ENABLED // Check existence of the first symbol only, then use it to find the library and load all necessary symbols. pointer_to_handler handler; dynamic_link_descriptor desc; desc.name = descriptors[0].name; desc.handler = &handler; - if ( resolve_symbols( library_handle, &desc, 1 ) ) - return pin_symbols( library_handle, desc, descriptors, required ); + if ( resolve_symbols( library_handle, &desc, 1 ) ) { + dynamic_unlink( library_handle ); + return pin_symbols( desc, descriptors, required ); + } + #else /* only __TBB_WEAK_SYMBOLS_PRESENT is defined */ + if ( resolve_symbols( library_handle, descriptors, required ) ) + return library_handle; + #endif + dynamic_unlink( library_handle ); #endif /* _WIN32 */ return 0; } static void save_library_handle( dynamic_link_handle src, dynamic_link_handle *dst ) { + LIBRARY_ASSERT( src, "The library handle to store must be non-zero" ); if ( dst ) *dst = src; #if __TBB_DYNAMIC_LOAD_ENABLED @@ -553,8 +559,11 @@ OPEN_INTERNAL_NAMESPACE if ( !library_handle && ( flags & DYNAMIC_LINK_WEAK ) ) return weak_symbol_link( descriptors, required ); - save_library_handle( library_handle, handle ); - return true; + if ( library_handle ) { + save_library_handle( library_handle, handle ); + return true; + } + return false; } #endif /*__TBB_WIN8UI_SUPPORT*/ @@ -564,12 +573,8 @@ OPEN_INTERNAL_NAMESPACE *handle=0; return false; } - - void dynamic_unlink( dynamic_link_handle ) { - } - - void dynamic_unlink_all() { - } + void dynamic_unlink( dynamic_link_handle ) {} + void dynamic_unlink_all() {} #endif /* __TBB_WEAK_SYMBOLS_PRESENT || __TBB_DYNAMIC_LOAD_ENABLED */ CLOSE_INTERNAL_NAMESPACE diff --git a/src/tbb/lin32-tbb-export.lst b/src/tbb/lin32-tbb-export.lst index 7ad50f5714..a8a07b3bbd 100644 --- a/src/tbb/lin32-tbb-export.lst +++ b/src/tbb/lin32-tbb-export.lst @@ -66,6 +66,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEi ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) @@ -172,6 +173,8 @@ __TBB_SYMBOL( _ZN3tbb8internal23itt_metadata_str_add_v7ENS0_15itt_domain_enumEPv __TBB_SYMBOL( _ZN3tbb8internal19itt_relation_add_v7ENS0_15itt_domain_enumEPvyNS0_12itt_relationES2_y ) __TBB_SYMBOL( _ZN3tbb8internal17itt_task_begin_v7ENS0_15itt_domain_enumEPvyS2_yNS0_12string_indexE ) __TBB_SYMBOL( _ZN3tbb8internal15itt_task_end_v7ENS0_15itt_domain_enumE ) +__TBB_SYMBOL( _ZN3tbb8internal19itt_region_begin_v9ENS0_15itt_domain_enumEPvyS2_yNS0_12string_indexE ) +__TBB_SYMBOL( _ZN3tbb8internal17itt_region_end_v9ENS0_15itt_domain_enumEPvy ) #endif /* pipeline.cpp */ diff --git a/src/tbb/lin64-tbb-export.lst b/src/tbb/lin64-tbb-export.lst index 227b9929cc..4a2a1ea6c2 100644 --- a/src/tbb/lin64-tbb-export.lst +++ b/src/tbb/lin64-tbb-export.lst @@ -66,6 +66,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEl ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) @@ -167,6 +168,8 @@ __TBB_SYMBOL( _ZN3tbb8internal22itt_make_task_group_v7ENS0_15itt_domain_enumEPvy __TBB_SYMBOL( _ZN3tbb8internal17itt_task_begin_v7ENS0_15itt_domain_enumEPvyS2_yNS0_12string_indexE ) __TBB_SYMBOL( _ZN3tbb8internal19itt_relation_add_v7ENS0_15itt_domain_enumEPvyNS0_12itt_relationES2_y ) __TBB_SYMBOL( _ZN3tbb8internal15itt_task_end_v7ENS0_15itt_domain_enumE ) +__TBB_SYMBOL( _ZN3tbb8internal19itt_region_begin_v9ENS0_15itt_domain_enumEPvyS2_yNS0_12string_indexE ) +__TBB_SYMBOL( _ZN3tbb8internal17itt_region_end_v9ENS0_15itt_domain_enumEPvy ) #endif /* pipeline.cpp */ diff --git a/src/tbb/lin64ipf-tbb-export.lst b/src/tbb/lin64ipf-tbb-export.lst index bb4af1555d..14145d1a22 100644 --- a/src/tbb/lin64ipf-tbb-export.lst +++ b/src/tbb/lin64ipf-tbb-export.lst @@ -66,6 +66,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEl ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) diff --git a/src/tbb/mac32-tbb-export.lst b/src/tbb/mac32-tbb-export.lst index a000f167ed..a6980ba3a9 100644 --- a/src/tbb/mac32-tbb-export.lst +++ b/src/tbb/mac32-tbb-export.lst @@ -74,6 +74,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEl ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) diff --git a/src/tbb/mac64-tbb-export.lst b/src/tbb/mac64-tbb-export.lst index 9b6ef26043..068cbc3b05 100644 --- a/src/tbb/mac64-tbb-export.lst +++ b/src/tbb/mac64-tbb-export.lst @@ -74,6 +74,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEl ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) diff --git a/src/tbb/market.cpp b/src/tbb/market.cpp index fe24fd7b23..4d77960e31 100644 --- a/src/tbb/market.cpp +++ b/src/tbb/market.cpp @@ -99,24 +99,29 @@ static unsigned calc_workers_soft_limit(unsigned workers_soft_limit, unsigned wo return workers_soft_limit; } -market& market::global_market ( unsigned workers_soft_limit, size_t stack_size, - bool default_concurrency_requested, bool is_public ) { +market& market::global_market ( bool is_public, unsigned workers_soft_limit, size_t stack_size, + bool default_concurrency_requested ) { global_market_mutex_type::scoped_lock lock( theMarketMutex ); market *m = theMarket; if( m ) { ++m->my_ref_count; - if( is_public && 0==m->my_public_ref_count++ ) { - lock.release(); + 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( m->my_num_workers_soft_limit < workers_soft_limit && !default_concurrency_requested ) - runtime_warning( "Max number of workers has been already set to %u. Newer request is for %u workers.\n" - , m->my_num_workers_soft_limit, workers_soft_limit ); + 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( "Newer master request for larger stack cannot be satisfied\n" ); + runtime_warning( "Thread stack size has been already set to %u. " + "The request for larger stack (%u) cannot be satisfied.\n", + m->my_stack_size, stack_size ); } else { + // TODO: A lot is done under theMarketMutex locked. Can anything be moved out? if( stack_size == 0 ) stack_size = global_control::active_value(global_control::thread_stack_size); // Expecting that 4P is suitable for most applications. @@ -218,7 +223,7 @@ void market::set_active_num_workers ( unsigned soft_limit ) { // Must be called outside of any locks if ( requested != old_requested ) m->my_server->adjust_job_count_estimate( requested - old_requested ); - // release my_ref_count for market, match ++m->my_ref_count above + // release internal market reference to match ++m->my_ref_count above m->release(); } @@ -229,8 +234,9 @@ bool governor::does_client_join_workers (const tbb::internal::rml::tbb_client &c arena* market::create_arena ( int num_slots, int num_reserved_slots, size_t stack_size, bool default_concurrency_requested ) { __TBB_ASSERT( num_slots > 0, NULL ); __TBB_ASSERT( num_reserved_slots <= num_slots, NULL ); - market &m = global_market( num_slots-num_reserved_slots, stack_size, default_concurrency_requested, - /*is_public*/ true ); // increases market's public ref count + // 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 ); arena& a = arena::allocate_arena( m, num_slots, num_reserved_slots ); // Add newly created arena into the existing market's list. @@ -291,7 +297,7 @@ arena* market::arena_in_need ( arena_list_type &arenas, arena *&next ) { if ( ++it == arenas.end() ) it = arenas.begin(); if ( a.num_workers_active() < a.my_num_workers_allotted ) { - a.my_references += 2; // add a worker + 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 return &a; diff --git a/src/tbb/market.h b/src/tbb/market.h index 887224ba66..14a5f6f8a1 100644 --- a/src/tbb/market.h +++ b/src/tbb/market.h @@ -163,8 +163,8 @@ class market : no_copy, rml::tbb_client { market ( unsigned workers_soft_limit, unsigned workers_hard_limit, size_t stack_size ); //! Factory method creating new market object - static market& global_market ( unsigned max_num_workers = 0, size_t stack_size = 0, - bool default_concurrency_requested = false, bool is_public = false ); + static market& global_market ( bool is_public, unsigned max_num_workers = 0, size_t stack_size = 0, + bool default_concurrency_requested = false); //! Destroys and deallocates market object created by market::create() void destroy (); diff --git a/src/tbb/private_server.cpp b/src/tbb/private_server.cpp index 73f12ea06f..5dc32bc5d0 100644 --- a/src/tbb/private_server.cpp +++ b/src/tbb/private_server.cpp @@ -301,7 +301,7 @@ inline void private_worker::wake_or_launch() { #elif USE_PTHREAD { affinity_helper fpa; - fpa.protect_affinity_mask(); + fpa.protect_affinity_mask( /*restore_process_mask=*/true ); my_handle = thread_monitor::launch( thread_routine, this, my_server.my_stack_size ); // Implicit destruction of fpa resets original affinity mask. } diff --git a/src/tbb/scheduler.cpp b/src/tbb/scheduler.cpp index c8ea9e19a1..9a23e2e0d4 100644 --- a/src/tbb/scheduler.cpp +++ b/src/tbb/scheduler.cpp @@ -1028,7 +1028,8 @@ generic_scheduler* generic_scheduler::create_worker( market& m, size_t index ) { // TODO: make it a member method generic_scheduler* generic_scheduler::create_master( arena* a ) { - generic_scheduler* s = allocate_scheduler( market::global_market() ); // increases market's ref count + // add an internal market reference; the public reference is possibly added in create_arena + generic_scheduler* s = allocate_scheduler( market::global_market(/*is_public=*/false) ); __TBB_ASSERT( !s->my_arena, NULL ); __TBB_ASSERT( s->my_market, NULL ); task& t = *s->my_dummy_task; @@ -1080,11 +1081,6 @@ void generic_scheduler::cleanup_master( bool needs_wait_workers ) { arena* const a = my_arena; market * const m = my_market; __TBB_ASSERT( my_market, NULL ); -#if __TBB_SCHEDULER_OBSERVER - if( a ) - a->my_observers.notify_exit_observers( my_last_local_observer, /*worker=*/false ); - the_global_observer_list.notify_exit_observers( my_last_global_observer, /*worker=*/false ); -#endif /* __TBB_SCHEDULER_OBSERVER */ if( a && is_task_pool_published() ) { acquire_task_pool(); if ( my_arena_slot->task_pool == EmptyTaskPool || @@ -1102,15 +1098,20 @@ void generic_scheduler::cleanup_master( bool needs_wait_workers ) { __TBB_ASSERT ( governor::is_set(this), "Other thread reused our TLS key during the task pool cleanup" ); } } +#if __TBB_SCHEDULER_OBSERVER + if( a ) + a->my_observers.notify_exit_observers( my_last_local_observer, /*worker=*/false ); + the_global_observer_list.notify_exit_observers( my_last_global_observer, /*worker=*/false ); +#endif /* __TBB_SCHEDULER_OBSERVER */ #if _WIN32||_WIN64 m->unregister_master( master_exec_resource ); #endif /* _WIN32||_WIN64 */ if( a ) { - __TBB_ASSERT(a->my_slots+0 == my_arena_slot, NULL); + __TBB_ASSERT(a->my_slots+0 == my_arena_slot, NULL); #if __TBB_STATISTICS *my_arena_slot->my_counters += my_counters; #endif /* __TBB_STATISTICS */ - __TBB_store_with_release(my_arena_slot->my_scheduler, (generic_scheduler*)NULL); + __TBB_store_with_release(my_arena_slot->my_scheduler, (generic_scheduler*)NULL); } #if __TBB_TASK_GROUP_CONTEXT else { // task_group_context ownership was not transferred to arena @@ -1125,21 +1126,12 @@ void generic_scheduler::cleanup_master( bool needs_wait_workers ) { free_scheduler(); // TODO: read global settings for the parameter at that point m->join_workers = needs_wait_workers; - if( a ) { -#if __TBB_STATISTICS_EARLY_DUMP - // Resetting arena to EMPTY state (as earlier TBB versions did) should not be - // done here (or anywhere else in the master thread to that matter) because - // after introducing arena-per-master logic and fire-and-forget tasks doing - // so can result either in arena's premature destruction (at least without - // additional costly checks in workers) or in unnecessary arena state changes - // (and ensuing workers migration). - GATHER_STATISTIC( a->dump_arena_statistics() ); -#endif - a->on_thread_leaving(); - } + if( a ) + a->on_thread_leaving(); if( needs_wait_workers ) - m->wait_workers(); - m->release( /*is_public*/ a != NULL ); // TODO: ideally, it should always be true + m->wait_workers(); // TODO: should it be done in case of attached task_arenas remaining? + // If there was an associated arena, it added a public market reference + m->release( /*is_public*/ a != NULL ); } } // namespace internal diff --git a/src/tbb/tbb_main.cpp b/src/tbb/tbb_main.cpp index 4e2cd301d1..aa44dddd36 100644 --- a/src/tbb/tbb_main.cpp +++ b/src/tbb/tbb_main.cpp @@ -350,7 +350,7 @@ void itt_relation_add_v7( itt_domain_enum domain, void *addr0, unsigned long lon } 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 *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; __itt_id parent_id = itt_null_id; @@ -358,7 +358,8 @@ void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long t if ( parent ) { itt_id_make( &parent_id, parent, parent_extra ); } - ITTNOTIFY_VOID_D3(task_begin, d, task_id, parent_id, NULL ); + __itt_string_handle *n = ITT_get_string_handle(name_index); + ITTNOTIFY_VOID_D3(task_begin, d, task_id, parent_id, n ); } } @@ -368,6 +369,27 @@ 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 *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; + __itt_id parent_id = itt_null_id; + itt_id_make( ®ion_id, region, region_extra ); + if ( parent ) { + itt_id_make( &parent_id, parent, parent_extra ); + } + ITTNOTIFY_VOID_D3(region_begin, d, region_id, parent_id, NULL ); + } +} + +void itt_region_end_v9( itt_domain_enum domain, void *region, unsigned long long region_extra ) { + if ( __itt_domain *d = get_itt_domain( domain ) ) { + __itt_id region_id = itt_null_id; + itt_id_make( ®ion_id, region, region_extra ); + ITTNOTIFY_VOID_D1( region_end, d, region_id ); + } +} + #else // DO_ITT_NOTIFY void itt_make_task_group_v7( itt_domain_enum domain, void *group, unsigned long long group_extra, @@ -384,6 +406,11 @@ void itt_task_begin_v7( itt_domain_enum domain, void *task, unsigned long long t 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 *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 ) { } + #endif // DO_ITT_NOTIFY #endif // __TBB_ITT_STRUCTURE_API diff --git a/src/tbb/tbb_misc.h b/src/tbb/tbb_misc.h index 22e14ca029..c8085845f0 100644 --- a/src/tbb/tbb_misc.h +++ b/src/tbb/tbb_misc.h @@ -252,12 +252,14 @@ inline void run_initializer( bool (*f)(), atomic& state ) { public: affinity_helper() : threadMask(NULL), is_changed(0) {} ~affinity_helper(); - void protect_affinity_mask(); + void protect_affinity_mask( bool restore_process_mask ); + void dismiss(); }; #else class affinity_helper : no_copy { public: - void protect_affinity_mask() {} + void protect_affinity_mask( bool ) {} + void dismiss() {} }; #endif /* __TBB_USE_OS_AFFINITY_SYSCALL */ diff --git a/src/tbb/tbb_misc_ex.cpp b/src/tbb/tbb_misc_ex.cpp index e32a718eb4..57c8ce1f49 100644 --- a/src/tbb/tbb_misc_ex.cpp +++ b/src/tbb/tbb_misc_ex.cpp @@ -56,7 +56,16 @@ namespace internal { #if __TBB_USE_OS_AFFINITY_SYSCALL -static void set_affinity_mask( size_t maskSize, const basic_mask_t* threadMask ) { +#if __linux__ +// Handlers for interoperation with libiomp +static int (*libiomp_try_restoring_original_mask)(); +// Table for mapping to libiomp entry points +static const dynamic_link_descriptor iompLinkTable[] = { + { "kmp_set_thread_affinity_mask_initial", (pointer_to_handler*)(void*)(&libiomp_try_restoring_original_mask) } +}; +#endif + +static void set_thread_affinity_mask( size_t maskSize, const basic_mask_t* threadMask ) { #if __linux__ if( sched_setaffinity( 0, maskSize, threadMask ) ) #else /* FreeBSD */ @@ -65,7 +74,7 @@ static void set_affinity_mask( size_t maskSize, const basic_mask_t* threadMask ) runtime_warning( "setaffinity syscall failed" ); } -static void get_affinity_mask( size_t maskSize, basic_mask_t* threadMask ) { +static void get_thread_affinity_mask( size_t maskSize, basic_mask_t* threadMask ) { #if __linux__ if( sched_getaffinity( 0, maskSize, threadMask ) ) #else /* FreeBSD */ @@ -89,22 +98,34 @@ static process_mask_cleanup_helper process_mask_cleanup; affinity_helper::~affinity_helper() { if( threadMask ) { if( is_changed ) { - set_affinity_mask( curMaskSize, threadMask ); + set_thread_affinity_mask( curMaskSize, threadMask ); } delete [] threadMask; } } -void affinity_helper::protect_affinity_mask() { - if( threadMask == NULL && num_masks && process_mask ) { +void affinity_helper::protect_affinity_mask( bool restore_process_mask ) { + if( threadMask == NULL && num_masks ) { // TODO: assert num_masks validity? threadMask = new basic_mask_t [num_masks]; memset( threadMask, 0, curMaskSize ); - get_affinity_mask( curMaskSize, threadMask ); - is_changed = memcmp( process_mask, threadMask, curMaskSize ); - if( is_changed ) { - set_affinity_mask( curMaskSize, process_mask ); + get_thread_affinity_mask( curMaskSize, threadMask ); + if( restore_process_mask ) { + __TBB_ASSERT( process_mask, "A process mask is requested but not yet stored" ); + is_changed = memcmp( process_mask, threadMask, curMaskSize ); + if( is_changed ) + set_thread_affinity_mask( curMaskSize, process_mask ); + } else { + // Assume that the mask will be changed by the caller. + is_changed = 1; } } } +void affinity_helper::dismiss() { + if( threadMask ) { + delete [] threadMask; + threadMask = NULL; + } + is_changed = 0; +} #undef curMaskSize static atomic hardware_concurrency_info; @@ -123,26 +144,20 @@ static void initialize_hardware_concurrency_info () { int maxProcs = sysconf(_SC_NPROCESSORS_ONLN); int pid = getpid(); #endif - cpu_set_t *processMask; - const size_t BasicMaskSize = sizeof(cpu_set_t); +#else /* FreeBSD >= 7.1 */ + int maxProcs = sysconf(_SC_NPROCESSORS_ONLN); +#endif + basic_mask_t* processMask; + const size_t BasicMaskSize = sizeof(basic_mask_t); for (;;) { - int curMaskSize = BasicMaskSize * numMasks; - processMask = new cpu_set_t[numMasks]; + const int curMaskSize = BasicMaskSize * numMasks; + processMask = new basic_mask_t[numMasks]; memset( processMask, 0, curMaskSize ); +#if __linux__ err = sched_getaffinity( pid, curMaskSize, processMask ); if ( !err || errno != EINVAL || curMaskSize * CHAR_BIT >= 256 * 1024 ) break; - delete[] processMask; - numMasks <<= 1; - } #else /* FreeBSD >= 7.1 */ - int maxProcs = sysconf(_SC_NPROCESSORS_ONLN); - cpuset_t *processMask; - const size_t BasicMaskSize = sizeof(cpuset_t); - for (;;) { - int curMaskSize = BasicMaskSize * numMasks; - processMask = new cpuset_t[numMasks]; - memset( processMask, 0, curMaskSize ); // CPU_LEVEL_WHICH - anonymous (current) mask, CPU_LEVEL_CPUSET - assigned mask #if __TBB_MAIN_THREAD_AFFINITY_BROKEN err = cpuset_getaffinity( CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, curMaskSize, processMask ); @@ -151,21 +166,42 @@ static void initialize_hardware_concurrency_info () { #endif if ( !err || errno != ERANGE || curMaskSize * CHAR_BIT >= 16 * 1024 ) break; +#endif /* FreeBSD >= 7.1 */ delete[] processMask; numMasks <<= 1; } -#endif /* FreeBSD >= 7.1 */ if ( !err ) { + // We have found the mask size and captured the process affinity mask into processMask. + num_masks = numMasks; // do here because it's needed for affinity_helper to work +#if __linux__ + // For better coexistence with libiomp which might have changed the mask already, + // check for its presense and ask it to restore the mask. + dynamic_link_handle libhandle; + if ( dynamic_link( "libiomp5.so", iompLinkTable, 1, &libhandle, DYNAMIC_LINK_GLOBAL ) ) { + // We have found the symbol provided by libiomp5 for restoring original thread affinity. + affinity_helper affhelp; + affhelp.protect_affinity_mask( /*restore_process_mask=*/false ); + if ( libiomp_try_restoring_original_mask()==0 ) { + // Now we have the right mask to capture, restored by libiomp. + const int curMaskSize = BasicMaskSize * numMasks; + memset( processMask, 0, curMaskSize ); + get_thread_affinity_mask( curMaskSize, processMask ); + } else + affhelp.dismiss(); // thread mask has not changed + dynamic_unlink( libhandle ); + // Destructor of affinity_helper restores the thread mask (unless dismissed). + } +#endif for ( int m = 0; availableProcs < maxProcs && m < numMasks; ++m ) { for ( size_t i = 0; (availableProcs < maxProcs) && (i < BasicMaskSize * CHAR_BIT); ++i ) { if ( CPU_ISSET( i, processMask + m ) ) ++availableProcs; } } - num_masks = numMasks; process_mask = processMask; } else { + // Failed to get the process affinity mask; assume the whole machine can be used. availableProcs = (maxProcs == INT_MAX) ? sysconf(_SC_NPROCESSORS_ONLN) : maxProcs; delete[] processMask; } @@ -178,7 +214,9 @@ int AvailableHwConcurrency() { return theNumProcs; } +/* End of __TBB_USE_OS_AFFINITY_SYSCALL implementation */ #elif __ANDROID__ + // Work-around for Android that reads the correct number of available CPUs since system calls are unreliable. // Format of "present" file is: ([-|],)+ int AvailableHwConcurrency() { @@ -196,6 +234,7 @@ int AvailableHwConcurrency() { } #elif defined(_SC_NPROCESSORS_ONLN) + int AvailableHwConcurrency() { int n = sysconf(_SC_NPROCESSORS_ONLN); return (n > 0) ? n : 1; @@ -232,7 +271,6 @@ struct ProcessorGroupInfo { int ProcessorGroupInfo::NumGroups = 1; int ProcessorGroupInfo::HoleIndex = 0; - ProcessorGroupInfo theProcessorGroups[MaxProcessorGroups]; struct TBB_GROUP_AFFINITY { @@ -306,11 +344,6 @@ static void initialize_hardware_concurrency_info () { PrintExtraVersionInfo( "----- Group", "%d: size %d", i, theProcessorGroups[i].numProcs); } -int AvailableHwConcurrency() { - atomic_do_once( &initialize_hardware_concurrency_info, hardware_concurrency_info ); - return theProcessorGroups[ProcessorGroupInfo::NumGroups - 1].numProcsRunningTotal; -} - int NumberOfProcessorGroups() { __TBB_ASSERT( hardware_concurrency_info == initialization_complete, "NumberOfProcessorGroups is used before AvailableHwConcurrency" ); return ProcessorGroupInfo::NumGroups; @@ -358,9 +391,15 @@ void MoveThreadIntoProcessorGroup( void* hThread, int groupIndex ) { TBB_SetThreadGroupAffinity( hThread, &ga, NULL ); } +int AvailableHwConcurrency() { + atomic_do_once( &initialize_hardware_concurrency_info, hardware_concurrency_info ); + return theProcessorGroups[ProcessorGroupInfo::NumGroups - 1].numProcsRunningTotal; +} + +/* End of _WIN32||_WIN64 implementation */ #else - #error AvailableHwConcurrency is not implemented in this OS -#endif /* OS */ + #error AvailableHwConcurrency is not implemented for this OS +#endif } // namespace internal } // namespace tbb diff --git a/src/tbb/win32-tbb-export.lst b/src/tbb/win32-tbb-export.lst index 18c2c9ac7e..993ef47037 100644 --- a/src/tbb/win32-tbb-export.lst +++ b/src/tbb/win32-tbb-export.lst @@ -76,6 +76,7 @@ __TBB_SYMBOL( ?observe@task_scheduler_observer_v3@internal@tbb@@QAEX_N@Z ) __TBB_SYMBOL( ?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ ) __TBB_SYMBOL( ?internal_initialize@task_arena_base@internal@interface7@tbb@@IAEXXZ ) __TBB_SYMBOL( ?internal_terminate@task_arena_base@internal@interface7@tbb@@IAEXXZ ) +__TBB_SYMBOL( ?internal_attach@task_arena_base@internal@interface7@tbb@@IAEXXZ ) __TBB_SYMBOL( ?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBEXAAVtask@4@H@Z ) __TBB_SYMBOL( ?internal_execute@task_arena_base@internal@interface7@tbb@@IBEXAAVdelegate_base@234@@Z ) __TBB_SYMBOL( ?internal_wait@task_arena_base@internal@interface7@tbb@@IBEXXZ ) @@ -140,6 +141,8 @@ __TBB_SYMBOL( ?itt_metadata_str_add_v7@internal@tbb@@YAXW4itt_domain_enum@12@PAX __TBB_SYMBOL( ?itt_relation_add_v7@internal@tbb@@YAXW4itt_domain_enum@12@PAX_KW4itt_relation@12@12@Z ) __TBB_SYMBOL( ?itt_task_begin_v7@internal@tbb@@YAXW4itt_domain_enum@12@PAX_K12W4string_index@12@@Z ) __TBB_SYMBOL( ?itt_task_end_v7@internal@tbb@@YAXW4itt_domain_enum@12@@Z ) +__TBB_SYMBOL( ?itt_region_begin_v9@internal@tbb@@YAXW4itt_domain_enum@12@PAX_K12W4string_index@12@@Z ) +__TBB_SYMBOL( ?itt_region_end_v9@internal@tbb@@YAXW4itt_domain_enum@12@PAX_K@Z ) #endif // pipeline.cpp diff --git a/src/tbb/win64-gcc-tbb-export.lst b/src/tbb/win64-gcc-tbb-export.lst index d1a7ba2ebf..be7fafdecf 100644 --- a/src/tbb/win64-gcc-tbb-export.lst +++ b/src/tbb/win64-gcc-tbb-export.lst @@ -66,6 +66,7 @@ __TBB_SYMBOL( _ZTVN3tbb10empty_taskE ) /* arena.cpp */ __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base19internal_initializeEv ) __TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base18internal_terminateEv ) +__TBB_SYMBOL( _ZN3tbb10interface78internal15task_arena_base15internal_attachEv ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_enqueueERNS_4taskEx ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base16internal_executeERNS1_13delegate_baseE ) __TBB_SYMBOL( _ZNK3tbb10interface78internal15task_arena_base13internal_waitEv ) diff --git a/src/tbb/win64-tbb-export.lst b/src/tbb/win64-tbb-export.lst index 7f68d0fe6f..ed1ae0081d 100644 --- a/src/tbb/win64-tbb-export.lst +++ b/src/tbb/win64-tbb-export.lst @@ -72,6 +72,7 @@ __TBB_SYMBOL( ?observe@task_scheduler_observer_v3@internal@tbb@@QEAAX_N@Z ) __TBB_SYMBOL( ?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ ) __TBB_SYMBOL( ?internal_initialize@task_arena_base@internal@interface7@tbb@@IEAAXXZ ) __TBB_SYMBOL( ?internal_terminate@task_arena_base@internal@interface7@tbb@@IEAAXXZ ) +__TBB_SYMBOL( ?internal_attach@task_arena_base@internal@interface7@tbb@@IEAAXXZ ) __TBB_SYMBOL( ?internal_enqueue@task_arena_base@internal@interface7@tbb@@IEBAXAEAVtask@4@_J@Z ) __TBB_SYMBOL( ?internal_execute@task_arena_base@internal@interface7@tbb@@IEBAXAEAVdelegate_base@234@@Z ) __TBB_SYMBOL( ?internal_wait@task_arena_base@internal@interface7@tbb@@IEBAXXZ ) @@ -136,6 +137,8 @@ __TBB_SYMBOL( ?itt_metadata_str_add_v7@internal@tbb@@YAXW4itt_domain_enum@12@PEA __TBB_SYMBOL( ?itt_relation_add_v7@internal@tbb@@YAXW4itt_domain_enum@12@PEAX_KW4itt_relation@12@12@Z ) __TBB_SYMBOL( ?itt_task_begin_v7@internal@tbb@@YAXW4itt_domain_enum@12@PEAX_K12W4string_index@12@@Z ) __TBB_SYMBOL( ?itt_task_end_v7@internal@tbb@@YAXW4itt_domain_enum@12@@Z ) +__TBB_SYMBOL( ?itt_region_begin_v9@internal@tbb@@YAXW4itt_domain_enum@12@PEAX_K12W4string_index@12@@Z ) +__TBB_SYMBOL( ?itt_region_end_v9@internal@tbb@@YAXW4itt_domain_enum@12@PEAX_K@Z ) #endif // pipeline.cpp diff --git a/src/tbb/winrt-tbb-export.lst b/src/tbb/winrt-tbb-export.lst index 968644683e..beeaad9a25 100644 --- a/src/tbb/winrt-tbb-export.lst +++ b/src/tbb/winrt-tbb-export.lst @@ -56,6 +56,7 @@ __TBB_SYMBOL( ?observe@task_scheduler_observer_v3@internal@tbb@@QAAX_N@Z ) __TBB_SYMBOL( ?internal_current_slot@task_arena_base@internal@interface7@tbb@@KAHXZ ) __TBB_SYMBOL( ?internal_initialize@task_arena_base@internal@interface7@tbb@@IAAXXZ ) __TBB_SYMBOL( ?internal_terminate@task_arena_base@internal@interface7@tbb@@IAAXXZ ) +__TBB_SYMBOL( ?internal_attach@task_arena_base@internal@interface7@tbb@@IAAXXZ ) __TBB_SYMBOL( ?internal_enqueue@task_arena_base@internal@interface7@tbb@@IBAXAAVtask@4@H@Z ) __TBB_SYMBOL( ?internal_execute@task_arena_base@internal@interface7@tbb@@IBAXAAVdelegate_base@234@@Z ) __TBB_SYMBOL( ?internal_wait@task_arena_base@internal@interface7@tbb@@IBAXXZ ) diff --git a/src/test/harness.h b/src/test/harness.h index d738498dbe..177540e940 100644 --- a/src/test/harness.h +++ b/src/test/harness.h @@ -716,6 +716,31 @@ class NoAfterlife { a = Primes[seed % (sizeof(Primes) / sizeof(Primes[0]))]; } }; + int SetEnv( const char *envname, const char *envval ) { + ASSERT( envname && envval, "Harness::SetEnv() requires two valid C strings" ); +#if __TBB_WIN8UI_SUPPORT + ASSERT( false, "Harness::SetEnv() should not be called in code built for win8ui" ); + return -1; +#elif !(_MSC_VER || __MINGW32__ || __MINGW64__) + // On POSIX systems use setenv + return setenv(envname, envval, /*overwrite=*/1); +#elif __STDC_SECURE_LIB__>=200411 + // this macro is set in VC & MinGW if secure API functions are present + return _putenv_s(envname, envval); +#else + // If no secure API on Windows, use _putenv + size_t namelen = strlen(envname), valuelen = strlen(envval); + char* buf = new char[namelen+valuelen+2]; + strncpy(buf, envname, namelen); + buf[namelen] = '='; + strncpy(buf+namelen+1, envval, valuelen); + buf[namelen+1+valuelen] = char(0); + int status = _putenv(buf); + delete[] buf; + return status; +#endif + } + } // namespace Harness #endif /* tbb_tests_harness_H */ diff --git a/src/test/harness_defs.h b/src/test/harness_defs.h index 78581108ef..be7e0f6257 100644 --- a/src/test/harness_defs.h +++ b/src/test/harness_defs.h @@ -88,7 +88,7 @@ #endif //MSVC 2013 is unable to properly resolve call to overloaded operator= with std::initializer_list argument for std::pair list elements -#define __TBB_CPP11_INIT_LIST_ASSIGN_OP_RESOLUTION_BROKEN (_MSC_FULL_VER <= 180030723 && _MSC_VER && !__INTEL_COMPILER) +#define __TBB_CPP11_INIT_LIST_ASSIGN_OP_RESOLUTION_BROKEN (_MSC_VER <= 1800 && _MSC_VER && !__INTEL_COMPILER) //MSVC 2013 is unable to manage lifetime of temporary objects passed to a std::initializer_list constructor properly #define __TBB_CPP11_INIT_LIST_TEMP_OBJS_LIFETIME_BROKEN (_MSC_FULL_VER < 180030501 && _MSC_VER && !__INTEL_COMPILER) //Implementation of C++11 std::placeholders in libstdc++ coming with gcc prior to 4.5 reveals bug in Intel Compiler 13 causing "multiple definition" link errors. @@ -99,12 +99,17 @@ #define __TBB_ICC_SCOPED_ENUM_WITH_UNDERLYING_TYPE_ATOMIC_LOAD_BROKEN ( TBB_USE_ICC_BUILTINS && !__TBB_DEBUG && __INTEL_COMPILER && __INTEL_COMPILER <= 1500 ) //Unable to use constexpr member functions to initialize compile time constants #define __TBB_CONSTEXPR_MEMBER_FUNCTION_BROKEN (__INTEL_COMPILER == 1500) +// MSVC 2015 does not do compile-time initialization of static variables with constexpr constructors in debug mode +#define __TBB_STATIC_CONSTEXPR_INIT_BROKEN (_MSC_VER==1900 && !__INTEL_COMPILER && _DEBUG) + //some compilers do not generate implicitly move constructor and assignment operator, as this feature (r-value reference 3.0) was added later -#if __clang__ && !__INTEL_COMPILER +#if __INTEL_COMPILER + #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (__TBB_CPP11_RVALUE_REF_PRESENT && (__INTEL_COMPILER < 1400 || __INTEL_COMPILER == 1600 && __INTEL_COMPILER_UPDATE <= 1)) +#elif __clang__ #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN !__has_feature(cxx_implicit_moves) #else - #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (__TBB_CPP11_RVALUE_REF_PRESENT && ( !__INTEL_COMPILER && _MSC_VER && _MSC_VER <=1800 || __INTEL_COMPILER && __INTEL_COMPILER < 1400)) -#endif + #define __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN (__TBB_CPP11_RVALUE_REF_PRESENT && _MSC_VER && _MSC_VER <=1800) +#endif /* __INTEL_COMPILER */ #if __GNUC__ && __ANDROID__ #define __TBB_EXCEPTION_TYPE_INFO_BROKEN ( __TBB_GCC_VERSION < 40600 ) @@ -130,6 +135,19 @@ #define _GLIBCXX_NESTED_EXCEPTION_H /* prevents nested_exception.h inclusion */ #endif +// TODO: Investigate the cases that require this macro. +#define __TBB_COMPLICATED_ADL_BROKEN ( __TBB_GCC_VERSION && __TBB_GCC_VERSION < 40400 ) + +// Intel Compiler fails to compile the comparison of tuples in some cases +#if __INTEL_COMPILER && __INTEL_COMPILER < 1600 || __INTEL_COMPILER == 1600 && __INTEL_COMPILER_UPDATE <= 1 + #define __TBB_TUPLE_COMPARISON_COMPILATION_BROKEN (__TBB_GCC_VERSION >= 40800 && __TBB_GCC_VERSION <= 50101 || __MIC__) +#endif + +// Intel Compiler fails to compile std::reference in some cases +#if __INTEL_COMPILER && __INTEL_COMPILER < 1600 || __INTEL_COMPILER == 1600 && __INTEL_COMPILER_UPDATE <= 1 + #define __TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN (__TBB_GCC_VERSION >= 40800 && __TBB_GCC_VERSION <= 50101 || __MIC__) +#endif + // The tuple-based tests with more inputs take a long time to compile. If changes // are made to the tuple implementation or any switch that controls it, or if testing // with a new platform implementation of std::tuple, the test should be compiled with diff --git a/src/test/harness_graph.h b/src/test/harness_graph.h index 57bfea55ae..5725294600 100644 --- a/src/test/harness_graph.h +++ b/src/test/harness_graph.h @@ -33,7 +33,7 @@ #include "tbb/task.h" #include "tbb/task_scheduler_init.h" -#define WAIT_MAX 100000 +#define WAIT_MAX 2000000 #define BACKOFF_WAIT(ex,msg) \ { \ int wait_cnt = 0; \ diff --git a/src/test/test_async_node.cpp b/src/test/test_async_node.cpp index 11fe696d2d..aa48ed226c 100644 --- a/src/test/test_async_node.cpp +++ b/src/test/test_async_node.cpp @@ -23,6 +23,8 @@ #endif #include "harness.h" +#include "harness_graph.h" +#include "harness_barrier.h" #if __TBB_PREVIEW_ASYNC_NODE @@ -32,32 +34,241 @@ #include "tbb/tbb_thread.h" -#include +#include -const size_t NUMBER_OF_SIGNALS = 10; -tbb::atomic async_body_exec_count; -tbb::atomic async_activity_processed_signnals_count; -tbb::atomic end_body_exec_count; +class minimal_type { + template + friend struct place_wrapper; -struct signal_type { - size_t signal; - tbb::task* prev_task; + int value; + +public: + 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; } }; -struct async_result_type { - size_t signal; - tbb::tbb_thread::id async_thread_id; +template +struct place_wrapper { + typedef T wrapped_type; + T value; + tbb::tbb_thread::id thread_id; + tbb::task* task_ptr; + + place_wrapper( ) : value(0) { + thread_id = tbb::this_tbb_thread::get_id(); + task_ptr = &tbb::task::self(); + } + place_wrapper( int v ) : value(v) { + thread_id = tbb::this_tbb_thread::get_id(); + task_ptr = &tbb::task::self(); + } + + place_wrapper( const place_wrapper &v ) : value(v.value), thread_id(v.thread_id), task_ptr(v.task_ptr) { } + + place_wrapper( const place_wrapper &v ) : value(v.value), thread_id(v.thread_id), task_ptr(v.task_ptr) { } }; -typedef tbb::flow::async_node< signal_type, async_result_type > async_node_type; +template +struct wrapper_helper { + static void check(const T1 &, const T2 &) { } + + 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) { + 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) { + out.value = in.value; + } +}; + +const int NUMBER_OF_MSGS = 10; +const int UNKNOWN_NUMBER_OF_ITEMS = -1; +tbb::atomic async_body_exec_count; +tbb::atomic async_activity_processed_msg_count; +tbb::atomic end_body_exec_count; + +typedef tbb::flow::async_node< int, int > counting_async_node_type; +typedef counting_async_node_type::async_gateway_type counting_async_gateway_type; + +struct counting_async_body { + tbb::atomic my_async_body_exec_count; + + counting_async_body() { + my_async_body_exec_count = 0; + } + + void operator()( const int &input, counting_async_gateway_type& my_node ) { + 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" ); + Harness::Sleep(50); + } + my_node.async_try_put(input); + } +}; + +void test_reset() { + const int N = NUMBER_OF_MSGS; + async_body_exec_count = 0; + + tbb::flow::graph g; + counting_async_node_type a(g, tbb::flow::serial, counting_async_body() ); + + const int R = 3; + harness_counting_receiver r[R]; + for (int i = 0; i < R; ++i) { +#if __TBB_FLOW_GRAPH_CPP11_FEATURES + tbb::flow::make_edge(a, r[i]); +#else + tbb::flow::make_edge( tbb::flow::output_port<0>(a), r[i] ); +#endif + } + + REMARK( "One body execution\n" ); + 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 + ASSERT( g.is_cancelled() == true, "task group not canceled" ); + + counting_async_body b1 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == int(b1.my_async_body_exec_count), "body and global body counts are different" ); + ASSERT( int(async_body_exec_count) == 1, "global body execution count not 1" ); + for (int i = 0; i < R; ++i) { + ASSERT( int(r[i].my_count) == 1, "counting receiver count not 1" ); + } + + // should clear the async_node queue, but retain its local count at 1 and keep all edges + g.reset(tbb::flow::rf_reset_protocol); + + 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" ); + + // a total of N+1 items should have passed through the node body + // the local body count should also be N+1 + // and the counting receivers should all have a count of N+1 + counting_async_body b2 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == int(b2.my_async_body_exec_count), "local and global body execution counts are different" ); + REMARK( "async_body_exec_count==%d\n", int(async_body_exec_count) ); + ASSERT( int(async_body_exec_count) == N+1, "globcal body execution count not N+1" ); + for (int i = 0; i < R; ++i) { + ASSERT( int(r[i].my_count) == N+1, "counting receiver has not received N+1 items" ); + } + + REMARK( "N body executions with new bodies\n" ); + // should clear the async_node queue and reset its local count to 0, but keep all edges + 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" ); + + // a total of 2N+1 items should have passed through the node body + // the local body count should be N + // and the counting receivers should all have a count of 2N+1 + counting_async_body b3 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == 2*N+1, "global body execution count not 2N+1" ); + ASSERT( int(b3.my_async_body_exec_count) == N, "local body execution count not N" ); + for (int i = 0; i < R; ++i) { + ASSERT( int(r[i].my_count) == 2*N+1, "counting receiver has not received 2N+1 items" ); + } + + // should clear the async_node queue and keep its local count at N and remove all edges + REMARK( "N body executions with no edges\n" ); + 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" ); + + // a total of 3N+1 items should have passed through the node body + // the local body count should now be 2*N + // and the counting receivers should remain at a count of 2N+1 + counting_async_body b4 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == 3*N+1, "global body execution count not 3N+1" ); + ASSERT( int(b4.my_async_body_exec_count) == 2*N, "local body execution count not 2N" ); + for (int i = 0; i < R; ++i) { + ASSERT( int(r[i].my_count) == 2*N+1, "counting receiver has not received 2N+1 items" ); + } + + // put back 1 edge to receiver 0 + REMARK( "N body executions with 1 edge\n" ); +#if __TBB_FLOW_GRAPH_CPP11_FEATURES + tbb::flow::make_edge(a, r[0]); +#else + tbb::flow::make_edge( tbb::flow::output_port<0>(a), r[0] ); +#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" ); + + // a total of 4N+1 items should have passed through the node body + // the local body count should now be 3*N + // and all of the counting receivers should remain at a count of 2N+1, except r[0] which should be 3N+1 + counting_async_body b5 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == 4*N+1, "global body execution count not 4N+1" ); + ASSERT( int(b5.my_async_body_exec_count) == 3*N, "local body execution count not 3N" ); + ASSERT( int(r[0].my_count) == 3*N+1, "counting receiver has not received 3N+1 items" ); + for (int i = 1; i < R; ++i) { + ASSERT( int(r[i].my_count) == 2*N+1, "counting receiver has not received 2N+1 items" ); + } + + // should clear the async_node queue and keep its local count at N and remove all edges + REMARK( "N body executions with no edges and new body\n" ); + 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" ); + + // a total of 4N+1 items should have passed through the node body + // the local body count should now be 3*N + // and all of the counting receivers should remain at a count of 2N+1, except r[0] which should be 3N+1 + counting_async_body b6 = tbb::flow::copy_body(a); + ASSERT( int(async_body_exec_count) == 5*N+1, "global body execution count not 5N+1" ); + ASSERT( int(b6.my_async_body_exec_count) == N, "local body execution count not N" ); + ASSERT( int(r[0].my_count) == 3*N+1, "counting receiver has not received 3N+1 items" ); + for (int i = 1; i < R; ++i) { + ASSERT( int(r[i].my_count) == 2*N+1, "counting receiver has not received 2N+1 items" ); + } +} template< typename Input, typename Output > -class AsyncActivity { +class async_activity { public: typedef Input input_type; typedef Output output_type; + typedef tbb::flow::async_node< input_type, output_type > async_node_type; typedef typename async_node_type::async_gateway_type async_gateway_type; + struct work_type { input_type input; async_gateway_type* callback; @@ -65,31 +276,31 @@ class AsyncActivity { class ServiceThreadBody { public: - ServiceThreadBody( AsyncActivity* activity ) : my_activity( activity ) {} + ServiceThreadBody( async_activity* activity ) : my_activity( activity ) {} void operator()() { my_activity->process(); } private: - AsyncActivity* my_activity; + async_activity* my_activity; }; - AsyncActivity() { + async_activity(int expected_items, int sleep_time = 50) : my_expected_items(expected_items), my_sleep_time(sleep_time) { my_quit = false; tbb::tbb_thread( ServiceThreadBody( this ) ).swap( my_service_thread ); } private: - AsyncActivity( const AsyncActivity& ) { - } + + async_activity( const async_activity& ) : my_expected_items(UNKNOWN_NUMBER_OF_ITEMS), my_sleep_time(0) { } public: - ~AsyncActivity() { + ~async_activity() { stop(); my_service_thread.join(); } - void submit( input_type input, async_gateway_type& callback ) { + void submit( const input_type &input, async_gateway_type& callback ) { work_type work = { input, &callback }; my_work_queue.push( work ); } @@ -98,16 +309,15 @@ class AsyncActivity { do { work_type work; if( my_work_queue.try_pop( work ) ) { - Harness::Sleep(500); - - ++async_activity_processed_signnals_count; - - async_result_type async_result; - async_result.signal = work.input.signal; - async_result.async_thread_id = tbb::this_tbb_thread::get_id(); - - work.callback->async_try_put( async_result ); - work.callback->async_commit(); + Harness::Sleep(my_sleep_time); + ++async_activity_processed_msg_count; + output_type output; + wrapper_helper::copy_value(work.input, output); + wrapper_helper::check(work.input, output); + work.callback->async_try_put(output); + if ( my_expected_items == UNKNOWN_NUMBER_OF_ITEMS || int(async_activity_processed_msg_count) == my_expected_items ) { + work.callback->async_commit(); + } } } while( my_quit == false || !my_work_queue.empty()); } @@ -116,7 +326,18 @@ class AsyncActivity { my_quit = true; } + bool should_reserve_each_time() { + if ( my_expected_items == UNKNOWN_NUMBER_OF_ITEMS ) + return true; + else + return false; + } + private: + + const int my_expected_items; + const int my_sleep_time; + tbb::concurrent_queue< work_type > my_work_queue; tbb::atomic< bool > my_quit; @@ -124,84 +345,279 @@ class AsyncActivity { tbb::tbb_thread my_service_thread; }; -class StartBody { +template +struct basic_test { + typedef Input input_type; + typedef Output output_type; + typedef tbb::flow::async_node< input_type, output_type > async_node_type; + typedef typename async_node_type::async_gateway_type async_gateway_type; + + class start_body_type { + typedef Input input_type; + public: + input_type operator()( int input ) { + return input_type(input); + } + }; + +#if !__TBB_LAMBDAS_PRESENT + class async_body_type { + typedef Input input_type; + typedef Output output_type; + typedef tbb::flow::async_node< input_type, output_type > async_node_type; + 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 ) { } + + 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() ) + my_node.async_reserve(); + } + + private: + async_activity_type* my_async_activity; + }; +#endif + + class end_body_type { + typedef Output output_type; + public: + void operator()( const output_type &input ) { + ++end_body_exec_count; + output_type output; + wrapper_helper::check(input, output); + } + }; + + basic_test() {} + public: - signal_type operator()( size_t input ) { - //Harness::Sleep(100); - signal_type output; - output.signal = input; - output.prev_task = &tbb::task::self(); - return output; + static int run(int async_expected_items = UNKNOWN_NUMBER_OF_ITEMS) { + async_activity my_async_activity(async_expected_items); + tbb::flow::graph g; + tbb::flow::function_node< int, input_type > start_node( g, tbb::flow::unlimited, start_body_type() ); +#if __TBB_LAMBDAS_PRESENT + 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() ) + 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 ); +#if __TBB_FLOW_GRAPH_CPP11_FEATURES + tbb::flow::make_edge( offload_node, end_node ); +#else + 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; + end_body_exec_count = 0; + + if (async_expected_items != UNKNOWN_NUMBER_OF_ITEMS ) { + offload_node.async_reserve(); + } + for (int i = 0; i < NUMBER_OF_MSGS; ++i) { + start_node.try_put(i); + } + g.wait_for_all(); + 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", + int(async_body_exec_count), int(async_activity_processed_msg_count), int(end_body_exec_count)); + return Harness::Done; } + }; +int test_copy_ctor() { + const int N = NUMBER_OF_MSGS; + async_body_exec_count = 0; -template< typename Output > -class AsyncBody { -public: - typedef AsyncActivity< signal_type, Output > async_activity_type; - - AsyncBody( async_activity_type* async_activity ) : my_async_activity( async_activity ) { - } + harness_counting_receiver r1; + harness_counting_receiver r2; - AsyncBody( const AsyncBody& other ) : my_async_activity( other.my_async_activity ) { - } + tbb::flow::graph g; + counting_async_node_type a(g, tbb::flow::unlimited, counting_async_body() ); + counting_async_node_type b(a); +#if __TBB_FLOW_GRAPH_CPP11_FEATURES + tbb::flow::make_edge(a, r1); + tbb::flow::make_edge(b, r2); +#else + tbb::flow::make_edge(tbb::flow::output_port<0>(a), r1); + tbb::flow::make_edge(tbb::flow::output_port<0>(b), r2); +#endif - void operator()( signal_type input, async_node_type::async_gateway_type& my_node ) { - ++async_body_exec_count; - - tbb::task* current_task = &tbb::task::self(); - ASSERT(input.prev_task != current_task, "async_node body was not executed in separate task"); - - input.prev_task = current_task; - my_async_activity->submit( input, my_node ); - my_node.async_reserve(); + for (int i = 0; i < N; ++i) { + a.try_put(i); } + g.wait_for_all(); -private: - async_activity_type* my_async_activity; -}; + REMARK("async_body_exec_count = %d\n", int(async_body_exec_count)); + REMARK("r1.my_count == %d and r2.my_count = %d\n", int(r1.my_count), int(r2.my_count)); + ASSERT( int(async_body_exec_count) == NUMBER_OF_MSGS, "AsyncBody procesed wrong number of signals" ); + ASSERT( int(r1.my_count) == N, "counting receiver r1 has not received N items" ); + ASSERT( int(r2.my_count) == 0, "counting receiver r2 has not received 0 items" ); -/* TODO: once the task_arena submit is possible, we need to check that - * the StartBody and EndBody run in the same arena. */ -class EndBody { -public: - void operator()( async_result_type input ) { - ASSERT( input.async_thread_id != tbb::this_tbb_thread::get_id(), "end_node body executed in service thread" ); - ++end_body_exec_count; + for (int i = 0; i < N; ++i) { + b.try_put(i); } -}; + g.wait_for_all(); -#endif // __TBB_PREVIEW_ASYNC_NODE + REMARK("async_body_exec_count = %d\n", int(async_body_exec_count)); + REMARK("r1.my_count == %d and r2.my_count = %d\n", int(r1.my_count), int(r2.my_count)); + ASSERT( int(async_body_exec_count) == 2*NUMBER_OF_MSGS, "AsyncBody procesed wrong number of signals" ); + ASSERT( int(r1.my_count) == N, "counting receiver r1 has not received N items" ); + ASSERT( int(r2.my_count) == N, "counting receiver r2 has not received N items" ); + return Harness::Done; +} -int TestMain() { -#if __TBB_PREVIEW_ASYNC_NODE - AsyncActivity< signal_type, async_result_type > async_activity; +tbb::atomic main_tid_count; - tbb::flow::graph g; +template +struct spin_test { + typedef Input input_type; + typedef Output output_type; + typedef tbb::flow::async_node< input_type, output_type > async_node_type; + typedef typename async_node_type::async_gateway_type async_gateway_type; - tbb::flow::function_node< size_t, signal_type > start_node( g, tbb::flow::unlimited, StartBody() ); + class start_body_type { + typedef Input input_type; + public: + input_type operator()( int input ) { + return input_type(input); + } + }; + +#if !__TBB_LAMBDAS_PRESENT + class async_body_type { + typedef Input input_type; + typedef Output output_type; + typedef tbb::flow::async_node< input_type, output_type > async_node_type; + typedef typename async_node_type::async_gateway_type async_gateway_type; + public: + typedef async_activity async_activity_type; - async_node_type async_node_obj( g, AsyncBody< async_result_type >( &async_activity ) ); + 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 ) { } - tbb::flow::function_node< async_result_type > end_node(g, tbb::flow::unlimited, EndBody() ); + 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() ) + my_node.async_reserve(); + } + + private: + async_activity_type* my_async_activity; + }; +#endif + + class end_body_type { + typedef Output output_type; + tbb::tbb_thread::id my_main_tid; + Harness::SpinBarrier *my_barrier; + public: + end_body_type(tbb::tbb_thread::id t, Harness::SpinBarrier &b) : my_main_tid(t), my_barrier(&b) { } + + void operator()( const output_type & ) { + ++end_body_exec_count; + if (tbb::this_tbb_thread::get_id() == my_main_tid) { + ++main_tid_count; + } + my_barrier->timed_wait_noerror(10); + } + }; - make_edge( start_node, async_node_obj ); - make_edge( async_node_obj, end_node ); + spin_test() {} + + static int run(int nthreads, int async_expected_items = UNKNOWN_NUMBER_OF_ITEMS) { + async_activity my_async_activity(async_expected_items, 0); + Harness::SpinBarrier spin_barrier(nthreads); + tbb::flow::graph g; + tbb::flow::function_node< int, input_type > start_node( g, tbb::flow::unlimited, start_body_type() ); +#if __TBB_LAMBDAS_PRESENT + 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() ) + 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::this_tbb_thread::get_id(), spin_barrier) ); + tbb::flow::make_edge( start_node, offload_node ); +#if __TBB_FLOW_GRAPH_CPP11_FEATURES + tbb::flow::make_edge( offload_node, end_node ); +#else + 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; + end_body_exec_count = 0; + main_tid_count = 0; - for (size_t i = 0; i < NUMBER_OF_SIGNALS; ++i) { - start_node.try_put( i ); + if (async_expected_items != UNKNOWN_NUMBER_OF_ITEMS ) { + offload_node.async_reserve(); + } + for (int i = 0; i < nthreads*NUMBER_OF_MSGS; ++i) { + start_node.try_put(i); + } + g.wait_for_all(); + ASSERT( async_body_exec_count == nthreads*NUMBER_OF_MSGS, "AsyncBody procesed wrong number of signals" ); + ASSERT( async_activity_processed_msg_count == nthreads*NUMBER_OF_MSGS, "AsyncActivity processed wrong number of signals" ); + ASSERT( end_body_exec_count == nthreads*NUMBER_OF_MSGS, "EndBody processed wrong number of signals"); + ASSERT_WARNING( main_tid_count != 0, "Main thread did not participate in end_body tasks"); + 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; } - g.wait_for_all(); +}; + +void test_for_spin_avoidance() { + spin_test::run(4); +} + +template< typename Input, typename Output > +int run_tests() { + basic_test::run(); + basic_test::run(NUMBER_OF_MSGS); + basic_test, place_wrapper >::run(); + basic_test, place_wrapper >::run(NUMBER_OF_MSGS); + return Harness::Done; +} - ASSERT( async_body_exec_count == NUMBER_OF_SIGNALS, "AsyncBody procesed wrong number of signals" ); - ASSERT( async_activity_processed_signnals_count == NUMBER_OF_SIGNALS, "AsyncActivity processed wrong number of signals" ); - ASSERT( end_body_exec_count == NUMBER_OF_SIGNALS, "EndBody processed wrong number of signals"); +#endif // __TBB_PREVIEW_ASYNC_NODE + +int TestMain() { +#if __TBB_PREVIEW_ASYNC_NODE + tbb::task_scheduler_init init(4); + run_tests(); + run_tests(); + run_tests(); + test_reset(); + test_copy_ctor(); + test_for_spin_avoidance(); return Harness::Done; #else return Harness::Skipped; #endif } + diff --git a/src/test/test_atomic.cpp b/src/test/test_atomic.cpp index 75ef987cca..4e3de015ba 100644 --- a/src/test/test_atomic.cpp +++ b/src/test/test_atomic.cpp @@ -486,11 +486,15 @@ namespace TestConstExprInitializationOfGlobalObjectsHelper{ } void CallExprInitTests(){ +# if __TBB_STATIC_CONSTEXPR_INIT_BROKEN + REPORT("Known issue: Compile-time initialization fails for static tbb::atomic variables\n"); +# else using namespace auto_registered_tests_helper; for (size_t i =0; i( arrIntInt ); -#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT +#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN typedef std::pair, int> ref_int_t; std::list arrRefInt; for ( std::list::iterator it = arrIntInt.begin(); it != arrIntInt.end(); ++it ) @@ -1277,7 +1277,7 @@ void TestCPP11Types() { TypeTester( arrIntRef ); #else REPORT("Known issue: C++11 reference wrapper tests are skipped.\n"); -#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT */ +#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN*/ typedef std::pair< const int, tbb::atomic > int_tbb_t; std::list arrIntTbb; diff --git a/src/test/test_concurrent_unordered_map.cpp b/src/test/test_concurrent_unordered_map.cpp index fe2e023847..ea9dad1e86 100644 --- a/src/test/test_concurrent_unordered_map.cpp +++ b/src/test/test_concurrent_unordered_map.cpp @@ -257,7 +257,7 @@ void TestTypes() { } TestTypesMap( arrIntTbb ); -#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT +#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN std::list< std::pair, int> > arrRefInt; for ( std::list< std::pair >::iterator it = arrIntInt.begin(); it != arrIntInt.end(); ++it ) arrRefInt.push_back( std::make_pair( std::reference_wrapper( it->first ), it->second ) ); @@ -269,7 +269,7 @@ void TestTypes() { arrIntRef.push_back( std::pair >( it->first, std::reference_wrapper( it->second ) ) ); } TestTypesMap( arrIntRef ); -#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT */ +#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN */ #if __TBB_CPP11_SMART_POINTERS_PRESENT std::list< std::pair< const std::shared_ptr, std::shared_ptr > > arrShrShr; diff --git a/src/test/test_concurrent_unordered_set.cpp b/src/test/test_concurrent_unordered_set.cpp index 454bb70b74..9f732d59ed 100644 --- a/src/test/test_concurrent_unordered_set.cpp +++ b/src/test/test_concurrent_unordered_set.cpp @@ -100,12 +100,12 @@ void TestTypes( ) { for ( std::list< tbb::atomic >::iterator it = arrTbb.begin(); it != arrTbb.end(); ++it, ++seq ) *it = seq; TestTypesSet( arrTbb ); -#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT +#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN std::list< std::reference_wrapper > arrRef; for ( std::list::iterator it = arrInt.begin( ); it != arrInt.end( ); ++it ) arrRef.push_back( std::reference_wrapper(*it) ); TestTypesSet( arrRef ); -#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT */ +#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN */ #if __TBB_CPP11_SMART_POINTERS_PRESENT std::list< std::shared_ptr > arrShr; diff --git a/src/test/test_concurrent_vector.cpp b/src/test/test_concurrent_vector.cpp index 2e68944be7..5e7564bd82 100644 --- a/src/test/test_concurrent_vector.cpp +++ b/src/test/test_concurrent_vector.cpp @@ -926,11 +926,19 @@ namespace test_move_in_shrink_to_fit_helpers { int i; dummy(int an_i) __TBB_NOTHROW : Harness::StateTrackable<>(0), i(an_i) {}; #if __TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN - dummy(dummy &&src) __TBB_NOTHROW : Harness::StateTrackable<>(std::move(src)), i(src.i) {}; - //somehow magically this declaration make std::is_nothrow_move_constructible::value to works correctly on icc14+msvc2013 + dummy(const dummy &src) __TBB_NOTHROW : Harness::StateTrackable<>(src), i(src.i) {}; + dummy(dummy &&src) __TBB_NOTHROW : Harness::StateTrackable<>(std::move(src)), i(src.i) {}; + + dummy& operator=(dummy &&src) __TBB_NOTHROW { + Harness::StateTrackable<>::operator=(std::move(src)); + i = src.i; + return *this; + } + + //somehow magically this declaration make std::is_nothrow_move_constructible::value to works correctly on icc14+msvc2013 ~dummy() __TBB_NOTHROW {}; #endif //__TBB_CPP11_IMPLICIT_MOVE_MEMBERS_GENERATION_BROKEN - friend bool operator== ( const dummy & lhs, const dummy & rhs){ return lhs.i == rhs.i; } + friend bool operator== (const dummy &lhs, const dummy &rhs){ return lhs.i == rhs.i; } }; } void TestSerialMoveInShrinkToFit(){ @@ -1676,14 +1684,14 @@ void TestTypes() { for ( int i=0; i( intArr ); -#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT +#if __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN std::vector< std::reference_wrapper > refArr; // The constructor of std::reference_wrapper from T& is explicit in some versions of libstdc++. for ( int i=0; i(intArr[i]) ); TypeTester( refArr ); #else REPORT( "Known issue: C++11 reference wrapper tests are skipped.\n" ); -#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT */ +#endif /* __TBB_CPP11_REFERENCE_WRAPPER_PRESENT && !__TBB_REFERENCE_WRAPPER_COMPILATION_BROKEN */ std::vector< tbb::atomic > tbbIntArr( NUMBER ); for ( int i=0; i::set(minus_one, -1); // Set ETS to construct "local" vectors pre-occupied with 25 "minus_one"s - ets_type vvs(25, minus_one, tbb::tbb_allocator()); + // Cast 25 to size_type to prevent Intel Compiler SFINAE compilation issues with gcc 5. + ets_type vvs( typename container_type::size_type(25), minus_one, tbb::tbb_allocator() ); ASSERT( vvs.empty(), NULL ); tbb::parallel_for ( tbb::blocked_range (0, N, RANGE_MIN), parallel_vector_for_body( vvs, allocator_name ) ); ASSERT( !vvs.empty(), NULL ); diff --git a/src/test/test_flow_graph_whitebox.cpp b/src/test/test_flow_graph_whitebox.cpp index b223de9914..b72e85176f 100644 --- a/src/test/test_flow_graph_whitebox.cpp +++ b/src/test/test_flow_graph_whitebox.cpp @@ -51,18 +51,6 @@ #include "tbb/task_scheduler_init.h" #include "harness_graph.h" -#define BACKOFF_WAIT(ex,msg) \ -{ \ - int wait_cnt = 0; \ - tbb::internal::atomic_backoff backoff; \ - do { \ - backoff.pause(); \ - ++wait_cnt; \ - } \ - while( (ex) && (wait_cnt < WAIT_MAX)); \ - ASSERT(wait_cnt < WAIT_MAX, msg); \ -} - template struct receiverBody { tbb::flow::continue_msg operator()(const T &/*in*/) { @@ -276,7 +264,7 @@ void TestFunctionNode() { qnode0.try_put(1); BACKOFF_WAIT(!serial_fn_state0,"rejecting function_node didn't start"); qnode0.try_put(2); // rejecting node should reject, reverse. - BACKOFF_WAIT(!fnode0.my_predecessors.empty(), "Missing predecessor ---"); + BACKOFF_WAIT(fnode0.my_predecessors.empty(), "Missing predecessor ---"); serial_fn_state0 = 2; // release function_node body. g.wait_for_all(); REMARK(" reset"); diff --git a/src/test/test_join_node.cpp b/src/test/test_join_node.cpp index 8277f1e273..66dbf51c79 100644 --- a/src/test/test_join_node.cpp +++ b/src/test/test_join_node.cpp @@ -18,17 +18,25 @@ reasons why the executable file might be covered by the GNU General Public License. */ +#if _MSC_VER +// Suppress "decorated name length exceeded, name was truncated" warning +#if __INTEL_COMPILER + #pragma warning( disable: 2586 ) +#else + #pragma warning( disable: 4503 ) +#endif +#endif + +#define TBB_PREVIEW_FLOW_GRAPH_FEATURES 1 #include "harness.h" +#include "harness_defs.h" #include "tbb/atomic.h" #include "harness_checktype.h" #include "tbb/flow_graph.h" #include "tbb/task_scheduler_init.h" -#if _MSC_VER && !defined(__INTEL_COMPILER) - // name truncated warning - #pragma warning( disable: 4503 ) -#endif +#define __TBB_MIC_OFFLOAD_TEST_COMPILATION_BROKEN __TBB_MIC_OFFLOAD const char *names[] = { "Adam", "Bruce", "Charles", "Daniel", "Evan", "Frederich", "George", "Hiram", "Ichabod", @@ -100,6 +108,77 @@ struct MyKeySecond { operator int() const { return (int)my_value; } }; +template +struct MyMessageKeyWithoutKey { + V my_value; + K my_message_key; + MyMessageKeyWithoutKey(int i=0, int v = 0) : my_value((V)v), my_message_key(index_to_key()(i)) { + } + void print_val() const { + REMARK("MyMessageKeyWithoutKey{");print_my_value(my_message_key); REMARK(","); print_my_value(my_value);REMARK("}"); + } + operator int() const { return (int)my_value; } + const K& key() const { + return my_message_key; + } +}; + +template +struct MyMessageKeyWithBrokenKey { + V my_value; + K my_key; + K my_message_key; + MyMessageKeyWithBrokenKey(int i=0, int v = 0) : my_value((V)v), my_key(), my_message_key(index_to_key()(i)) { + } + void print_val() const { + REMARK("MyMessageKeyWithBrokenKey{");print_my_value(my_message_key); REMARK(","); print_my_value(my_value);REMARK("}"); + } + operator int() const { return (int)my_value; } + const K& key() const { + return my_message_key; + } + +}; + +template +struct MyKeyWithBrokenMessageKey { + V my_value; + K my_key; + MyKeyWithBrokenMessageKey(int i=0, int v = 0) : my_value((V)v), my_key(index_to_key()(i)) { + } + void print_val() const { + REMARK("MyKeyWithBrokenMessageKey{");print_my_value(my_key); REMARK(","); print_my_value(my_value);REMARK("}"); + } + operator int() const { return (int)my_value; } + K key() const { + ASSERT(false, "The method should never be called"); + return K(); + } +}; + +template +struct MyMessageKeyWithoutKeyMethod { + V my_value; + K my_message_key; + MyMessageKeyWithoutKeyMethod(int i=0, int v = 0) : my_value((V)v), my_message_key(index_to_key()(i)) { + } + void print_val() const { + REMARK("MyMessageKeyWithoutKeyMethod{");print_my_value(my_message_key); REMARK(","); print_my_value(my_value);REMARK("}"); + } + operator int() const { return (int)my_value; } +#if __TBB_COMPLICATED_ADL_BROKEN + const K& key() const { return my_message_key; } +#endif + //K key() const; // Do not define +}; + +// Overload for MyMessageKeyWithoutKeyMethod +template +K key_from_message(const MyMessageKeyWithoutKeyMethod::type, V> &m) { + return m.my_message_key; +} + + // pattern for creating values in the tag_matching and key_matching, given an integer and the index in the tuple template struct make_thingie { @@ -108,17 +187,10 @@ struct make_thingie { } }; -template -struct make_thingie, INDEX> { - MyKeyFirst operator()(int const &i) { - return MyKeyFirst(i, i*(INDEX+1)); - } -}; - -template -struct make_thingie, INDEX> { - MyKeySecond operator()(int const &i) { - return MyKeySecond(i, i*(INDEX+1)); +template