From 615bb971db8784ab6c005a856e8ed3e8cea61d9b Mon Sep 17 00:00:00 2001 From: tbbdev Date: Tue, 19 Jun 2018 19:04:20 +0300 Subject: [PATCH] Committing TBB 2018 Update 5 source code --- CHANGES | 25 + README.md | 6 +- build/Makefile.tbbmalloc | 6 + build/macos.gcc.inc | 18 + doc/html/a00001.html | 59 - doc/html/a00002.html | 24 +- doc/html/a00003.html | 57 - doc/html/a00004.html | 22 +- doc/html/a00005.html | 59 - doc/html/a00006.html | 24 +- doc/html/a00007.html | 57 - doc/html/a00008.html | 27 +- doc/html/a00009.html | 144 - doc/html/a00009.png | Bin 1881 -> 0 bytes doc/html/a00010.html | 47 +- doc/html/a00011.html | 125 - doc/html/a00011.png | Bin 1067 -> 0 bytes doc/html/a00012.html | 126 +- doc/html/a00012.png | Bin 843 -> 0 bytes doc/html/a00013.html | 129 - doc/html/a00014.html | 61 +- doc/html/a00015.html | 95 - doc/html/a00016.html | 53 +- doc/html/a00017.html | 101 +- doc/html/a00017.png | Bin 1138 -> 1881 bytes doc/html/a00018.html | 24 +- doc/html/a00019.html | 74 +- doc/html/a00019.png | Bin 595 -> 1067 bytes doc/html/a00020.html | 111 +- doc/html/a00020.png | Bin 688 -> 843 bytes doc/html/a00021.html | 90 +- doc/html/{a00013.png => a00021.png} | Bin doc/html/a00022.html | 43 +- doc/html/a00023.html | 57 +- doc/html/a00024.html | 73 +- doc/html/a00024.png | Bin 2213 -> 0 bytes doc/html/a00025.html | 53 +- doc/html/a00025.png | Bin 1561 -> 1138 bytes doc/html/a00026.html | 285 +- doc/html/a00027.html | 91 +- doc/html/a00027.png | Bin 0 -> 595 bytes doc/html/a00028.html | 97 +- doc/html/a00028.png | Bin 0 -> 688 bytes doc/html/a00029.html | 21 +- doc/html/a00030.html | 52 +- doc/html/{a00022.png => a00030.png} | Bin doc/html/a00031.html | 22 +- doc/html/a00032.html | 74 +- doc/html/a00032.png | Bin 1110 -> 2213 bytes doc/html/a00033.html | 139 +- doc/html/a00033.png | Bin 0 -> 1561 bytes doc/html/a00034.html | 297 +- doc/html/a00035.html | 84 +- doc/html/a00036.html | 95 +- doc/html/a00037.html | 31 +- doc/html/a00037.png | Bin 1232 -> 0 bytes doc/html/a00038.html | 183 +- doc/html/a00038.png | Bin 835 -> 0 bytes doc/html/a00039.html | 68 +- doc/html/a00040.html | 54 +- doc/html/a00040.png | Bin 0 -> 1110 bytes doc/html/a00041.html | 426 +-- doc/html/a00041.png | Bin 766 -> 0 bytes doc/html/a00042.html | 1047 +------ doc/html/a00042.png | Bin 1052 -> 0 bytes doc/html/a00043.html | 56 +- doc/html/a00044.html | 572 +--- doc/html/{a00036.png => a00044.png} | Bin doc/html/a00045.html | 177 +- doc/html/a00045.png | Bin 872 -> 1232 bytes doc/html/a00046.html | 259 +- doc/html/a00046.png | Bin 2163 -> 835 bytes doc/html/a00047.html | 107 +- doc/html/a00048.html | 114 +- doc/html/a00048.png | Bin 2174 -> 0 bytes doc/html/a00049.html | 439 ++- doc/html/a00049.png | Bin 2109 -> 766 bytes doc/html/a00050.html | 1115 ++++++- doc/html/a00050.png | Bin 2095 -> 1052 bytes doc/html/a00051.html | 82 +- doc/html/{a00043.png => a00051.png} | Bin doc/html/a00052.html | 740 ++--- doc/html/a00053.html | 220 +- doc/html/a00053.png | Bin 1888 -> 872 bytes doc/html/a00054.html | 132 +- doc/html/a00054.png | Bin 0 -> 2163 bytes doc/html/a00055.html | 311 +- doc/html/a00055.png | Bin 1579 -> 0 bytes doc/html/a00056.html | 136 +- doc/html/a00056.png | Bin 621 -> 2174 bytes doc/html/a00057.html | 114 +- doc/html/a00057.png | Bin 0 -> 2109 bytes doc/html/a00058.html | 114 +- doc/html/a00058.png | Bin 0 -> 2095 bytes doc/html/a00059.html | 108 +- doc/html/a00060.html | 768 ++++- doc/html/{a00052.png => a00060.png} | Bin doc/html/a00061.html | 98 +- doc/html/a00061.png | Bin 0 -> 1888 bytes doc/html/a00062.html | 59 +- doc/html/a00063.html | 294 +- doc/html/a00063.png | Bin 1053 -> 1579 bytes doc/html/a00064.html | 237 +- doc/html/a00064.png | Bin 1259 -> 621 bytes doc/html/a00065.html | 108 +- doc/html/a00066.html | 58 +- doc/html/a00067.html | 92 +- doc/html/{a00059.png => a00067.png} | Bin doc/html/a00068.html | 37 +- doc/html/a00068.png | Bin 574 -> 0 bytes doc/html/a00069.html | 79 +- doc/html/a00070.html | 65 +- doc/html/a00071.html | 57 +- doc/html/a00071.png | Bin 839 -> 1053 bytes doc/html/a00072.html | 250 +- doc/html/a00072.png | Bin 0 -> 1259 bytes doc/html/a00073.html | 75 +- doc/html/a00074.html | 122 +- doc/html/{a00065.png => a00074.png} | Bin doc/html/a00075.html | 69 +- doc/html/a00076.html | 75 +- doc/html/a00077.html | 40 +- doc/html/a00077.png | Bin 495 -> 574 bytes doc/html/a00078.html | 124 +- doc/html/a00079.html | 42 +- doc/html/a00079.png | Bin 638 -> 0 bytes doc/html/a00080.html | 57 +- doc/html/a00080.png | Bin 966 -> 839 bytes doc/html/a00081.html | 63 +- doc/html/a00082.html | 79 +- doc/html/a00082.png | Bin 671 -> 0 bytes doc/html/a00083.html | 141 +- doc/html/a00084.html | 95 +- doc/html/{a00075.png => a00084.png} | Bin doc/html/a00085.html | 93 +- doc/html/a00086.html | 26 +- doc/html/a00086.png | Bin 489 -> 495 bytes doc/html/a00087.html | 219 +- doc/html/a00088.html | 127 +- doc/html/a00088.png | Bin 680 -> 638 bytes doc/html/a00089.html | 70 +- doc/html/a00089.png | Bin 1052 -> 966 bytes doc/html/a00090.html | 53 +- doc/html/a00090.png | Bin 704 -> 0 bytes doc/html/a00091.html | 60 +- doc/html/a00091.png | Bin 724 -> 671 bytes doc/html/a00092.html | 136 +- doc/html/a00093.html | 134 +- doc/html/a00093.png | Bin 1132 -> 0 bytes doc/html/a00094.html | 124 +- doc/html/a00094.png | Bin 1179 -> 0 bytes doc/html/a00095.html | 98 +- doc/html/a00095.png | Bin 1161 -> 489 bytes doc/html/a00096.html | 302 +- doc/html/{a00087.png => a00096.png} | Bin doc/html/a00097.html | 161 +- doc/html/a00097.png | Bin 0 -> 680 bytes doc/html/a00098.html | 115 +- doc/html/a00098.png | Bin 0 -> 1052 bytes doc/html/a00099.html | 98 +- doc/html/a00099.png | Bin 1158 -> 704 bytes doc/html/a00100.html | 53 +- doc/html/a00100.png | Bin 0 -> 724 bytes doc/html/a00101.html | 51 +- doc/html/a00102.html | 80 +- doc/html/a00102.png | Bin 1585 -> 1132 bytes doc/html/a00103.html | 102 +- doc/html/a00103.png | Bin 1284 -> 1179 bytes doc/html/a00104.html | 123 +- doc/html/a00104.png | Bin 871 -> 1161 bytes doc/html/a00105.html | 150 +- doc/html/a00106.html | 128 +- doc/html/a00107.html | 168 +- doc/html/a00108.html | 144 +- doc/html/a00108.png | Bin 0 -> 1158 bytes doc/html/a00109.html | 38 +- doc/html/a00110.html | 42 +- doc/html/{a00101.png => a00110.png} | Bin doc/html/a00111.html | 69 +- doc/html/a00111.png | Bin 754 -> 1585 bytes doc/html/a00112.html | 76 +- doc/html/a00112.png | Bin 776 -> 1284 bytes doc/html/a00113.html | 209 +- doc/html/a00113.png | Bin 657 -> 871 bytes doc/html/a00114.html | 41 +- doc/html/a00115.html | 98 +- doc/html/{a00106.png => a00115.png} | Bin doc/html/a00116.html | 122 +- doc/html/{a00107.png => a00116.png} | Bin doc/html/a00117.html | 101 +- doc/html/a00118.html | 43 +- doc/html/a00119.html | 24 +- doc/html/a00120.html | 68 +- doc/html/a00120.png | Bin 0 -> 754 bytes doc/html/a00121.html | 72 +- doc/html/a00121.png | Bin 0 -> 776 bytes doc/html/a00122.html | 188 +- doc/html/a00122.png | Bin 0 -> 657 bytes doc/html/a00123.html | 21 +- doc/html/a00124.html | 198 +- doc/html/a00124.png | Bin 1020 -> 0 bytes doc/html/a00125.html | 50 +- doc/html/a00125.png | Bin 1063 -> 0 bytes doc/html/a00126.html | 118 +- doc/html/a00126.png | Bin 766 -> 0 bytes doc/html/a00127.html | 24 +- doc/html/a00128.html | 24 +- doc/html/a00129.html | 25 +- doc/html/a00130.html | 278 +- doc/html/a00130.png | Bin 616 -> 0 bytes doc/html/a00131.html | 101 +- doc/html/a00132.html | 45 +- doc/html/a00133.html | 240 +- doc/html/a00133.png | Bin 622 -> 1020 bytes doc/html/a00134.html | 73 +- doc/html/a00134.png | Bin 798 -> 1063 bytes doc/html/a00135.html | 189 +- doc/html/a00135.png | Bin 655 -> 766 bytes doc/html/a00136.html | 68 +- doc/html/a00136.png | Bin 645 -> 0 bytes doc/html/a00137.html | 48 +- doc/html/a00137.png | Bin 574 -> 0 bytes doc/html/a00138.html | 68 +- doc/html/a00138.png | Bin 542 -> 0 bytes doc/html/a00139.html | 301 +- doc/html/a00139.png | Bin 594 -> 616 bytes doc/html/a00140.html | 180 +- doc/html/a00140.png | Bin 651 -> 0 bytes doc/html/a00141.html | 58 +- doc/html/a00141.png | Bin 743 -> 0 bytes doc/html/a00142.html | 97 +- doc/html/a00142.png | Bin 604 -> 622 bytes doc/html/a00143.html | 47 +- doc/html/a00143.png | Bin 839 -> 798 bytes doc/html/a00144.html | 274 +- doc/html/a00144.png | Bin 973 -> 655 bytes doc/html/a00145.html | 144 +- doc/html/a00145.png | Bin 729 -> 574 bytes doc/html/a00146.html | 188 +- doc/html/a00146.png | Bin 777 -> 743 bytes doc/html/a00147.html | 104 +- doc/html/a00147.png | Bin 961 -> 645 bytes doc/html/a00148.html | 92 +- doc/html/a00148.png | Bin 0 -> 594 bytes doc/html/a00149.html | 392 +-- doc/html/a00149.png | Bin 656 -> 651 bytes doc/html/a00150.html | 119 +- doc/html/a00150.png | Bin 891 -> 542 bytes doc/html/a00151.html | 90 +- doc/html/a00151.png | Bin 1324 -> 604 bytes doc/html/a00152.html | 55 +- doc/html/a00152.png | Bin 0 -> 839 bytes doc/html/a00153.html | 169 +- doc/html/a00153.png | Bin 538 -> 973 bytes doc/html/a00154.html | 134 +- doc/html/a00154.png | Bin 620 -> 729 bytes doc/html/a00155.html | 219 +- doc/html/a00155.png | Bin 565 -> 777 bytes doc/html/a00156.html | 263 +- doc/html/a00156.png | Bin 906 -> 961 bytes doc/html/a00157.html | 141 +- doc/html/a00157.png | Bin 906 -> 0 bytes doc/html/a00158.html | 461 ++- doc/html/a00158.png | Bin 0 -> 656 bytes doc/html/a00159.html | 113 +- doc/html/a00159.png | Bin 0 -> 891 bytes doc/html/a00160.html | 218 +- doc/html/a00160.png | Bin 1423 -> 1324 bytes doc/html/a00161.html | 73 +- doc/html/a00162.html | 159 +- doc/html/a00162.png | Bin 0 -> 538 bytes doc/html/a00163.html | 112 +- doc/html/a00163.png | Bin 757 -> 620 bytes doc/html/a00164.html | 177 +- doc/html/a00164.png | Bin 794 -> 565 bytes doc/html/a00165.html | 255 +- doc/html/a00165.png | Bin 815 -> 906 bytes doc/html/a00166.html | 166 +- doc/html/a00166.png | Bin 857 -> 906 bytes doc/html/a00167.html | 130 +- doc/html/a00168.html | 65 +- doc/html/a00169.html | 276 +- doc/html/a00169.png | Bin 2153 -> 1423 bytes doc/html/a00170.html | 156 +- doc/html/a00171.html | 144 +- doc/html/a00172.html | 116 +- doc/html/a00172.png | Bin 0 -> 757 bytes doc/html/a00173.html | 57 +- doc/html/a00173.png | Bin 468 -> 794 bytes doc/html/a00174.html | 113 +- doc/html/a00174.png | Bin 638 -> 815 bytes doc/html/a00175.html | 89 +- doc/html/a00175.png | Bin 679 -> 857 bytes doc/html/a00176.html | 80 + doc/html/{a00167.png => a00176.png} | Bin doc/html/a00177.html | 101 + doc/html/a00178.html | 172 ++ doc/html/a00178.png | Bin 0 -> 2153 bytes doc/html/a00179.html | 153 + doc/html/{a00170.png => a00179.png} | Bin doc/html/a00180.html | 69 + doc/html/{a00277.html => a00181.html} | 31 +- doc/html/{a00270.html => a00182.html} | 45 +- doc/html/a00182.png | Bin 0 -> 468 bytes doc/html/a00183.html | 133 + doc/html/a00183.png | Bin 0 -> 638 bytes doc/html/a00184.html | 102 + doc/html/a00184.png | Bin 0 -> 679 bytes doc/html/{a00194.html => a00203.html} | 79 +- doc/html/{a00199.html => a00208.html} | 33 +- doc/html/{a00218.html => a00227.html} | 58 +- doc/html/{a00237.html => a00246.html} | 8 +- doc/html/{a00240.html => a00249.html} | 515 ++-- doc/html/a00260.html | 2743 ----------------- doc/html/a00261.html | 67 - doc/html/a00262.html | 382 --- doc/html/a00263.html | 125 - doc/html/a00264.html | 52 - doc/html/a00265.html | 52 - doc/html/a00268.html | 65 - doc/html/a00271.html | 2729 +++++++++++++++- doc/html/a00272.html | 67 +- doc/html/a00273.html | 375 ++- doc/html/a00274.html | 121 +- doc/html/a00275.html | 55 +- doc/html/a00276.html | 37 +- doc/html/a00278.html | 14 +- doc/html/a00279.html | 31 +- doc/html/a00280.html | 46 +- doc/html/a00281.html | 92 +- doc/html/a00282.html | 18 +- doc/html/a00283.html | 43 +- doc/html/a00284.html | 28 +- doc/html/a00285.html | 27 +- doc/html/a00286.html | 35 +- doc/html/a00287.html | 15 +- doc/html/a00288.html | 21 +- doc/html/a00289.html | 12 +- doc/html/a00290.html | 24 +- doc/html/a00291.html | 46 +- doc/html/a00292.html | 93 +- doc/html/a00293.html | 19 +- doc/html/a00294.html | 39 +- doc/html/a00295.html | 29 +- doc/html/a00296.html | 19 +- doc/html/a00297.html | 22 +- doc/html/a00298.html | 20 +- doc/html/a00299.html | 26 +- doc/html/a00300.html | 23 +- doc/html/a00301.html | 19 +- doc/html/a00302.html | 31 +- doc/html/a00303.html | 16 +- doc/html/a00304.html | 18 +- doc/html/a00305.html | 23 +- doc/html/a00306.html | 31 +- doc/html/a00307.html | 22 +- doc/html/a00308.html | 33 +- doc/html/a00309.html | 27 +- doc/html/a00310.html | 24 +- doc/html/a00311.html | 38 +- doc/html/a00312.html | 29 +- doc/html/a00313.html | 40 +- doc/html/a00314.html | 34 +- doc/html/a00315.html | 14 +- doc/html/a00316.html | 14 +- doc/html/a00317.html | 20 +- doc/html/a00318.html | 29 +- doc/html/a00319.html | 28 +- doc/html/a00320.html | 25 +- doc/html/a00321.html | 17 +- doc/html/a00322.html | 28 +- doc/html/a00323.html | 23 +- doc/html/a00324.html | 22 +- doc/html/a00325.html | 34 +- doc/html/a00326.html | 12 +- doc/html/a00327.html | 20 +- doc/html/a00328.html | 24 +- doc/html/a00329.html | 36 +- doc/html/a00330.html | 15 +- doc/html/a00331.html | 23 +- doc/html/a00332.html | 36 +- doc/html/a00333.html | 46 +- doc/html/a00334.html | 48 +- doc/html/a00335.html | 14 +- doc/html/a00336.html | 16 +- doc/html/a00337.html | 26 +- doc/html/a00338.html | 21 +- doc/html/a00339.html | 35 +- doc/html/a00340.html | 63 +- doc/html/a00341.html | 28 +- doc/html/a00342.html | 21 +- doc/html/a00343.html | 38 +- doc/html/a00344.html | 61 +- doc/html/a00345.html | 63 +- doc/html/a00346.html | 33 +- doc/html/a00347.html | 35 +- doc/html/a00348.html | 46 +- doc/html/a00349.html | 19 +- doc/html/a00350.html | 26 +- doc/html/a00351.html | 52 +- doc/html/a00352.html | 27 +- doc/html/a00353.html | 20 +- doc/html/a00354.html | 21 +- doc/html/a00355.html | 35 +- doc/html/a00356.html | 45 +- doc/html/a00357.html | 53 +- doc/html/a00358.html | 31 +- doc/html/a00359.html | 32 +- doc/html/a00360.html | 28 +- doc/html/a00361.html | 28 +- doc/html/a00362.html | 20 +- doc/html/a00363.html | 20 +- doc/html/a00364.html | 19 +- doc/html/a00365.html | 105 +- doc/html/a00366.html | 28 +- doc/html/a00367.html | 30 +- doc/html/a00368.html | 37 +- doc/html/a00369.html | 15 +- doc/html/a00370.html | 23 +- doc/html/a00371.html | 33 +- doc/html/a00372.html | 52 +- doc/html/a00373.html | 26 +- doc/html/a00374.html | 47 +- doc/html/a00375.html | 38 +- doc/html/a00376.html | 106 +- doc/html/a00377.html | 47 +- doc/html/a00378.html | 38 +- doc/html/a00379.html | 28 +- doc/html/a00380.html | 19 +- doc/html/a00381.html | 27 +- doc/html/a00382.html | 22 +- doc/html/a00383.html | 39 +- doc/html/a00384.html | 28 +- doc/html/a00385.html | 43 +- doc/html/a00386.html | 42 +- doc/html/a00387.html | 23 +- doc/html/a00388.html | 77 +- doc/html/a00389.html | 54 +- doc/html/a00390.html | 48 +- doc/html/a00391.html | 16 +- doc/html/a00392.html | 26 +- doc/html/a00393.html | 13 +- doc/html/a00394.html | 13 +- doc/html/a00395.html | 21 +- doc/html/a00396.html | 15 +- doc/html/a00397.html | 24 +- doc/html/a00398.html | 30 +- doc/html/a00399.html | 65 +- doc/html/a00400.html | 38 +- doc/html/a00401.html | 45 +- doc/html/a00402.html | 13 +- doc/html/a00403.html | 41 +- doc/html/a00404.html | 18 +- doc/html/a00405.html | 17 +- doc/html/a00406.html | 21 +- doc/html/a00407.html | 14 +- doc/html/a00408.html | 20 +- doc/html/a00409.html | 37 +- doc/html/a00410.html | 34 +- doc/html/a00411.html | 26 +- doc/html/a00412.html | 23 +- doc/html/a00413.html | 17 +- doc/html/a00414.html | 36 +- doc/html/a00415.html | 24 +- doc/html/a00416.html | 34 +- doc/html/a00417.html | 31 +- doc/html/a00418.html | 39 +- doc/html/{a00267.html => a00419.html} | 14 +- doc/html/a00420.html | 67 + doc/html/a00421.html | 65 + doc/html/a00422.html | 61 + doc/html/{a00269.html => a00423.html} | 14 +- doc/html/a00424.html | 61 + doc/html/a00425.html | 62 + doc/html/a00426.html | 63 + doc/html/a00427.html | 75 + doc/html/a00428.html | 68 + doc/html/a00429.html | 62 + doc/html/a00430.html | 83 + doc/html/annotated.html | 347 +-- doc/html/classes.html | 116 +- .../dir_525f2cc589630bacbdc3bb450847427e.html | 4 +- .../dir_63fb2cc293d133785b96e521fa051167.html | 4 +- .../dir_87119f26c7695cbc270003e99bc7f49f.html | 128 +- .../dir_b9976680b2be72d2d0b8fca1c31202a2.html | 4 +- doc/html/doxygen.css | 177 +- doc/html/files.html | 10 +- doc/html/functions.html | 52 +- doc/html/functions_0x62.html | 30 +- doc/html/functions_0x63.html | 74 +- doc/html/functions_0x64.html | 44 +- doc/html/functions_0x65.html | 82 +- doc/html/functions_0x66.html | 20 +- doc/html/functions_0x67.html | 20 +- doc/html/functions_0x68.html | 6 +- doc/html/functions_0x69.html | 50 +- doc/html/functions_0x6a.html | 6 +- doc/html/functions_0x6c.html | 26 +- doc/html/functions_0x6d.html | 38 +- doc/html/functions_0x6e.html | 16 +- doc/html/functions_0x6f.html | 52 +- doc/html/functions_0x70.html | 36 +- doc/html/functions_0x71.html | 8 +- doc/html/functions_0x72.html | 88 +- doc/html/functions_0x73.html | 80 +- doc/html/functions_0x74.html | 92 +- doc/html/functions_0x75.html | 20 +- doc/html/functions_0x76.html | 18 +- doc/html/functions_0x77.html | 10 +- doc/html/functions_0x7e.html | 62 +- doc/html/functions_enum.html | 12 +- doc/html/functions_eval.html | 22 +- doc/html/functions_func.html | 44 +- doc/html/functions_func_0x62.html | 26 +- doc/html/functions_func_0x63.html | 66 +- doc/html/functions_func_0x64.html | 36 +- doc/html/functions_func_0x65.html | 58 +- doc/html/functions_func_0x66.html | 12 +- doc/html/functions_func_0x67.html | 20 +- doc/html/functions_func_0x68.html | 6 +- doc/html/functions_func_0x69.html | 36 +- doc/html/functions_func_0x6a.html | 6 +- doc/html/functions_func_0x6c.html | 24 +- doc/html/functions_func_0x6d.html | 30 +- doc/html/functions_func_0x6e.html | 12 +- doc/html/functions_func_0x6f.html | 46 +- doc/html/functions_func_0x70.html | 26 +- doc/html/functions_func_0x71.html | 8 +- doc/html/functions_func_0x72.html | 78 +- doc/html/functions_func_0x73.html | 62 +- doc/html/functions_func_0x74.html | 92 +- doc/html/functions_func_0x75.html | 20 +- doc/html/functions_func_0x77.html | 10 +- doc/html/functions_func_0x7e.html | 62 +- doc/html/functions_rela.html | 16 +- doc/html/functions_type.html | 88 +- doc/html/functions_vars.html | 32 +- doc/html/globals.html | 26 +- doc/html/globals_func.html | 26 +- doc/html/hierarchy.html | 415 +-- doc/html/index.html | 6 +- doc/html/modules.html | 16 +- doc/html/namespacemembers.html | 38 +- doc/html/namespacemembers_enum.html | 8 +- doc/html/namespacemembers_eval.html | 12 +- doc/html/namespacemembers_func.html | 22 +- doc/html/namespacemembers_type.html | 8 +- doc/html/namespaces.html | 8 +- doc/html/nav_g.png | Bin 95 -> 108 bytes doc/html/pages.html | 6 +- include/tbb/concurrent_hash_map.h | 2 +- include/tbb/concurrent_vector.h | 6 +- include/tbb/internal/_concurrent_queue_impl.h | 2 +- .../tbb/internal/_concurrent_unordered_impl.h | 2 +- include/tbb/internal/_tbb_strings.h | 2 + .../tbb/machine/{gcc_armv7.h => gcc_arm.h} | 31 +- include/tbb/task.h | 4 +- include/tbb/tbb_allocator.h | 2 +- include/tbb/tbb_machine.h | 4 +- include/tbb/tbb_profiling.h | 51 + include/tbb/tbb_stddef.h | 2 +- src/old/concurrent_queue_v2.cpp | 2 +- src/old/concurrent_vector_v2.cpp | 2 +- src/rml/test/test_server.h | 2 +- src/tbb/concurrent_queue.cpp | 2 +- src/tbb/dynamic_link.cpp | 2 +- src/tbb/private_server.cpp | 4 +- src/tbb/task_group_context.cpp | 9 +- src/tbbmalloc/MapMemory.h | 110 +- src/tbbmalloc/backend.cpp | 89 +- src/tbbmalloc/backref.cpp | 8 +- src/tbbmalloc/frontend.cpp | 29 +- src/tbbmalloc/proxy.cpp | 40 +- src/tbbmalloc/shared_utils.h | 49 +- src/tbbmalloc/tbbmalloc_internal.h | 251 +- src/test/harness_graph.h | 2 +- src/test/harness_memory.h | 32 + src/test/test_ScalableAllocator.cpp | 4 +- src/test/test_allocator.h | 2 +- src/test/test_atomic.cpp | 3 +- src/test/test_cache_aligned_allocator.cpp | 2 +- src/test/test_concurrent_hash_map.cpp | 5 +- src/test/test_concurrent_unordered_common.h | 4 +- src/test/test_concurrent_vector.cpp | 1 + src/test/test_eh_tasks.cpp | 2 +- src/test/test_malloc_lib_unload.cpp | 36 +- src/test/test_malloc_whitebox.cpp | 109 +- src/test/test_parallel_for.cpp | 2 +- src/test/test_parallel_invoke.cpp | 1 + src/test/test_tbb_version.cpp | 2 +- 590 files changed, 21419 insertions(+), 20702 deletions(-) delete mode 100644 doc/html/a00001.html delete mode 100644 doc/html/a00003.html delete mode 100644 doc/html/a00005.html delete mode 100644 doc/html/a00007.html delete mode 100644 doc/html/a00009.html delete mode 100644 doc/html/a00009.png delete mode 100644 doc/html/a00011.html delete mode 100644 doc/html/a00011.png delete mode 100644 doc/html/a00012.png delete mode 100644 doc/html/a00013.html delete mode 100644 doc/html/a00015.html rename doc/html/{a00013.png => a00021.png} (100%) delete mode 100644 doc/html/a00024.png create mode 100644 doc/html/a00027.png create mode 100644 doc/html/a00028.png rename doc/html/{a00022.png => a00030.png} (100%) create mode 100644 doc/html/a00033.png delete mode 100644 doc/html/a00037.png delete mode 100644 doc/html/a00038.png create mode 100644 doc/html/a00040.png delete mode 100644 doc/html/a00041.png delete mode 100644 doc/html/a00042.png rename doc/html/{a00036.png => a00044.png} (100%) delete mode 100644 doc/html/a00048.png rename doc/html/{a00043.png => a00051.png} (100%) create mode 100644 doc/html/a00054.png delete mode 100644 doc/html/a00055.png create mode 100644 doc/html/a00057.png create mode 100644 doc/html/a00058.png rename doc/html/{a00052.png => a00060.png} (100%) create mode 100644 doc/html/a00061.png rename doc/html/{a00059.png => a00067.png} (100%) delete mode 100644 doc/html/a00068.png create mode 100644 doc/html/a00072.png rename doc/html/{a00065.png => a00074.png} (100%) delete mode 100644 doc/html/a00079.png delete mode 100644 doc/html/a00082.png rename doc/html/{a00075.png => a00084.png} (100%) delete mode 100644 doc/html/a00090.png delete mode 100644 doc/html/a00093.png delete mode 100644 doc/html/a00094.png rename doc/html/{a00087.png => a00096.png} (100%) create mode 100644 doc/html/a00097.png create mode 100644 doc/html/a00098.png create mode 100644 doc/html/a00100.png create mode 100644 doc/html/a00108.png rename doc/html/{a00101.png => a00110.png} (100%) rename doc/html/{a00106.png => a00115.png} (100%) rename doc/html/{a00107.png => a00116.png} (100%) create mode 100644 doc/html/a00120.png create mode 100644 doc/html/a00121.png create mode 100644 doc/html/a00122.png delete mode 100644 doc/html/a00124.png delete mode 100644 doc/html/a00125.png delete mode 100644 doc/html/a00126.png delete mode 100644 doc/html/a00130.png delete mode 100644 doc/html/a00136.png delete mode 100644 doc/html/a00137.png delete mode 100644 doc/html/a00138.png delete mode 100644 doc/html/a00140.png delete mode 100644 doc/html/a00141.png create mode 100644 doc/html/a00148.png create mode 100644 doc/html/a00152.png delete mode 100644 doc/html/a00157.png create mode 100644 doc/html/a00158.png create mode 100644 doc/html/a00159.png create mode 100644 doc/html/a00162.png create mode 100644 doc/html/a00172.png create mode 100644 doc/html/a00176.html rename doc/html/{a00167.png => a00176.png} (100%) create mode 100644 doc/html/a00177.html create mode 100644 doc/html/a00178.html create mode 100644 doc/html/a00178.png create mode 100644 doc/html/a00179.html rename doc/html/{a00170.png => a00179.png} (100%) create mode 100644 doc/html/a00180.html rename doc/html/{a00277.html => a00181.html} (56%) rename doc/html/{a00270.html => a00182.html} (52%) create mode 100644 doc/html/a00182.png create mode 100644 doc/html/a00183.html create mode 100644 doc/html/a00183.png create mode 100644 doc/html/a00184.html create mode 100644 doc/html/a00184.png rename doc/html/{a00194.html => a00203.html} (80%) rename doc/html/{a00199.html => a00208.html} (81%) rename doc/html/{a00218.html => a00227.html} (86%) rename doc/html/{a00237.html => a00246.html} (97%) rename doc/html/{a00240.html => a00249.html} (83%) delete mode 100644 doc/html/a00260.html delete mode 100644 doc/html/a00261.html delete mode 100644 doc/html/a00262.html delete mode 100644 doc/html/a00263.html delete mode 100644 doc/html/a00264.html delete mode 100644 doc/html/a00265.html delete mode 100644 doc/html/a00268.html rename doc/html/{a00267.html => a00419.html} (70%) create mode 100644 doc/html/a00420.html create mode 100644 doc/html/a00421.html create mode 100644 doc/html/a00422.html rename doc/html/{a00269.html => a00423.html} (65%) 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 rename include/tbb/machine/{gcc_armv7.h => gcc_arm.h} (95%) diff --git a/CHANGES b/CHANGES index 3a4f9a5b5d..9d3da0b410 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,31 @@ The list of most significant changes made over time in Intel(R) Threading Building Blocks (Intel(R) TBB). +Intel TBB 2018 Update 5 +TBB_INTERFACE_VERSION == 10005 + +Changes (w.r.t. Intel TBB 2018 Update 4): + +Preview Features: + +- Added user event tracing API for Intel(R) VTune(TM) Amplifier and + Flow Graph Analyzer. + +Bugs fixed: + +- Fixed the memory allocator to properly support transparent huge pages. +- Removed dynamic exception specifications in tbbmalloc_proxy for C++11 + and later (https://github.com/01org/tbb/issues/41). +- Added -flifetime-dse=1 option when building with GCC on macOS* + (https://github.com/01org/tbb/issues/60). + +Open-source contributions integrated: + +- Added ARMv8 support by Siddhesh Poyarekar. +- Avoid GCC warnings for clearing an object of non-trivial type + (https://github.com/01org/tbb/issues/54) by Daniel Arndt. + +------------------------------------------------------------------------ Intel TBB 2018 Update 4 TBB_INTERFACE_VERSION == 10004 diff --git a/README.md b/README.md index ef2d29273c..b22655b42a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Intel(R) Threading Building Blocks 2018 Update 4 -[![Stable release](https://img.shields.io/badge/version-2018_U4-green.svg)](https://github.com/01org/tbb/releases/tag/2018_U4) +# Intel(R) Threading Building Blocks 2018 Update 5 +[![Stable release](https://img.shields.io/badge/version-2018_U5-green.svg)](https://github.com/01org/tbb/releases/tag/2018_U5) [![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE) Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take @@ -8,6 +8,8 @@ full advantage of multicore performance, that are portable, composable and have ## Release Information Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues). +Since [2018 U5](https://github.com/01org/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component. + ## Documentation * Intel(R) TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial) * Intel(R) TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation) diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc index 68d6dcb693..5b904f83ed 100644 --- a/build/Makefile.tbbmalloc +++ b/build/Makefile.tbbmalloc @@ -175,6 +175,12 @@ $(MALLOC_ADD_DLL_TESTS): %.$(TEST_EXT): %_dll.$(DLL) $(MALLOC_ADD_DLL_TESTS): TEST_LIBS+=$(@:.$(TEST_EXT)=_dll.$(LIBEXT)) endif +# test_malloc_pure_c is intended to be compiled by CONLY +# compiler. Hence cannot include any C++-compiler options. +# TODO: separate C and C++ compiler options (i.e. C_FLAGS and CPLUS_FLAGS). +test_malloc_pure_c.$(TEST_EXT): CPLUS_FLAGS := $(subst -Woverloaded-virtual,,$(CPLUS_FLAGS)) +test_malloc_pure_c.$(TEST_EXT): CPLUS_FLAGS := $(subst -Wnon-virtual-dtor,,$(CPLUS_FLAGS)) + test_malloc_over%.$(TEST_EXT): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS)) test_malloc_over%.$(TEST_EXT): INCLUDES=$(M_INCLUDES) test_malloc_overload_proxy.$(TEST_EXT): LINK_FLAGS+=$(LIBDL) diff --git a/build/macos.gcc.inc b/build/macos.gcc.inc index d8e563d8f8..10fe1cf150 100644 --- a/build/macos.gcc.inc +++ b/build/macos.gcc.inc @@ -38,6 +38,24 @@ LINK_FLAGS = LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY) C_FLAGS = $(CPLUS_FLAGS) +# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them +ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])")) + RTM_KEY = -mrtm +endif + +# gcc 5.0 and later have -Wsuggest-override option +# enable it via a pre-included header in order to limit to C++11 and above +ifneq (,$(shell gcc -dumpversion | egrep "^([5-9])")) + INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h +endif + +# gcc 6.0 and later have -flifetime-dse option that controls +# elimination of stores done outside the object lifetime +ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])")) + # keep pre-contruction stores for zero initialization + DSE_KEY = -flifetime-dse=1 +endif + ifeq ($(cfg), release) CPLUS_FLAGS = -g -O2 else diff --git a/doc/html/a00001.html b/doc/html/a00001.html deleted file mode 100644 index aefe391cbf..0000000000 --- a/doc/html/a00001.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Requirements on range concept - - - - - - -
- - - - -
-
-
-
Requirements on range concept
-
-
-

Class R implementing the concept of range must define:

-
    -
  • R::R( const R& );
    -
    Copy constructor
  • -
  • R::~R();
    -
    Destructor
  • -
  • bool R::is_divisible() const;
    -
    True if range can be partitioned into two subranges
  • -
  • bool R::empty() const;
    -
    True if range is empty
  • -
  • R::R( R& r, split );
    -
    Split range r into two subranges.
  • -
-
-
-

-Copyright © 2005-2018 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/a00002.html b/doc/html/a00002.html index 0a9cbbf84a..fc7b19c7a7 100644 --- a/doc/html/a00002.html +++ b/doc/html/a00002.html @@ -3,8 +3,8 @@ - -Requirements on parallel_for body + +Requirements on range concept @@ -13,7 +13,7 @@
- +
-
Requirements on parallel_for body
+
Requirements on range concept
-

Class Body implementing the concept of parallel_for body must define:

+

Class R implementing the concept of range must define:

    -
  • Body::Body( const Body& );
    +
  • R::R( const R& );
    Copy constructor
  • -
  • Body::~Body();
    +
  • R::~R();
    Destructor
  • -
  • void Body::operator()( Range& r ) const;
    -
    Function call operator applying the body to range r.
  • +
  • bool R::is_divisible() const;
    +
    True if range can be partitioned into two subranges
  • +
  • bool R::empty() const;
    +
    True if range is empty
  • +
  • R::R( R& r, split );
    +
    Split range r into two subranges.

diff --git a/doc/html/a00003.html b/doc/html/a00003.html deleted file mode 100644 index a0f7d3d930..0000000000 --- a/doc/html/a00003.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -Requirements on parallel_reduce body - - - - - - - -
-
-
Requirements on parallel_reduce body
-
-
-

Class Body implementing the concept of parallel_reduce body must define:

-
    -
  • Body::Body( Body&, split );
    -
    Splitting constructor. Must be able to run concurrently with operator() and method join
  • -
  • Body::~Body();
    -
    Destructor
  • -
  • void Body::operator()( Range& r );
    -
    Function call operator applying body to range r and accumulating the result
  • -
  • void Body::join( Body& b );
    -
    Join results. The result in b should be merged into the result of this
  • -
-
-
-

-Copyright © 2005-2018 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/a00004.html b/doc/html/a00004.html index 4443651441..4f1498c434 100644 --- a/doc/html/a00004.html +++ b/doc/html/a00004.html @@ -3,8 +3,8 @@ - -Requirements on parallel_reduce anonymous function objects (lambda functions) + +Requirements on parallel_for body @@ -13,7 +13,7 @@
- + +
-
Requirements on parallel_reduce anonymous function objects (lambda functions)
+
Requirements on parallel_for body
-

TO BE DOCUMENTED

+

Class Body implementing the concept of parallel_for body must define:

+
    +
  • Body::Body( const Body& );
    +
    Copy constructor
  • +
  • Body::~Body();
    +
    Destructor
  • +
  • void Body::operator()( Range& r ) const;
    +
    Function call operator applying the body to range r.
  • +

diff --git a/doc/html/a00005.html b/doc/html/a00005.html deleted file mode 100644 index b20bb20670..0000000000 --- a/doc/html/a00005.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - -Requirements on parallel_scan body - - - - - - - -
-
-
Requirements on parallel_scan body
-
-
-

Class Body implementing the concept of parallel_scan body must define:

-
    -
  • Body::Body( Body&, split );
    -
    Splitting constructor. Split b so that this and b can accumulate separately
  • -
  • Body::~Body();
    -
    Destructor
  • -
  • void Body::operator()( const Range& r, pre_scan_tag );
    -
    Preprocess iterations for range r
  • -
  • void Body::operator()( const Range& r, final_scan_tag );
    -
    Do final processing for iterations of range r
  • -
  • void Body::reverse_join( Body& a );
    -
    Merge preprocessing state of a into this, where a was created earlier from b by b's splitting constructor
  • -
-
-
-

-Copyright © 2005-2018 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/a00006.html b/doc/html/a00006.html index 0e777ca2f1..c6d0287098 100644 --- a/doc/html/a00006.html +++ b/doc/html/a00006.html @@ -3,8 +3,8 @@ - -Requirements on iterators for parallel_sort + +Requirements on parallel_reduce body @@ -13,7 +13,7 @@
-
Requirements on iterators for parallel_sort
+
Requirements on parallel_reduce body
-

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

+

Class Body implementing the concept of parallel_reduce body must define:

    -
  • void iter_swap( It a, It b )
    -
    Swaps the values of the elements the given iterators a and b are pointing to. It should be a random access iterator.
  • -
  • bool Compare::operator()( const T& x, const T& y )
    -
    True if x comes before y;
  • +
  • Body::Body( Body&, split );
    +
    Splitting constructor. Must be able to run concurrently with operator() and method join
  • +
  • Body::~Body();
    +
    Destructor
  • +
  • void Body::operator()( Range& r );
    +
    Function call operator applying body to range r and accumulating the result
  • +
  • void Body::join( Body& b );
    +
    Join results. The result in b should be merged into the result of this

diff --git a/doc/html/a00007.html b/doc/html/a00007.html deleted file mode 100644 index 301df60866..0000000000 --- a/doc/html/a00007.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - -TBB concepts - - - - - - - -
-
-
TBB concepts
-
-
-

A concept is a set of requirements to a type, which are necessary and sufficient for the type to model a particular behavior or a set of behaviors. Some concepts are specific to a particular algorithm (e.g. algorithm body), while other ones are common to several algorithms (e.g. range concept).

-

All TBB algorithms make use of different classes implementing various concepts. Implementation classes are supplied by the user as type arguments of template parameters and/or as objects passed as function call arguments. The library provides predefined implementations of some concepts (e.g. several kinds of ranges), while other ones must always be implemented by the user.

-

TBB defines a set of minimal requirements each concept must conform to. Here is the list of different concepts hyperlinked to the corresponding requirements specifications:

- -
-
-

-Copyright © 2005-2018 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/a00008.html b/doc/html/a00008.html index 3271278497..5e697b516d 100644 --- a/doc/html/a00008.html +++ b/doc/html/a00008.html @@ -3,8 +3,8 @@ - -__TBB_malloc_proxy_caller Struct Reference + +Requirements on parallel_reduce anonymous function objects (lambda functions) @@ -13,36 +13,25 @@
-
-
__TBB_malloc_proxy_caller Struct Reference
+
Requirements on parallel_reduce anonymous function objects (lambda functions)
-
The documentation for this struct was generated from the following file: -
+

TO BE DOCUMENTED

+

Copyright © 2005-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00009.html b/doc/html/a00009.html deleted file mode 100644 index 247877880d..0000000000 --- a/doc/html/a00009.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference - - - - - - -
- - - - - -
-
- -
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
-
-
- -

Allows write access to elements and 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 >::accessor:
-
-
- - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor - -
- - - - - - - - - -

-Public Types

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

-Public Member Functions

-reference operator* () const
 Return reference to associated value in hash table.
 
-pointer 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.
 
- - - - - - - - - -

-Additional Inherited Members

- 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
 
-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> >>
-class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor

- -

Allows write access to elements and combines data access, locking, and garbage collection.

-

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

-Copyright © 2005-2018 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/a00009.png b/doc/html/a00009.png deleted file mode 100644 index 4a5d25e3fed684c0fe94ec84f7257c74b5454384..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1881 zcmcIkX;4#F6n;nrY71&DvSst^Q(gek9L|7SATc>_Hy&wK$S)1{6*Q) zro8dKZ0pK^Hxj+}SZC$=HaLI8W{=6z7?Cw%4)70}T@f0*3SkSu@IFex>il_fxh0#E zznQI^J{$ujkU7WYWcbo8L1r?Wu;C13Yy5-S4&^umYku0=-VpUtW2L`%<8}n-Qlumy zp3Bnc{?Kl|j8iazE{pH7Qg!5Oe=U0iH?AKz%wQoF<#%CCRa-P$37o_X!MKh3hj75( z$OZD-QmFSqVxr{yIjMDZ`O|DK`_jbe(V7VI!B@$K5$BK9bFi2?&it0Ac&s3-8Q>26?~ak zAp}8Cmw|RrCHgGQ4@{0z4}!^Vs_-Yx7**Qt1Rd%~q$p`Yr{y%=>BKdOb~e~G%gLL9 zmda)IHI?aA^x(F=C#%f-6wTF=2ZT zYAQ30$xdaCs_!0I7%o-`tp|@uV?t}D7lv|(+nBR8%1idKPVV&Ze#5{Vf>VPiHhJa4 z-xy0misnHTb2jLQ`BGYUj(6QuvM;-_Hs#_8=cf+`n~z_>P4QI9Vwb~Xfx@h+eQ6z< z6U|H(y=FSV5{mn>YimGmtOpNAj&P#do|3(+c$ju?5*H#O@@zvsk!MMkSu{wLayXoY zcRz=z9v=BVH>ylbSCmO^QN%Xfy%(f3;Z(%uG4!5be_ldvV`q1lVx48!$L4`F~*&!}{Zs(OZ=fiFE`1471#(#-I^%+5%e9hP`A16M)yg zFmlk_0YqvF6n0S~&NZ(sh|N9Z`^E1Zg zkExI{8h(dSSG|k3FL$J58rdk#F@)sSt4#mtf?6s63PV|xp{|$I&Kn25Xw8(B4$1^s zZ6VL-L>Jzq6T}hVF{(E1POKmk)v!2Q0T1^ycr#H=mAgsVNiFlDwOjf+uE2u1K@BKV4p;q2 zfZ8k7jBmVX+rxN?WA-l^Mk5qQ$MOhc^4l-M`e|!5)pvAJ54aInx9C65%PSpED#<(V bVa@lF6X1K<6z*EE6wrsKJB3)eEBwUo+vk+s diff --git a/doc/html/a00010.html b/doc/html/a00010.html index e8d04043fc..22a7886454 100644 --- a/doc/html/a00010.html +++ b/doc/html/a00010.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference + +Requirements on parallel_scan body @@ -13,48 +13,41 @@
-
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference
+
Requirements on parallel_scan body
- - - - -

-Public Member Functions

-void release ()
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Class Body implementing the concept of parallel_scan body must define:

    +
      +
    • Body::Body( Body&, split );
      +
      Splitting constructor. Split b so that this and b can accumulate separately
    • +
    • Body::~Body();
      +
      Destructor
    • +
    • void Body::operator()( const Range& r, pre_scan_tag );
      +
      Preprocess iterations for range r
    • +
    • void Body::operator()( const Range& r, final_scan_tag );
      +
      Do final processing for iterations of range r
    • +
    • void Body::reverse_join( Body& a );
      +
      Merge preprocessing state of a into this, where a was created earlier from b by b's splitting constructor
    -
    +

Copyright © 2005-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00011.html b/doc/html/a00011.html deleted file mode 100644 index 83572f0cc1..0000000000 --- a/doc/html/a00011.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - -tbb::interface6::aggregator Class Reference - - - - - - - -
- -
-
tbb::interface6::aggregator Class Reference
-
-
- -

Basic aggregator interface. - More...

- -

#include <aggregator.h>

-
-Inheritance diagram for tbb::interface6::aggregator:
-
-
- - -tbb::interface6::aggregator_ext< internal::basic_handler > - -
- - - - - - -

-Public Member Functions

template<typename Body >
void execute (const Body &b)
 BASIC INTERFACE: Enter a function for exclusive execution by the aggregator. More...
 
- - - - - - - - - -

-Additional Inherited Members

- Private Member Functions inherited from tbb::interface6::aggregator_ext< internal::basic_handler >
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...
 
void execute_impl (aggregator_operation &op)
 
-

Detailed Description

-

Basic aggregator interface.

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator::execute (const Body & b)
-
-inline
-
- -

BASIC INTERFACE: Enter a function for exclusive execution by the aggregator.

-

The calling thread stores the function object in a basic_operation and places the operation in the aggregator's mailbox

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

-Copyright © 2005-2018 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/a00011.png b/doc/html/a00011.png deleted file mode 100644 index d78b2dbf91246dc53b9ed87c228602423f00682e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1067 zcmeAS@N?(olHy`uVBq!ia0y~yVDtyF12~w0o>otKTk}rU)l7P|RjPWk+4-{VtCT#0`opXCeN>us zE8FN#=!N^Qe?GhAY^!?Gz~Q{+O1b}=C48G~%V!)rza}~;zskrz_SoCARx!St&z*j| zbM5Aw+8e%I+}r>A)x3`0vEa?)Plw(G{M?$mHa=*RG+^^Se zUTa^i;A`~N+<%hIyD8t~^8G%RU0Nr-{>A$*I>+~%nQ{DRsqDySH!G!D+7^ zt-jd((5%>n#vyd z{jSWjm4*MC=>{g}UO#rJ+b&JC%r<}%bj zI5g$w{4aNEuiwp3I~?!)SI&0%lBz%FlT0|jO{tW!-<;>U_vJ~OQpxS+($BJHmB!_r z&z+n4n)!jrx)bLu-B0K4z2!J@>A!pTy4D=Kl5=m}`e}Xq4V!no*khi*rS?w7j&mDI z7fpPg@cixe6`%k7V@NOHwmogAZ~UzA;^MwpRTu4yqi)@N{bK&5%UkE9HF_Fv{-a=D zExgauKl*&!{O@yr-Mo7F3NUhSfBEwFZn@&+>erR#Yj17)d1?Feqs#V}Th)KO|AWDz zd-GQo3(;s%E3t;xKQe5qmo5m-WnA}Y^Jh>*u|5d0`?rVrP6sgLWspOp;>FA$FGnxU b-Us&juFgeep8N8FIh(=L)z4*}Q$iB}`&t - -tbb::interface6::aggregator_ext< handler_type > Class Template Reference + +Requirements on iterators for parallel_sort @@ -13,133 +13,35 @@
-
-
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
+
Requirements on iterators for parallel_sort
- -

Aggregator base class and expert interface. - More...

- -

#include <aggregator.h>

-
-Inheritance diagram for tbb::interface6::aggregator_ext< handler_type >:
-
-
- - - -
- - - - - - - -

-Public Member Functions

aggregator_ext (const handler_type &h)
 
void process (aggregator_operation *op)
 EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
 
- - - -

-Protected Member Functions

void execute_impl (aggregator_operation &op)
 
-

Detailed Description

-

template<typename handler_type>
-class tbb::interface6::aggregator_ext< handler_type >

- -

Aggregator base class and expert interface.

-

An aggregator for collecting operations coming from multiple sources and executing them serially on a single thread.

-

Member Function Documentation

- -
-
-
-template<typename handler_type>
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator_ext< handler_type >::execute_impl (aggregator_operationop)
-
-inlineprotected
-
-

Place operation in mailbox, then either handle mailbox or wait for the operation to be completed by a different thread.

- -
-
- -
-
-
-template<typename handler_type>
- - - - - -
- - - - - - - - -
void tbb::interface6::aggregator_ext< handler_type >::process (aggregator_operationop)
-
-inline
-
- -

EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox.

-

Details of user-made operations must be handled by user-provided handler

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

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

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

Copyright © 2005-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00012.png b/doc/html/a00012.png deleted file mode 100644 index 75772ae7619b8e5c46a3ac515adf29fb24ed2f9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y*112~w0q}02Qra(#}z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opD>zcftRoda2#nGjeyK>j>y%rLz^3pfv*-YWoKBmZ- z#i{EoIqlXEA)&y)<8bH{Lr8>V1D7^)Kw>I`mRV}v*?%kL?d!72r5q0ajbQ)5Dy+{J z?05ghcjhnWbBfka`5Ef9|Jy@#t<87t_s3V~?qYrSw_P~Q`p*8yW$XU#JE@)T+?|yD znZvqA=K2Z8TSCr%OmA*0lizZ_pnF@+mfJUGo}8RMEo1G?dHXJ#?Wngi^Ic$ah4uaY z`|e$)o4CJ!%q#KF^Y|LM>Rx@yDijHz4#Gxe?%_AazD_m&IQ zzHZqY_HWT*GyC9WqJgtFeu-|`JDuyH%S@Z<*P+!nv&z?eef0Np&*i>f^645Ew|-7O zzocZ<@cf7*HeDE;@z_96dw0d26@TZFeg)e;Va=^@{bw3iH(9 zB?EarJR{I}^l_USvz56#*w|Lh%(&bFESdaVRw zh4k}pdzZ{&_@};x$Dws9 - - - - - -tbb::interface6::aggregator_operation Class Reference - - - - - - - -
- -
-
tbb::interface6::aggregator_operation Class Reference
-
-
-
-Inheritance diagram for tbb::interface6::aggregator_operation:
-
-
- - -tbb::interface6::internal::basic_operation_base -tbb::interface6::internal::basic_operation< Body > - -
- - - - -

-Public Types

enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 
- - - - - - - - - - - -

-Public Member Functions

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

-Friends

-template<typename handler_type >
class aggregator_ext
 
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void tbb::interface6::aggregator_operation::finish ()
-
-inline
-
- -

Call finish when done handling this operation.

-

The operation will be released to its originating thread, and possibly deleted.

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

-Copyright © 2005-2018 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/a00014.html b/doc/html/a00014.html index 0135653b33..e8d9433b7f 100644 --- a/doc/html/a00014.html +++ b/doc/html/a00014.html @@ -3,8 +3,8 @@ - -tbb::aligned_space< T, N > Class Template Reference + +TBB concepts @@ -13,64 +13,39 @@
-
-
tbb::aligned_space< T, N > Class Template Reference
+
TBB concepts
- -

Block of space aligned sufficiently to construct an array T with N elements. - More...

- -

#include <aligned_space.h>

- - - - - - - - -

-Public Member Functions

-T * begin () const
 Pointer to beginning of array.
 
-T * end () const
 Pointer to one past last element in array.
 
-

Detailed Description

-

template<typename T, size_t N = 1>
-class tbb::aligned_space< T, N >

- -

Block of space aligned sufficiently to construct an array T with N elements.

-

The elements are not constructed or destroyed by this class.

-

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

    A concept is a set of requirements to a type, which are necessary and sufficient for the type to model a particular behavior or a set of behaviors. Some concepts are specific to a particular algorithm (e.g. algorithm body), while other ones are common to several algorithms (e.g. range concept).

    +

    All TBB algorithms make use of different classes implementing various concepts. Implementation classes are supplied by the user as type arguments of template parameters and/or as objects passed as function call arguments. The library provides predefined implementations of some concepts (e.g. several kinds of ranges), while other ones must always be implemented by the user.

    +

    TBB defines a set of minimal requirements each concept must conform to. Here is the list of different concepts hyperlinked to the corresponding requirements specifications:

    + -
    +

Copyright © 2005-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00015.html b/doc/html/a00015.html deleted file mode 100644 index 711404f035..0000000000 --- a/doc/html/a00015.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - -tbb::flow::interface10::internal::async_helpers< T, typename > Struct Template Reference - - - - - - -
- - - - - -
-
- -
-
tbb::flow::interface10::internal::async_helpers< T, typename > Struct Template Reference
-
-
- - - - - - -

-Public Types

-typedef async_msg< T > async_type
 
-typedef T filtered_type
 
- - - - - - - - - - - -

-Static Public Member Functions

-static const void * to_void_ptr (const T &t)
 
-static void * to_void_ptr (T &t)
 
-static const T & from_void_ptr (const void *p)
 
-static T & from_void_ptr (void *p)
 
-static task * try_put_task_wrapper_impl (receiver< T > *const this_recv, const void *p, bool is_async)
 
- - - -

-Static Public Attributes

-static const bool is_async_type = false
 
-
The documentation for this struct was generated from the following file: -
-
-

-Copyright © 2005-2018 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/a00016.html b/doc/html/a00016.html index 651def07f9..ae7eef23cd 100644 --- a/doc/html/a00016.html +++ b/doc/html/a00016.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::async_helpers< T, typename std::enable_if< std::is_base_of< async_msg< typename T::async_msg_data_type >, T >::value >::type > Struct Template Reference + +__TBB_malloc_proxy_caller Struct Reference @@ -13,7 +13,7 @@
-
tbb::flow::interface10::internal::async_helpers< T, typename std::enable_if< std::is_base_of< async_msg< typename T::async_msg_data_type >, T >::value >::type > Struct Template Reference
+
__TBB_malloc_proxy_caller Struct Reference
- - - - - - -

-Public Types

-typedef T async_type
 
-typedef T::async_msg_data_type filtered_type
 
- - - - - - - - - - - -

-Static Public Member Functions

-static const void * to_void_ptr (const T &t)
 
-static void * to_void_ptr (T &t)
 
-static const T & from_void_ptr (const void *p)
 
-static T & from_void_ptr (void *p)
 
-static task * try_put_task_wrapper_impl (receiver< T > *const this_recv, const void *p, bool is_async)
 
- - - -

-Static Public Attributes

-static const bool is_async_type = true
 

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

diff --git a/doc/html/a00017.html b/doc/html/a00017.html index fa04530430..0974fc097b 100644 --- a/doc/html/a00017.html +++ b/doc/html/a00017.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::async_msg< T > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::async_msg< T > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor Class Reference
+ +

Allows write access to elements and combines data access, locking, and garbage collection. + More...

+ +

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::flow::interface10::async_msg< T >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor:
- - -tbb::flow::interface10::opencl_async_msg< T, Factory > + + +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
  • + + + + + + + + + +

    +Public Types

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

    +Public Member Functions

    +reference operator* () const
     Return reference to associated value in hash table.
     
    +pointer 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.
     
    + + + + + + + + + +

    +Additional Inherited Members

    - 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
     
    +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> >>
    +class tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor

    + +

    Allows write access to elements and 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/a00017.png b/doc/html/a00017.png index 62809e09c025aa7bc92c24495a3529710b869ae5..4a5d25e3fed684c0fe94ec84f7257c74b5454384 100644 GIT binary patch literal 1881 zcmcIkX;4#F6n;nrY71&DvSst^Q(gek9L|7SATc>_Hy&wK$S)1{6*Q) zro8dKZ0pK^Hxj+}SZC$=HaLI8W{=6z7?Cw%4)70}T@f0*3SkSu@IFex>il_fxh0#E zznQI^J{$ujkU7WYWcbo8L1r?Wu;C13Yy5-S4&^umYku0=-VpUtW2L`%<8}n-Qlumy zp3Bnc{?Kl|j8iazE{pH7Qg!5Oe=U0iH?AKz%wQoF<#%CCRa-P$37o_X!MKh3hj75( z$OZD-QmFSqVxr{yIjMDZ`O|DK`_jbe(V7VI!B@$K5$BK9bFi2?&it0Ac&s3-8Q>26?~ak zAp}8Cmw|RrCHgGQ4@{0z4}!^Vs_-Yx7**Qt1Rd%~q$p`Yr{y%=>BKdOb~e~G%gLL9 zmda)IHI?aA^x(F=C#%f-6wTF=2ZT zYAQ30$xdaCs_!0I7%o-`tp|@uV?t}D7lv|(+nBR8%1idKPVV&Ze#5{Vf>VPiHhJa4 z-xy0misnHTb2jLQ`BGYUj(6QuvM;-_Hs#_8=cf+`n~z_>P4QI9Vwb~Xfx@h+eQ6z< z6U|H(y=FSV5{mn>YimGmtOpNAj&P#do|3(+c$ju?5*H#O@@zvsk!MMkSu{wLayXoY zcRz=z9v=BVH>ylbSCmO^QN%Xfy%(f3;Z(%uG4!5be_ldvV`q1lVx48!$L4`F~*&!}{Zs(OZ=fiFE`1471#(#-I^%+5%e9hP`A16M)yg zFmlk_0YqvF6n0S~&NZ(sh|N9Z`^E1Zg zkExI{8h(dSSG|k3FL$J58rdk#F@)sSt4#mtf?6s63PV|xp{|$I&Kn25Xw8(B4$1^s zZ6VL-L>Jzq6T}hVF{(E1POKmk)v!2Q0T1^ycr#H=mAgsVNiFlDwOjf+uE2u1K@BKV4p;q2 zfZ8k7jBmVX+rxN?WA-l^Mk5qQ$MOhc^4l-M`e|!5)pvAJ54aInx9C65%PSpED#<(V bVa@lF6X1K<6z*EE6wrsKJB3)eEBwUo+vk+s literal 1138 zcmeAS@N?(olHy`uVBq!ia0y~yU~~hr12~w0WY9;Q4?s#Hz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op_!kQx-0%1uk9NLCVEnlsU z-QH8XD)wRE^(^LlPt3Rz7Ue#;$HRDU_2RQkEnmudzPGDSD^YtcV6HwtM)bj=dz)XK zmU#c~uHEeVx9qWZe2=OZr{s!{pS3$O=q`Ctag>QJeQD^UAk_jpYYRu z!*%L+{3>IzTCRD2-rQS#`f=~vn+Lv1{1v;~9J~4I^t#tk)>hY!Nj*?)oqTJ4ZNtS$ z^)fTsSL^b9Ub3!DxhDUKudaUaf1?xok5oJc82I=6oGY6)p07Wi^`f6) z`q%S@dGj}Cm^d1}k5)eR?Sc1k&0`C@YC=qA6`3D?ari}GkbR)^U$Nkxy4_4~e^+k3 zSe|v?qUZnRX$ijHp4q>>@;lh~;@twC@arpmgX&Y3v;E+REqWkd`TMVg`t$hPmuD4);)ZC>ekMHiko&I_K zU$xb@U!ShJth;w#6#J|FZ_jQ!_b*59c1(An`Tgy4?Ro88%Ehvy&zG^d&HdoLByxH6 z@>%KWj0uYhZ~xeFg=6jXvM*-ubo#&Ar{i>HA zRbEci^R+VEx8q}Ya*TEVYk|v_#m>_|zF+p^?!}7KQ!Hy$Vy~W5n%^8aX - -tbb::flow::interface10::internal::async_storage< T > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference @@ -13,7 +13,7 @@
    - +
+
-
tbb::flow::interface10::internal::async_storage< T > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor_not_used Struct Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + + + + +

    +Public Member Functions

    +void release ()
     
    +
    The documentation for this struct was generated from the following file:
      +
    • concurrent_hash_map.h

diff --git a/doc/html/a00019.html b/doc/html/a00019.html index d84d6b01bd..30e3968ca5 100644 --- a/doc/html/a00019.html +++ b/doc/html/a00019.html @@ -3,8 +3,8 @@ - -tbb::atomic< T > Struct Template Reference + +tbb::interface6::aggregator Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::atomic< T > Struct Template Reference
+
tbb::interface6::aggregator Class Reference
-

Primary template for atomic. +

Basic aggregator interface. More...

-

#include <atomic.h>

+

#include <aggregator.h>

-Inheritance diagram for tbb::atomic< T >:
+Inheritance diagram for tbb::interface6::aggregator:
- - + + +tbb::interface6::aggregator_ext< internal::basic_handler >
- - - - - - + + + +

Public Member Functions

-constexpr atomic (T arg)
 
-T operator= (T rhs)
 
-atomic< T > & operator= (const atomic< T > &rhs)
 
template<typename Body >
void execute (const Body &b)
 BASIC INTERFACE: Enter a function for exclusive execution by the aggregator. More...
 

Detailed Description

-

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

+

Basic aggregator interface.

+

Member Function Documentation

+ +
+
+
+template<typename Body >
+ + + + + +
+ + + + + + + + +
void tbb::interface6::aggregator::execute (const Body & b)
+
+inline
+
+ +

BASIC INTERFACE: Enter a function for exclusive execution by the aggregator.

+

The calling thread stores the function object in a basic_operation and places the operation in the aggregator's mailbox

-

Primary template for atomic.

-

See the Reference for details.

-

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

diff --git a/doc/html/a00019.png b/doc/html/a00019.png index 257e92316a0f929b71f361a432c540790e3aa7f3..d78b2dbf91246dc53b9ed87c228602423f00682e 100644 GIT binary patch delta 1025 zcmV+c1pfQe1gi)kiBL{Q4GJ0x0000DNk~Le0003`0000`2m=5B0IuW*I*}nde*?Nn zL_t(|0qvdPma{4hMK_0e|7X6nijau5GYh@8UuN9PVt~YBNdA&@&Oy#O4}mO6fg}we z^pvD=gr1T#j?hz*#u0i-(l}N<)AL$>)xSD0kEgMJPz`$)Njl_>g>K4ze3I(58hf)g z&vv(}B1uw@S9-qjB9hu`GW=E0f8Xo*=GsF&CCM;A&nc-M|FalPf<1Sb#?P!=2%*OuPv|H}z*$dve@rwRBKaIa$AM?u(^0PN#CqJ$IAU|DvUa!qN+LZ@U z_uU-kr>$r2ou@s&o6^_Tf6t!f)p<89z|_y9_%?dJRX_KH+zGK;KYf4qzD)nD=iRhw z+fhp^oEMw^-s$|sf8(Rm-|cCC5nr=$eVH1h`MkEjyR}X5roT&)Wz|!XPQ_M*jzy9_ zo@?~%m4Z&SmDFC(y6^H)l1^iQ!;A9MR)mg4lD>iK&buUiKcS~2e~lybl%#Qlo{}_< z&{LAe@z68poP(Tm9s$57@B}2nsNY&=X)74>?0nfI)yvnfB@i*M1BGU0Cyzv6CeP%Baxo~0l*!J`~(O9 z?nvY(Kmc$@B0m8Fe}Fp@`3VpJ+>wvT&y-RMQc7tEB!B>50HG(qI6_Z=afF@#;|M(g z#&NcukKGps#!nr1_m2(2S$j>=P%Wb{de?gI@{@&h-tj5%A-mb5f zjt_vdxahn$Z?t{fXt>U>b)u2yVCU_(sPp{(0B3LuJjOX{=5U+h|m*Y v9HA$`I6_Z=afF@#<9O(qQc6KeDUIMiFGWLgc1gZ(00000NkvXXu0mjfS}+Ey delta 549 zcmZ3@ahXN2Gr-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;Vst0J+Wt>;M1& diff --git a/doc/html/a00020.html b/doc/html/a00020.html index e7ac73432e..3b898648d8 100644 --- a/doc/html/a00020.html +++ b/doc/html/a00020.html @@ -3,8 +3,8 @@ - -tbb::atomic< void * > Struct Template Reference + +tbb::interface6::aggregator_ext< handler_type > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::atomic< void * > Struct Template Reference
+
tbb::interface6::aggregator_ext< handler_type > Class Template Reference
-

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

Aggregator base class and expert interface. More...

-

#include <atomic.h>

+

#include <aggregator.h>

-Inheritance diagram for tbb::atomic< void * >:
+Inheritance diagram for tbb::interface6::aggregator_ext< handler_type >:
- - + +
- - - - - - + + + + + +

Public Member Functions

-constexpr atomic (void *arg)
 
-void * operator= (void *rhs)
 
-atomic< void * > & operator= (const atomic< void * > &rhs)
 
aggregator_ext (const handler_type &h)
 
void process (aggregator_operation *op)
 EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox. More...
 
+ + +

+Protected Member Functions

void execute_impl (aggregator_operation &op)
 

Detailed Description

-

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

+

template<typename handler_type>
+class tbb::interface6::aggregator_ext< handler_type >

-

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

    Aggregator base class and expert interface.

    +

    An aggregator for collecting operations coming from multiple sources and executing them serially on a single thread.

    +

Member Function Documentation

+ +
+
+
+template<typename handler_type>
+ + + + + +
+ + + + + + + + +
void tbb::interface6::aggregator_ext< handler_type >::execute_impl (aggregator_operationop)
+
+inlineprotected
+
+

Place operation in mailbox, then either handle mailbox or wait for the operation to be completed by a different thread.

+ +
+
+ +
+
+
+template<typename handler_type>
+ + + + + +
+ + + + + + + + +
void tbb::interface6::aggregator_ext< handler_type >::process (aggregator_operationop)
+
+inline
+
+ +

EXPERT INTERFACE: Enter a user-made operation into the aggregator's mailbox.

+

Details of user-made operations must be handled by user-provided handler

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

diff --git a/doc/html/a00020.png b/doc/html/a00020.png index c5aaf08d4cf2f1620041e8af25c242a2ccda892d..75772ae7619b8e5c46a3ac515adf29fb24ed2f9d 100644 GIT binary patch delta 798 zcmdnMdYVnKGr-TCmrII^fq{Y7)59f*fq_vH$PVCO29i?mKAKKcw64G9>Eakt!T5IW z#k|)F0xsvhrat@se}`vIj@WwPsF%lfz6!BZW!a-MIkG}k>5z*HkHDl970tv{m6eB1 zc?7jiow$TcTiH`I%x#j^njV$Vm?b_Ma<7kF+LHfU|GFlxXO(uiW^r_B<*wZId#{BA ztGx7$c{WoxwT~%sW^w8|OHTXxxS78zl|A#HU!Gz)$GARZX6NpgtCDtkNqSZtoOWG4 z?Af!4zvnOcm-%<~r{5LlW2W7EuBGf5o`i0{d8(3ps++Fpo@BX$6 zhgsj*AGvJZ-+d>w^PRhsvOjZJ_sCp7;do2P`H$(%ZDsOX&KGoV%h_`K#>|tG)2C&u zy*Y2+WwRaic4oc{Os=rLzklDo%XAa>_m6oc{&^l>BexuW zxScVTOJJtnmBQYIcIMu4q1x9id&B-MT3l~tAG}O7aQ4P8(JgzYb3JsKX;b|=wEAXN z`I@hf{(kPc-1kd9UE|``&&lVPl&qRuUGujyeHEwrypxYZm(Hz9vnbo%oaga>WqQ%w z{p*&cXUg_<{F}4VEiN?J%5(Q0f0daXX4U6<$}d;ETUMRCep$)cC)%s-@}55ZGEXaS z?Y6q@ZY720Pouo9Ua@{yVV)YiBtie3T0_0px}8ZZ4`OAGu%FoDKJ$~9#XK*E|2BQc zK7D8Tp;^1-pS{D;**243ua#h|kbeGc?~+*z|J2v;IJ8b>T(QB3K@=GKkCuVs=tK?k YA)B@QH|CXx0+T$0r>mdKI;Vst0DRVKf&c&j delta 642 zcmX@jwt-c#Gr-TCmrII^fq{Y7)59eQNbdyV01jp#S!AK2GEvdG-rm#2F{Fa=?c9r# znhbbc{p0rh|9^aSh{D3s)~xU^-?v4}WBlu z|9VevSaQ6}o7*W_vd>WJ$)Dh2&#L1y6SI4C|4$P6V7Z^&=G^T}*)KWz;?p~vKN$U$ z`Xuvyd7L%><(x^sH(a}w-1eyc;-0f|EPrBW9xBYx4JzC-|JTi(>|6Nn+1MpdDV{!I z#^-Z)HXc8c(sxayIAxOkHgBCL3mxL4e>WX_*1vyo?P{KQ-T559HrgxBDd9m?k zNyZA@^aVHtOW0GJNG-Yv+Q9%UwKyX z)?-z#HFkdAa_!%j)2Y>F&(CJ=&AIQKqsz^`eO8ubndyUxde7yIU`SZSrr~`K{O3pF=pLWi9?tGK?pZ0Az zR$6!U_mZE5`H^S0_2up^xYhi8y|?6BU54o^w%en4&E}p;TAJ`D_S3VozAtMFSO82` N44$rjF6*2UngF4=J$V2C diff --git a/doc/html/a00021.html b/doc/html/a00021.html index ee1a537eb0..531b306929 100644 --- a/doc/html/a00021.html +++ b/doc/html/a00021.html @@ -3,8 +3,8 @@ - -tbb::interface7::task_arena::attach Struct Reference + +tbb::interface6::aggregator_operation Class Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::interface7::task_arena::attach Struct Reference
+
tbb::interface6::aggregator_operation Class Reference
+
+Inheritance diagram for tbb::interface6::aggregator_operation:
+
+
+ + +tbb::interface6::internal::basic_operation_base +tbb::interface6::internal::basic_operation< Body > + +
+ + + + +

+Public Types

enum  aggregator_operation_status { agg_waiting =0, +agg_finished + }
 
+ + + + + + + + + + + +

+Public Member Functions

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

+Friends

+template<typename handler_type >
class aggregator_ext
 
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
void tbb::interface6::aggregator_operation::finish ()
+
+inline
+
-

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

+

Call finish when done handling this operation.

+

The operation will be released to its originating thread, and possibly deleted.

-

#include <task_arena.h>

-

Detailed Description

-

Tag class used to indicate the "attaching" constructor.

-

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

diff --git a/doc/html/a00013.png b/doc/html/a00021.png similarity index 100% rename from doc/html/a00013.png rename to doc/html/a00021.png diff --git a/doc/html/a00022.html b/doc/html/a00022.html index 46aa443eb7..83d79e6195 100644 --- a/doc/html/a00022.html +++ b/doc/html/a00022.html @@ -3,8 +3,8 @@ - -tbb::bad_last_alloc Class Reference + +tbb::aligned_space< T, N > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::bad_last_alloc Class Reference
+
tbb::aligned_space< T, N > Class Template Reference
-

Exception for concurrent containers. +

Block of space aligned sufficiently to construct an array T with N elements. More...

-

#include <tbb_exception.h>

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

#include <aligned_space.h>

- - + + + + + +

Public Member Functions

-const char * what () const __TBB_override throw ()
 
+T * begin () const
 Pointer to beginning of array.
 
+T * end () const
 Pointer to one past last element in array.
 

Detailed Description

-

Exception for concurrent containers.

+

template<typename T, size_t N = 1>
+class tbb::aligned_space< T, N >

+ +

Block of space aligned sufficiently to construct an array T with N elements.

+

The elements are not constructed or destroyed by this class.


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

diff --git a/doc/html/a00023.html b/doc/html/a00023.html index f65b36cb5b..0788fd471d 100644 --- a/doc/html/a00023.html +++ b/doc/html/a00023.html @@ -3,8 +3,8 @@ - -tbb::interface6::internal::basic_handler Class Reference + +tbb::flow::interface10::internal::async_helpers< T, typename > Struct Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::internal::basic_handler Class Reference
+
tbb::flow::interface10::internal::async_helpers< T, typename > Struct Template Reference
- - - + + + + + +

-Public Member Functions

-void operator() (aggregator_operation *op_list) const
 

+Public Types

+typedef async_msg< T > async_type
 
+typedef T filtered_type
 
+ + + + + + + + + + + +

+Static Public Member Functions

+static const void * to_void_ptr (const T &t)
 
+static void * to_void_ptr (T &t)
 
+static const T & from_void_ptr (const void *p)
 
+static T & from_void_ptr (void *p)
 
+static task * try_put_task_wrapper_impl (receiver< T > *const this_recv, const void *p, bool is_async)
 
+ + +

+Static Public Attributes

+static const bool is_async_type = false
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • +
    The documentation for this struct was generated from the following file:

diff --git a/doc/html/a00024.html b/doc/html/a00024.html index f92b4c311e..6ecf0e735c 100644 --- a/doc/html/a00024.html +++ b/doc/html/a00024.html @@ -3,8 +3,8 @@ - -tbb::interface6::internal::basic_operation< Body > Class Template Reference + +tbb::flow::interface10::internal::async_helpers< T, typename std::enable_if< std::is_base_of< async_msg< typename T::async_msg_data_type >, T >::value >::type > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::interface6::internal::basic_operation< Body > Class Template Reference
+
tbb::flow::interface10::internal::async_helpers< T, typename std::enable_if< std::is_base_of< async_msg< typename T::async_msg_data_type >, T >::value >::type > Struct Template 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)
 

+Public Types

+typedef T async_type
 
+typedef T::async_msg_data_type filtered_type
 
- - - - + + + + + + + + + + + +

-Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, -agg_finished - }
 

+Static Public Member Functions

+static const void * to_void_ptr (const T &t)
 
+static void * to_void_ptr (T &t)
 
+static const T & from_void_ptr (const void *p)
 
+static T & from_void_ptr (void *p)
 
+static task * try_put_task_wrapper_impl (receiver< T > *const this_recv, const void *p, bool is_async)
 
+ + +

+Static Public Attributes

+static const bool is_async_type = true
 
-
The documentation for this class was generated from the following file:
    -
  • aggregator.h
  • +
    The documentation for this struct was generated from the following file:

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 3da313489e..c72e086b83 100644 --- a/doc/html/a00025.html +++ b/doc/html/a00025.html @@ -3,8 +3,8 @@ - -tbb::interface6::internal::basic_operation_base Class Reference + +tbb::flow::interface10::async_msg< T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::interface6::internal::basic_operation_base Class Referenceabstract
+
tbb::flow::interface10::async_msg< T > Class Template Reference
-Inheritance diagram for tbb::interface6::internal::basic_operation_base:
+Inheritance diagram for tbb::flow::interface10::async_msg< T >:
- - -tbb::interface6::aggregator_operation -tbb::interface6::internal::basic_operation< Body > + + +tbb::flow::interface10::opencl_async_msg< T, Factory >
- - - - -

-Friends

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

The documentation for this class was generated from the following file:
diff --git a/doc/html/a00025.png b/doc/html/a00025.png index 0f94299e82ac6d9c147a19a509648b78560c3d88..62809e09c025aa7bc92c24495a3529710b869ae5 100644 GIT binary patch literal 1138 zcmeAS@N?(olHy`uVBq!ia0y~yU~~hr12~w0WY9;Q4?s#Hz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op_!kQx-0%1uk9NLCVEnlsU z-QH8XD)wRE^(^LlPt3Rz7Ue#;$HRDU_2RQkEnmudzPGDSD^YtcV6HwtM)bj=dz)XK zmU#c~uHEeVx9qWZe2=OZr{s!{pS3$O=q`Ctag>QJeQD^UAk_jpYYRu z!*%L+{3>IzTCRD2-rQS#`f=~vn+Lv1{1v;~9J~4I^t#tk)>hY!Nj*?)oqTJ4ZNtS$ z^)fTsSL^b9Ub3!DxhDUKudaUaf1?xok5oJc82I=6oGY6)p07Wi^`f6) z`q%S@dGj}Cm^d1}k5)eR?Sc1k&0`C@YC=qA6`3D?ari}GkbR)^U$Nkxy4_4~e^+k3 zSe|v?qUZnRX$ijHp4q>>@;lh~;@twC@arpmgX&Y3v;E+REqWkd`TMVg`t$hPmuD4);)ZC>ekMHiko&I_K zU$xb@U!ShJth;w#6#J|FZ_jQ!_b*59c1(An`Tgy4?Ro88%Ehvy&zG^d&HdoLByxH6 z@>%KWj0uYhZ~xeFg=6jXvM*-ubo#&Ar{i>HA zRbEci^R+VEx8q}Ya*TEVYk|v_#m>_|zF+p^?!}7KQ!Hy$Vy~W5n%^8aXweigbMHNO?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::flow::interface10::internal::async_storage< T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::blocked_range< Value > Class Template Reference
+
tbb::flow::interface10::internal::async_storage< T > Class Template Reference
- -

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

- -

#include <blocked_range.h>

- - - - - - - - -

-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, end, and grainsize. 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
 
-template<typename DimValue , unsigned int N, typename >
class internal::blocked_rangeNd_impl
 
-

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, end, and grainsize.

-

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

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:

diff --git a/doc/html/a00027.html b/doc/html/a00027.html index 7f5975dccc..a30e7f365b 100644 --- a/doc/html/a00027.html +++ b/doc/html/a00027.html @@ -3,8 +3,8 @@ - -tbb::blocked_range2d< RowValue, ColValue > Class Template Reference + +tbb::atomic< T > Struct Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
+
tbb::atomic< T > Struct Template Reference
-

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

Primary template for atomic. More...

-

#include <blocked_range2d.h>

+

#include <atomic.h>

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

-Public Types

-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_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)
 
-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.
 
+constexpr atomic (T arg)
 
+T operator= (T rhs)
 
+atomic< T > & operator= (const atomic< T > &rhs)
 

Detailed Description

-

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

+

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

-

A 2-dimensional range that models the Range concept.

-

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

    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/a00027.png b/doc/html/a00027.png new file mode 100644 index 0000000000000000000000000000000000000000..257e92316a0f929b71f361a432c540790e3aa7f3 GIT binary patch literal 595 zcmeAS@N?(olHy`uVBq!ia0vp^bAUL2gBeKP_Ia}bNJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~KJs*N45?szJ2!ChD+L}m|F}Q@{@cfi zNBL^(zP6)k=FXWfH;QP?X*-gB=1dstmY$~qiY85Ys8(M7=W3bE93Q(9+c}%B zE>mGun^+y{H%YEAFIe7kcb(Jkp0~@t=IpJW&i%pQXLXu%-Vci}OTQmXoO!vZwsAxI z`>C2S&a2-_-~aBN-~65P??Z*>*3M7(iu!)fk(e~|+k~J=J71T5-t1Ie|HCow^mzyS zLlchbpWyvzA9kYo#M|{h@=LpA`a_M%_Zk*W()qL{=FHCDGxy9W-WQe3*w*s?{JN<2 zgYrt#SB821V(@?a&2Q&T`Ts^mlT0>knWHjy*%K8_=aZg6ZL8@36AjA-9#!@U3!g9;O_6bEo5Xw~pol@zi%-G%Bx4Gaz{wVc?J^m z%F=wzfStb>Z`MBS41)X<3w`s)u(69h&|;tlZz6N U`E{-mm;x9)UHx3vIVCg!07tnQJOBUy literal 0 HcmV?d00001 diff --git a/doc/html/a00028.html b/doc/html/a00028.html index e5cd64a581..feb457de8c 100644 --- a/doc/html/a00028.html +++ b/doc/html/a00028.html @@ -3,8 +3,8 @@ - -tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference + +tbb::atomic< void * > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
+
tbb::atomic< void * > Struct Template Reference
-

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

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

-

#include <blocked_range3d.h>

+

#include <atomic.h>

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

-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)
 
-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.
 
+constexpr atomic (void *arg)
 
+void * operator= (void *rhs)
 
+atomic< void * > & operator= (const atomic< void * > &rhs)
 

Detailed Description

-

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

+

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

-

A 3-dimensional range that models the Range concept.

-

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

    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/a00028.png b/doc/html/a00028.png new file mode 100644 index 0000000000000000000000000000000000000000..c5aaf08d4cf2f1620041e8af25c242a2ccda892d GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^JApWWgBeH`S*WN0DTx4|5ZC|z{{xvX-h3_XKQsZz z0^pi_;$?-04Zl`3) zK0~P|e}aoWtB%i1%!l=bnIFG{>8PcdE#~F&-h&w#rQ{uj;>dhxIqqmQ|l#_}TTGd-dskQ!d_9^0dAA z{=$3Px6_}Ue*fpg(({RWp6<^~r!RRQ@NCi)@0s2~dgaB&n-s&W3BEI#p9DQ)*g3`0K`)hWf;T?yh2%6dRfz*FP_?HeKUW_y&JeNQ zQLZL=w)FM zpUvExbKf~fmz#V0tT+Sy!!ghEF0GYZ@Yrc9%lr$XsWp|A-4lOyTiHMU*ZK1k*T3sF zQd`pZ8nNH`c<(Rs=Y3HJ?p&0dWBxzwob%lIChtG(+j6Y5?&|L)KMV6C&u;6>-Cc02 w`T2Tp$+x-;(^qV_NAZ}=J(aXH;ZN+RXJ>t1))ue;n7kM~UHx3vIVCg!01z!vasU7T literal 0 HcmV?d00001 diff --git a/doc/html/a00029.html b/doc/html/a00029.html index 613c73663f..678ab42a15 100644 --- a/doc/html/a00029.html +++ b/doc/html/a00029.html @@ -3,8 +3,8 @@ - -tbb::internal::blocked_rangeNd_impl< Value, N, typename > Class Template Reference + +tbb::interface7::task_arena::attach Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::blocked_rangeNd_impl< Value, N, typename > Class Template Reference
+
tbb::interface7::task_arena::attach Struct Reference
-
The documentation for this class was generated from the following file:
    -
  • blocked_range.h
  • + +

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

    + +

    #include <task_arena.h>

    +

    Detailed Description

    +

    Tag class used to indicate the "attaching" constructor.

    +

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

diff --git a/doc/html/a00030.html b/doc/html/a00030.html index 4b21c996f9..8b4f0a28ce 100644 --- a/doc/html/a00030.html +++ b/doc/html/a00030.html @@ -3,8 +3,8 @@ - -tbb::internal::blocked_rangeNd_impl< Value, N, index_sequence< Is...> > Class Template Reference + +tbb::bad_last_alloc Class Reference @@ -13,7 +13,7 @@
-
tbb::internal::blocked_rangeNd_impl< Value, N, index_sequence< Is...> > Class Template Reference
+
tbb::bad_last_alloc Class Reference
+ +

Exception for concurrent containers. + More...

+ +

#include <tbb_exception.h>

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

-Public Types

-using value_type = Value
 Type of a value.
 
- - - - - - - + +

Public Member Functions

blocked_rangeNd_impl (const dim_type_helper< Is > &...args)
 Constructs N-dimensional range over N half-open intervals each represented as tbb::blocked_range<Value>.
 
blocked_rangeNd_impl (blocked_rangeNd_impl &r, proportional_split proportion)
 
blocked_rangeNd_impl (blocked_rangeNd_impl &r, split proportion)
 
+const char * what () const __TBB_override throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • blocked_rangeNd.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/a00022.png b/doc/html/a00030.png similarity index 100% rename from doc/html/a00022.png rename to doc/html/a00030.png diff --git a/doc/html/a00031.html b/doc/html/a00031.html index dacf164dfb..e71522902a 100644 --- a/doc/html/a00031.html +++ b/doc/html/a00031.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::broadcast_cache< T, M > Class Template Reference + +tbb::interface6::internal::basic_handler Class Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::internal::broadcast_cache< T, M > Class Template Reference
+
tbb::interface6::internal::basic_handler Class Reference
+ + + + +

+Public Member Functions

+void operator() (aggregator_operation *op_list) const
 

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

diff --git a/doc/html/a00032.html b/doc/html/a00032.html index d46fd76fd6..bbf9751b0d 100644 --- a/doc/html/a00032.html +++ b/doc/html/a00032.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference + +tbb::interface6::internal::basic_operation< Body > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
+
tbb::interface6::internal::basic_operation< Body > Class Template Reference
- -

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

- -

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor:
+Inheritance diagram for tbb::interface6::internal::basic_operation< Body >:
- - + + +tbb::interface6::internal::basic_operation_base +tbb::interface6::aggregator_operation
- - - - - - - - - - - + + + + + + + + + + + + + +

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
 
basic_operation (const Body &b)
 
- 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)
 
+ + + +

+Additional Inherited Members

- Public Types inherited from tbb::interface6::aggregator_operation
enum  aggregator_operation_status { agg_waiting =0, +agg_finished + }
 
-

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

- -

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

    diff --git a/doc/html/a00032.png b/doc/html/a00032.png index 9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05..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 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 diff --git a/doc/html/a00033.html b/doc/html/a00033.html index 5649f12f6e..ba77f8d309 100644 --- a/doc/html/a00033.html +++ b/doc/html/a00033.html @@ -3,8 +3,8 @@ - -tbb::cache_aligned_allocator< T > Class Template Reference + +tbb::interface6::internal::basic_operation_base Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::cache_aligned_allocator< T > Class Template Reference
+
tbb::interface6::internal::basic_operation_base Class Referenceabstract
- -

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

- -

#include <cache_aligned_allocator.h>

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

-Classes

struct  rebind
 

+Friends

+class basic_handler
 
- - - - - - - - - - - - - - - -

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

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

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

diff --git a/doc/html/a00033.png b/doc/html/a00033.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::cache_aligned_allocator< void > Class Template Reference + +tbb::blocked_range< Value > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::cache_aligned_allocator< void > Class Template Reference
+
tbb::blocked_range< Value > Class Template Reference
-

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

A range over which to iterate. More...

-

#include <cache_aligned_allocator.h>

+

#include <blocked_range.h>

- - - -

-Classes

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

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_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_range ()
 Construct range with default-constructed values for begin, end, and grainsize. 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
 
+template<typename DimValue , unsigned int N, typename >
class internal::blocked_rangeNd_impl
 

Detailed Description

-

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

+

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, end, and grainsize.

+

Requires that Value have a default constructor.

-

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

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/a00035.html b/doc/html/a00035.html index 1086e7b830..7d8e00de07 100644 --- a/doc/html/a00035.html +++ b/doc/html/a00035.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference + +tbb::blocked_range2d< RowValue, ColValue > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference
+
tbb::blocked_range2d< RowValue, ColValue > Class Template Reference
+ +

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

+ +

#include <blocked_range2d.h>

+ + + + + + +

+Public Types

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

Public Member Functions

call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
-void dismiss ()
 
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)
 
+const row_range_typerows () const
 The rows of the iteration space.
 
+const col_range_typecols () const
 The columns of the iteration space.
 
- - - + + + +

-Public Attributes

-concurrent_hash_mapmy_ch_map
 

+Static Public Attributes

+static const bool is_splittable_in_proportion = true
 Static field to support proportional split.
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +

    Detailed Description

    +

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

    + +

    A 2-dimensional range that models the Range concept.

    +

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

diff --git a/doc/html/a00036.html b/doc/html/a00036.html index 0d0ec7bb2b..0c300baf8c 100644 --- a/doc/html/a00036.html +++ b/doc/html/a00036.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::callback< Callback, T > Class Template Reference + +tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::callback< Callback, T > Class Template Reference
+
tbb::blocked_range3d< PageValue, RowValue, ColValue > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface10::callback< Callback, T >:
-
-
- - -tbb::flow::interface10::callback_base - -
+ +

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

callback (Callback c, const T &t)
 
-void call () __TBB_override
 
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)
 
+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.
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    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/a00037.html b/doc/html/a00037.html index c7233edc01..3a7dd008a4 100644 --- a/doc/html/a00037.html +++ b/doc/html/a00037.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::callback_base Class Reference + +tbb::internal::blocked_rangeNd_impl< Value, N, typename > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::flow::interface10::callback_base Class Referenceabstract
+
tbb::internal::blocked_rangeNd_impl< Value, N, typename > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface10::callback_base:
-
-
- - -tbb::flow::interface10::callback< Callback, T > - -
- - - - -

-Public Member Functions

-virtual void call ()=0
 

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

diff --git a/doc/html/a00037.png b/doc/html/a00037.png deleted file mode 100644 index 2b42d5a912300cb905a526dd075e5b1f5e5f9615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmeAS@N?(olHy`uVBq!ia0y~yVB`a`J2;quq~gb~&w!LffKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+153Q8i(^Oy^EO^{w7Qo2-uAzqM=SWn$m{P>~V$n`ZuI>h;G3<^K=VRx5LtdG{`V6OyGueC7OSErPr}e{eg9@iknFkAI{n!@zvr4dZ%nocX*1lnwz*wbiO^Wb+RcoLv_w3o}RT zK|}X7j-_uRW&7B3Pu$^7c<|>z;628w=aoG3!+PsKGXH1oJ3gH|KhLQzF@;Bc@jYgD zyWZ(1*KMEi@6wKXjb)ombosy4?^NyIT(>@NXMXSEt{VkBR^c;tb$nj(d-9uz<&zeK z++lLJ$yeS!ZC5&jMj=n!Mc(MUU8yC4PrVuX{vJuoWS2cxdSkiIT&>zyzSq;;cOE-< zsLSwFXpd4}Yw~U7-?P5+Zmavrcw8=iX_VXO5bD_8$E6PRkCkSUP{gVeEIriP5)^(bY82y z@|*T+g@)21kLkIBaZWi(b>CAMe+c}aU!e2!Q;-k?4={+GAOXb5E+E9Gpd#atacp9c z*C+isml*ax&1ZUgM7DTv6Zd{vjVP|}%^)chQ{)IXZUuT?LgDo<* z{n4%K*XmqfBDc`yj?U9FufIoZy0E~1rd8;#E3?;~@4I+UpQ+1m+b-jOt@@>M>Bs+l z5HHNBPKp1#@8GsurG3f$>x0%xEshP_8mU)ew|Z@Ti}HWjRQH`%st#Z4mVan*-yu8H z>Qvw9x${rd3- zdu6Up=~jJ64Bwl}{#$O(jh_qNl~|lPV|T!rL%#blyOjKN*|aouF+O8%&i0wDEr-uI q9ZF171P1ekp5$4}Jmc2?XSf)0GyljM^~J#Ahr!d;&t;ucLK6UaTQHIU diff --git a/doc/html/a00038.html b/doc/html/a00038.html index 155ab5c682..86d711051b 100644 --- a/doc/html/a00038.html +++ b/doc/html/a00038.html @@ -3,8 +3,8 @@ - -tbb::captured_exception Class Reference + +tbb::internal::blocked_rangeNd_impl< Value, N, index_sequence< Is...> > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::captured_exception Class Reference
+
tbb::internal::blocked_rangeNd_impl< Value, N, index_sequence< Is...> > Class Template 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 Types

+using value_type = Value
 Type of a value.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + +

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 () __TBB_override throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () __TBB_override throw ()
 Destroys objects created by the move() method. More...
 
void throw_self () __TBB_override
 Throws this exception object. More...
 
-const char *__TBB_EXPORTED_METHOD name () const __TBB_override throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char *__TBB_EXPORTED_METHOD what () const __TBB_override 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)
 
blocked_rangeNd_impl (const dim_type_helper< Is > &...args)
 Constructs N-dimensional range over N half-open intervals each represented as tbb::blocked_range<Value>.
 
blocked_rangeNd_impl (blocked_rangeNd_impl &r, proportional_split proportion)
 
blocked_rangeNd_impl (blocked_rangeNd_impl &r, split proportion)
 
-

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

diff --git a/doc/html/a00038.png b/doc/html/a00038.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/a00039.html b/doc/html/a00039.html index 15ce2267c9..5262f732e6 100644 --- a/doc/html/a00039.html +++ b/doc/html/a00039.html @@ -3,8 +3,8 @@ - -tbb::combinable< T > Class Template Reference + +tbb::flow::interface10::internal::broadcast_cache< T, M > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::combinable< T > Class Template Reference
+
tbb::flow::interface10::internal::broadcast_cache< T, M > Class Template Reference
- -

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

- -

#include <combinable.h>

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

-Public Member Functions

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

Detailed Description

-

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

- -

Thread-local storage with optional reduction.

-

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

diff --git a/doc/html/a00040.html b/doc/html/a00040.html index 7a1e4b2b4d..e0db00e4ab 100644 --- a/doc/html/a00040.html +++ b/doc/html/a00040.html @@ -3,8 +3,8 @@ - -tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::bucket_accessor Class Reference
-
The documentation for this class was generated from the following file:
    -
  • pipeline.h
  • + +

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

    + +

    #include <concurrent_hash_map.h>

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

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

    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

    + +

    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/a00040.png b/doc/html/a00040.png new file mode 100644 index 0000000000000000000000000000000000000000..9dea0c02f2dcf13c98fe30ad2f8962ebabdc2d05 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 0 HcmV?d00001 diff --git a/doc/html/a00041.html b/doc/html/a00041.html index ec6874db28..4f80853b74 100644 --- a/doc/html/a00041.html +++ b/doc/html/a00041.html @@ -3,8 +3,8 @@ - -tbb::concurrent_bounded_queue< T, A > Class Template Reference + +tbb::cache_aligned_allocator< T > Class Template Reference @@ -13,7 +13,7 @@ +List of all members
-
tbb::concurrent_bounded_queue< T, A > Class Template Reference
+
tbb::cache_aligned_allocator< T > Class Template Reference
-

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

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

-

#include <concurrent_queue.h>

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

#include <cache_aligned_allocator.h>

+ + + +

+Classes

struct  rebind
 
- - - - - - - - - - - - - - - - - - - - - - +internal::allocator_type< T >
+::value_type  + + + + + + + + + + + + +

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

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

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
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<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
-
+

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

-

Return number of pushes minus number of pops.

-

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

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

Attempt to dequeue an item from head of queue.

-

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

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

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

-

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

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

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

-

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

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

    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/a00041.png b/doc/html/a00041.png deleted file mode 100644 index 3dc03c333709697a42cb92d8e57a8cb283aa9e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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` diff --git a/doc/html/a00042.html b/doc/html/a00042.html index ded93cc345..6666c9610f 100644 --- a/doc/html/a00042.html +++ b/doc/html/a00042.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference + +tbb::cache_aligned_allocator< void > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+
tbb::cache_aligned_allocator< void > Class Template Reference
-

Unordered map from Key to T. +

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

-

#include <concurrent_hash_map.h>

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

#include <cache_aligned_allocator.h>

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

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

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

-Public Member Functions

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

-Protected Types

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

-Protected Member Functions

-void delete_node (node_base *n)
 
-nodesearch_bucket (const key_type &key, bucket *b) const
 
-void rehash_bucket (bucket *b_new, const hashcode_t h)
 
-bool lookup (bool op_insert, const Key &key, const T *t, const_accessor *result, bool write, node *(*allocate_node)(node_allocator_type &, const Key &, const T *), node *tmp_n=0)
 Insert or find item and optionally acquire a lock on the item.
 
-template<typename Accessor >
bool generic_move_insert (Accessor &&result, value_type &&value)
 
-template<typename Accessor , typename... Args>
bool generic_emplace (Accessor &&result, Args &&...args)
 
-bool exclude (const_accessor &item_accessor)
 delete item by accessor
 
-template<typename I >
std::pair< I, I > internal_equal_range (const Key &key, I end) const
 Returns an iterator for an item defined by the key, or for the next item after it (if upper==true)
 
-void internal_copy (const concurrent_hash_map &source)
 Copy "source" to *this, where *this must start out empty.
 
-template<typename I >
void internal_copy (I first, I last, size_type reserve_size)
 
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::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 &)
 
+typedef void * pointer
 
+typedef const void * const_pointer
 
+typedef void value_type
 

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

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

-

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

-

Returns true if item is new.

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

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

-

Returns true if item is inserted.

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

Erase item.

-

Return true if item was erased by particularly this call.

- -

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

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

Erase item by const_accessor.

-

Return true if item was erased by particularly this call.

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

Erase item by accessor.

-

Return true if item was erased by particularly this call.

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

Find item and acquire a read lock on the item.

-

Return true if item is found, false otherwise.

- -

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

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

Find item and acquire a write lock on the item.

-

Return true if item is found, false otherwise.

- -

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

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

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

-

Returns true if item is new.

- -

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

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

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

-

Returns true if item is new.

- -

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

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

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

-

Returns true if item is new.

- -

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

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

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

-

Returns true if item is new.

- -

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

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

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

-

Returns true if item is inserted.

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

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

-

Returns true if item is new.

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

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

-

Returns true if item is new.

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

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

-

Returns true if item is inserted.

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

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

-

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

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

Rehashes and optionally resizes the whole table.

-

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

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

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

    +

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

diff --git a/doc/html/a00042.png b/doc/html/a00042.png deleted file mode 100644 index 3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1052 zcmeAS@N?(olHy`uVBq!ia0y~yVC)3412~w0~xgx&n4otD-)^XA!vNmD#7tzE+D+2t^6!V(TRFesr zwYRvug(rzLo>0q?nzhzEeB0ItCcEvKS+oDWZdP$s-q2}zrnuvJHt*kCk80oMzPh!o z{=r@$Yir%)+e$HRMg8yYEn8vxQs1+%BmdFVfM>TGJ9qltcez+!Iblggi}}X(?c%Sk zn769U`Zq~r;_?|Up8h=MGEaEYm-B@;Q+YoJmQ~$d&V1+UIsbkCzbJSzc4j+GvU_~f zxN=eF%R6s%-aWODxZ)L*QsnOu#PV+vr)QO3rqd*)32G{uOmK$2FxZ=W8Eoe1H?TZN zyTszauy0=w>w&*ZI2#!DxGdpnxa}#-VCccmAm|~?!0Es=f#Hb4W?=^wph_THg~9N| z8y0~^6Gjl5(}Bmxn$bnU7tCf7Xg=eIU)%n~LuYghjdx4(C@}7rYQhLI2!YQYdA;rb zr>}3G$OxM1QHCH&f!9yg%0i`48M` zeAZK^9#`wz$|Pgp;hg>P_Q%)vZQ`C+3w^1ZCw6d?&^^`S%TI6KUnMy;wDj=OlE3G- z7Im+Cb4~KeudZj#sRG|;emm0RQ?l>Xq0M6X!J2Nn{9oFdl{U+r5 z+T%eN(zaS1oErKrZ2wCAZQma$EjX$$Yo>^BY+bzRL;k*Bt9v`G92!D z_21LDV_3Qt)*nCeZ`Zm`T~)amAJ%JJYVwXhyUhBu-`8+|-yarN+pCv9sIFf0csEb| z-M^b{FV4)fUYF*3ec_9@ooV{<#utCTn%ViVPD4cgZKofX-5I~X#f!`gvo_YeDk@vG zyf$S~x!;w*Ung9o8{$%H{YrACsO@@w|7Ya<{h_g*#c2mHD>Hby`njxgN@xNAg1Pio diff --git a/doc/html/a00043.html b/doc/html/a00043.html index 3c4fe95fe4..4e1db9e4ef 100644 --- a/doc/html/a00043.html +++ b/doc/html/a00043.html @@ -3,8 +3,8 @@ - -tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::call_clear_on_leave Struct 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)
 
call_clear_on_leave (concurrent_hash_map *a_ch_map)
 
+void dismiss ()
 
- - - + + +

-Friends

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

+Public Attributes

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

diff --git a/doc/html/a00044.html b/doc/html/a00044.html index c3b7898b69..4c7db73a52 100644 --- a/doc/html/a00044.html +++ b/doc/html/a00044.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference + +tbb::flow::interface10::callback< Callback, T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
+
tbb::flow::interface10::callback< Callback, T > Class Template Reference
- -

Concurrent priority queue. - More...

- -

#include <concurrent_priority_queue.h>

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

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

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

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

diff --git a/doc/html/a00036.png b/doc/html/a00044.png similarity index 100% rename from doc/html/a00036.png rename to doc/html/a00044.png diff --git a/doc/html/a00045.html b/doc/html/a00045.html index 27f60d8c57..a7707d6d0b 100644 --- a/doc/html/a00045.html +++ b/doc/html/a00045.html @@ -3,8 +3,8 @@ - -tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference + +tbb::flow::interface10::callback_base Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
+
tbb::flow::interface10::callback_base Class Referenceabstract
- -

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

- -

#include <concurrent_queue.h>

-Inheritance diagram for tbb::strict_ppl::concurrent_queue< T, A >:
+Inheritance diagram for tbb::flow::interface10::callback_base:
- - + + +tbb::flow::interface10::callback< Callback, T >
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

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

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

-Friends

-template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 
+virtual void call ()=0
 
-

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

diff --git a/doc/html/a00045.png b/doc/html/a00045.png index c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b..2b42d5a912300cb905a526dd075e5b1f5e5f9615 100644 GIT binary patch literal 1232 zcmeAS@N?(olHy`uVBq!ia0y~yVB`a`J2;quq~gb~&w!LffKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+153Q8i(^Oy^EO^{w7Qo2-uAzqM=SWn$m{P>~V$n`ZuI>h;G3<^K=VRx5LtdG{`V6OyGueC7OSErPr}e{eg9@iknFkAI{n!@zvr4dZ%nocX*1lnwz*wbiO^Wb+RcoLv_w3o}RT zK|}X7j-_uRW&7B3Pu$^7c<|>z;628w=aoG3!+PsKGXH1oJ3gH|KhLQzF@;Bc@jYgD zyWZ(1*KMEi@6wKXjb)ombosy4?^NyIT(>@NXMXSEt{VkBR^c;tb$nj(d-9uz<&zeK z++lLJ$yeS!ZC5&jMj=n!Mc(MUU8yC4PrVuX{vJuoWS2cxdSkiIT&>zyzSq;;cOE-< zsLSwFXpd4}Yw~U7-?P5+Zmavrcw8=iX_VXO5bD_8$E6PRkCkSUP{gVeEIriP5)^(bY82y z@|*T+g@)21kLkIBaZWi(b>CAMe+c}aU!e2!Q;-k?4={+GAOXb5E+E9Gpd#atacp9c z*C+isml*ax&1ZUgM7DTv6Zd{vjVP|}%^)chQ{)IXZUuT?LgDo<* z{n4%K*XmqfBDc`yj?U9FufIoZy0E~1rd8;#E3?;~@4I+UpQ+1m+b-jOt@@>M>Bs+l z5HHNBPKp1#@8GsurG3f$>x0%xEshP_8mU)ew|Z@Ti}HWjRQH`%st#Z4mVan*-yu8H z>Qvw9x${rd3- zdu6Up=~jJ64Bwl}{#$O(jh_qNl~|lPV|T!rL%#blyOjKN*|aouF+O8%&i0wDEr-uI q9ZF171P1ekp5$4}Jmc2?XSf)0GyljM^~J#Ahr!d;&t;ucLK6UaTQHIU delta 829 zcmV-D1H$~!3FrnPiBL{Q4GJ0x0000DNk~Le0002_0000`2m=5B0PKPzgpnaSe**VO zL_t(|0qvdJlA|yT1=}xk{{N4c1!E*%fH2uf&B|4r5NuhvC0V?ZQc593lB9r|b)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::captured_exception Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > 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::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::captured_exception:
- - + + +tbb::tbb_exception
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

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 (concurrent_unordered_map &&table, const Allocator &a)
 
concurrent_unordered_map (const 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
 
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 () __TBB_override throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void __TBB_EXPORTED_METHOD destroy () __TBB_override throw ()
 Destroys objects created by the move() method. More...
 
void throw_self () __TBB_override
 Throws this exception object. More...
 
+const char *__TBB_EXPORTED_METHOD name () const __TBB_override throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char *__TBB_EXPORTED_METHOD what () const __TBB_override 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:
    -
  • concurrent_unordered_map.h
  • +
  • tbb_exception.h

diff --git a/doc/html/a00046.png b/doc/html/a00046.png index 0e3c40436b0749b06f4880bfe7bb6a5d63b2a463..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 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/a00047.html b/doc/html/a00047.html index 95b3e8238a..a47d829dfd 100644 --- a/doc/html/a00047.html +++ b/doc/html/a00047.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference + +tbb::combinable< T > Class Template Reference @@ -13,7 +13,7 @@

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

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

+ +

#include <combinable.h>

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

-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

+template<typename finit >
 combinable (finit _finit)
 
~combinable ()
 destructor
 
combinable (const combinable &other)
 
combinable (combinable &&other)
 
+combinableoperator= (const combinable &other)
 
+combinableoperator= (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:
    -
  • concurrent_unordered_map.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/a00048.html b/doc/html/a00048.html index 4de49da82e..20ca9d0dce 100644 --- a/doc/html/a00048.html +++ b/doc/html/a00048.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference + +tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface6::internal::concrete_filter< T, U, Body > Class Template Reference
-
-Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

-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 (concurrent_unordered_multimap &&table, const Allocator &a)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 

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

diff --git a/doc/html/a00048.png b/doc/html/a00048.png deleted file mode 100644 index 6fa3b58c9af6e07c385a119cbebb0f48e002ea6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/doc/html/a00049.html b/doc/html/a00049.html index d314d900a4..abdd7d7e72 100644 --- a/doc/html/a00049.html +++ b/doc/html/a00049.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference + +tbb::concurrent_bounded_queue< T, A > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::concurrent_bounded_queue< T, A > Class Template Reference
+ +

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

+ +

#include <concurrent_queue.h>

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

Public Types

-typedef Key key_type
 
-typedef base_type::value_type value_type
 
-typedef Key mapped_type
 
-typedef Hasher hasher
 
-typedef Key_equality key_equal
 
-typedef hash_compare key_compare
 
-typedef base_type::allocator_type allocator_type
 
-typedef base_type::pointer pointer
 
-typedef base_type::const_pointer const_pointer
 
-typedef base_type::reference reference
 
-typedef base_type::const_reference const_reference
 
-typedef base_type::size_type size_type
 
-typedef base_type::difference_type difference_type
 
-typedef base_type::iterator iterator
 
-typedef base_type::const_iterator const_iterator
 
-typedef base_type::iterator local_iterator
 
-typedef base_type::const_iterator const_local_iterator
 
+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_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 (concurrent_unordered_multiset &&table, const Allocator &a)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
concurrent_bounded_queue (const allocator_type &a=allocator_type())
 Construct empty queue.
 
concurrent_bounded_queue (const concurrent_bounded_queue &src, const allocator_type &a=allocator_type())
 Copy constructor.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src)
 Move constructors.
 
concurrent_bounded_queue (concurrent_bounded_queue &&src, const allocator_type &a)
 
+template<typename InputIterator >
 concurrent_bounded_queue (InputIterator begin, InputIterator end, const allocator_type &a=allocator_type())
 [begin,end) constructor
 
~concurrent_bounded_queue ()
 Destroy queue.
 
+void push (const T &source)
 Enqueue an item at tail of queue.
 
+void push (T &&source)
 Move an item at tail of queue.
 
+template<typename... Arguments>
void emplace (Arguments &&...args)
 
void pop (T &destination)
 Dequeue item from head of queue. More...
 
+void abort ()
 Abort all pending queue operations.
 
bool try_push (const T &source)
 Enqueue an item at tail of queue if queue is not already full. More...
 
bool try_push (T &&source)
 Move an item at tail of queue if queue is not already full. More...
 
+template<typename... Arguments>
bool try_emplace (Arguments &&...args)
 
bool try_pop (T &destination)
 Attempt to dequeue an item from head of queue. More...
 
size_type size () const
 Return number of pushes minus number of pops. More...
 
+bool empty () const
 Equivalent to size()<=0.
 
+size_type capacity () const
 Maximum number of allowed elements.
 
void set_capacity (size_type new_capacity)
 Set the capacity. More...
 
+allocator_type get_allocator () const
 return allocator object
 
+void clear ()
 clear the queue. not thread-safe.
 
+iterator unsafe_begin ()
 
+iterator unsafe_end ()
 
+const_iterator unsafe_begin () const
 
+const_iterator unsafe_end () const
 
+ + + + +

+Friends

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

Detailed Description

+

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

+ +

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

+

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

+

Member Typedef Documentation

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

Integral type for representing size of the queue.

+

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

+ +
+
+

Member Function Documentation

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

Dequeue item from head of queue.

+

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

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

Set the capacity.

+

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

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

Return number of pushes minus number of pops.

+

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

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

Attempt to dequeue an item from head of queue.

+

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

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

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

+

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

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

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

+

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

+ +
+

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

diff --git a/doc/html/a00049.png b/doc/html/a00049.png index 3ef6d1904236c3649eed742e1ffccb737f059db0..3dc03c333709697a42cb92d8e57a8cb283aa9e6c 100644 GIT binary patch delta 722 zcmV;@0xkW$5dH-riBL{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!FVZZE!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/a00050.html b/doc/html/a00050.html index 6e2336181a..1bef02693e 100644 --- a/doc/html/a00050.html +++ b/doc/html/a00050.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A > Class Template Reference
+ +

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

+ +

#include <concurrent_hash_map.h>

-Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >:
- - + +
+ + + + + + + + + + + + + + + + +

+Classes

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

Public Types

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

Public Member Functions

concurrent_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 (concurrent_unordered_set &&table, const Allocator &a)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
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, size_type reserve_size)
 
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::hash_map_iterator
 
+template<typename I >
class internal::hash_map_range
 
+class const_accessor
 
+const_accessoraccessor_location (accessor_not_used const &)
 
+const_accessoraccessor_location (const_accessor &a)
 
+bool is_write_access_needed (accessor const &)
 
+bool is_write_access_needed (const_accessor const &)
 
+bool is_write_access_needed (accessor_not_used const &)
 
+

Detailed Description

+

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

+ +

Unordered map from Key to T.

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

Member Function Documentation

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

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

+

Returns true if item is new.

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

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

+

Returns true if item is new.

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

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

+

Returns true if item is inserted.

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

Erase item.

+

Return true if item was erased by particularly this call.

+ +

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

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

Erase item by const_accessor.

+

Return true if item was erased by particularly this call.

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

Erase item by accessor.

+

Return true if item was erased by particularly this call.

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

Find item and acquire a read lock on the item.

+

Return true if item is found, false otherwise.

+ +

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

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

Find item and acquire a write lock on the item.

+

Return true if item is found, false otherwise.

+ +

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

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

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

+

Returns true if item is new.

+ +

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

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

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

+

Returns true if item is new.

+ +

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

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

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

+

Returns true if item is new.

+ +

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

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

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

+

Returns true if item is new.

+ +

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

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

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

+

Returns true if item is inserted.

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

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

+

Returns true if item is new.

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

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

+

Returns true if item is new.

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

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

+

Returns true if item is inserted.

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

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

+

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

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

Rehashes and optionally resizes the whole table.

+

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

+ +
+

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

diff --git a/doc/html/a00050.png b/doc/html/a00050.png index 9f9a0992510e41f62a52fb5849b985065586c9cb..3f0a8f2647a021e7aaf7f2cdc797f78fc7a65808 100644 GIT binary patch delta 1010 zcmZ24Fo#32Gr-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*CkKw2Q 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/a00051.html b/doc/html/a00051.html index 588c84726b..6e91a2e551 100644 --- a/doc/html/a00051.html +++ b/doc/html/a00051.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference + +tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
+
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type > Class Template Reference
+
+Inheritance diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >:
+
+
+ + + +
- - - - - - - - - - - + + +

-Protected Types

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

+Public Types

+typedef handle_object handle
 
- - - + + + + +

-Protected Member Functions

concurrent_unordered_set_traits (const hash_compare &hc)
 

+Public Member Functions

concurrent_lru_cache (value_function_type f, std::size_t number_of_lru_history_items)
 
+handle_object operator[] (key_type k)
 
- - - -

-Static Protected Member Functions

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

-Protected Attributes

-hash_compare my_hash_compare
 

+Friends

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

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

diff --git a/doc/html/a00043.png b/doc/html/a00051.png similarity index 100% rename from doc/html/a00043.png rename to doc/html/a00051.png diff --git a/doc/html/a00052.html b/doc/html/a00052.html index 6ba938a643..1c5f046ad1 100644 --- a/doc/html/a00052.html +++ b/doc/html/a00052.html @@ -3,8 +3,8 @@ - -tbb::concurrent_vector< T, A > Class Template Reference + +tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference @@ -13,7 +13,7 @@ +List of all members
-
tbb::concurrent_vector< T, A > Class Template Reference
+
tbb::interface5::concurrent_priority_queue< T, Compare, A > Class Template Reference
-

Concurrent vector container. +

Concurrent priority queue. More...

-

#include <concurrent_vector.h>

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

#include <concurrent_priority_queue.h>

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

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 T value_type
 Element type in the queue.
 
+typedef T & reference
 Reference type.
 
+typedef const T & const_reference
 Const reference type.
 
+typedef size_t size_type
 Integral type for representing size of the queue.
 
+typedef ptrdiff_t difference_type
 Difference type for iterator.
 
+typedef A allocator_type
 Allocator type.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

concurrent_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
 
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, class A = cache_aligned_allocator<T>>
-class tbb::concurrent_vector< T, A >

+

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

-

Concurrent 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

- +

Concurrent priority queue.

+

Constructor & Destructor Documentation

+
-template<typename T, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+inlineexplicit
- + - + +
void tbb::concurrent_vector< T, A >::clear tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue ()const concurrent_priority_queue< T, Compare, A > & src)
-inline
-

Clear container while keeping memory allocated.

-

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

+

Copy constructor.

+

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

- +
-template<typename T, class A = cache_aligned_allocator<T>>
-
-template<typename... Args>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
@@ -474,25 +228,25 @@
- + - - + + + + + + + + + + + +
iterator tbb::concurrent_vector< T, A >::emplace_back tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (Args &&... args)const concurrent_priority_queue< T, Compare, A > & src,
const allocator_typea 
)
-

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

-

Returns iterator pointing to the new element.

+

Copy constructor with specific allocator.

+

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

- +
-template<typename T, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
iterator tbb::concurrent_vector< T, A >::grow_by tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (size_type delta)concurrent_priority_queue< T, Compare, A > && src)
@@ -503,31 +257,31 @@
-

Grow by "delta" elements.

-

Returns iterator pointing to the first new element.

+

Move constructor.

+

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

- +
-template<typename T, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + + - - + + @@ -542,38 +296,57 @@
iterator tbb::concurrent_vector< T, A >::grow_by tbb::interface5::concurrent_priority_queue< T, Compare, A >::concurrent_priority_queue (size_type delta, concurrent_priority_queue< T, Compare, A > && src,
const_reference t const allocator_typea 
-

Grow by "delta" elements using copying constructor.

-

Returns iterator pointing to the first new element.

+

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, class A = cache_aligned_allocator<T>>
-
-template<typename I >
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + +
- + - - - - - + - - +
iterator tbb::concurrent_vector< T, A >::grow_by void tbb::interface5::concurrent_priority_queue< T, Compare, A >::clear (first,
) last 
+
+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>
+ + + @@ -582,25 +355,26 @@
+ + + + + - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::emplace (Args &&... args) )
-

Returns iterator pointing to the first new element.

+ +

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, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
@@ -609,24 +383,26 @@
- + - - - + +
iterator tbb::concurrent_vector< T, A >::grow_by bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::empty (std::initializer_list< T > init_list)) const
-

Returns iterator pointing to the first new element.

+ +

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, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (size_type n)const concurrent_priority_queue< T, Compare, A > & src)
@@ -637,36 +413,55 @@
-

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.

+

Assignment operator.

+

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

- +
-template<typename T, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
+ + +
- + - - - - - + + - - +
iterator tbb::concurrent_vector< T, A >::grow_to_at_least concurrent_priority_queue& tbb::interface5::concurrent_priority_queue< T, Compare, A >::operator= (size_type n,
concurrent_priority_queue< T, Compare, A > && src) const_reference t 
+
+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>>
+ + + @@ -675,24 +470,26 @@
+ + + + + - -
void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (const_reference elem) )
-

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.

+ +

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, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
reference tbb::concurrent_vector< T, A >::operator[] void tbb::interface5::concurrent_priority_queue< T, Compare, A >::push (size_type index)value_type && elem)
@@ -703,26 +500,25 @@
-

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

+

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, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
@@ -732,25 +528,25 @@
- + - - - + +
iterator tbb::concurrent_vector< T, A >::push_back size_type tbb::interface5::concurrent_priority_queue< T, Compare, A >::size (const_reference item)) const
-

Push item.

-

Returns iterator pointing to the new element.

+

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, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
iterator tbb::concurrent_vector< T, A >::push_back void tbb::interface5::concurrent_priority_queue< T, Compare, A >::swap (T && item)concurrent_priority_queue< T, Compare, A > & q)
@@ -761,25 +557,25 @@
-

Push item, move-aware.

-

Returns iterator pointing to the new element.

+

Swap this queue with another; not thread-safe.

+

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

- +
-template<typename T, class A = cache_aligned_allocator<T>>
+template<typename T , typename Compare = std::less<T>, typename A = cache_aligned_allocator<T>>
- + - - + +
void tbb::concurrent_vector< T, A >::reserve bool tbb::interface5::concurrent_priority_queue< T, Compare, A >::try_pop (size_type n)reference elem)
@@ -790,13 +586,13 @@
-

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.

+

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

diff --git a/doc/html/a00053.html b/doc/html/a00053.html index ef346fc0b0..2f5531af6a 100644 --- a/doc/html/a00053.html +++ b/doc/html/a00053.html @@ -3,8 +3,8 @@ - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference + +tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference
+
tbb::strict_ppl::concurrent_queue< T, A > Class Template Reference
-

Combines data access, locking, and garbage collection. +

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

-

#include <concurrent_hash_map.h>

+

#include <concurrent_queue.h>

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

Public Types

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

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

-Protected Member Functions

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

-Protected Attributes

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

-class concurrent_hash_map< Key, T, HashCompare, Allocator >
 
-class accessor
 
+template<typename Container , typename Value >
class internal::concurrent_queue_iterator
 

Detailed Description

-

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

+

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

Combines data access, locking, and garbage collection.

-

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

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

diff --git a/doc/html/a00053.png b/doc/html/a00053.png index e861a116ac2abfa8cb7650d913490b2180287e83..c7a9a4dd8a1bdf76bed3cf3af03fbd8ef90a637b 100644 GIT binary patch delta 829 zcmV-D1H$~^4(J9UiBL{Q4GJ0x0000DNk~Le0002_0000`2m=5B0PKPzgpnaSe**VO zL_t(|0qvdJlA|yT1=}xk{{N4c1!E*%fH2uf&B|4r5NuhvC0V?ZQc593lB9r|b)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{?D8PT83_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/a00054.html b/doc/html/a00054.html index e3ee1af588..f989687d65 100644 --- a/doc/html/a00054.html +++ b/doc/html/a00054.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::continue_msg Class Reference + +tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::continue_msg Class Reference
+
tbb::interface5::concurrent_unordered_map< Key, T, Hasher, Key_equality, Allocator > 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
  • +
    +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 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_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 (concurrent_unordered_map &&table, const Allocator &a)
     
    concurrent_unordered_map (const concurrent_unordered_map &table, const Allocator &a)
     
    +mapped_type & operator[] (const key_type &key)
     
    +mapped_type & at (const key_type &key)
     
    +const mapped_type & at (const key_type &key) const
     
    +
    The documentation for this class was generated from the following file:
      +
    • concurrent_unordered_map.h

diff --git a/doc/html/a00054.png b/doc/html/a00054.png new file mode 100644 index 0000000000000000000000000000000000000000..0e3c40436b0749b06f4880bfe7bb6a5d63b2a463 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 0 HcmV?d00001 diff --git a/doc/html/a00055.html b/doc/html/a00055.html index 3dfd5ba87d..66d32221f3 100644 --- a/doc/html/a00055.html +++ b/doc/html/a00055.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::continue_receiver Class Reference + +tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -13,7 +13,7 @@

- +
-
tbb::flow::interface10::continue_receiver Class Referenceabstract
+
tbb::interface5::concurrent_unordered_map_traits< Key, T, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
- -

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

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface10::continue_receiver:
-
-
- - -tbb::flow::interface10::receiver< continue_msg > -tbb::flow::interface10::internal::untyped_receiver - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef continue_msg input_type
 The input type.
 
-typedef receiver< input_type >
-::predecessor_type 
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::interface10::receiver< continue_msg >
-typedef continue_msg input_type
 The input type of this receiver.
 
-typedef continue_msg input_type
 The input type of this receiver.
 
-typedef
-internal::async_helpers
-< continue_msg >
-::filtered_type 
filtered_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::interface10::internal::untyped_receiver
-typedef untyped_sender 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

continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
-bool register_predecessor (predecessor_type &) __TBB_override
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &) __TBB_override
 Decrements the trigger threshold. More...
 
-built_predecessors_typebuilt_predecessors () __TBB_override
 
-void internal_add_built_predecessor (predecessor_type &s) __TBB_override
 
-void internal_delete_built_predecessor (predecessor_type &s) __TBB_override
 
-void copy_predecessors (predecessor_list_type &v) __TBB_override
 
-size_t predecessor_count () __TBB_override
 
- Public Member Functions inherited from tbb::flow::interface10::receiver< continue_msg >
-bool try_put (const typename internal::async_helpers< continue_msg >::filtered_type &t)
 Put an item to the receiver.
 
-bool try_put (const typename internal::async_helpers< continue_msg >::async_type &t)
 
-bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
-virtual ~receiver ()
 Destructor.
 
- Public Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
-virtual ~untyped_receiver ()
 Destructor.
 
-template<typename X >
bool try_put (const X &t)
 Put an item to the receiver.
 

+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

-task * try_put_task (const input_type &) __TBB_override
 Put item to successor; return task to run the successor if possible.
 
-void reset_receiver (reset_flags f) __TBB_override
 put receiver back in initial state
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
-bool is_continue_receiver () __TBB_override
 
- Protected Member Functions inherited from tbb::flow::interface10::receiver< continue_msg >
-virtual task * try_put_task_wrapper (const void *p, bool is_async) __TBB_override
 
-virtual graph & graph_reference ()=0
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
-template<typename X >
task * try_put_task (const X &t)
 
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

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

-Friends

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

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

- -

Referenced by try_put_task().

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool tbb::flow::interface10::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::interface10::receiver< continue_msg >.

- -
-

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

diff --git a/doc/html/a00055.png b/doc/html/a00055.png deleted file mode 100644 index 3ec9a78900caae92233fc66abd4d9d28504110d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 zcmb`HYf#c@6o>!hrP9>N@{(xonA)g$sRsYLnzkhxu8M(TxnxZ=SfU`Pn7OF4DQmfC zitA?9(x#>4rCcHvHN4xTgl>5U#4Nmvmnd(= z$4mzR06oMB9~1yUplZ(CrlG#2RKCBum<9)gz*Q=h8YgEJ2{|n{)bu$`O-)+YM3(C3 zws=$!8c;WFp1v0$hX6o}hw%9({d_grI!-W%di}*GqB`G< zalDY7$zs{hMIW=E=yY4c;d*9!nJNQ{2#@6@8LTZ1T_t)?e{dQR%zO(@PzlMg$`SeO zxcNZqCAmlKX$D1$vcn{$sz0)}H*m0i$O-GCByiai4MQV$N}r96&0eoKlH(}!zzOli ziOW&>rY)BnpY<|^ohi^>^EZ8tRqRi&j+)?;9sw*bHoeVkKxRe46hE0q9uNQZe9TR& zLqv>1rb~QzKYn{{{}`Fv6=?eIxgw0X7Df^jLrqTBSn=52@9?UMl*I+zx-F^uNZs;{ z*Mi5xr9O9@CeSn9>AWh?>4wXASKq=ti3r+WTlml~Y|>bPH|jOdC-3^mJ_W_8>h$T# z)xl#TFWBr(q@Vl5{0mjJMgr|+VlofuNPQ`Lz`7E@52330Np6i8ZGIH{Dzc0LlBG%Z3a1pUtR%4ldeExz2@JPc1i4mQ%>Mdp#Fo@QIYT5X741 zC~Rp;c4V?M(txKd8>x>5A32NPj#SPyD@c4!P8`;tv{62Z?+O^;v6jrRsKoRSk>+6+ z$Z07Z1=1AqjwDW^8`8WoHWqcQ-&2T`yG6>cY2{YjR{b6wxXMtO zSs98&lTA&cRk2sH+^ajdmzME2BdI3Z^DV65@-hnoI9?v`=9ySfmp|-qdpjBHnJ^xn zI5ezn`EZ2>PHYqxk;PgbmI<6xOwz93n~YZWC*hDWHZ>AfcTp|#3?gnniJmcy=d$Zg zp}}d!S@c*2T|X?M@{e%%oT-EGe4v;Ol3CY{Tsz!+d*tYtKmoL871vI?$VDWD+IL#BQTo6@uBIh@7=YwyV0}x-B1`a(no* z24|%I(BNXPc7rczS%2thjSKUAZp1-IMJ*FtzdONZz0F*^&iQLK;2vz_)Eg^#TxR!? zhze;D!JaO~&sheIbzg&33EW8?#=<9BAg;8`vqST-G*vFc`u~zfu-I#ImKvAcn-I&4 zM@ZV$KSiQhR;VPM^~z|)S;iQ(m7yH~(0={L8Ag_yac?AH+PCraiQjs%tCu`aqnpQE zgkj<~nmuOFZOD|yM{;2>xwYT!ak`;vA+D*qfJcj}-s1|=0s!5JI><`-h8g%BjaF@^ p@qJqNzfG&BC?DmI^0&)P1 - -tbb::internal::critical_section_v4 Class Reference + +tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::critical_section_v4 Class Reference
+
tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator > Class Template Reference
-Inheritance diagram for tbb::internal::critical_section_v4:
+Inheritance diagram for tbb::interface5::concurrent_unordered_multimap< Key, T, Hasher, Key_equality, Allocator >:
- - + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

class  scoped_lock
 

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

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
 
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 (concurrent_unordered_multimap &&table, const Allocator &a)
 
concurrent_unordered_multimap (const concurrent_unordered_multimap &table, const Allocator &a)
 

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

diff --git a/doc/html/a00056.png b/doc/html/a00056.png index 835e586da28f510461f35f10ee6b875f87115368..6fa3b58c9af6e07c385a119cbebb0f48e002ea6d 100644 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 delta 576 zcmV-G0>AzK5bXpZiBL{Q4GJ0x0000DNk~Le0002J0000`2m=5B0DIGfUXdX>e*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 - -tbb::flow::interface10::opencl_info::default_device_filter Struct Reference + +tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_info::default_device_filter Struct Reference
+
tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_multiset< Key, Hasher, Key_equality, Allocator >:
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

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

Public Member Functions

-opencl_device_list operator() (const opencl_device_list &devices)
 
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 (concurrent_unordered_multiset &&table, const Allocator &a)
 
concurrent_unordered_multiset (const concurrent_unordered_multiset &table, const Allocator &a)
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this class was generated from the following file:
      +
    • concurrent_unordered_set.h

diff --git a/doc/html/a00057.png b/doc/html/a00057.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef6d1904236c3649eed742e1ffccb737f059db0 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 literal 0 HcmV?d00001 diff --git a/doc/html/a00058.html b/doc/html/a00058.html index 9c1e1c5696..c9ea7f931b 100644 --- a/doc/html/a00058.html +++ b/doc/html/a00058.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_info::default_device_selector< Factory > Struct Template Reference + +tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_info::default_device_selector< Factory > Struct Template Reference
+
tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator > Class Template Reference
+
+Inheritance diagram for tbb::interface5::concurrent_unordered_set< Key, Hasher, Key_equality, Allocator >:
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

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

Public Member Functions

-opencl_device operator() (Factory &f)
 
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 (concurrent_unordered_set &&table, const Allocator &a)
 
concurrent_unordered_set (const concurrent_unordered_set &table, const Allocator &a)
 
-
The documentation for this struct was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +
    The documentation for this class was generated from the following file:
      +
    • concurrent_unordered_set.h

diff --git a/doc/html/a00058.png b/doc/html/a00058.png new file mode 100644 index 0000000000000000000000000000000000000000..9f9a0992510e41f62a52fb5849b985065586c9cb 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 0 HcmV?d00001 diff --git a/doc/html/a00059.html b/doc/html/a00059.html index 21b378e471..5ff61aee8c 100644 --- a/doc/html/a00059.html +++ b/doc/html/a00059.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_info::default_opencl_factory Class Reference + +tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_info::default_opencl_factory Class Reference
+
tbb::interface5::concurrent_unordered_set_traits< Key, Hash_compare, Allocator, Allow_multimapping > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface10::opencl_info::default_opencl_factory:
-
-
- - -tbb::flow::interface10::opencl_factory< default_device_filter > - -
- - - - - - - - - - - - - + + + + + + + + + + +

-Public Types

-template<typename T >
using async_msg_type = opencl_async_msg< T, default_opencl_factory >
 
- Public Types inherited from tbb::flow::interface10::opencl_factory< default_device_filter >
-using async_msg_type = opencl_async_msg< T, opencl_factory< default_device_filter >>
 
-typedef opencl_device device_type
 
-typedef kernel kernel_type
 
-typedef opencl_range range_type
 

+Protected Types

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

-Friends

-default_opencl_factorydefault_factory ()
 

+Protected Member Functions

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

-Additional Inherited Members

- Public Member Functions inherited from tbb::flow::interface10::opencl_factory< default_device_filter >
-bool init (const opencl_device_list &device_list)
 
-void send_kernel (opencl_device device, const kernel_type &kernel, const range_type &work_size, Args &...args)
 
-void send_data (opencl_device device, T &t, Rest &...args)
 
-void send_data (opencl_device)
 
-void finalize (opencl_device device, FinalizeFn fn, Args &...args)
 
-const opencl_device_listdevices ()
 

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

diff --git a/doc/html/a00060.html b/doc/html/a00060.html index 773df282a8..c8accf8132 100644 --- a/doc/html/a00060.html +++ b/doc/html/a00060.html @@ -3,8 +3,8 @@ - -tbb::flow::interface9::gfx_factory::device_type Struct Reference + +tbb::concurrent_vector< T, A > Class Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface9::gfx_factory::device_type Struct Reference
+
tbb::concurrent_vector< T, A > Class Template Reference
-
The documentation for this struct was generated from the following file:
    -
  • gfx_factory.h
  • + +

    Concurrent vector container. + More...

    + +

    #include <concurrent_vector.h>

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

    +Public Types

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

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

    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/a00052.png b/doc/html/a00060.png similarity index 100% rename from doc/html/a00052.png rename to doc/html/a00060.png diff --git a/doc/html/a00061.html b/doc/html/a00061.html index c6c0f257be..362e68a3bd 100644 --- a/doc/html/a00061.html +++ b/doc/html/a00061.html @@ -3,8 +3,8 @@ - -tbb::flow::interface9::gfx_factory::dummy_device_selector Class Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface9::gfx_factory::dummy_device_selector Class Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::const_accessor Class 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:
+
+
+ + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::accessor + +
+ + + + +

+Public Types

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

Public Member Functions

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

    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

diff --git a/doc/html/a00061.png b/doc/html/a00061.png new file mode 100644 index 0000000000000000000000000000000000000000..e861a116ac2abfa8cb7650d913490b2180287e83 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 0 HcmV?d00001 diff --git a/doc/html/a00062.html b/doc/html/a00062.html index f37a198e58..1f584ca72e 100644 --- a/doc/html/a00062.html +++ b/doc/html/a00062.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::edge_container< C > Class Template Reference + +tbb::flow::interface10::continue_msg Class Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::flow::interface10::internal::edge_container< C > Class Template Reference
+
tbb::flow::interface10::continue_msg Class Reference
- - - - -

-Public Types

-typedef std::list< C
-*, tbb::tbb_allocator< C * > > 
edge_list_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)
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.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/a00063.html b/doc/html/a00063.html index 39a72faa75..fb1e6e6393 100644 --- a/doc/html/a00063.html +++ b/doc/html/a00063.html @@ -3,8 +3,8 @@ - -tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference + +tbb::flow::interface10::continue_receiver Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
+
tbb::flow::interface10::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::interface10::continue_receiver:
- - + + +tbb::flow::interface10::receiver< continue_msg > +tbb::flow::interface10::internal::untyped_receiver
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef continue_msg input_type
 The input type.
 
+typedef receiver< input_type >
+::predecessor_type 
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::interface10::receiver< continue_msg >
+typedef continue_msg input_type
 The input type of this receiver.
 
+typedef continue_msg input_type
 The input type of this receiver.
 
+typedef
+internal::async_helpers
+< continue_msg >
+::filtered_type 
filtered_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::interface10::internal::untyped_receiver
+typedef untyped_sender 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

element_construction_guard (pointer an_element)
 
-void dismiss ()
 
continue_receiver (int number_of_predecessors=0)
 Constructor.
 
continue_receiver (const continue_receiver &src)
 Copy constructor.
 
+bool register_predecessor (predecessor_type &) __TBB_override
 Increments the trigger threshold.
 
bool remove_predecessor (predecessor_type &) __TBB_override
 Decrements the trigger threshold. More...
 
+built_predecessors_typebuilt_predecessors () __TBB_override
 
+void internal_add_built_predecessor (predecessor_type &s) __TBB_override
 
+void internal_delete_built_predecessor (predecessor_type &s) __TBB_override
 
+void copy_predecessors (predecessor_list_type &v) __TBB_override
 
+size_t predecessor_count () __TBB_override
 
- Public Member Functions inherited from tbb::flow::interface10::receiver< continue_msg >
+bool try_put (const typename internal::async_helpers< continue_msg >::filtered_type &t)
 Put an item to the receiver.
 
+bool try_put (const typename internal::async_helpers< continue_msg >::async_type &t)
 
+bool try_put (const continue_msg &t)
 Put an item to the receiver.
 
+virtual ~receiver ()
 Destructor.
 
- Public Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
+virtual ~untyped_receiver ()
 Destructor.
 
+template<typename X >
bool try_put (const X &t)
 Put an item to the receiver.
 
+ + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+task * try_put_task (const input_type &) __TBB_override
 Put item to successor; return task to run the successor if possible.
 
+void reset_receiver (reset_flags f) __TBB_override
 put receiver back in initial state
 
virtual task * execute ()=0
 Does whatever should happen when the threshold is reached. More...
 
+bool is_continue_receiver () __TBB_override
 
- Protected Member Functions inherited from tbb::flow::interface10::receiver< continue_msg >
+virtual task * try_put_task_wrapper (const void *p, bool is_async) __TBB_override
 
+virtual graph & graph_reference ()=0
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
+template<typename X >
task * try_put_task (const X &t)
 
+ + + + + + + + + + +

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

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

    + +

    Referenced by try_put_task().

    + +
    +
    + +
    +
    + + + + + +
    + + + + + + + + +
    bool tbb::flow::interface10::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::interface10::receiver< continue_msg >.

    + +
    +
    +
    The documentation for this class was generated from the following file:
    diff --git a/doc/html/a00063.png b/doc/html/a00063.png index 0b05314963f9bf5563543dda942f32e1d95f8dc4..3ec9a78900caae92233fc66abd4d9d28504110d1 100644 GIT binary patch literal 1579 zcmb`HYf#c@6o>!hrP9>N@{(xonA)g$sRsYLnzkhxu8M(TxnxZ=SfU`Pn7OF4DQmfC zitA?9(x#>4rCcHvHN4xTgl>5U#4Nmvmnd(= z$4mzR06oMB9~1yUplZ(CrlG#2RKCBum<9)gz*Q=h8YgEJ2{|n{)bu$`O-)+YM3(C3 zws=$!8c;WFp1v0$hX6o}hw%9({d_grI!-W%di}*GqB`G< zalDY7$zs{hMIW=E=yY4c;d*9!nJNQ{2#@6@8LTZ1T_t)?e{dQR%zO(@PzlMg$`SeO zxcNZqCAmlKX$D1$vcn{$sz0)}H*m0i$O-GCByiai4MQV$N}r96&0eoKlH(}!zzOli ziOW&>rY)BnpY<|^ohi^>^EZ8tRqRi&j+)?;9sw*bHoeVkKxRe46hE0q9uNQZe9TR& zLqv>1rb~QzKYn{{{}`Fv6=?eIxgw0X7Df^jLrqTBSn=52@9?UMl*I+zx-F^uNZs;{ z*Mi5xr9O9@CeSn9>AWh?>4wXASKq=ti3r+WTlml~Y|>bPH|jOdC-3^mJ_W_8>h$T# z)xl#TFWBr(q@Vl5{0mjJMgr|+VlofuNPQ`Lz`7E@52330Np6i8ZGIH{Dzc0LlBG%Z3a1pUtR%4ldeExz2@JPc1i4mQ%>Mdp#Fo@QIYT5X741 zC~Rp;c4V?M(txKd8>x>5A32NPj#SPyD@c4!P8`;tv{62Z?+O^;v6jrRsKoRSk>+6+ z$Z07Z1=1AqjwDW^8`8WoHWqcQ-&2T`yG6>cY2{YjR{b6wxXMtO zSs98&lTA&cRk2sH+^ajdmzME2BdI3Z^DV65@-hnoI9?v`=9ySfmp|-qdpjBHnJ^xn zI5ezn`EZ2>PHYqxk;PgbmI<6xOwz93n~YZWC*hDWHZ>AfcTp|#3?gnniJmcy=d$Zg zp}}d!S@c*2T|X?M@{e%%oT-EGe4v;Ol3CY{Tsz!+d*tYtKmoL871vI?$VDWD+IL#BQTo6@uBIh@7=YwyV0}x-B1`a(no* z24|%I(BNXPc7rczS%2thjSKUAZp1-IMJ*FtzdONZz0F*^&iQLK;2vz_)Eg^#TxR!? zhze;D!JaO~&sheIbzg&33EW8?#=<9BAg;8`vqST-G*vFc`u~zfu-I#ImKvAcn-I&4 zM@ZV$KSiQhR;VPM^~z|)S;iQ(m7yH~(0={L8Ag_yac?AH+PCraiQjs%tCu`aqnpQE zgkj<~nmuOFZOD|yM{;2>xwYT!ak`;vA+D*qfJcj}-s1|=0s!5JI><`-h8g%BjaF@^ p@qJqNzfG&BC?DmI^0&)P1v=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) diff --git a/doc/html/a00064.html b/doc/html/a00064.html index 4a41473ae2..a4393664ed 100644 --- a/doc/html/a00064.html +++ b/doc/html/a00064.html @@ -3,8 +3,8 @@ - -tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference + +tbb::internal::critical_section_v4 Class Reference @@ -13,7 +13,7 @@
    - +
-
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/a00064.png b/doc/html/a00064.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/a00065.html b/doc/html/a00065.html index 245f3efed7..343b31e3da 100644 --- a/doc/html/a00065.html +++ b/doc/html/a00065.html @@ -3,8 +3,8 @@ - -tbb::filter Class Reference + +tbb::flow::interface10::opencl_info::default_device_filter Struct Reference @@ -13,7 +13,7 @@
    - +
-
tbb::filter Class Reference
+
tbb::flow::interface10::opencl_info::default_device_filter Struct Reference
- -

A stage in a pipeline. - More...

- -

#include <pipeline.h>

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

-Static Protected Attributes

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

+Public Member Functions

+opencl_device_list operator() (const opencl_device_list &devices)
 
-

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
  • +
    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 4688909fbb..f5925c0f92 100644 --- a/doc/html/a00066.html +++ b/doc/html/a00066.html @@ -3,8 +3,8 @@ - -tbb::interface6::filter_t< T, U > Class Template Reference + +tbb::flow::interface10::opencl_info::default_device_selector< Factory > Struct Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::filter_t< T, U > Class Template Reference
+
tbb::flow::interface10::opencl_info::default_device_selector< Factory > Struct Template 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 operator() (Factory &f)
 
-

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/a00067.html b/doc/html/a00067.html index 7b2779453e..025bb88a2f 100644 --- a/doc/html/a00067.html +++ b/doc/html/a00067.html @@ -3,8 +3,8 @@ - -tbb::final_scan_tag Struct Reference + +tbb::flow::interface10::opencl_info::default_opencl_factory Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::final_scan_tag Struct Reference
+
tbb::flow::interface10::opencl_info::default_opencl_factory Class Reference
- -

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

- -

#include <parallel_scan.h>

+
+Inheritance diagram for tbb::flow::interface10::opencl_info::default_opencl_factory:
+
+
+ + +tbb::flow::interface10::opencl_factory< default_device_filter > + +
- - - + + + + + + + + + + + + +

-Public Member Functions

operator bool ()
 

+Public Types

+template<typename T >
using async_msg_type = opencl_async_msg< T, default_opencl_factory >
 
- Public Types inherited from tbb::flow::interface10::opencl_factory< default_device_filter >
+using async_msg_type = opencl_async_msg< T, opencl_factory< default_device_filter >>
 
+typedef opencl_device device_type
 
+typedef kernel kernel_type
 
+typedef opencl_range range_type
 
- - - + + + +

-Static Public Member Functions

-static bool is_final_scan ()
 

+Friends

+default_opencl_factorydefault_factory ()
 
+ + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from tbb::flow::interface10::opencl_factory< default_device_filter >
+bool init (const opencl_device_list &device_list)
 
+void send_kernel (opencl_device device, const kernel_type &kernel, const range_type &work_size, Args &...args)
 
+void send_data (opencl_device device, T &t, Rest &...args)
 
+void send_data (opencl_device)
 
+void finalize (opencl_device device, FinalizeFn fn, Args &...args)
 
+const opencl_device_listdevices ()
 
-

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/a00059.png b/doc/html/a00067.png similarity index 100% rename from doc/html/a00059.png rename to doc/html/a00067.png diff --git a/doc/html/a00068.html b/doc/html/a00068.html index 2fe65fed3e..41c905a1dc 100644 --- a/doc/html/a00068.html +++ b/doc/html/a00068.html @@ -3,8 +3,8 @@ - -tbb::interface6::fixed_pool Class Reference + +tbb::flow::interface9::gfx_factory::device_type Struct Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::interface6::fixed_pool Class Reference
+
tbb::flow::interface9::gfx_factory::device_type Struct Reference
-
-Inheritance diagram for tbb::interface6::fixed_pool:
-
-
- - - -
- - - - - - - - -

-Public Member Functions

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

diff --git a/doc/html/a00068.png b/doc/html/a00068.png deleted file mode 100644 index 8cf0f936e679a3260597e6bd40ca5a20cd113f3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^bAUL2gBeKP_Ia}bNJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~p7nHb45?szJNM?KR|Y(+(fV`#|9?E2 zb$#c~1t%N214U!|95EQ$#q)XRu3de7_NJES`v*=t-(IR_Qt@0~6Z=Hvr7p-44olBZ8&1re>C1JX^$tT? zYTC}*xk7Y!>==zT|M_KLutFazUa^J@UmCW zlP5mQpLNSi_4;Tl@4PgPt&Mj) z+qs|qQavy9(r2CIyD8c4ZU`T@nzLiFcjS}(#kJey-WASW`!r&FVdQ&MBb@0Mb_w AY5)KL diff --git a/doc/html/a00069.html b/doc/html/a00069.html index 8914e6c516..17836540bc 100644 --- a/doc/html/a00069.html +++ b/doc/html/a00069.html @@ -3,8 +3,8 @@ - -tbb::interface6::flattened2d< Container > Class Template Reference + +tbb::flow::interface9::gfx_factory::dummy_device_selector Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::flattened2d< Container > Class Template Reference
+
tbb::flow::interface9::gfx_factory::dummy_device_selector Class Reference
- - - - - - - - - - - - - - - - - - - - - - -

-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
 
+device_type operator() (gfx_factory &)
 

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

diff --git a/doc/html/a00070.html b/doc/html/a00070.html index 79e668ad94..fbeaa9db55 100644 --- a/doc/html/a00070.html +++ b/doc/html/a00070.html @@ -3,8 +3,8 @@ - -tbb::interface6::flow_control Class Reference + +tbb::flow::interface10::internal::edge_container< C > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::flow_control Class Reference
+
tbb::flow::interface10::internal::edge_container< C > Class Template Reference
- -

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

- -

#include <pipeline.h>

+ + + +

+Public Types

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

Public Member Functions

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

-Friends

-template<typename T , typename U , typename Body >
class internal::concrete_filter
 
+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)
 
-

Detailed Description

-

input_filter control to signal end-of-input for parallel_pipeline

-

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

diff --git a/doc/html/a00071.html b/doc/html/a00071.html index 3951512d78..5c05efe0b8 100644 --- a/doc/html/a00071.html +++ b/doc/html/a00071.html @@ -3,8 +3,8 @@ - -tbb::flow::interface9::gfx_async_msg< T > Class Template Reference + +tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface9::gfx_async_msg< T > Class Template Reference
+
tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard Struct Reference
-Inheritance diagram for tbb::flow::interface9::gfx_async_msg< T >:
+Inheritance diagram for tbb::concurrent_vector< T, A >::push_back_helper::element_construction_guard:
- - + +
- - - -

-Public Types

-typedef gfx_offload::task_id_type kernel_id_type
 
- - - - - - - - - - + + + + +

Public Member Functions

gfx_async_msg (const T &input_data)
 
-T & data ()
 
-const T & data () const
 
-void set_task_id (kernel_id_type id)
 
-kernel_id_type task_id () const
 
element_construction_guard (pointer an_element)
 
+void dismiss ()
 
+ + +

+Public Attributes

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

    diff --git a/doc/html/a00071.png b/doc/html/a00071.png index 6a00083f0770d1e6929703aad0a4d8075d103f7e..0b05314963f9bf5563543dda942f32e1d95f8dc4 100644 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) delta 795 zcmV+$1LXXj2*(B?iBL{Q4GJ0x0000DNk~Le0002>0000`2m=5B0QSDa3Xvf?e*)G? zL_t(|0qvd9va28rMHesK|NqC=Dgp`EQ`_F!nJ{%96$xa8BtH^f zY?ec}k2OB5`BJA26X*)+)ve97fBja@zuYRE|Jb~kx28-Qqdcty!BM}M>2GAXci4_q zqP{Y^ncXBm)#91wSGd1MojcH;;U>|C)NL_1w62Lt(i#0n>h0IHI$r^Y)HXUlan`1; zN7TMt?J;_4Gcif#`jNW!J=}Jsy<0o3+@tD&dxK$y|4t8=q&IbH)6aW&e+~6u&wIBs zhwl4ZZ)h^hk5ysdbQuy*l*?h%dL7*zx$c{h_&o*f5yDYG-KI(wVTwa zwZ4>MX+mRWA7!{-`M}$OO?#9k8BA)oW!B>Q;wzSY)chnr)vjfpt6v|Z-V=K_-`@A- zEAHRar9`Yl$JA{xxcGIw`4#HzcXZY!;zup=IHFz4^M!Rt-PPEMv$nN1@XXiMqYQsk z*WH!}(HK(u{S(ydaco`t9`1Wo@$9hK*eQE+K4|6nP)5|%vij}(7-skjJsjWyJ+b>K z2cMgKCACf0-0^%fANe<)*sTXJ)}?1X@EpMCjC;?l_Y)Zo@O@2cfEb$805P;sr<77O Z{R2@xl6PC{G{pb_002ovPDHLkV1i;Wi|YUY diff --git a/doc/html/a00072.html b/doc/html/a00072.html index 5bc3ea0d03..ccf2c6b80a 100644 --- a/doc/html/a00072.html +++ b/doc/html/a00072.html @@ -3,8 +3,8 @@ - -tbb::flow::interface9::gfx_buffer< T > Class Template Reference + +tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface9::gfx_buffer< T > Class Template Reference
+
tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type > Class Template 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 >:
+
+
+ + + +
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

-typedef std::vector< T >::iterator iterator
 
-typedef std::vector< T >
-::const_iterator 
const_iterator
 
-typedef std::size_t size_type
 
+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

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

+Friends

+template<typename U , typename A , ets_key_usage_type C>
class enumerable_thread_specific
 
-
The documentation for this class was generated from the following file:
    -
  • gfx_factory.h
  • +

    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

diff --git a/doc/html/a00072.png b/doc/html/a00072.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/a00073.html b/doc/html/a00073.html index af37dbc3fb..1a9d857321 100644 --- a/doc/html/a00073.html +++ b/doc/html/a00073.html @@ -3,8 +3,8 @@ - -tbb::flow::interface9::gfx_factory Class Reference + +tbb::profiling::interface10::event Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface9::gfx_factory Class Reference
+
tbb::profiling::interface10::event Struct Reference
- - - - - -

-Classes

struct  device_type
 
class  dummy_device_selector
 
- - - - - - - - -

-Public Types

-template<typename T >
using async_msg_type = gfx_async_msg< T >
 
-typedef func_wrapper kernel_type
 
-typedef gfx_offload::task_id_type kernel_id_type
 
- - - - - - - - - - - + + + + + + + + +

Public Member Functions

gfx_factory (tbb::flow::graph &g)
 
-template<typename... Args>
void send_data (device_type, Args &...args)
 
-template<typename... Args>
void send_kernel (device_type, const kernel_type &kernel, Args &...args)
 
-template<typename FinalizeFn , typename... Args>
void finalize (device_type, FinalizeFn fn, Args &...)
 
event (const std::string &input)
 
+void emit ()
 
event (const std::string &)
 
+void emit ()
 
+ + + + +

+Static Public Member Functions

+static void emit (const std::string &description)
 
+static void emit (const std::string &)
 
-
The documentation for this class was generated from the following file:
    -
  • gfx_factory.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • tbb_profiling.h

diff --git a/doc/html/a00074.html b/doc/html/a00074.html index 2fee853e5c..77d519340f 100644 --- a/doc/html/a00074.html +++ b/doc/html/a00074.html @@ -3,8 +3,8 @@ - -tbb::interface9::global_control Class Reference + +tbb::filter Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface9::global_control Class Reference
+
tbb::filter Class Reference
+ +

A stage in a pipeline. + More...

+ +

#include <pipeline.h>

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

-Public Types

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

-Public Member Functions

global_control (parameter p, size_t value)
 
- - - + + + + + + + + + + + + + + + +

-Static Public Member Functions

-static size_t active_value (parameter p)
 

+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

+

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

diff --git a/doc/html/a00065.png b/doc/html/a00074.png similarity index 100% rename from doc/html/a00065.png rename to doc/html/a00074.png diff --git a/doc/html/a00075.html b/doc/html/a00075.html index 68059bbee5..9dc91ad811 100644 --- a/doc/html/a00075.html +++ b/doc/html/a00075.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::graph_proxy Class Reference + +tbb::interface6::filter_t< T, U > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::graph_proxy Class Referenceabstract
+
tbb::interface6::filter_t< T, U > Class Template Reference
-

Pure virtual template classes that define interfaces for async communication. +

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

-

#include <flow_graph_abstractions.h>

-
-Inheritance diagram for tbb::flow::interface10::graph_proxy:
-
-
- - -tbb::flow::interface10::receiver_gateway< Input > - -
+

#include <pipeline.h>

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

Public Member Functions

-virtual void reserve_wait ()=0
 Inform a graph that messages may come from outside, to prevent premature graph completion.
 
-virtual void release_wait ()=0
 Inform a graph that a previous call to reserve_wait is no longer in effect.
 
filter_t (const filter_t< T, U > &rhs)
 
+template<typename Body >
 filter_t (tbb::filter::mode mode, const Body &body)
 
+void operator= (const filter_t< T, U > &rhs)
 
+void clear ()
 
+ + + + + + + + + +

+Friends

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

Detailed Description

-

Pure virtual template classes that define interfaces for async communication.

+

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

diff --git a/doc/html/a00076.html b/doc/html/a00076.html index f72e44d0d7..35824cc5a6 100644 --- a/doc/html/a00076.html +++ b/doc/html/a00076.html @@ -3,8 +3,8 @@ - -tbb::internal::tbb_thread_v3::id Class Reference + +tbb::final_scan_tag Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::tbb_thread_v3::id Class Reference
+
tbb::final_scan_tag Struct Reference
+ +

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

+ +

#include <parallel_scan.h>

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

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

+Public Member Functions

operator bool ()
 
+ + +

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this class was generated from the following file:
    -
  • tbb_thread.h
  • +

    Detailed Description

    +

    Used to indicate that the final scan is being performed.

    +

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

diff --git a/doc/html/a00077.html b/doc/html/a00077.html index f3274d71a9..b6cd471fd1 100644 --- a/doc/html/a00077.html +++ b/doc/html/a00077.html @@ -3,8 +3,8 @@ - -tbb::improper_lock Class Reference + +tbb::interface6::fixed_pool Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::improper_lock Class Reference
+
tbb::interface6::fixed_pool Class Reference
- -

Exception for PPL locks. - More...

- -

#include <tbb_exception.h>

-Inheritance diagram for tbb::improper_lock:
+Inheritance diagram for tbb::interface6::fixed_pool:
- - + +
- - + + + + + +

Public Member Functions

-const char * what () const __TBB_override throw ()
 
fixed_pool (void *buf, size_t size)
 construct pool with underlying allocator
 
~fixed_pool ()
 destroy pool
 
-

Detailed Description

-

Exception for PPL locks.

-

The documentation for this class was generated from the following file:
    -
  • tbb_exception.h
  • +
    The documentation for this class was generated from the following file:
    diff --git a/doc/html/a00077.png b/doc/html/a00077.png index 7f4f5571e678cab77f93f0ecf6ecf96ba1437811..8cf0f936e679a3260597e6bd40ca5a20cd113f3f 100644 GIT binary patch delta 527 zcmV+q0`UFs1HJ?yiBL{Q4GJ0x0000DNk~Le0001-0000`2m=5B0NYILu#q7M#riTQ8jd|KpnluZg*!$$*Pd6&@9JN$=o7x$V+>0whVNd|l)u=`DnuBzXuq zN%FABnVC%rz=hlZW@To%+ihaIndKI@dF`f_i);n(5pnvd7DyARr5 zRm1COrq#~oXd<^qFBSP$S9a>>W0B@>n%YVw*S9ri*dA-O?D2IalzX(-q3oqS;~bBE z{?P^Ie@t%6j=}e1ns4jWasVSj4!}dm0eD#d1I^6l-G+(ByDr`&TvXn8^S3` zZFtCOX4V&gYrFtD^MLd9>Mwo3IVihJpK$)0x(z2lBf<&LhHwJ3A)Ekh2q!=r!U@oZ za00X;oB$s&GwTcn(3NlkwBb?b(ByAE4{(9ijX7}S1h~WrXWBKxX$tv#f9m2BDNyuH zSN=^+S)cR|<(@Nzm*#y;1Ls6;ecyM+Pqu89WWBa-02i)C&Q!O!1uc`sd~R}1zi6GE z>%v((x7W6KpBv7#w|<{{&fKkV)^%&JI+p5m#aPvCu{G+tUG~Tq+i|1krM-N+bNPz| q*x|Q7C%_$q6QB(bInB)a7V-mfdqnA-mKdY}0000 - -tbb::tick_count::interval_t Class Reference + +tbb::interface6::flattened2d< Container > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::tick_count::interval_t Class Reference
+
tbb::interface6::flattened2d< Container > Class Template Reference
- -

Relative time interval. - More...

- -

#include <tick_count.h>

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

+Public Types

+typedef conval_type::size_type size_type
 Basic types.
 
+typedef
+conval_type::difference_type 
difference_type
 
+typedef conval_type::allocator_type allocator_type
 
+typedef conval_type::value_type value_type
 
+typedef conval_type::reference reference
 
+typedef
+conval_type::const_reference 
const_reference
 
+typedef conval_type::pointer pointer
 
+typedef conval_type::const_pointer const_pointer
 
+typedef
+internal::segmented_iterator
+< Container, value_type > 
iterator
 
+typedef
+internal::segmented_iterator
+< Container, const value_type > 
const_iterator
 
- - - - - - - - - - - - - - - -

Public Member Functions

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

-

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

diff --git a/doc/html/a00079.html b/doc/html/a00079.html index c7969501ee..a21e8bded0 100644 --- a/doc/html/a00079.html +++ b/doc/html/a00079.html @@ -3,8 +3,8 @@ - -tbb::invalid_multiple_scheduling Class Reference + +tbb::interface6::flow_control Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::invalid_multiple_scheduling Class Reference
+
tbb::interface6::flow_control Class Reference
-

Exception for repeated scheduling of the same task_handle. +

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

-

#include <tbb_exception.h>

-
-Inheritance diagram for tbb::invalid_multiple_scheduling:
-
-
- - - -
+

#include <pipeline.h>

- - + + +

Public Member Functions

-const char * what () const __TBB_override throw ()
 
+void stop ()
 
+ + + +

+Friends

+template<typename T , typename U , typename Body >
class internal::concrete_filter
 

Detailed Description

-

Exception for repeated scheduling of the same task_handle.

+

input_filter control to signal end-of-input for parallel_pipeline


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

diff --git a/doc/html/a00079.png b/doc/html/a00079.png deleted file mode 100644 index ba8483c1cf060fa2603cfd6dbb3498dee4db5661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;_W8{<0j=jQ~Uk$ zg>PH2{r#M|zJGuHFADGRyyW_BWBk-2ZR^RW!hk%}ysh!uO<3>jb$NbN<)xJQ&GYru zze{siet$~P{PwRl5UAqanmJ#t&Rg+&f9n5_XJ+a@o%wnD8`YKP7e724H;GU3cHAU6 z{@Ia_!Idb zINxCYA%Kr7lbB|vBXM8>RQ=)pzgM3AKlPkJm;G|%ookjqfBvq`njfaUyW9RI^B0T9 zTh3RWlv|LvIsW{)mz#Lr-m~IW-?sbfvQry-pS5P{xN9WopYHB>8rwA|_^E;GrL6at zRhm~l<;r**n!l^Xenv2Brq}A}YP=c`%PY3UuO6D7{b{^>) - -tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel Class Reference + +tbb::flow::interface9::gfx_async_msg< T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel Class Reference
+
tbb::flow::interface9::gfx_async_msg< T > Class Template Reference
-Inheritance diagram for tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel:
+Inheritance diagram for tbb::flow::interface9::gfx_async_msg< T >:
- - + +
+ + + +

+Public Types

+typedef gfx_offload::task_id_type kernel_id_type
 
- - -

Public Member Functions

kernel (const kernel &k)
 
- - - - - - - + + + + + + + + + +

-Friends

-template<typename DeviceFilter_ >
class opencl_factory
 
-template<typename Factory >
class opencl_program
 
gfx_async_msg (const T &input_data)
 
+T & data ()
 
+const T & data () const
 
+void set_task_id (kernel_id_type id)
 
+kernel_id_type task_id () const
 

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

diff --git a/doc/html/a00080.png b/doc/html/a00080.png index 390fec9182b0ebd240c6467c1746328b2e12b66a..6a00083f0770d1e6929703aad0a4d8075d103f7e 100644 GIT binary patch delta 795 zcmV+$1LXY12ge2>iBL{Q4GJ0x0000DNk~Le0002>0000`2m=5B0QSDa3Xvf?e*)G? zL_t(|0qvd9va28rMHesK|NqC=Dgp`EQ`_F!nJ{%96$xa8BtH^f zY?ec}k2OB5`BJA26X*)+)ve97fBja@zuYRE|Jb~kx28-Qqdcty!BM}M>2GAXci4_q zqP{Y^ncXBm)#91wSGd1MojcH;;U>|C)NL_1w62Lt(i#0n>h0IHI$r^Y)HXUlan`1; zN7TMt?J;_4Gcif#`jNW!J=}Jsy<0o3+@tD&dxK$y|4t8=q&IbH)6aW&e+~6u&wIBs zhwl4ZZ)h^hk5ysdbQuy*l*?h%dL7*zx$c{h_&o*f5yDYG-KI(wVTwa zwZ4>MX+mRWA7!{-`M}$OO?#9k8BA)oW!B>Q;wzSY)chnr)vjfpt6v|Z-V=K_-`@A- zEAHRar9`Yl$JA{xxcGIw`4#HzcXZY!;zup=IHFz4^M!Rt-PPEMv$nN1@XXiMqYQsk z*WH!}(HK(u{S(ydaco`t9`1Wo@$9hK*eQE+K4|6nP)5|%vij}(7-skjJsjWyJ+b>K z2cMgKCACf0-0^%fANe<)*sTXJ)}?1X@EpMCjC;?l_Y)Zo@O@2cfEb$805P;sr<77O Z{R2@xl6PC{G{pb_002ovPDHLkV1nLhj1vF= literal 966 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzE12~w0YLYUb!Y zt>Uj|tE%QC_1^|fht@MaZ{8{XZqgT*eF|;ok4|4w|J-_0i;C^kkcdf2U}bQIXQJ`u zBWHBj8W#Rw^k8W6Xk}#j`O~wL@eznMlf|!-@eq(D)KGYmgUy4%O*L6Ufl*>=Phta0 zLWoftP$KZ81gR2|`fX>=2pMlyFlb;=XbF)}n1qaDAHEFyca>T1+=7xV&dVYhWT*9o zce3vAH2q=laqq&ViOTdmd6_w*W;8*Z%Wdltj9{`%ns|E9U$jC+~yo~K)vR=6kZhJNAKvK_(e)^9JF z>R;A+Ud?QEN$e`$yuGDIblEQ%UQgrPeq1>J)w#aexh6kyihCZu3*53hXZ^C*#t$5< zpZh$_V!!?L_0AFiv#Ry<_Yhn|n_yX4zb=H@eLaBNne*{9)hGV|$Dv z;xDLq{#?EB{nFU|H}9u&<*!^Pe|WBQuIVn}!_PPWp7!@(-tr6m4~?EA?3=B6ODJM? z?z-1AuWq)vQ@md{Fg)^+n_S+z7q?SBn(%+I?@ZbmxohWTJ?EdkSMqj-u5wuYc3wtx$g$b0 z-`O0n|CIi_qRUxtCc_`|>%V6_z7QMKAjdEK<9E`JOeTAe#D;toQML|boDy{7jE - -tbb::flow::interface10::limiter_node< T > Class Template Reference + +tbb::flow::interface9::gfx_buffer< T > Class Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::limiter_node< T > Class Template Reference
+
tbb::flow::interface9::gfx_buffer< T > Class Template Reference
+ + + + + + + + +

+Public Types

+typedef std::vector< T >::iterator iterator
 
+typedef std::vector< T >
+::const_iterator 
const_iterator
 
+typedef std::size_t size_type
 
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

gfx_buffer (size_type size)
 
+T * data ()
 
+const T * data () const
 
+size_type size () const
 
+const_iterator cbegin () const
 
+const_iterator cend () const
 
+iterator begin ()
 
+iterator end ()
 
+T & operator[] (size_type pos)
 
+const T & operator[] (size_type pos) const
 

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

diff --git a/doc/html/a00082.html b/doc/html/a00082.html index 1b4f71228b..e4f5189f10 100644 --- a/doc/html/a00082.html +++ b/doc/html/a00082.html @@ -3,8 +3,8 @@ - -tbb::interface6::memory_pool< Alloc > Class Template Reference + +tbb::flow::interface9::gfx_factory Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::memory_pool< Alloc > Class Template Reference
+
tbb::flow::interface9::gfx_factory Class Reference
- -

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

- -

#include <memory_pool.h>

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

+Classes

struct  device_type
 
class  dummy_device_selector
 
+ + + + + + + + +

+Public Types

+template<typename T >
using async_msg_type = gfx_async_msg< T >
 
+typedef func_wrapper kernel_type
 
+typedef gfx_offload::task_id_type kernel_id_type
 
- - - - - - + + + + + + + + + + +

Public Member Functions

memory_pool (const Alloc &src=Alloc())
 construct pool with underlying allocator
 
~memory_pool ()
 destroy pool
 
gfx_factory (tbb::flow::graph &g)
 
+template<typename... Args>
void send_data (device_type, Args &...args)
 
+template<typename... Args>
void send_kernel (device_type, const kernel_type &kernel, Args &...args)
 
+template<typename FinalizeFn , typename... Args>
void finalize (device_type, FinalizeFn fn, Args &...)
 
-

Detailed Description

-

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

diff --git a/doc/html/a00082.png b/doc/html/a00082.png deleted file mode 100644 index 040c525da839e5eac853d6e1a5792784458e9f56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^kAOIUgBeH~pNX6eq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0^gLZ0Ln;{G&W)b5+JJ{O+TQZ_{f{4v z>JrovyPml1Tje!QX*$xLwyoU}){Ytoas{#wt}Yrkx5Tcq-rb+T^Z z^7TP^UPse*z3{lSc8_;q*RFrFo~2lotGtZ6x2=1>cG}$9nt-F4=GW79%lRAT$Czq+ znhT`|PWpGKwae=E&NVA0eNn9mE7a7?zop~(N@%x+=RHnW&rg0DUX#kzT#Yv`Wc;DS z->^|K{^Li9dxbSePZpFM|Lw2nr)TEP8wm``FcojQf+w#(_49G)sv``t&!pH2)Q@+(_J}ien4jLY+~2a-#{bT{ z3XUCXe|J6l^)uq$|7#-8itBIA&TW1+@$35N{W-H#Ji0w5m)1+Jc<qqUn>SH#qso1U5!_RQ;l zNZ$6Cdqodt`Fx|h%)9q(H8lBX=^I$f!dnpq+m6M qcTcQ^L?7hBLhy6@wKF*>bqwz1U9REzw~c|RiNVv=&t;ucLK6VN`#O~X diff --git a/doc/html/a00083.html b/doc/html/a00083.html index a7abc3daba..882fc1dbb4 100644 --- a/doc/html/a00083.html +++ b/doc/html/a00083.html @@ -3,8 +3,8 @@ - -tbb::interface6::memory_pool_allocator< T, P > Class Template Reference + +tbb::interface9::global_control Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
+
tbb::interface9::global_control Class 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
 
enum  parameter { max_allowed_parallelism, +thread_stack_size, +parameter_max + }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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

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

+Static Public Member Functions

+static size_t active_value (parameter p)
 
-

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

diff --git a/doc/html/a00084.html b/doc/html/a00084.html index f5eb9a67cc..798187a86f 100644 --- a/doc/html/a00084.html +++ b/doc/html/a00084.html @@ -3,8 +3,8 @@ - -tbb::interface6::memory_pool_allocator< void, P > Class Template Reference + +tbb::flow::interface10::graph_proxy Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
+
tbb::flow::interface10::graph_proxy Class Referenceabstract
-

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

Pure virtual template classes that define interfaces for async communication. More...

-

#include <memory_pool.h>

+

#include <flow_graph_abstractions.h>

+
+Inheritance diagram for tbb::flow::interface10::graph_proxy:
+
+
+ + +tbb::flow::interface10::receiver_gateway< Input > + +
- - - -

-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)
 
+virtual void reserve_wait ()=0
 Inform a graph that messages may come from outside, to prevent premature graph completion.
 
+virtual void release_wait ()=0
 Inform a graph that a previous call to reserve_wait is no longer in effect.
 

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.

+

Pure virtual template classes that define interfaces for async communication.


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

diff --git a/doc/html/a00075.png b/doc/html/a00084.png similarity index 100% rename from doc/html/a00075.png rename to doc/html/a00084.png diff --git a/doc/html/a00085.html b/doc/html/a00085.html index d040bc429a..7e02154390 100644 --- a/doc/html/a00085.html +++ b/doc/html/a00085.html @@ -3,8 +3,8 @@ - -rml::MemPoolPolicy Struct Reference + +tbb::internal::tbb_thread_v3::id Class Reference @@ -13,7 +13,7 @@
- +
-
rml::MemPoolPolicy Struct Reference
+
tbb::internal::tbb_thread_v3::id Class Reference
- - - -

-Public Types

enum  { TBBMALLOC_POOL_VERSION = 1 - }
 
- - - -

-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
 

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

diff --git a/doc/html/a00086.html b/doc/html/a00086.html index 4cfa48a39a..72e6b0e552 100644 --- a/doc/html/a00086.html +++ b/doc/html/a00086.html @@ -3,8 +3,8 @@ - -tbb::missing_wait Class Reference + +tbb::improper_lock Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::missing_wait Class Reference
+
tbb::improper_lock Class Reference
-

Exception for missing wait on structured_task_group. +

Exception for PPL locks. More...

#include <tbb_exception.h>

-Inheritance diagram for tbb::missing_wait:
+Inheritance diagram for tbb::improper_lock:
- - + +
- - +

Public Member Functions

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

Detailed Description

-

Exception for missing wait on structured_task_group.

+

Exception for PPL locks.


The documentation for this class was generated from the following file:
  • tbb_exception.h
diff --git a/doc/html/a00086.png b/doc/html/a00086.png index 7f9c4b31407dc4891a59c510c5a999ce0f36acf8..7f4f5571e678cab77f93f0ecf6ecf96ba1437811 100644 GIT binary patch delta 448 zcmV;x0YCof1MdSNiBL{Q4GJ0x0000DNk~Le0001U0000`2m=5B03D^eOpzfwe|||s zK~#7F?VZt*gCGn=PhNWe|BqKiOF*sG5!{_k$0IdC4q|9uF*EB7CP`fhrzExEk2;3| zz8m8nrzD-{*g5Q{dEBubFP6rJHhrJ2TuhSoIdrCh^5Gkk{NZAfw98p%n*Q9kQg2L0 zl6E-G+(ByDr`&TvXn8^S3` zZFtCOX4V&gYrFtD^MLd9>Mwo3IVihJpK$)0x(z2lBf<&LhHwJ3A)Ekh2q!=r!U@oZ za00X;oB$s&GwTcn(3NlkwBb?b(ByAE4{(9ijX7}S1h~WrXWBKxX$tv#f9m2BDNyuH zSN=^+S)cR|<(@Nzm*#y;1Ls6;ecyM+Pqu89WWBa-02i)C&Q!O!1uc`sd~R}1zi6GE z>%v((x7W6KpBv7#w|<{{&fKkV)^%&JI+p5m#aPvCu{G+tUG~Tq+i|1krM-N+bNPz| q*x|Q7C%_$q6QB(bInB)a7V-mfdqnA-mKdY}0000nY}5-XuwF5`(5mlCn&bBxM$&26Z`I)uytXXVD8g2+eUwIk&pklP66N(YrKlAE2!1yrCy1 z|9cU=Q~aCJGl=EkIe~GaWvX+}pepU?opLX1anI(mj?a7}dggfFRNfj-0e~hS*weLO k{?`C_n=dt)nT_BFa9}>G5LZ#C4FCWD07*qoM6N<$f_DGJfdBvi diff --git a/doc/html/a00087.html b/doc/html/a00087.html index 9536949bfc..e5424bb230 100644 --- a/doc/html/a00087.html +++ b/doc/html/a00087.html @@ -3,8 +3,8 @@ - -tbb::movable_exception< ExceptionData > Class Template Reference + +tbb::tick_count::interval_t Class Reference @@ -13,7 +13,7 @@
-
tbb::movable_exception< ExceptionData > Class Template Reference
+
tbb::tick_count::interval_t Class Reference
-

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

Relative time interval. More...

-

#include <tbb_exception.h>

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

#include <tick_count.h>

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

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 __TBB_override throw ()
 Returns RTTI name of the originally intercepted exception.
 
-const char * what () const __TBB_override throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () __TBB_override throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () __TBB_override throw ()
 Destroys objects created by the move() method. More...
 
void throw_self () __TBB_override
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
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.
 
- - - - + + + + + + + + + + + +

-Protected Attributes

-ExceptionData my_exception_data
 User data.
 

+Friends

+class tbb::tick_count
 
+interval_t operator- (const tick_count &t1, const tick_count &t0)
 Extract the intervals from the tick_counts and subtract them.
 
+interval_t operator+ (const interval_t &i, const interval_t &j)
 Add two intervals.
 
+interval_t operator- (const interval_t &i, const interval_t &j)
 Subtract two intervals.
 

Detailed Description

-

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

    Relative time interval.

    +

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

diff --git a/doc/html/a00088.html b/doc/html/a00088.html index a9b0fcd41e..3b79a335fc 100644 --- a/doc/html/a00088.html +++ b/doc/html/a00088.html @@ -3,8 +3,8 @@ - -tbb::mutex Class Reference + +tbb::invalid_multiple_scheduling Class Reference @@ -13,7 +13,7 @@
-
tbb::mutex Class Reference
+
tbb::invalid_multiple_scheduling Class Reference
-

Wrapper around the platform's native lock. +

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

-

#include <mutex.h>

+

#include <tbb_exception.h>

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

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

Detailed Description

-

Wrapper around the platform's native lock.

-

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

    Exception for repeated scheduling of the same task_handle.

    +

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

    diff --git a/doc/html/a00088.png b/doc/html/a00088.png index 5fdf55b651bc5c164a1cb34b69cc3c780cc1b9ec..ba8483c1cf060fa2603cfd6dbb3498dee4db5661 100644 GIT binary patch delta 592 zcmZ3%`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{098~W?*IS* delta 634 zcmeyzvVv8yGr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS+dUH<~$B+ufw{u^f zTW!GO(!bQ}^S}HW%?Xouy{IvKYgdOTy868{oJ)?8_!-e{n}5{B zmu<`P1)Hb8eDQ5sU0BBQJ*BOBoHrs{RaU?Fxxy#j%H;RS0N-1}QA^??dv;mg;&}VC z{>8mp^Pj%(yZ_sAR@No%(CuDp=dOz8pO^3bJ@0C)?c7znPTrinO50OEm?dgb)V<$w z-j~uXv`fyt+oL6_CC8e0-(`~D#q!U4{3r4K@NnsmiP2p&sU*{Bg-WGTi`OJ|wS{SE z%nToj^B9y3x-Q(#6`!V-yv49x-`Sw7UexQHAO77S$YcX45~5fo(ofM4Ka zyi!)08Iwdqy^}_RItcI6C@I?W%WlpicWGHC#(POWOMItSPRgBDd2DIv%bokrO<#ZN zUy;l7ugjyWBKO@}ed8JDgU>bpU!;9JJ*(R3bHEPfnkoAgzx|V0T8pc#G&R z)%>Uvs@;LHrM#c&S9wlfzl)*1U4ZLBCk#()nKhI5fc - -tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference + +tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
+
tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel Class Reference
-Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
+Inheritance diagram for tbb::flow::interface10::opencl_factory< DeviceFilter >::kernel:
- - + +
- - - - - - - - - - - - - - - - - - - + +

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)
 
kernel (const kernel &k)
 
- - - + + + + + + +

-Public Attributes

-value_type item
 

+Friends

+template<typename DeviceFilter_ >
class opencl_factory
 
+template<typename Factory >
class opencl_program
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_hash_map.h
  • +
    The documentation for this class was generated from the following file:
      +
    • flow_graph_opencl_node.h

    diff --git a/doc/html/a00089.png b/doc/html/a00089.png index b91437953953383d1bdd13d2f918fcb240b393eb..390fec9182b0ebd240c6467c1746328b2e12b66a 100644 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzE12~w0YLYUb!Y zt>Uj|tE%QC_1^|fht@MaZ{8{XZqgT*eF|;ok4|4w|J-_0i;C^kkcdf2U}bQIXQJ`u zBWHBj8W#Rw^k8W6Xk}#j`O~wL@eznMlf|!-@eq(D)KGYmgUy4%O*L6Ufl*>=Phta0 zLWoftP$KZ81gR2|`fX>=2pMlyFlb;=XbF)}n1qaDAHEFyca>T1+=7xV&dVYhWT*9o zce3vAH2q=laqq&ViOTdmd6_w*W;8*Z%Wdltj9{`%ns|E9U$jC+~yo~K)vR=6kZhJNAKvK_(e)^9JF z>R;A+Ud?QEN$e`$yuGDIblEQ%UQgrPeq1>J)w#aexh6kyihCZu3*53hXZ^C*#t$5< zpZh$_V!!?L_0AFiv#Ry<_Yhn|n_yX4zb=H@eLaBNne*{9)hGV|$Dv z;xDLq{#?EB{nFU|H}9u&<*!^Pe|WBQuIVn}!_PPWp7!@(-tr6m4~?EA?3=B6ODJM? z?z-1AuWq)vQ@md{Fg)^+n_S+z7q?SBn(%+I?@ZbmxohWTJ?EdkSMqj-u5wuYc3wtx$g$b0 z-`O0n|CIi_qRUxtCc_`|>%V6_z7QMKAjdEK<9E`JOeTAe#D;toQML|boDy{7jE)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::flow::interface10::limiter_node< T > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
-
tbb::null_mutex Class Reference
+
tbb::flow::interface10::limiter_node< T > Class Template Reference
- -

A mutex which does nothing. - More...

- -

#include <null_mutex.h>

-
-Inheritance diagram for tbb::null_mutex:
-
-
- - - -
- - - - - -

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

Detailed Description

-

A mutex which does nothing.

-

A null_mutex does no operation and simulates success.

-

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

diff --git a/doc/html/a00090.png b/doc/html/a00090.png deleted file mode 100644 index b72b3103da6961e7e331dd83e54bf97960852cd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|{n1ba4!+V0=6G^`%t?Jg(tsb8f!>e~evw zdYquU&HOftybEf)vA)9plG4gp6DK{1XVmhXC$eDD6Hn(0-+#oX*R`TkO`XP+ca#yCr`T>Z8TK)ar@ku3peND?=o!cGcxY4X-W4DTI zko}qB*(z^eOzC;o`eSR4*Cl^#2i234nL;MnWHOl=?`~lDw>ys^{6eTh{`T$(ajYee z_OQK7bzsz6bV9vB-PMiJM$?Gvf#<|P2LG-eri!2xkpq*J7BkEfk!1a_%oYCfmb)S+UHfdo^!Bmp+^U}af?xjaWO>mzkM+YW zyO_nM8DVR6GXhV=-|Km`?smvsffB=iZr53V1pO7wcxCZ?n{>lQutOIB9Sg)I^&4l; c{CV9z{$F$O?a4>=fys@*)78&qol`;+0BZ(FfB*mh diff --git a/doc/html/a00091.html b/doc/html/a00091.html index e99f7b21df..70f0e7b4fc 100644 --- a/doc/html/a00091.html +++ b/doc/html/a00091.html @@ -3,8 +3,8 @@ - -tbb::null_rw_mutex Class Reference + +tbb::interface6::memory_pool< Alloc > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::null_rw_mutex Class Reference
+
tbb::interface6::memory_pool< Alloc > Class Template Reference
-

A rw mutex which does nothing. +

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

-

#include <null_rw_mutex.h>

+

#include <memory_pool.h>

-Inheritance diagram for tbb::null_rw_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 = true
 
-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 rw mutex which does nothing.

-

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

+

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/a00091.png b/doc/html/a00091.png index 1ddf07110ee986746c8aac255d38381a067a83e9..040c525da839e5eac853d6e1a5792784458e9f56 100644 GIT binary patch delta 625 zcmcb@I-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@03a$Rf&c&j delta 678 zcmbQwdWBW7Gr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS+`eaWR$B+ufw{ve7 zH5>4_^rsnZ{{R2D>YbX_2`$??15Pn*O}%-1(-G~ov~U46&wru|COz?F)bgCSh4Yu( zf8oX6m-jaIrsmrGzyI~e)diEfUJI7%>zm{q)7Rx_>n?mhUNbT+Z@ljnkyiS3g(y%(pVReKNrJ7PD^9dL6gBGPw@bmbBYbMyE@?;gF`yh_{Ce>KMzm916pt93k| zztDIw<8EcBmd3TF4Y^95?N`b_@9>{gR^sLIJ*FnwMfK%sco>;9%$gbNz)-(V`haMO z=!M&Fm6n7v%37>6cXi#@` zVYJay;(FkTqU4|IB2ZMYJ&0!nN`bI?10P?Sy!Ep@VWUgE@Ya@gHi#>~HA5FHcn!RA| zv6{)Jw*Q&KuxH76w!Qyl8vN?{m3{>&GOzd|ZF$ROEq7ENcSPOO6Z3<6Uah*Va-(>` z>5l%@yBOxLw`Y~@_KuC*)ywc)3*=~+>%QmjnK`rmFT - -tbb::flow::interface10::null_type Struct Reference + +tbb::interface6::memory_pool_allocator< T, P > Class Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::null_type Struct Reference
+
tbb::interface6::memory_pool_allocator< T, P > Class Template Reference
-

A generic null type. +

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

-

#include <flow_graph.h>

+

#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

-

A generic null type.

-

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

    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/a00093.html b/doc/html/a00093.html index 9d21ac6b97..b42e01777c 100644 --- a/doc/html/a00093.html +++ b/doc/html/a00093.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_async_msg< T, Factory > Class Template Reference + +tbb::interface6::memory_pool_allocator< void, P > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_async_msg< T, Factory > Class Template Reference
+
tbb::interface6::memory_pool_allocator< void, P > Class Template Reference
-
-Inheritance diagram for tbb::flow::interface10::opencl_async_msg< T, Factory >:
-
-
- - -tbb::flow::interface10::async_msg< T > - -
+ +

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

Public Member Functions

opencl_async_msg (const T &data)
 
opencl_async_msg (const T &data, cl_event event)
 
-T & data (bool wait=true)
 
-const T & data (bool wait=true) const
 
opencl_async_msg (const opencl_async_msg &dmsg)
 
opencl_async_msg (opencl_async_msg &&dmsg)
 
-opencl_async_msgoperator= (const opencl_async_msg &dmsg)
 
-cl_event const * get_event () const
 
-void set_event (cl_event e) const
 
-void clear_event () const
 
-template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 
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
 
- - - + + + + + + + + + +

-Protected Member Functions

-void finalize () const __TBB_override
 

+Friends

+template<typename U , typename R >
class memory_pool_allocator
 
+template<typename V , typename U , typename R >
bool operator== (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
+template<typename V , typename U , typename R >
bool operator!= (const memory_pool_allocator< V, R > &a, const memory_pool_allocator< U, R > &b)
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    template<typename P>
    +class tbb::interface6::memory_pool_allocator< void, P >

    + +

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

    +

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

diff --git a/doc/html/a00093.png b/doc/html/a00093.png deleted file mode 100644 index b1afd1d4d2d4dbdd59b2e7feda962fce669fb01b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmeAS@N?(olHy`uVBq!ia0y~yU~~hr12~w0WY9;Q4?s#Hz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-ope`2kYKmUQk9pbs&1ZK+J;_15uJgP4te!V z61nzT;&hemykFlQNxhlzaAn`5C7s*)igFY@^m-J(c-H+dj@V?~D z#lH3aZ-&LJ|8E$UhtHOI<`~QC{^Q<>*->%Nex^>S?=0+pdTNzglkIPL_R^zuHv?DtjIOH!qmBWPe!FlqDO47OS*Ql~C1Ob40^4 z@ved1=}k+frA9I_{V4g%u!KR$tA`=*?;jQSh6O^(4k6}UCj}Lj9pU)Ers~qL0VopD zDX6gK2!}ve5(|g6Aydm#2}WT2FeIwFQ7XNUF&JgZNowguJcYNPpNy;*ef+|J zp?O{6p84;;-9C4H-^r>sTQ}O31h4nacK^G5YtCnzduMZ{vkmRe$e%uUzm5Om+oQL> zv1c#4yu#|hjrTX^zB$3zW1h$Te*3G1U$1Su_iOLddr9uwo>upib*AUrSeQr%cjXI;G(sv*In6v|ZI44Zxy-!PC{xWt~$(69D_O9<2ZX diff --git a/doc/html/a00094.html b/doc/html/a00094.html index 5d018e4aab..ca57159b2a 100644 --- a/doc/html/a00094.html +++ b/doc/html/a00094.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_buffer< T, Factory > Class Template Reference + +rml::MemPoolPolicy Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_buffer< T, Factory > Class Template Reference
+
rml::MemPoolPolicy Struct Reference
-
-Inheritance diagram for tbb::flow::interface10::opencl_buffer< T, Factory >:
-
-
- - -tbb::flow::interface10::opencl_subbuffer< T, Factory > - -
- - - - - - - - - + +

Public Types

-typedef cl_mem native_object_type
 
-typedef opencl_buffer memory_object_type
 
-typedef Factory opencl_factory_type
 
-template<access_type a>
using iterator = T *
 
enum  { TBBMALLOC_POOL_VERSION = 1 + }
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

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 (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, opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
-void receive (const opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
-opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
MemPoolPolicy (rawAllocType pAlloc_, rawFreeType pFree_, size_t granularity_=0, bool fixedPool_=false, bool keepAllMemory_=false)
 
- - - - - - - - - + + + + + + + + + + + + + + +

-Friends

-template<typename >
class opencl_factory
 
-template<typename , typename >
class opencl_subbuffer
 
-bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

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

diff --git a/doc/html/a00094.png b/doc/html/a00094.png deleted file mode 100644 index c47bbb970103e06d50b5d3bb3d4599ee4f735add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yV6+9Y12~w0WK2ZRd>|ze;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z@p{p;uuoF_;&8wqSsa&uG6=r|N7To zBV6y9@Wx_Gx?dH4W|{11p#`Zd^_gq824$~Rbz#3+mtQJGO(JSwH@y=R4hoZKvn;|4!|wu78)Fr(BlGpSdJG zHsy z=goh=cXQY8JFz$KkJ9(PFec}=bARs`FV*R~mj3nX$-RN!*L1H~6nn+?{xP=M_g7T+ zoqN0MdG$K|)N7{S5@!iW^?~@JmwV?&5ASgb*m0w{wP{|eMxQEOhD_<}^34Oz`Nvnz>Qq;C#4VoFS zIHgSbS4q`n6W{r(*JsXJc3yO{%2bt?xuUk7r&hi23<`7gp9Hjh(v+)y>(Ac*di_J@ zS>B%WP4U0AJh`^mWIPvEIr%!JNaDkr--rHx`p7)#%=fs8^)Emv=ack=B_7#x%-1e^ zv3FbT9DUEQ_ZO@4UVq%a&9i&Ivu?5M;ph8zILwmm5ilvOza4O+kiBZsmvGTG zbTD o_l&fC;d|L+>axsP_paBMR6EYNzjoD1U`fK@>FVdQ&MBb@0E;GG-v9sr diff --git a/doc/html/a00095.html b/doc/html/a00095.html index 9ec22979eb..6a80cc964d 100644 --- a/doc/html/a00095.html +++ b/doc/html/a00095.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_buffer_impl< Factory > Class Template Reference + +tbb::missing_wait Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_buffer_impl< Factory > Class Template Reference
+
tbb::missing_wait Class Reference
+ +

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

+ +

#include <tbb_exception.h>

-Inheritance diagram for tbb::flow::interface10::opencl_buffer_impl< Factory >:
+Inheritance diagram for tbb::missing_wait:
- - -tbb::flow::interface10::opencl_memory< Factory > + +
- - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

opencl_buffer_impl (size_t size, Factory &f)
 
opencl_buffer_impl (cl_mem m, size_t index, size_t size, Factory &f)
 
-size_t size () const
 
-void map_memory (opencl_device device, opencl_async_msg< void *, Factory > &dmsg) __TBB_override
 
- Public Member Functions inherited from tbb::flow::interface10::opencl_memory< Factory >
opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-Factory * factory () const
 
-opencl_async_msg< void *, Factory > receive (const cl_event *e)
 
-opencl_async_msg< void *, Factory > send (opencl_device device, const cl_event *e)
 
- - - - -

-Friends

-template<typename , typename >
class opencl_buffer
 
- - - - - - - - - - - - - - - - + +

-Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface10::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
 
+const char * what () const __TBB_override throw ()
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    Exception for missing wait on structured_task_group.

    +

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

    diff --git a/doc/html/a00095.png b/doc/html/a00095.png index 46c39ab38d17fab5ec03b1f82d2eae1e036cda86..7f9c4b31407dc4891a59c510c5a999ce0f36acf8 100644 GIT binary patch delta 443 zcmV;s0Yv_Z3F!kNiBL{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{!B002ovPDHLkV1n3BFy literal 1161 zcmeAS@N?(olHy`uVBq!ia0y~yU^D}=12~w0#ZyXjmX4>ot&El3;_9Sm6uEMldIo7|G53_^4e*ovtK9deYt0?^Xu+k`O-JvygC1D)7q^!zP;QX z{eNZdmmm8|=T*kB&sm>Te#O0JzhBVz&zp0*AMCiovu1kR+P(7Wa>`|?-7Ai##on=< zIV&(Q_w$*}h4)3f|7E@T^;+-LnWu`fV!QKxP4D|}DEl_iK7ID->z|BVOITj*wh#ES z^=$Vl52;elcj_Bt(>HHg$-bNax9YZSZ{(uqK2N$We9d-A`Hh@J`Gb3V-)b<{ZTsq> zXJ$7!_xkG4D|K<-WWRmqFF#ba>GfLfwAq^B_vRfl*=M~(cRBP-mY7) zjrT@c_U#*<$GbAWy}nj#otl3xPd%4+(@neY=l!$pwxR z{+!dBbXKNDPHSMW3yo*cZ0Hb@b_j`&Kgp}G;s~3-)#j)o<_^t`jC&TgunB}EF>`2d zWNevwg8>+k3_w#FHUO1Jbn+^!0V<|U`kH#O_R=XKnoC_=7(E!zpxdLh?fBBWGu^6r zx9yc!ZWG36aVyTITJXRUJz3kcKbFloc=^^=Ri?lBdh5b(%;OiHcC3TJ=53*0RBfkj zTDsN=iEYp8S?~yp3CD zn&0@v(LOh(R$_AQ?CFn#j5k>3GhYAx_)PMVbvf^S=X zv_6-X8q8lN|JXYxHjVzt2+8D%Pk_iuKs&rOp)uvKqb9iLf4{9?37u1bK!7|R!SHEW0NyCQapz;c7Z M)78&qol`;+09MB@5dZ)H diff --git a/doc/html/a00096.html b/doc/html/a00096.html index bab77b54f8..ac8d2b92ee 100644 --- a/doc/html/a00096.html +++ b/doc/html/a00096.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_device Class Reference + +tbb::movable_exception< ExceptionData > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface10::opencl_device Class Reference
+
tbb::movable_exception< ExceptionData > Class 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 Types

enum  : device_id_type { unknown = device_id_type( -2 ), -host = device_id_type( -1 ) - }
 
-typedef size_t device_id_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_device (cl_device_id d_id)
 
opencl_device (cl_device_id cl_d_id, device_id_type device_id)
 
-std::string platform_profile () const
 
-std::string platform_version () const
 
-std::string platform_name () const
 
-std::string platform_vendor () const
 
-std::string platform_extensions () const
 
-template<typename T >
void info (cl_device_info i, T &t) const
 
-std::string version () const
 
-int major_version () const
 
-int minor_version () const
 
-bool out_of_order_exec_mode_on_host_present () const
 
-bool out_of_order_exec_mode_on_device_present () const
 
-std::array< size_t, 3 > max_work_item_sizes () const
 
-size_t max_work_group_size () const
 
-bool built_in_kernel_available (const std::string &k) const
 
-std::string built_in_kernels () const
 
-std::string name () const
 
-cl_bool available () const
 
-cl_bool compiler_available () const
 
-cl_bool linker_available () const
 
-bool extension_available (const std::string &ext) const
 
-std::string extensions () const
 
-cl_device_type type () const
 
-std::string vendor () const
 
-cl_uint address_bits () const
 
-cl_device_id device_id () const
 
-cl_command_queue command_queue () const
 
-void set_command_queue (cl_command_queue cmd_queue)
 
-cl_platform_id platform_id () const
 
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 __TBB_override throw ()
 Returns RTTI name of the originally intercepted exception.
 
+const char * what () const __TBB_override throw ()
 Returns the result of originally intercepted exception's what() method.
 
movable_exceptionmove () __TBB_override throw ()
 Creates and returns pointer to the deep copy of this exception object. More...
 
void destroy () __TBB_override throw ()
 Destroys objects created by the move() method. More...
 
void throw_self () __TBB_override
 Throws this exception object. More...
 
- Public Member Functions inherited from tbb::tbb_exception
void operator delete (void *p)
 
- - - - - - - - - - - - - - - + + + + +

-Friends

-template<typename DeviceFilter >
class opencl_factory
 
-template<typename Factory >
class opencl_memory
 
-template<typename Factory >
class opencl_program
 
-template<typename T , typename Factory >
class opencl_buffer
 
-bool operator== (opencl_device d1, opencl_device d2)
 

+Protected Attributes

+ExceptionData my_exception_data
 User data.
 
+

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

diff --git a/doc/html/a00087.png b/doc/html/a00096.png similarity index 100% rename from doc/html/a00087.png rename to doc/html/a00096.png diff --git a/doc/html/a00097.html b/doc/html/a00097.html index 1e52d1e253..8c15c320df 100644 --- a/doc/html/a00097.html +++ b/doc/html/a00097.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_device_list Class Reference + +tbb::mutex Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_device_list Class Reference
+
tbb::mutex Class Reference
+ +

Wrapper around the platform's native lock. + More...

+ +

#include <mutex.h>

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

+Classes

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

Public Types

-typedef container_type::iterator iterator
 
-typedef
-container_type::const_iterator 
const_iterator
 
-typedef container_type::size_type size_type
 
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

opencl_device_list (std::initializer_list< opencl_device > il)
 
-void add (opencl_device d)
 
-size_type size () const
 
-bool empty () const
 
-iterator begin ()
 
-iterator end ()
 
-const_iterator begin () const
 
-const_iterator end () const
 
-const_iterator cbegin () const
 
-const_iterator cend () const
 
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

+

Wrapper around the platform's native lock.

+

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

diff --git a/doc/html/a00097.png b/doc/html/a00097.png new file mode 100644 index 0000000000000000000000000000000000000000..5fdf55b651bc5c164a1cb34b69cc3c780cc1b9ec GIT binary patch literal 680 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|=%$ba4!+V0=6G<+;@cJTCo9y*~fTuhE<^ ziP!7u(>jZFRS`nRPafI$vwP-Ej)X~1<_l(|i5< zy5rv5Q$zmvb8g+@%6+*#eb?FPMQ`p*%PZe~e8QQO%#*%h|9?KH>AMoJOY>NGZU57E zI?Ls@a?V|Aw(;!cZT6Aji8JP|JhmibRsPLj>&u6iyg7ZVdRy;tokg*gx0jhNUmRIf zudfp6`7-ak@3eOI;3<#zZREK2{`ccr>$B}*>xs3Qw)sb0eA%`vU$A-l%NO6K)rDm& z-&5ME$9W^NRb};ypDTRgtxSHO4Dh`r9JM4avS*j&EsnQOU);Mj|LF_A`@bz`WnJP9 z-R`w^?y6}1dHLSo^RC9)&Rw zT_*WmEdRX6e-hsh510O!7~MsaN-~{Rs8lMocui7QTbP!{%>%#3^fu)N% z=9cs=ERk5q&@Awg<%5fh$N^!&Kn8yo7e*UFK~@3+ALEs>(#)778tR=i8q`5}pGHa1 zo?muz9=S`)Ix*f$`dQ*Ty>e3Sw8~>kOJDBXe{TBvQ~!!wrhi=?T@|_S-s&6AI3Ikj z`TrvA!$*G$>3_~oCpQ%3Aw2D>x*#al#ospdzWQ0)$kE#>`Gzshs^`dtk5 m?E+j6I$?NX%dDBa2kf7lG)sMvG?xG-D+W(jKbLh*2~7Z*`8Xi} literal 0 HcmV?d00001 diff --git a/doc/html/a00098.html b/doc/html/a00098.html index 00dcf70832..7943ac622d 100644 --- a/doc/html/a00098.html +++ b/doc/html/a00098.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_factory< DeviceFilter > Class Template Reference + +tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_factory< DeviceFilter > Class Template Reference
+
tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node Struct Reference
+
+Inheritance diagram for tbb::interface5::concurrent_hash_map< Key, T, HashCompare, A >::node:
+
+
+ + + +
- - - -

-Classes

class  kernel
 
- - - - - - - - - - -

-Public Types

-template<typename T >
using async_msg_type = opencl_async_msg< T, opencl_factory< DeviceFilter >>
 
-typedef opencl_device device_type
 
-typedef kernel kernel_type
 
-typedef opencl_range range_type
 
- - - + + + + + + + + - - - - - - - - - - - - + + + + + + + + + +

Public Member Functions

-bool init (const opencl_device_list &device_list)
 
+
node (const Key &key)
 
node (const Key &key, const T &t)
 
node (const Key &key, T &&t)
 
node (value_type &&i)
 
template<typename... Args>
void send_kernel (opencl_device device, const kernel_type &kernel, const range_type &work_size, Args &...args)
 
-template<typename T , typename... Rest>
void send_data (opencl_device device, T &t, Rest &...args)
 
-void send_data (opencl_device)
 
-template<typename FinalizeFn , typename... Args>
void finalize (opencl_device device, FinalizeFn fn, Args &...args)
 
-const opencl_device_listdevices ()
 
 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)
 
- - - - - - - - - - + + +

-Friends

-template<typename Factory >
class opencl_program
 
-template<typename Factory >
class opencl_buffer_impl
 
-template<typename Factory >
class opencl_memory
 

+Public Attributes

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

diff --git a/doc/html/a00098.png b/doc/html/a00098.png new file mode 100644 index 0000000000000000000000000000000000000000..b91437953953383d1bdd13d2f918fcb240b393eb 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^ - -tbb::flow::interface10::opencl_memory< Factory > Class Template Reference + +tbb::null_mutex Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_memory< Factory > Class Template Referenceabstract
+
tbb::null_mutex Class Reference
+ +

A mutex which does nothing. + More...

+ +

#include <null_mutex.h>

-Inheritance diagram for tbb::flow::interface10::opencl_memory< Factory >:
+Inheritance diagram for tbb::null_mutex:
- - -tbb::flow::interface10::opencl_buffer_impl< Factory > + +
- - - - - - - - - - - - - - - + + + +

-Public Member Functions

opencl_memory (Factory &f)
 
-cl_mem get_cl_mem () const
 
-void * get_host_ptr ()
 
-Factory * factory () const
 
-opencl_async_msg< void *, Factory > receive (const cl_event *e)
 
-opencl_async_msg< void *, Factory > send (opencl_device device, const cl_event *e)
 
-virtual void map_memory (opencl_device, opencl_async_msg< void *, Factory > &)=0
 

+Classes

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

-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
 

+Static Public Attributes

+static const bool is_rw_mutex = false
 
+static const bool is_recursive_mutex = true
 
+static const bool is_fair_mutex = true
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • +

    Detailed Description

    +

    A mutex which does nothing.

    +

    A null_mutex does no operation and simulates success.

    +

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

    diff --git a/doc/html/a00099.png b/doc/html/a00099.png index ccd505daffccbdc5b64b60d7a6df1e19730ac2c9..b72b3103da6961e7e331dd83e54bf97960852cd0 100644 GIT binary patch delta 659 zcmV;E0&M+;3BUy*iBL{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@0GU5Ie*1ph z9md-S*O}`}nGrA#~6 z*%Pkm2mU_4`0e%;wMu3U{^3c?9NHThTc+M%IOLVXkZ8LB7$vKw1TiuF2&rXU!k`2c z46LnHHE&n|jGhqwtdqP7%Z{*p;8it2iLfvXIoc zcf*q=FWDe8TcvgC4HeBbN7OtMO>;ey_-nx&{s~JWm-o#} zs|ogdp7`#w^2wO**S>Py-duS2(jFzxPg~Z0UUqf*jijF7YA?3^nJ6CU3~UwcI8dys>ZWNCjEZrJE5Or_iClgYb@{BH@;2ZyfKr#I_9x= zPHhy!?FYZPX0K#;tho13TJhgoT}ijk@0QP1o;11le&@E&H^ncSJ^ifIJ6$~2eRAK` z#NFu^(=JWje#SCwJ>SdTJ87{Mk*}4upEZ4@b!*?u+t0KfKi#%-(z%xx-&{ZYyzE5S zoV#APxKp;*u9^FI^U6u@cGi6<70uPx&WwJsMRrchbQ`x(IyU+j2H>NGg zH`=9Q`H5{`^V#{cFRFPyx0?CO5~yf?AV&1qZnzqiz3N&N^DpLuS`J!jMvrQMg$9GC LtDnm{r-UW|>RLHH diff --git a/doc/html/a00100.html b/doc/html/a00100.html index 55c9957c8c..1bcc3c9f4f 100644 --- a/doc/html/a00100.html +++ b/doc/html/a00100.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_node< Args > Class Template Reference + +tbb::null_rw_mutex Class Reference @@ -13,7 +13,7 @@
    - +
+
-
tbb::flow::interface10::opencl_node< Args > Class Template Reference
+
tbb::null_rw_mutex Class Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • + +

    A rw mutex which does nothing. + More...

    + +

    #include <null_rw_mutex.h>

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

    +Classes

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

    +Static Public Attributes

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

    Detailed Description

    +

    A rw mutex which does nothing.

    +

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

    +

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

diff --git a/doc/html/a00100.png b/doc/html/a00100.png new file mode 100644 index 0000000000000000000000000000000000000000..1ddf07110ee986746c8aac255d38381a067a83e9 GIT binary patch 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::interface10::opencl_node< tuple< Ports...> > Class Template Reference + +tbb::flow::interface10::null_type Struct Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::flow::interface10::opencl_node< tuple< Ports...> > Class Template Reference
+
tbb::flow::interface10::null_type Struct Reference
-
-Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...> >:
-
-
- - -tbb::flow::interface10::opencl_node< tuple< Ports...>, queueing, opencl_info::default_opencl_factory > - -
- - - - -

-Public Types

-typedef base_type::kernel_type kernel_type
 
- - - - - - -

-Public Member Functions

opencl_node (graph &g, const kernel_type &kernel)
 
-template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d)
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_opencl_node.h
  • + +

    A generic null type. + More...

    + +

    #include <flow_graph.h>

    +

    Detailed Description

    +

    A generic null type.

    +

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

diff --git a/doc/html/a00102.html b/doc/html/a00102.html index e95299aef5..67bf4f302b 100644 --- a/doc/html/a00102.html +++ b/doc/html/a00102.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_node< tuple< Ports...>, JP > Class Template Reference + +tbb::flow::interface10::opencl_async_msg< T, Factory > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::opencl_node< tuple< Ports...>, JP > Class Template Reference
+
tbb::flow::interface10::opencl_async_msg< T, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...>, JP >:
+Inheritance diagram for tbb::flow::interface10::opencl_async_msg< T, Factory >:
- - -tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, opencl_info::default_opencl_factory > + + +tbb::flow::interface10::async_msg< T >
- - + +

Public Types

-typedef base_type::kernel_type kernel_type
 
+typedef T value_type
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_node (graph &g, const kernel_type &kernel)
 
-template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d)
 
opencl_async_msg (const T &data)
 
opencl_async_msg (const T &data, cl_event event)
 
+T & data (bool wait=true)
 
+const T & data (bool wait=true) const
 
opencl_async_msg (const opencl_async_msg &dmsg)
 
opencl_async_msg (opencl_async_msg &&dmsg)
 
+opencl_async_msgoperator= (const opencl_async_msg &dmsg)
 
+cl_event const * get_event () const
 
+void set_event (cl_event e) const
 
+void clear_event () const
 
+template<typename Callback >
void register_callback (Callback c) const
 
operator T & ()
 
operator const T & () const
 
+ + +

+Protected Member Functions

+void finalize () const __TBB_override
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • diff --git a/doc/html/a00102.png b/doc/html/a00102.png index 0efca40bd406be819b4995adf281ada7f76b93ca..b1afd1d4d2d4dbdd59b2e7feda962fce669fb01b 100644 GIT binary patch literal 1132 zcmeAS@N?(olHy`uVBq!ia0y~yU~~hr12~w0WY9;Q4?s#Hz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-ope`2kYKmUQk9pbs&1ZK+J;_15uJgP4te!V z61nzT;&hemykFlQNxhlzaAn`5C7s*)igFY@^m-J(c-H+dj@V?~D z#lH3aZ-&LJ|8E$UhtHOI<`~QC{^Q<>*->%Nex^>S?=0+pdTNzglkIPL_R^zuHv?DtjIOH!qmBWPe!FlqDO47OS*Ql~C1Ob40^4 z@ved1=}k+frA9I_{V4g%u!KR$tA`=*?;jQSh6O^(4k6}UCj}Lj9pU)Ers~qL0VopD zDX6gK2!}ve5(|g6Aydm#2}WT2FeIwFQ7XNUF&JgZNowguJcYNPpNy;*ef+|J zp?O{6p84;;-9C4H-^r>sTQ}O31h4nacK^G5YtCnzduMZ{vkmRe$e%uUzm5Om+oQL> zv1c#4yu#|hjrTX^zB$3zW1h$Te*3G1U$1Su_iOLddr9uwo>upib*AUrSeQr%cjXI;G(sv*In6v|ZI44Zxy-!PC{xWt~$(69D_O9<2ZX literal 1585 zcmcgsX;hL~82-#-xm8nXCCU@|J-x#eV+Ti&pqe;@jN%l-PK{Ms*WlE z09(9z4B{w3cAI=<5Rkhq}`Le(o8^z2mB&h z83$hnW`+3lK&Y`BZITfT4@TOmGdFW`)T#pbz;p#ICy^@-4+4h`$#WF_dIcMnC_j#iqq@2d}&TT;Nyp3eZ$?{XC`Xw zeKsr3=6mGv)~!buA{RAdN$dF|qM&T4V>GbYVy(PA}|vOGeMOP1ihk2kMK zqcDlZ>B5M9A&n%Nj55!e8w+jUuZiRu$FBCVEW<2Ea#{lT6Vs+&)jPsmxQJs=xJ9`T;nL~lX37Ab$;9f(Du*8 z;NPDrb zy_;TOJ*$wOLpJx$#4!(P_{FV^Hld>HW_ZM+#nU#aGB{Es3EhcHd>P4`Gd6l-7kR&> zdiT&&1xTpl#eOMwq%x_Xele@Gq~8CKOtwHAu=0`y^1}!?ZZvP|UE?Y$cmXB9YT;2o z%KB-IS@>~W3--}Dir&B;Z}JCB!d2rH92;*3dI9Pu z5-^Zue&8Fu4oyj6I2hg@Ty`0BQ&}-MqaMc`(4H`CqI>?u#nfM9jYE%M3nmk zj8*w;Buq%nW85A1JfWYw;(#puH%Y@O|0Ic8Nm=Ai=czjwaK?)`RGcequ%Ax5XA85q z+7y3kDdL7X>Xm)D4JQ?e@T~AIsRHNwh!sWF9`&tjGP@Txu{Fc}3u{|^my*iVPYT4B z3o|;(hC2H48P)~;U{n&UKPcbvV!Z diff --git a/doc/html/a00103.html b/doc/html/a00103.html index e36fe0e3e3..830a9e8609 100644 --- a/doc/html/a00103.html +++ b/doc/html/a00103.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference + +tbb::flow::interface10::opencl_buffer< T, Factory > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
+
tbb::flow::interface10::opencl_buffer< T, Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory >:
+Inheritance diagram for tbb::flow::interface10::opencl_buffer< T, Factory >:
- - + + +tbb::flow::interface10::opencl_subbuffer< T, Factory >
- - + + + + + + + + +

Public Types

-typedef base_type::kernel_type kernel_type
 
+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_node (graph &g, const kernel_type &kernel)
 
opencl_node (graph &g, const kernel_type &kernel, Factory &f)
 
-template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d, Factory &f)
 
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
+size_t size () const
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (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, opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
+ + + + + + + + +

+Friends

+template<typename >
class opencl_factory
 
+template<typename , typename >
class opencl_subbuffer
 
+bool operator== (const opencl_buffer< T, Factory > &lhs, const opencl_buffer< T, Factory > &rhs)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • diff --git a/doc/html/a00103.png b/doc/html/a00103.png index b87ca5cc69f1fbd508430f3f463871194bb8e344..c47bbb970103e06d50b5d3bb3d4599ee4f735add 100644 GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yV6+9Y12~w0WK2ZRd>|ze;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z@p{p;uuoF_;&8wqSsa&uG6=r|N7To zBV6y9@Wx_Gx?dH4W|{11p#`Zd^_gq824$~Rbz#3+mtQJGO(JSwH@y=R4hoZKvn;|4!|wu78)Fr(BlGpSdJG zHsy z=goh=cXQY8JFz$KkJ9(PFec}=bARs`FV*R~mj3nX$-RN!*L1H~6nn+?{xP=M_g7T+ zoqN0MdG$K|)N7{S5@!iW^?~@JmwV?&5ASgb*m0w{wP{|eMxQEOhD_<}^34Oz`Nvnz>Qq;C#4VoFS zIHgSbS4q`n6W{r(*JsXJc3yO{%2bt?xuUk7r&hi23<`7gp9Hjh(v+)y>(Ac*di_J@ zS>B%WP4U0AJh`^mWIPvEIr%!JNaDkr--rHx`p7)#%=fs8^)Emv=ack=B_7#x%-1e^ zv3FbT9DUEQ_ZO@4UVq%a&9i&Ivu?5M;ph8zILwmm5ilvOza4O+kiBZsmvGTG zbTD o_l&fC;d|L+>axsP_paBMR6EYNzjoD1U`fK@>FVdQ&MBb@0E;GG-v9sr literal 1284 zcmeAS@N?(olHy`uVBq!ia0y~yVC)9612~w0gC%yLKVCkO!=RTv+Smf zvr+$h#m+sSxMcONV@W27B@T~&Xg*W_?)NXEeyhyw$g@(x<*(KE`&gVQ{dw^2--%D= zDT~dGoGp8;QG8)cn&L^Tt?lprzI~+hBKz%~O&oVGUhVdqSeYo=@!IwHsr+}j`+OcV zTdpcR^Q2cZ`{Wk8^hln`bA1)N3nD6vo&M(tJq(PDdea$M!l3%HdRNTu-J5qR*BR?s z&HnZ%$vQ{fYkSnN$KYU!JcydqN^=|Ws zoVU4=ccS%|$!rbT_tC`p*MyU{#rtk-h)Ca>e^)N~`IM<;ZKj&3k#!6ApMCqc<*Vr{ z`Ol9wr3AmwXZn%SH)%`A zO^g#9jxs59cdi!Fd@ zM=6h~bd7G`h!|yqEH!r9D{j>1l zlV=UpaT_c4&52kky~#hx=K0Cc`o^Qy?d*4qcdwaS@X3Th`mD}8zp6jIeo+Vc_DM@k zmp^;S`SOL0f25<2l`bp)zIEO{POa^^f3D5BzJAxdb?J7#F>AUO725XN|5>@gHs#{1 zyF1h0Ywg-0AwGZqw6oLJPd$3;e*c{4KW9pRPiwvZ=*3x8`|J1euKzHI(v%aEy_dUl zc1eFk&YJ!^mv!$vUy+xxBki_i&NcSF^QE_Ua4f9k*k|yT_gk6l?!~Lc=Pp{ovDzU< zU+FdPi>tbS9D%8~cuRSD&B>&>W%G_29Jf?W5#%clS3R)RU%BbpvlYr>vIp`v&bS;a zBi}9+eRce{N$WD|T+<&68%{y!(sa>EA1( UjF_@zz#@ym)78&qol`;+0Mfi{#{d8T diff --git a/doc/html/a00104.html b/doc/html/a00104.html index bfa9343702..7e4421be4a 100644 --- a/doc/html/a00104.html +++ b/doc/html/a00104.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_program< Factory > Class Template Reference + +tbb::flow::interface10::opencl_buffer_impl< Factory > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface10::opencl_program< Factory > Class Template Reference
+
tbb::flow::interface10::opencl_buffer_impl< Factory > Class Template Reference
-Inheritance diagram for tbb::flow::interface10::opencl_program< Factory >:
+Inheritance diagram for tbb::flow::interface10::opencl_buffer_impl< Factory >:
- - + + +tbb::flow::interface10::opencl_memory< Factory >
- - - -

-Public Types

-typedef Factory::kernel_type kernel_type
 
- - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

opencl_program (Factory &factory, opencl_program_type type, const std::string &program_name)
 
opencl_program (Factory &factory, const char *program_name)
 
opencl_program (Factory &factory, const std::string &program_name)
 
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 (opencl_program_type type)
 
opencl_program (const opencl_program &src)
 
-kernel_type get_kernel (const std::string &k) const
 
opencl_buffer_impl (size_t size, Factory &f)
 
opencl_buffer_impl (cl_mem m, size_t index, size_t size, Factory &f)
 
+size_t size () const
 
+void map_memory (opencl_device device, opencl_async_msg< void *, Factory > &dmsg) __TBB_override
 
- Public Member Functions inherited from tbb::flow::interface10::opencl_memory< Factory >
opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+opencl_async_msg< void *, Factory > receive (const cl_event *e)
 
+opencl_async_msg< void *, Factory > send (opencl_device device, const cl_event *e)
 
- - - - - - + + + +

Friends

-template<typename DeviceFilter >
class opencl_factory
 
-template<typename DeviceFilter >
class opencl_factory< DeviceFilter >::kernel
 
+template<typename , typename >
class opencl_buffer
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from tbb::flow::interface10::opencl_memory< Factory >
+cl_mem my_cl_mem
 
+tbb::atomic
+< opencl_device::device_id_type > 
my_curr_device_id
 
+void * my_host_ptr
 
+Factory * my_factory
 
+tbb::spin_mutex my_sending_lock
 
+bool my_sending_event_present
 
+cl_event my_sending_event
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • diff --git a/doc/html/a00104.png b/doc/html/a00104.png index 8ce2c236820443b396cd09c4c062ee66d1b7e022..46c39ab38d17fab5ec03b1f82d2eae1e036cda86 100644 GIT binary patch literal 1161 zcmeAS@N?(olHy`uVBq!ia0y~yU^D}=12~w0#ZyXjmX4>ot&El3;_9Sm6uEMldIo7|G53_^4e*ovtK9deYt0?^Xu+k`O-JvygC1D)7q^!zP;QX z{eNZdmmm8|=T*kB&sm>Te#O0JzhBVz&zp0*AMCiovu1kR+P(7Wa>`|?-7Ai##on=< zIV&(Q_w$*}h4)3f|7E@T^;+-LnWu`fV!QKxP4D|}DEl_iK7ID->z|BVOITj*wh#ES z^=$Vl52;elcj_Bt(>HHg$-bNax9YZSZ{(uqK2N$We9d-A`Hh@J`Gb3V-)b<{ZTsq> zXJ$7!_xkG4D|K<-WWRmqFF#ba>GfLfwAq^B_vRfl*=M~(cRBP-mY7) zjrT@c_U#*<$GbAWy}nj#otl3xPd%4+(@neY=l!$pwxR z{+!dBbXKNDPHSMW3yo*cZ0Hb@b_j`&Kgp}G;s~3-)#j)o<_^t`jC&TgunB}EF>`2d zWNevwg8>+k3_w#FHUO1Jbn+^!0V<|U`kH#O_R=XKnoC_=7(E!zpxdLh?fBBWGu^6r zx9yc!ZWG36aVyTITJXRUJz3kcKbFloc=^^=Ri?lBdh5b(%;OiHcC3TJ=53*0RBfkj zTDsN=iEYp8S?~yp3CD zn&0@v(LOh(R$_AQ?CFn#j5k>3GhYAx_)PMVbvf^S=X zv_6-X8q8lN|JXYxHjVzt2+8D%Pk_iuKs&rOp)uvKqb9iLf4{9?37u1bK!7|R!SHEW0NyCQapz;c7Z M)78&qol`;+09MB@5dZ)H delta 828 zcmeC=e9orW8Q|y6%O%Cdz`(%k>ERN@z`&>mWCw6C1IcDFjfRPeR`pEZJY5_^Dj46+ zz1_FiK!A1i(uwE(|NkhIx9`Y<6j|1^?-?s5NIdrT-TixN2Zyj=A)BJ7+oZmYYM!r> zd?#HwI!k3`x2b2)^xN6Hj(?H?iaa&)T{t7X@9DO!dA+}%pSfbWSJCtSGb`WE$Hcjh za&oUM%=Ng$8YAJ$>-)NSY2yESn>SjX_aCOsTIRfc-ljJfB7=Wl2wj-soBwp#|A^ql zm)3?!O?_v7Ma46};G@?2g)b-WJiQ@{b)HJ>k@X$RlA9-e;jKHpaPksv3w6 zSTH`w`@^+n(sGsNL%?Z>vvzeK+l7TO9kH+0)iL z)J>gzN_=iu-4}kHMVXS-yWa|KyFY2!mp$)xZk>|9>}9dK#T$0w{ky0T*a;*~Eqe+gDQ*!6A6%yTy8TgAj2d{tjH z&)T+m+wL3uS^JKyTlVGF{ft}p?+H77zA!gatN8OYt$UZZ%)MV`VrmwY|7B{1Ro(1{ zSqxgYE`G6zKV7_TrL3>(uFSU!`%Z3l{_d2gwLC-RaQ);vAy$@GzJ%qiGBGUDW zsx1)SA9Z=o&F@P5OIGukHwfNR{>y!F$}5`#673hO#C;jIgW@4V*g-s-=|z$+L#&#w gprD%4qZWJ4Cqi2)b(~hr2WAKcPgg&ebxsLQ0PCNERsaA1 diff --git a/doc/html/a00105.html b/doc/html/a00105.html index 17a4672a00..b287b4048c 100644 --- a/doc/html/a00105.html +++ b/doc/html/a00105.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_range Class Reference + +tbb::flow::interface10::opencl_device Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface10::opencl_range Class Reference
+
tbb::flow::interface10::opencl_device Class Reference
- - - - + + + +

Public Types

-typedef size_t range_index_type
 
-typedef std::array
-< range_index_type, 3 > 
nd_range_type
 
enum  : device_id_type { unknown = device_id_type( -2 ), +host = device_id_type( -1 ) + }
 
+typedef size_t device_id_type
 
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename G = std::initializer_list<int>, typename L = std::initializer_list<int>, typename = typename std::enable_if<!std::is_same<typename std::decay<G>::type, opencl_range>::value>::type>
 opencl_range (G &&global_work=std::initializer_list< int >({0}), L &&local_work=std::initializer_list< int >({0, 0, 0}))
 
-const nd_range_type & global_range () const
 
-const nd_range_type & local_range () const
 
opencl_device (cl_device_id d_id)
 
opencl_device (cl_device_id cl_d_id, device_id_type device_id)
 
+std::string platform_profile () const
 
+std::string platform_version () const
 
+std::string platform_name () const
 
+std::string platform_vendor () const
 
+std::string platform_extensions () const
 
+template<typename T >
void info (cl_device_info i, T &t) const
 
+std::string version () const
 
+int major_version () const
 
+int minor_version () const
 
+bool out_of_order_exec_mode_on_host_present () const
 
+bool out_of_order_exec_mode_on_device_present () const
 
+std::array< size_t, 3 > max_work_item_sizes () const
 
+size_t max_work_group_size () const
 
+bool built_in_kernel_available (const std::string &k) const
 
+std::string built_in_kernels () const
 
+std::string name () const
 
+cl_bool available () const
 
+cl_bool compiler_available () const
 
+cl_bool linker_available () const
 
+bool extension_available (const std::string &ext) const
 
+std::string extensions () const
 
+cl_device_type type () const
 
+std::string vendor () const
 
+cl_uint address_bits () const
 
+cl_device_id device_id () const
 
+cl_command_queue command_queue () const
 
+void set_command_queue (cl_command_queue cmd_queue)
 
+cl_platform_id platform_id () const
 
+ + + + + + + + + + + + + + +

+Friends

+template<typename DeviceFilter >
class opencl_factory
 
+template<typename Factory >
class opencl_memory
 
+template<typename Factory >
class opencl_program
 
+template<typename T , typename Factory >
class opencl_buffer
 
+bool operator== (opencl_device d1, opencl_device d2)
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • diff --git a/doc/html/a00106.html b/doc/html/a00106.html index 819ec11432..46d7193ab0 100644 --- a/doc/html/a00106.html +++ b/doc/html/a00106.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::opencl_subbuffer< T, Factory > Class Template Reference + +tbb::flow::interface10::opencl_device_list Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::flow::interface10::opencl_subbuffer< T, Factory > Class Template Reference
+
tbb::flow::interface10::opencl_device_list Class Reference
-
-Inheritance diagram for tbb::flow::interface10::opencl_subbuffer< T, Factory >:
-
-
- - -tbb::flow::interface10::opencl_buffer< T, Factory > - -
+ + + + + + + +

+Public Types

+typedef container_type::iterator iterator
 
+typedef
+container_type::const_iterator 
const_iterator
 
+typedef container_type::size_type size_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

opencl_subbuffer (const opencl_buffer< T, Factory > &owner, size_t index, size_t size)
 
- Public Member Functions inherited from tbb::flow::interface10::opencl_buffer< T, Factory >
-template<access_type a>
iterator< a > access () const
 
-T * data () const
 
-template<access_type a = read_write>
iterator< a > begin () const
 
-template<access_type a = read_write>
iterator< a > end () const
 
-size_t size () const
 
-T & operator[] (ptrdiff_t k)
 
opencl_buffer (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, opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
-void receive (const opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
-opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
- - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +

-Additional Inherited Members

- Public Types inherited from tbb::flow::interface10::opencl_buffer< T, Factory >
-typedef cl_mem native_object_type
 
-typedef opencl_buffer memory_object_type
 
-typedef Factory opencl_factory_type
 
-template<access_type a>
using iterator = T *
 
opencl_device_list (std::initializer_list< opencl_device > il)
 
+void add (opencl_device d)
 
+size_type size () const
 
+bool empty () const
 
+iterator begin ()
 
+iterator end ()
 
+const_iterator begin () const
 
+const_iterator end () const
 
+const_iterator cbegin () const
 
+const_iterator cend () const
 

The documentation for this class was generated from the following file:
  • flow_graph_opencl_node.h
  • diff --git a/doc/html/a00107.html b/doc/html/a00107.html index 6089df6848..aae67b618b 100644 --- a/doc/html/a00107.html +++ b/doc/html/a00107.html @@ -3,8 +3,8 @@ - -tbb::parallel_while< Body > Class Template Reference + +tbb::flow::interface10::opencl_factory< DeviceFilter > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::parallel_while< Body > Class Template Reference
+
tbb::flow::interface10::opencl_factory< DeviceFilter > Class Template Reference
- -

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

- -

#include <parallel_while.h>

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

+Classes

class  kernel
 
- - - + + + + + + + + +

Public Types

-typedef Body::argument_type value_type
 Type of items.
 
+template<typename T >
using async_msg_type = opencl_async_msg< T, opencl_factory< DeviceFilter >>
 
+typedef opencl_device device_type
 
+typedef kernel kernel_type
 
+typedef opencl_range range_type
 
- - - - - - - - - - - - - + + + + + + + + + + + + + + + +

Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
+bool init (const opencl_device_list &device_list)
 
+template<typename... Args>
void send_kernel (opencl_device device, const kernel_type &kernel, const range_type &work_size, Args &...args)
 
+template<typename T , typename... Rest>
void send_data (opencl_device device, T &t, Rest &...args)
 
+void send_data (opencl_device)
 
+template<typename FinalizeFn , typename... Args>
void finalize (opencl_device device, FinalizeFn fn, Args &...args)
 
+const opencl_device_listdevices ()
 
+ + + + + + + + + +

+Friends

+template<typename Factory >
class opencl_program
 
+template<typename Factory >
class opencl_buffer_impl
 
+template<typename Factory >
class opencl_memory
 
-

Detailed Description

-

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

- -

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

-

The Body b has the requirement:
- "b(v)"
- "b.argument_type"
- where v is an argument_type

-

Member Function Documentation

- -
-
-
-template<typename Body >
- - - - - - - - -
void tbb::parallel_while< Body >::add (const value_typeitem)
-
- -

Add a work item while running.

-

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

- -
-
- -
-
-
-template<typename Body >
-
-template<typename Stream >
- - - - - - - - - - - - - - - - - - -
void tbb::parallel_while< Body >::run (Stream & stream,
const Body & body 
)
-
- -

Apply body.apply to each item in the stream.

-

A Stream s has the requirements
- "S::value_type"
- "s.pop_if_present(value) is convertible to bool

- -
-

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

diff --git a/doc/html/a00108.html b/doc/html/a00108.html index e534202ca1..9571804702 100644 --- a/doc/html/a00108.html +++ b/doc/html/a00108.html @@ -3,8 +3,8 @@ - -tbb::pipeline Class Reference + +tbb::flow::interface10::opencl_memory< Factory > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::pipeline Class Reference
+
tbb::flow::interface10::opencl_memory< Factory > Class Template Referenceabstract
- -

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

- -

#include <pipeline.h>

+
+Inheritance diagram for tbb::flow::interface10::opencl_memory< Factory >:
+
+
+ + +tbb::flow::interface10::opencl_buffer_impl< Factory > + +
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + +

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.
 
opencl_memory (Factory &f)
 
+cl_mem get_cl_mem () const
 
+void * get_host_ptr ()
 
+Factory * factory () const
 
+opencl_async_msg< void *, Factory > receive (const cl_event *e)
 
+opencl_async_msg< void *, Factory > send (opencl_device device, const cl_event *e)
 
+virtual void map_memory (opencl_device, opencl_async_msg< void *, Factory > &)=0
 
- - - - - - - - - - - - - + + + + + + + + + + + + + + +

-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
 

+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

-

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

diff --git a/doc/html/a00108.png b/doc/html/a00108.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd505daffccbdc5b64b60d7a6df1e19730ac2c9 GIT binary patch literal 1158 zcmeAS@N?(olHy`uVBq!ia0y~yU^D}=12~w0U5Ie*1ph z9md-S*O}`}nGrA#~6 z*%Pkm2mU_4`0e%;wMu3U{^3c?9NHThTc+M%IOLVXkZ8LB7$vKw1TiuF2&rXU!k`2c z46LnHHE&n|jGhqwtdqP7%Z{*p;8it2iLfvXIoc zcf*q=FWDe8TcvgC4HeBbN7OtMO>;ey_-nx&{s~JWm-o#} zs|ogdp7`#w^2wO**S>Py-duS2(jFzxPg~Z0UUqf*jijF7YA?3^nJ6CU3~UwcI8dys>ZWNCjEZrJE5Or_iClgYb@{BH@;2ZyfKr#I_9x= zPHhy!?FYZPX0K#;tho13TJhgoT}ijk@0QP1o;11le&@E&H^ncSJ^ifIJ6$~2eRAK` z#NFu^(=JWje#SCwJ>SdTJ87{Mk*}4upEZ4@b!*?u+t0KfKi#%-(z%xx-&{ZYyzE5S zoV#APxKp;*u9^FI^U6u@cGi6<70uPx&WwJsMRrchbQ`x(IyU+j2H>NGg zH`=9Q`H5{`^V#{cFRFPyx0?CO5~yf?AV&1qZnzqiz3N&N^DpLuS`J!jMvrQMg$9GC LtDnm{r-UW|>RLHH literal 0 HcmV?d00001 diff --git a/doc/html/a00109.html b/doc/html/a00109.html index 7bbb581156..c9217d905a 100644 --- a/doc/html/a00109.html +++ b/doc/html/a00109.html @@ -3,8 +3,8 @@ - -tbb::pre_scan_tag Struct Reference + +tbb::flow::interface10::opencl_node< Args > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::pre_scan_tag Struct Reference
+
tbb::flow::interface10::opencl_node< Args > Class Template Reference
- -

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

- -

#include <parallel_scan.h>

- - - - -

-Public Member Functions

operator bool ()
 
- - - -

-Static Public Member Functions

-static bool is_final_scan ()
 
-

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

diff --git a/doc/html/a00110.html b/doc/html/a00110.html index f3d2885e28..e0854a2e64 100644 --- a/doc/html/a00110.html +++ b/doc/html/a00110.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::predecessor_cache< T, M > Class Template Reference + +tbb::flow::interface10::opencl_node< tuple< Ports...> > Class Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::internal::predecessor_cache< T, M > Class Template Reference
+
tbb::flow::interface10::opencl_node< tuple< Ports...> > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...> >:
+
+
+ + +tbb::flow::interface10::opencl_node< tuple< Ports...>, queueing, opencl_info::default_opencl_factory > + +
+ + + + +

+Public Types

+typedef base_type::kernel_type kernel_type
 
+ + + + + + +

+Public Member Functions

opencl_node (graph &g, const kernel_type &kernel)
 
+template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d)
 

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

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 9454ce778c..e0bfd15e42 100644 --- a/doc/html/a00111.html +++ b/doc/html/a00111.html @@ -3,8 +3,8 @@ - -tbb::queuing_mutex Class Reference + +tbb::flow::interface10::opencl_node< tuple< Ports...>, JP > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::queuing_mutex Class Reference
+
tbb::flow::interface10::opencl_node< tuple< Ports...>, JP > Class Template Reference
- -

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

- -

#include <queuing_mutex.h>

-Inheritance diagram for tbb::queuing_mutex:
+Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...>, JP >:
- - + + +tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, opencl_info::default_opencl_factory >
- - - - + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef base_type::kernel_type kernel_type
 
- - - - - -

Public Member Functions

queuing_mutex ()
 Construct unacquired mutex.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = false
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
opencl_node (graph &g, const kernel_type &kernel)
 
+template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d)
 
-

Detailed Description

-

Queuing mutex with local-only spinning.

-

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

    diff --git a/doc/html/a00111.png b/doc/html/a00111.png index 97f8b53bdb2fc94c669545ed9d635338907e3f57..0efca40bd406be819b4995adf281ada7f76b93ca 100644 GIT binary patch literal 1585 zcmcgsX;hL~82-#-xm8nXCCU@|J-x#eV+Ti&pqe;@jN%l-PK{Ms*WlE z09(9z4B{w3cAI=<5Rkhq}`Le(o8^z2mB&h z83$hnW`+3lK&Y`BZITfT4@TOmGdFW`)T#pbz;p#ICy^@-4+4h`$#WF_dIcMnC_j#iqq@2d}&TT;Nyp3eZ$?{XC`Xw zeKsr3=6mGv)~!buA{RAdN$dF|qM&T4V>GbYVy(PA}|vOGeMOP1ihk2kMK zqcDlZ>B5M9A&n%Nj55!e8w+jUuZiRu$FBCVEW<2Ea#{lT6Vs+&)jPsmxQJs=xJ9`T;nL~lX37Ab$;9f(Du*8 z;NPDrb zy_;TOJ*$wOLpJx$#4!(P_{FV^Hld>HW_ZM+#nU#aGB{Es3EhcHd>P4`Gd6l-7kR&> zdiT&&1xTpl#eOMwq%x_Xele@Gq~8CKOtwHAu=0`y^1}!?ZZvP|UE?Y$cmXB9YT;2o z%KB-IS@>~W3--}Dir&B;Z}JCB!d2rH92;*3dI9Pu z5-^Zue&8Fu4oyj6I2hg@Ty`0BQ&}-MqaMc`(4H`CqI>?u#nfM9jYE%M3nmk zj8*w;Buq%nW85A1JfWYw;(#puH%Y@O|0Ic8Nm=Ai=czjwaK?)`RGcequ%Ax5XA85q z+7y3kDdL7X>Xm)D4JQ?e@T~AIsRHNwh!sWF9`&tjGP@Txu{Fc}3u{|^my*iVPYT4B z3o|;(hC2H48P)~;U{n&UKPcbvV!Z delta 710 zcmdnU^NCflGr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS6dZtEC7srqa#$_cs`}CcPKl`OVE_YPjnJvD;H`-*y?++#0{~iDRE&1}>JoDWuYKJ|tjE?!w zy>(E6&46Up`OQC#YR|{f7_Ig659z>#ZG)Cm+4-sOS8+vRGeBYk>{x z)V*{1@^W8RJ8HjO%Vi~!kSaP!Cs@}lt?I>vHR8_SE=jG>w!Po8$~3CsT2@JJ{oDSm zlGJx!rRG*$YFsya>NT(HXXpODZLs%N>2Z(UyWWYsalAft$>E~TX-k6E*Y>NvlzGeg zcD40eufC)_j@N3Fws?Ov=zp$~>AXCpMEl74)R0MaQM@6OlvXx+1*w!SNJ|qJII#aU zTLEh<>zA_K94|v1tj}dnh+`9Zpp^BKrDI9`w7>?BEJ@amCB!m*dAOZDvrd6WVV{(S zgNkWDgGZI@me2CeZ+c6%$sTa7WfDo~-^X3@!>QE1c8$sn1G{zK^Gxk}uP3~+%m4d1 z>H2RTd-a6*lP?y2WqUWvvA#PxX;#CxANS7LGTN-Z+?O}0=jWZ=hAGZhC zSK?Sr?k;-&au-+y3m} - -tbb::queuing_rw_mutex Class Reference + +tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::queuing_rw_mutex Class Reference
+
tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory > Class Template Reference
- -

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

- -

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::queuing_rw_mutex:
+Inheritance diagram for tbb::flow::interface10::opencl_node< tuple< Ports...>, JP, Factory >:
- - + +
- - - - + + +

-Classes

class  scoped_lock
 The scoped locking pattern. More...
 

+Public Types

+typedef base_type::kernel_type kernel_type
 
- - - - - - - - -

Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
-void __TBB_EXPORTED_METHOD internal_construct ()
 
- - - - - - - + + + + + + +

-Static Public Attributes

-static const bool is_rw_mutex = true
 
-static const bool is_recursive_mutex = false
 
-static const bool is_fair_mutex = true
 
opencl_node (graph &g, const kernel_type &kernel)
 
opencl_node (graph &g, const kernel_type &kernel, Factory &f)
 
+template<typename DeviceSelector >
 opencl_node (graph &g, const kernel_type &kernel, DeviceSelector d, Factory &f)
 
-

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

    diff --git a/doc/html/a00112.png b/doc/html/a00112.png index aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf..b87ca5cc69f1fbd508430f3f463871194bb8e344 100644 GIT binary patch literal 1284 zcmeAS@N?(olHy`uVBq!ia0y~yVC)9612~w0gC%yLKVCkO!=RTv+Smf zvr+$h#m+sSxMcONV@W27B@T~&Xg*W_?)NXEeyhyw$g@(x<*(KE`&gVQ{dw^2--%D= zDT~dGoGp8;QG8)cn&L^Tt?lprzI~+hBKz%~O&oVGUhVdqSeYo=@!IwHsr+}j`+OcV zTdpcR^Q2cZ`{Wk8^hln`bA1)N3nD6vo&M(tJq(PDdea$M!l3%HdRNTu-J5qR*BR?s z&HnZ%$vQ{fYkSnN$KYU!JcydqN^=|Ws zoVU4=ccS%|$!rbT_tC`p*MyU{#rtk-h)Ca>e^)N~`IM<;ZKj&3k#!6ApMCqc<*Vr{ z`Ol9wr3AmwXZn%SH)%`A zO^g#9jxs59cdi!Fd@ zM=6h~bd7G`h!|yqEH!r9D{j>1l zlV=UpaT_c4&52kky~#hx=K0Cc`o^Qy?d*4qcdwaS@X3Th`mD}8zp6jIeo+Vc_DM@k zmp^;S`SOL0f25<2l`bp)zIEO{POa^^f3D5BzJAxdb?J7#F>AUO725XN|5>@gHs#{1 zyF1h0Ywg-0AwGZqw6oLJPd$3;e*c{4KW9pRPiwvZ=*3x8`|J1euKzHI(v%aEy_dUl zc1eFk&YJ!^mv!$vUy+xxBki_i&NcSF^QE_Ua4f9k*k|yT_gk6l?!~Lc=Pp{ovDzU< zU+FdPi>tbS9D%8~cuRSD&B>&>W%G_29Jf?W5#%clS3R)RU%BbpvlYr>vIp`v&bS;a zBi}9+eRce{N$WD|T+<&68%{y!(sa>EA1( UjF_@zz#@ym)78&qol`;+0Mfi{#{d8T delta 732 zcmZqS>R?ms4DfU3<&xrJU|`_&^l%9R(l3BGfP)!Gs=PZHG*Qv2o@u(Li(^OyO`Keg0p+XG-=Q?pCMM*HVs(nB7oQ@0%O$#PN_%$zxKzX@KXaC2U%r^Fml{ zkL^Evd)7M3v}r3p{-`&6S?Tbx~0@R_&!%uM!xHXg$&%ACx{45O;TC5+st>b#H9Xd4!$pMriHAz$g?G6@z(mC z`&V5&wfnKD)z>AmvF4goUn~rOdOh)}B!pH6>%YKW0l#T{1t6d8&$k)`Ce-JY_RD6z@1N z#9wEAz_*M0#p6QZOS>D&=6qM!%d2s~_sS>E2cGr1iy7u!G2(jQNi3tp)6E$a6%0SZ znOQ$9VFPN-Zz}U!d_U~F^Xp0{qkU{#AGYZ+%l0jOx13+VRpQw3m9}e-E&nLx^LD1$ z@y?2>=F~0xCV%$y)+#K1{HC6HMmF2oyos5+%rrCn^XHxwK42$%d)LKX=c992w>$_` z>j*z*H`A2q#w!0NyZ`5yWf%SRz98hmTe9ly)t*^97_3XedXF8xm=QH+sZ?*+VwS8q z`|tN$T4(K>dMIYsyGvnw9~2-ua&j2aF11 wCtl=V$Z)09PUC=m2+T*t^Z6B7uK!}*?bEzx&tcy$zy!FVdQ&MBb@0K|h - -tbb::interface5::reader_writer_lock Class Reference + +tbb::flow::interface10::opencl_program< Factory > Class Template Reference @@ -13,7 +13,7 @@
    - +
+List of all members
-
tbb::interface5::reader_writer_lock Class Reference
+
tbb::flow::interface10::opencl_program< Factory > Class 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:
+Inheritance diagram for tbb::flow::interface10::opencl_program< Factory >:
- - + +
- - - - - - - -

-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...
 
+typedef Factory::kernel_type kernel_type
 
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

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.
 
opencl_program (Factory &factory, opencl_program_type type, const std::string &program_name)
 
opencl_program (Factory &factory, const char *program_name)
 
opencl_program (Factory &factory, const std::string &program_name)
 
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 (opencl_program_type type)
 
opencl_program (const opencl_program &src)
 
+kernel_type get_kernel (const std::string &k) const
 
- - - - + + + + + +

Friends

-class scoped_lock
 
-class scoped_lock_read
 
+template<typename DeviceFilter >
class opencl_factory
 
+template<typename DeviceFilter >
class opencl_factory< DeviceFilter >::kernel
 
-

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

diff --git a/doc/html/a00113.png b/doc/html/a00113.png index 12ea5c61822a9cff028a841febee251e03da1868..8ce2c236820443b396cd09c4c062ee66d1b7e022 100644 GIT binary patch delta 827 zcmbQp`kYO%Gr-TCmrII^fq{Y7)59f*fq_vC$PVCO29nKU8VwT_t?R#ex;TbZFut98 zyKk|90PE_d6VLts|4}G!-;oC?vaD&}GgeHHcv4%SM#7iZ_jU8q#Q!$+Z?rt`KTMmo%z68~O>Ztl2LHYgx-i8z|LL;-5y6Wu ztqqf!`p*7}if4YoN3Hh@UryY4dP5fLJeAlZ>pPYuH&6P)TX%Zl(HONg?t!A<~K8u0pfOavp^PsBTY`+ca08>n z@rx`8495yhNDo(Nu=$^KC{r=ImJ<(ZFyVqadR-gL%ZraJVIQBcUr>%FW zn>zcH_}s9%FZ?=-G9{~bzZKkef6}rqd*1EbIwgPE%VOWBBI*0PF2|hR^i6M8+U#hC zkosBk#I8kEPPKgH9R4+@Z>D{YPgr|&WySo(D_?H@60CNx>)Vo<=WNWkiitV+s=jKT zwQcjZ-8cBN_8nWd?8~kD8Mp4=6L$K1VQ!{Y@#kq;_bzXld%w)Y)GR3f%hU|3y4el0 z7_@F({9+S-x_I46Szp&(nQs^No!spF-6>CNd4|g2$@Ox)~`<5FLFL@sW+=m@86i)pVH4y)zgpsx+JtHBV<>I$myx(uVX}$8K!@{WyM!j zTOhnY>hheM-<9~6tmZLq5WJ=Qm;2(BS2hPE+Amg#`!Z|?#Y2R!gLpR6izHu$ST$ck fK{cgEE%uyGwg^`0IIWlu%nuBnu6{1-oD!MpR3pZXHE*JjFD7t;IfakCLdk@Zb&WgK|k@arh=J=4$ zd+aBbD9;bRe0O&Il4nl-^}GKssD1i7?eve+SA61Z>Q#QG&%HnYXZO85iXY9dcwDOX zFr6eaIYimhaORa6Gkcj1uvakf91h5m>!0|9XK9*{@q{@WuQ2quSTPGs{=%l9_LA4Z z=aO{8j3wp_hMxHhNt5m|98uZJ*x^})rl97OwDIP|1N97SidTV3fH)=CnD=-5zt8{H zZxv_yGUXmq!MUljcet7UT;BWDbYEEUt`nJ#;@Ye~I_txNtG@18dHR8i-Sf|F`n&(t z1UpUNDgP?v^RL_+GMm>w?TVU_of-V=(e0kug6C#`s*>Gy+<)5ES$D1mEG=00JK%49 zY-;Suz#EQk+ZF4-dKPnkSs!b+fAPDPvi7ZAd$?^aoVs3s}=?fn%uzwdRK@^jmZ zvcJ-%zjvO vnZGOhAOm|0hc_tHvLN`=pH(Kt(k=G4WNI_NB$sRhrW*!NS3j3^P6 - -tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference + +tbb::flow::interface10::opencl_range Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
+
tbb::flow::interface10::opencl_range Class Reference
- - + + + + +

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef size_t range_index_type
 
+typedef std::array
+< range_index_type, 3 > 
nd_range_type
 
+ + + + + + + +

+Public Member Functions

+template<typename G = std::initializer_list<int>, typename L = std::initializer_list<int>, typename = typename std::enable_if<!std::is_same<typename std::decay<G>::type, opencl_range>::value>::type>
 opencl_range (G &&global_work=std::initializer_list< int >({0}), L &&local_work=std::initializer_list< int >({0, 0, 0}))
 
+const nd_range_type & global_range () const
 
+const nd_range_type & local_range () const
 
-
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/a00115.html b/doc/html/a00115.html index 14135a97a6..33aaf39b90 100644 --- a/doc/html/a00115.html +++ b/doc/html/a00115.html @@ -3,8 +3,8 @@ - -tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference + +tbb::flow::interface10::opencl_subbuffer< T, Factory > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
+
tbb::flow::interface10::opencl_subbuffer< T, Factory > Class Template Reference
+
+Inheritance diagram for tbb::flow::interface10::opencl_subbuffer< T, Factory >:
+
+
+ + +tbb::flow::interface10::opencl_buffer< T, Factory > + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 

+Public Member Functions

opencl_subbuffer (const opencl_buffer< T, Factory > &owner, size_t index, size_t size)
 
- Public Member Functions inherited from tbb::flow::interface10::opencl_buffer< T, Factory >
+template<access_type a>
iterator< a > access () const
 
+T * data () const
 
+template<access_type a = read_write>
iterator< a > begin () const
 
+template<access_type a = read_write>
iterator< a > end () const
 
+size_t size () const
 
+T & operator[] (ptrdiff_t k)
 
opencl_buffer (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, opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
+void receive (const opencl_async_msg< opencl_buffer, Factory > &dependency) const
 
+opencl_subbuffer< T, Factory > subbuffer (size_t index, size_t size) const
 
+ + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from tbb::flow::interface10::opencl_buffer< T, Factory >
+typedef cl_mem native_object_type
 
+typedef opencl_buffer memory_object_type
 
+typedef Factory opencl_factory_type
 
+template<access_type a>
using iterator = T *
 
-
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/a00106.png b/doc/html/a00115.png similarity index 100% rename from doc/html/a00106.png rename to doc/html/a00115.png diff --git a/doc/html/a00116.html b/doc/html/a00116.html index 525e67bdaa..018992d6b2 100644 --- a/doc/html/a00116.html +++ b/doc/html/a00116.html @@ -3,8 +3,8 @@ - -tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference + +tbb::parallel_while< Body > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
+
tbb::parallel_while< Body > Class Template Reference
+ +

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

+ +

#include <parallel_while.h>

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

Public Types

-typedef
-cache_aligned_allocator< U > 
other
 
+typedef Body::argument_type value_type
 Type of items.
 
+ + + + + + + + + + + + + +

+Public Member Functions

parallel_while ()
 Construct empty non-running parallel while.
 
~parallel_while ()
 Destructor cleans up data members before returning.
 
template<typename Stream >
void run (Stream &stream, const Body &body)
 Apply body.apply to each item in the stream. More...
 
void add (const value_type &item)
 Add a work item while running. More...
 
-
The documentation for this struct was generated from the following file:
    -
  • cache_aligned_allocator.h
  • +

    Detailed Description

    +

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

    + +

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

    +

    The Body b has the requirement:
    + "b(v)"
    + "b.argument_type"
    +where v is an argument_type

    +

    Member Function Documentation

    + +
    +
    +
    +template<typename Body >
    + + + + + + + + +
    void tbb::parallel_while< Body >::add (const value_typeitem)
    +
    + +

    Add a work item while running.

    +

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

    + +
    +
    + +
    +
    +
    +template<typename Body >
    +
    +template<typename Stream >
    + + + + + + + + + + + + + + + + + + +
    void tbb::parallel_while< Body >::run (Stream & stream,
    const Body & body 
    )
    +
    + +

    Apply body.apply to each item in the stream.

    +

    A Stream s has the requirements
    + "S::value_type"
    + "s.pop_if_present(value) is convertible to bool

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

diff --git a/doc/html/a00107.png b/doc/html/a00116.png similarity index 100% rename from doc/html/a00107.png rename to doc/html/a00116.png diff --git a/doc/html/a00117.html b/doc/html/a00117.html index 1e2f9372b3..799889b847 100644 --- a/doc/html/a00117.html +++ b/doc/html/a00117.html @@ -3,8 +3,8 @@ - -tbb::scalable_allocator< T >::rebind< U > Struct Template Reference + +tbb::pipeline Class Reference @@ -13,7 +13,7 @@
-
tbb::scalable_allocator< T >::rebind< U > Struct Template Reference
+
tbb::pipeline Class Reference
+ +

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

+ +

#include <pipeline.h>

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

-Public Types

-typedef scalable_allocator< U > other
 

+Public Member Functions

+__TBB_EXPORTED_METHOD pipeline ()
 Construct empty pipeline.
 
virtual __TBB_EXPORTED_METHOD ~pipeline ()
 
+void __TBB_EXPORTED_METHOD add_filter (filter &filter_)
 Add filter to end of pipeline.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens)
 Run the pipeline to completion.
 
+void __TBB_EXPORTED_METHOD run (size_t max_number_of_live_tokens, tbb::task_group_context &context)
 Run the pipeline to completion with user-supplied context.
 
+void __TBB_EXPORTED_METHOD clear ()
 Remove all filters from the pipeline.
 
+ + + + + + + + + + + + +

+Friends

+class internal::stage_task
 
+class internal::pipeline_root_task
 
+class filter
 
+class thread_bound_filter
 
+class internal::pipeline_cleaner
 
+class tbb::interface6::internal::pipeline_proxy
 
-
The documentation for this struct was generated from the following file:
    -
  • scalable_allocator.h
  • +

    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.

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

diff --git a/doc/html/a00118.html b/doc/html/a00118.html index 7047cb7c9e..d2b16e6541 100644 --- a/doc/html/a00118.html +++ b/doc/html/a00118.html @@ -3,8 +3,8 @@ - -tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference + +tbb::pre_scan_tag Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
+
tbb::pre_scan_tag Struct Reference
+ +

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

+ +

#include <parallel_scan.h>

- - - + + + +

-Public Types

-typedef memory_pool_allocator
-< U, P > 
other
 

+Public Member Functions

operator bool ()
 
+ + +

+Static Public Member Functions

+static bool is_final_scan ()
 
-
The documentation for this struct was generated from the following file:
    -
  • memory_pool.h
  • +

    Detailed Description

    +

    Used to indicate that the initial scan is being performed.

    +

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

diff --git a/doc/html/a00119.html b/doc/html/a00119.html index e23cc14779..4069eeee43 100644 --- a/doc/html/a00119.html +++ b/doc/html/a00119.html @@ -3,8 +3,8 @@ - -tbb::tbb_allocator< void >::rebind< U > Struct Template Reference + +tbb::flow::interface10::internal::predecessor_cache< T, M > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
+
tbb::flow::interface10::internal::predecessor_cache< T, M > Class Template Reference
- - - - -

-Public Types

-typedef tbb_allocator< U > other
 
-
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:

diff --git a/doc/html/a00120.html b/doc/html/a00120.html index 697e696ef9..4c55c3f32f 100644 --- a/doc/html/a00120.html +++ b/doc/html/a00120.html @@ -3,8 +3,8 @@ - -tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference + +tbb::queuing_mutex Class Reference @@ -13,7 +13,7 @@
-
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
+
tbb::queuing_mutex Class Reference
+ +

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

+ +

#include <queuing_mutex.h>

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

-Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 

+Classes

class  scoped_lock
 The scoped locking pattern. 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_fair_mutex = true
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_allocator.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/a00120.png b/doc/html/a00120.png new file mode 100644 index 0000000000000000000000000000000000000000..97f8b53bdb2fc94c669545ed9d635338907e3f57 GIT binary patch literal 754 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkO=SzasB`QKS=J)*V6t&6M!r* zK5*awYv&z#AeW;g$S;@ys0akEo(eHyU|?$Wba4!+V0=6G?WAS}9#{V~tK$3rd$0fU zWLUec?6zCko~x}YMI4>=hQ_;_3_QEmvuSxwyyBp$IVsFB{;~aox4zqDxKH1y__JT? z<8nvUo!R0me4|ZP{Qgj~{onE5-;yuC%`@MvqITFL%jlT@+{@)Y%yvDW&p&(ibe)d+ z_b7+z)vVhpqQ0rmENVMBQ_JU0K%MuzQ|4#Y>hvVn-xL#^+!OY3ny`^G1~;yjG> z<@0oXg4(6mfA}CRXzuvF-rCW4^3mIldd`n4i}kg%7TB;(-8-i*FZX4&qxRdiTvj3p zsiKo~f_2@}s$N`JBkug|lGF-q+xtDMOrsjEWtHTrYgBF+*sc4XXKL4bJ>ivI{@>3@*MIZat0&B#e6jE=+q+qg-O)+2 z8ovFwcg~j4X7%O1yh%Mj@8mXw*%(YaZNGCdQ$fssma6~NTqOm6WG|Gw$#9G1XjuNG zP0F`@^2I$C+NQ5wS8x11DQ!ym-OO6yXO~K+$4$Nx$7*tS(fgOX7_@JR{_1`IU+%)s zX3K9f4dyQoOV(Q7|KGq=(+zX_tl7I~MrQnFG_P)+;rcJ?E--;Ic)I$ztaD0e0suRY BTY3Nh literal 0 HcmV?d00001 diff --git a/doc/html/a00121.html b/doc/html/a00121.html index df955feea1..4c9ffe291a 100644 --- a/doc/html/a00121.html +++ b/doc/html/a00121.html @@ -3,8 +3,8 @@ - -tbb::tbb_allocator< T >::rebind< U > Struct Template Reference + +tbb::queuing_rw_mutex Class Reference @@ -13,7 +13,7 @@
-
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
+
tbb::queuing_rw_mutex Class Reference
+ +

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

+ +

#include <queuing_rw_mutex.h>

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

-Public Types

-typedef tbb_allocator< U > other
 

+Classes

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

+Public Member Functions

queuing_rw_mutex ()
 Construct unacquired mutex.
 
~queuing_rw_mutex ()
 Destructor asserts if the mutex is acquired, i.e. q_tail is non-NULL.
 
+void __TBB_EXPORTED_METHOD internal_construct ()
 
+ + + + + + +

+Static Public Attributes

+static const bool is_rw_mutex = true
 
+static const bool is_recursive_mutex = false
 
+static const bool is_fair_mutex = true
 
-
The documentation for this struct was generated from the following file:

diff --git a/doc/html/a00121.png b/doc/html/a00121.png new file mode 100644 index 0000000000000000000000000000000000000000..aeda94ccfed1540cd9f7d5b4689bd271e13ebcdf GIT binary patch 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? literal 0 HcmV?d00001 diff --git a/doc/html/a00122.html b/doc/html/a00122.html index ccbbad7f79..d4a70a770d 100644 --- a/doc/html/a00122.html +++ b/doc/html/a00122.html @@ -3,8 +3,8 @@ - -tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference + +tbb::interface5::reader_writer_lock Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
+
tbb::interface5::reader_writer_lock Class Reference
+ +

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

+ +

#include <reader_writer_lock.h>

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

+Classes

class  scoped_lock
 The scoped lock pattern for write locks. More...
 
class  scoped_lock_read
 The scoped lock pattern for read locks. More...
 
- - + + + +

Public Types

-typedef zero_allocator< U,
-Allocator > 
other
 
enum  status_t { waiting_nonblocking, +waiting, +active, +invalid + }
 Status type for nodes associated with lock instances. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

reader_writer_lock ()
 Constructs a new reader_writer_lock.
 
~reader_writer_lock ()
 Destructs a reader_writer_lock object.
 
void __TBB_EXPORTED_METHOD lock ()
 Acquires the reader_writer_lock for write. More...
 
bool __TBB_EXPORTED_METHOD try_lock ()
 Tries to acquire the reader_writer_lock for write. More...
 
void __TBB_EXPORTED_METHOD lock_read ()
 Acquires the reader_writer_lock for read. More...
 
bool __TBB_EXPORTED_METHOD try_lock_read ()
 Tries to acquire the reader_writer_lock for read. More...
 
+void __TBB_EXPORTED_METHOD unlock ()
 Releases the reader_writer_lock.
 
+ + + + +

+Friends

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

    Detailed Description

    +

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

    +

    Loosely adapted from Mellor-Crummey and Scott pseudocode at http://www.cs.rochester.edu/research/synchronization/pseudocode/rw.html#s_wp

    +

    Member Enumeration Documentation

    + +
    +
    + +

    Status type for nodes associated with lock instances.

    +

    waiting_nonblocking: the wait state for nonblocking lock instances; for writes, these transition straight to active states; for reads, these are unused.

    +

    waiting: the start and spin state for all lock instances; these will transition to active state when appropriate. Non-blocking write locks transition from this state to waiting_nonblocking immediately.

    +

    active: the active state means that the lock instance holds the lock; it will transition to invalid state during node deletion

    +

    invalid: the end state for all nodes; this is set in the destructor so if we encounter this state, we are looking at memory that has already been freed

    +

    The state diagrams below describe the status transitions. Single arrows indicate that the thread that owns the node is responsible for the transition; double arrows indicate that any thread could make the transition.

    +

    State diagram for scoped_lock status:

    +

    waiting -------—> waiting_nonblocking | _____________/ | V V V active --------------—> invalid

    +

    State diagram for scoped_lock_read status:

    +

    waiting | V active --------------—>invalid

    + +
    +
    +

    Member Function Documentation

    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock ()
    +
    + +

    Acquires the reader_writer_lock for write.

    +

    If the lock is currently held in write mode by another context, the writer will block by spinning on a local variable. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    void __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::lock_read ()
    +
    + +

    Acquires the reader_writer_lock for read.

    +

    If the lock is currently held by a writer, this reader will block and wait until the writers are done. Exceptions thrown: improper_lock The context tries to acquire a reader_writer_lock that it already has write ownership of.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock ()
    +
    + +

    Tries to acquire the reader_writer_lock for write.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not. If the lock is already held by this acquiring context, try_lock() returns false.

    + +
    +
    + +
    +
    + + + + + + + +
    bool __TBB_EXPORTED_METHOD tbb::interface5::reader_writer_lock::try_lock_read ()
    +
    + +

    Tries to acquire the reader_writer_lock for read.

    +

    This function does not block. Return Value: True or false, depending on whether the lock is acquired or not.

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

diff --git a/doc/html/a00122.png b/doc/html/a00122.png new file mode 100644 index 0000000000000000000000000000000000000000..12ea5c61822a9cff028a841febee251e03da1868 GIT binary patch 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? literal 0 HcmV?d00001 diff --git a/doc/html/a00123.html b/doc/html/a00123.html index dfe917a46e..69cf06b4ef 100644 --- a/doc/html/a00123.html +++ b/doc/html/a00123.html @@ -3,8 +3,8 @@ - -tbb::scalable_allocator< void >::rebind< U > Struct Template Reference + +tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::scalable_allocator< void >::rebind< U > Struct Template Reference
+
tbb::cache_aligned_allocator< T >::rebind< U > Struct Template Reference
- - + +

Public Types

-typedef scalable_allocator< U > other
 
+typedef
+cache_aligned_allocator< U > 
other
 

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

diff --git a/doc/html/a00124.html b/doc/html/a00124.html index 9a4d4d165f..3460bd17d0 100644 --- a/doc/html/a00124.html +++ b/doc/html/a00124.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::receiver< T > Class Template Reference + +tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::receiver< T > Class Template Referenceabstract
+
tbb::interface6::memory_pool_allocator< void, P >::rebind< U > Struct Template Reference
- -

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

- -

#include <flow_graph.h>

-
-Inheritance diagram for tbb::flow::interface10::receiver< T >:
-
-
- - -tbb::flow::interface10::internal::untyped_receiver - -
- - - - - - - - - - - - - - - - - - - - - - - -

Public Types

-typedef T input_type
 The input type of this receiver.
 
-typedef
-internal::async_helpers< T >
-::filtered_type 
filtered_type
 
-typedef T input_type
 The input type of this receiver.
 
-typedef sender< T > predecessor_type
 The predecessor type for this node.
 
-typedef
-internal::edge_container
-< predecessor_type
built_predecessors_type
 
-typedef
-built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface10::internal::untyped_receiver
-typedef untyped_sender 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

-bool try_put (const typename internal::async_helpers< T >::filtered_type &t)
 Put an item to the receiver.
 
-bool try_put (const typename internal::async_helpers< T >::async_type &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 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
 
- Public Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
-virtual ~untyped_receiver ()
 Destructor.
 
-template<typename X >
bool try_put (const X &t)
 Put an item to the receiver.
 
- - - - - - - - - - - - - - - - - - - -

-Protected Member Functions

-virtual task * try_put_task_wrapper (const void *p, bool is_async) __TBB_override
 
-virtual task * try_put_task (const T &t)=0
 Put item to successor; return task to run the successor if possible.
 
-virtual task * try_put_task (const T &t)=0
 
-virtual graph & graph_reference ()=0
 
-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
-virtual bool is_continue_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
-template<typename X >
task * try_put_task (const X &t)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - + +

-Friends

-template<typename >
class internal::async_storage
 
-template<typename , typename >
struct internal::async_helpers
 
-template<typename R , typename B >
class run_and_put_task
 put item to successor; return task to run the successor if possible.
 
-template<typename X , typename Y >
class internal::broadcast_cache
 
-template<typename X , typename Y >
class internal::round_robin_cache
 
-template<typename U >
class limiter_node
 put receiver back in initial state
 
-template<typename TT , typename M >
class internal::successor_cache
 
-template<typename , typename >
class proxy_dependency_receiver
 
+typedef memory_pool_allocator
+< U, P > 
other
 
-

Detailed Description

-

template<typename T>
-class tbb::flow::interface10::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/a00124.png b/doc/html/a00124.png deleted file mode 100644 index 0b3fbdae080ea07d4b3363997e402f6dce3e8ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~12~w0rc96T3MM|{PO+F8R;4Ky&*YF6!{>E!wfh>}%%rHHW{c&B{H|ci`6V!YB7GN1I6qo;B7_=J@-0k8(w?WS+8B z`;OVYoTA|u^_^Vb8krS(m)>6Gf9B-6nU$H(rYri+-e@pK$tXi@>ofBUZz@aH{P#HY z_MzCUgQvG$oWHPBJO8k|iQb|K{E4sn7ev-?es5bNAAURkjnwC<`WH)9*4C8I{;kcwZqD1Cw)O2r zoxoie3r`)k6j*QHpVqrBJ1IkYQ*!9rzZOOBU+PNtbUZs?Cs}KD|L3ldI^B(N{wsEL z)d`B+O3isR?bWu>`7_F{mwcXck+;v9?e1Uhf_)-q=eg&y{w}-0{Y+HK-0IEMXEhQ3 zUtVC?vGBb6=6`9s({3=Y+ZO*u>h>0syleM2WbgX)@WPzyCjKj=w;odux&MXj__|-0 zqKxMSBp1p$zsYvASs3Lsw|}1Qg3FvH)(fkcH_y?xSjg~C9cOsIYJ`U03-SCk%Lj$( SY7xM!%HZkh=d#Wzp$PyF7}rMt diff --git a/doc/html/a00125.html b/doc/html/a00125.html index d202484e5b..03d2defbf3 100644 --- a/doc/html/a00125.html +++ b/doc/html/a00125.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::receiver_gateway< Input > Class Template Reference + +tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::flow::interface10::receiver_gateway< Input > Class Template Referenceabstract
+
tbb::cache_aligned_allocator< void >::rebind< U > Struct Template Reference
-
-Inheritance diagram for tbb::flow::interface10::receiver_gateway< Input >:
-
-
- - -tbb::flow::interface10::graph_proxy - -
- - - -

Public Types

-typedef Input input_type
 Type of inputing data into FG.
 
- - - - - - - - - - - + +

-Public Member Functions

-virtual bool try_put (const input_type &)=0
 Submit signal from an asynchronous activity to FG.
 
- Public Member Functions inherited from tbb::flow::interface10::graph_proxy
-virtual void reserve_wait ()=0
 Inform a graph that messages may come from outside, to prevent premature graph completion.
 
-virtual void release_wait ()=0
 Inform a graph that a previous call to reserve_wait is no longer in effect.
 
+typedef
+cache_aligned_allocator< U > 
other
 
-
The documentation for this class was generated from the following file:
    -
  • flow_graph_abstractions.h
  • +
    The documentation for this struct was generated from the following file:
      +
    • cache_aligned_allocator.h

diff --git a/doc/html/a00125.png b/doc/html/a00125.png deleted file mode 100644 index 9ec2957fdfc09c109bd8470d36a7e17ee5e92ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1063 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y^412~w0r1*!%A|NFZ;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O0Ct93?@1!3;n}AaM0mh!Fz=^EOWx$B+ufw{u??JyzgxtFw# zmHG`VMQ?L<-7YbCxiY`u=th?M$Z4sb(^4asZSV+E@)W+*uX1#Wyl0oE{Unjebt;qV&f_=NpKbWMweFip?Em+%$31R^W?$FKUtObB zzb#y@eOB<-3xBpe-}kie__v(m7k_62{^~QEv@WgI+IpKx?30_nKCPEdyV?Fm{*3UM zYcFTmJ1$RrA@8{0FLABH8zZHLaK1HhTqWyPa zk*A)!!+uUGnYll{KCSLp$KzkSHvF4mKHG0|>(TcDyQlu$?0Jdz-S3aTr^lC`J<|4d z_x=4*E4Rp=d>3Cj+p6nGX_n%Q^%ui4w%6MR#(n?maq0hI-vX=q!kqhWomXKz^K{pi z_m*m&%HO~43H>Lt^n1=fn}yHszVe>*PxGbwq$K13{rq9G&gn@yr#GEp_~BW@pu!M* ziQnPGad$4J4i9?nM?|n=?Pi%hO9Um5Wt@amEBxv#y?heBs=gZ(`Cp{56x^^&2>EH=plid@x6P{<~}8 zeNz7K>YqOU{OHi`*vU7}J$w3S1%vp{Jp0>z``z}-->SJb`|A?v^u1f{R{Y;)ecR&q zR?D2)wewBeB47WTT3Rsw=G(h=$E;2~`FwMy-15Z=lkIPRIKHqyUw#2^==|T)j?3QO z?0WO}%6HAzlE3G%y?wfDW#`2`J4@%C-KwqdTP!+0?Z8c)-HFSLB|-6TQeV@uaen60 z-^rtu)g-R|&%dYPvGU7xf7SiZ`f8fzbGPi}p0nTeZyyXlAQ-v5yN|Kw_BPE9<()Nx zR`v|}$G6__kE*pi@cU=v^oJV83^wV#bqnXmi5v)@WA^K89mBr4sPS0&Lv!hrB~yaZ b{xDuXWaBe&>(P2(u4eFb^>bP0l+XkK)7BJ` diff --git a/doc/html/a00126.html b/doc/html/a00126.html index 84ffd76339..35799900a2 100644 --- a/doc/html/a00126.html +++ b/doc/html/a00126.html @@ -3,8 +3,8 @@ - -tbb::recursive_mutex Class Reference + +tbb::scalable_allocator< T >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::recursive_mutex Class Reference
+
tbb::scalable_allocator< T >::rebind< U > Struct 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
 
+typedef scalable_allocator< U > other
 
-

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

diff --git a/doc/html/a00126.png b/doc/html/a00126.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/a00127.html b/doc/html/a00127.html index 8f53af5ba7..a7c315624a 100644 --- a/doc/html/a00127.html +++ b/doc/html/a00127.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::reservable_predecessor_cache< T, M > Class Template Reference + +tbb::scalable_allocator< void >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::internal::reservable_predecessor_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/a00128.html b/doc/html/a00128.html index 08d0c12f05..2d0f7d235b 100644 --- a/doc/html/a00128.html +++ b/doc/html/a00128.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::round_robin_cache< T, M > Class Template Reference + +tbb::tbb_allocator< void >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::internal::round_robin_cache< T, M > Class Template Reference
+
tbb::tbb_allocator< void >::rebind< U > Struct Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + + + + +

    +Public Types

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

diff --git a/doc/html/a00129.html b/doc/html/a00129.html index 6f9a5bcafd..9aa4319e36 100644 --- a/doc/html/a00129.html +++ b/doc/html/a00129.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::run_and_put_task< R, B > Class Template Reference + +tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::flow::interface10::run_and_put_task< R, B > Class Template Reference
+
tbb::zero_allocator< T, Allocator >::rebind< U > Struct Template Reference
-
The documentation for this class was generated from the following file:
    -
  • flow_graph.h
  • + + + + +

    +Public Types

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

diff --git a/doc/html/a00130.html b/doc/html/a00130.html index 509f5a7c5e..efe8cb388d 100644 --- a/doc/html/a00130.html +++ b/doc/html/a00130.html @@ -3,8 +3,8 @@ - -tbb::interface6::runtime_loader Class Reference + +tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::interface6::runtime_loader Class Reference
+
tbb::zero_allocator< void, Allocator >::rebind< U > Struct Template Reference
- -

Load TBB at runtime. - More...

- -

#include <runtime_loader.h>

-
-Inheritance diagram for tbb::interface6::runtime_loader:
-
-
- - - -
- - - - - - -

Public Types

enum  error_mode { em_status, -em_throw, -em_abort - }
 Error mode constants. More...
 
enum  error_code {
-  ec_ok, -ec_bad_call, -ec_bad_arg, -ec_bad_lib, -
-  ec_bad_ver, -ec_no_lib -
- }
 Error codes. More...
 
- - - - - - - - - - - - - - - - + +

-Public Member Functions

runtime_loader (error_mode mode=em_abort)
 Initialize object but do not load TBB.
 
 runtime_loader (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX, error_mode mode=em_abort)
 Initialize object and load TBB. More...
 
~runtime_loader ()
 Destroy object.
 
error_code load (char const *path[], int min_ver=TBB_INTERFACE_VERSION, int max_ver=INT_MAX)
 Load TBB. More...
 
error_code status ()
 Report status. More...
 
+typedef zero_allocator< U,
+Allocator > 
other
 
-

Detailed Description

-

Load TBB at runtime.

-

Usage:

-

In source code:

-
#include "tbb/runtime_loader.h"
-
-
char const * path[] = { "<install dir>/lib/ia32", NULL };
-
tbb::runtime_loader loader( path );
-
-
// Now use TBB.
-

Link with tbbproxy.lib (or libtbbproxy.a) instead of tbb.lib (libtbb.dylib, libtbb.so).

-

TBB library will be loaded at runtime from <install dir>="">/lib/ia32 directory.

-

Attention:

-

All runtime_loader objects (in the same module, i.e. exe or dll) share some global state. The most noticeable piece of global state is loaded TBB library. There are some implications:

-
-   Only one TBB library can be loaded per module.
-
--   If one object has already loaded TBB library, another object will not load TBB.
-    If the loaded TBB library is suitable for the second object, both will use TBB
-    cooperatively, otherwise the second object will report an error.
-
--   \c runtime_loader objects will not work (correctly) in parallel due to absence of
-    synchronization.

Member Enumeration Documentation

- -
-
- -

Error codes.

- - - - - - - -
Enumerator
ec_ok  -

No errors.

-
ec_bad_call  -

Invalid function call (e. g. load() called when TBB is already loaded).

-
ec_bad_arg  -

Invalid argument passed.

-
ec_bad_lib  -

Invalid library found (e. g. TBB_runtime_version symbol not found).

-
ec_bad_ver  -

TBB found but version is not suitable.

-
ec_no_lib  -

No suitable TBB library found.

-
- -
-
- -
-
- -

Error mode constants.

- - - - -
Enumerator
em_status  -

Save status of operation and continue.

-
em_throw  -

Throw an exception of tbb::runtime_loader::error_code type.

-
em_abort  -

Print message to stderr and call abort().

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
tbb::interface6::runtime_loader::runtime_loader (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX,
error_mode mode = em_abort 
)
-
- -

Initialize object and load TBB.

-

See load() for details.

-

If error mode is em_status, call status() to check whether TBB was loaded or not.

-
Parameters
- - - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
modeError mode for this object.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
error_code tbb::interface6::runtime_loader::load (char const * path[],
int min_ver = TBB_INTERFACE_VERSION,
int max_ver = INT_MAX 
)
-
- -

Load TBB.

-

The method searches the directories specified in path[] array for the TBB library. When the library is found, it is loaded and its version is checked. If the version is not suitable, the library is unloaded, and the search continues.

-

Note:

-

For security reasons, avoid using relative directory names. For example, never load TBB from current ("."), parent ("..") or any other relative directory (like "lib" ). Use only absolute directory names (e. g. "/usr/local/lib").

-

For the same security reasons, avoid using system default directories ("") on Windows. (See http://www.microsoft.com/technet/security/advisory/2269637.mspx for details.)

-

Neglecting these rules may cause your program to execute 3-rd party malicious code.

-

Errors:

-
    -
  • ec_bad_call - TBB already loaded by this object.
  • -
  • ec_bad_arg - min_ver and/or max_ver negative or zero, or min_ver > max_ver.
  • -
  • ec_bad_ver - TBB of unsuitable version already loaded by another object.
  • -
  • ec_no_lib - No suitable library found.
  • -
-
Parameters
- - - - -
pathList of directories to search TBB in.
min_verMinimal suitable version of TBB.
max_verMaximal suitable version of TBB.
-
-
- -
-
- -
-
- - - - - - - -
error_code tbb::interface6::runtime_loader::status ()
-
- -

Report status.

-

If error mode is em_status, the function returns status of the last operation.

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

diff --git a/doc/html/a00130.png b/doc/html/a00130.png deleted file mode 100644 index 56b89a68fda8064d7c58a403e3aa47ca3cccd7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmeAS@N?(olHy`uVBq!ia0vp^+kiNLgBeIR8`rM{QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;AAf9cd`fA9bJ zBw8S};O?}oQnBHdT%7A{t!I1?H{Sg5fJ&xG&^8s# zx?*lkk4yO#Zr`RP%lcj3rgb^8L*;Kz`<;Cg?yi;(`=`(n#m~}AEKJ-ofza8E|I-1dw7DgeBJ*0+-w-9@kvT1$l$PO*xg>W#T5rMK@CYFBd+2 z|2_OE3zJ1+-FZem3ob^JIrl7Y{_*qh?%X5qNr^V^Z z<++`+&VI4&TX1a3$y?7N#iKL67Mz - -tbb::scalable_allocator< T > Class Template Reference + +tbb::tbb_allocator< T >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::scalable_allocator< T > Class Template Reference
+
tbb::tbb_allocator< T >::rebind< U > Struct Template Reference
- -

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

- -

#include <scalable_allocator.h>

- - - -

-Classes

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

Public Types

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

-Public Member Functions

scalable_allocator (const scalable_allocator &) throw ()
 
-template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
-pointer address (reference x) const
 
-const_pointer address (const_reference x) const
 
-pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
-void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
-size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
-template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
-void construct (pointer p, value_type &&value)
 
-void construct (pointer p, const value_type &value)
 
-void destroy (pointer p)
 
+typedef tbb_allocator< U > other
 
-

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

diff --git a/doc/html/a00132.html b/doc/html/a00132.html index 9b11bb5d38..fa1aeb4fef 100644 --- a/doc/html/a00132.html +++ b/doc/html/a00132.html @@ -3,8 +3,8 @@ - -tbb::scalable_allocator< void > Class Template Reference + +tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::scalable_allocator< void > Class Template Reference
+
tbb::interface6::memory_pool_allocator< T, P >::rebind< U > Struct Template Reference
- -

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

- -

#include <scalable_allocator.h>

- - - -

-Classes

struct  rebind
 
- - - - - - + +

Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 
+typedef memory_pool_allocator
+< U, P > 
other
 
-

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/a00133.html b/doc/html/a00133.html index dc2c556829..93577b7b10 100644 --- a/doc/html/a00133.html +++ b/doc/html/a00133.html @@ -3,8 +3,8 @@ - -tbb::queuing_mutex::scoped_lock Class Reference + +tbb::flow::interface10::receiver< T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::queuing_mutex::scoped_lock Class Reference
+
tbb::flow::interface10::receiver< T > Class Template Referenceabstract
-

The scoped locking pattern. +

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

-

#include <queuing_mutex.h>

+

#include <flow_graph.h>

-Inheritance diagram for tbb::queuing_mutex::scoped_lock:
+Inheritance diagram for tbb::flow::interface10::receiver< T >:
- - + + +tbb::flow::interface10::internal::untyped_receiver
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T input_type
 The input type of this receiver.
 
+typedef
+internal::async_helpers< T >
+::filtered_type 
filtered_type
 
+typedef T input_type
 The input type of this receiver.
 
+typedef sender< T > predecessor_type
 The predecessor type for this node.
 
+typedef
+internal::edge_container
+< predecessor_type
built_predecessors_type
 
+typedef
+built_predecessors_type::edge_list_type 
predecessor_list_type
 
- Public Types inherited from tbb::flow::interface10::internal::untyped_receiver
+typedef untyped_sender 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

 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.
 
+bool try_put (const typename internal::async_helpers< T >::filtered_type &t)
 Put an item to the receiver.
 
+bool try_put (const typename internal::async_helpers< T >::async_type &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 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
 
- Public Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
+virtual ~untyped_receiver ()
 Destructor.
 
+template<typename X >
bool try_put (const X &t)
 Put an item to the receiver.
 
+ + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

+virtual task * try_put_task_wrapper (const void *p, bool is_async) __TBB_override
 
+virtual task * try_put_task (const T &t)=0
 Put item to successor; return task to run the successor if possible.
 
+virtual task * try_put_task (const T &t)=0
 
+virtual graph & graph_reference ()=0
 
+virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
+virtual bool is_continue_receiver ()
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_receiver
+template<typename X >
task * try_put_task (const X &t)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Friends

+template<typename >
class internal::async_storage
 
+template<typename , typename >
struct internal::async_helpers
 
+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

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
tbb::queuing_mutex::scoped_lock::scoped_lock ()
-
-inline
-
- -

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

+

template<typename T>
+class tbb::flow::interface10::receiver< T >

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

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

    +

The documentation for this class was generated from the following file:
diff --git a/doc/html/a00133.png b/doc/html/a00133.png index 611457f0e8f9f148ec8a56d0ffee01acb4892bd2..0b3fbdae080ea07d4b3363997e402f6dce3e8ed6 100644 GIT binary patch literal 1020 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~12~w0rc96T3MM|{PO+F8R;4Ky&*YF6!{>E!wfh>}%%rHHW{c&B{H|ci`6V!YB7GN1I6qo;B7_=J@-0k8(w?WS+8B z`;OVYoTA|u^_^Vb8krS(m)>6Gf9B-6nU$H(rYri+-e@pK$tXi@>ofBUZz@aH{P#HY z_MzCUgQvG$oWHPBJO8k|iQb|K{E4sn7ev-?es5bNAAURkjnwC<`WH)9*4C8I{;kcwZqD1Cw)O2r zoxoie3r`)k6j*QHpVqrBJ1IkYQ*!9rzZOOBU+PNtbUZs?Cs}KD|L3ldI^B(N{wsEL z)d`B+O3isR?bWu>`7_F{mwcXck+;v9?e1Uhf_)-q=eg&y{w}-0{Y+HK-0IEMXEhQ3 zUtVC?vGBb6=6`9s({3=Y+ZO*u>h>0syleM2WbgX)@WPzyCjKj=w;odux&MXj__|-0 zqKxMSBp1p$zsYvASs3Lsw|}1Qg3FvH)(fkcH_y?xSjg~C9cOsIYJ`U03-SCk%Lj$( SY7xM!%HZkh=d#Wzp$PyF7}rMt delta 577 zcmeyv{*FblGr-TCmrII^fq{Y7)59eQNFN5`01jp#IXT#{bfThFJ>y?b7srqa#WlndCU>(NvyE zBJ1bzsLh`1D|!3-uX9&ZCacu0U&k|f_0k=z>;7+hb;f1VzQFqyHVGMlbj@^E#{_6L`b~gohE|>5Bukv%#-}hFTJ~F?~RT?&{l!n8s zGBunrvsbs_|7z(24}LMW-OjD)kWZK)(ANHgm9639)If%g@MDY$agyu}6{#`|kERw9 z5-4?)Idg_hoXucM{Uo5qlMDju=O(W5;(oBQ>NcZH=rOanKdbvC8R9Oc@_0|1D_1;S zdc&9X$?w9lvvs>Or!IP4wsH1xo&Ky>xl2}e?KWQDTln*Z9^dOjJgYVtn@lw>-F()2 z<=dLm2gKt|uZbQm{Pp%}q5e+)h!66{b9xSFEX|X>7UE|6>3+r6`1|#1KgzcKO#0uF zC|Pl5Nx#IZ%qnA<^cr=(soj%JF6n*ZJp40mmD$esWqXe|f5><~??!0)uEUiX=f4>0 z=U$U`oGNjvw(ih_m$7kL`uop%|6W)%Z(qFE2iv@<{Iw;CH}spnzF?|Zw0Wa`#arR_ r_tWZJWf=Z#f_d3ib=FMr-c|KSYRZkLOkjNuOce~Cu6{1-oD!M - -tbb::interface5::reader_writer_lock::scoped_lock Class Reference + +tbb::flow::interface10::receiver_gateway< Input > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
+
tbb::flow::interface10::receiver_gateway< Input > Class Template Referenceabstract
- -

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

- -

#include <reader_writer_lock.h>

-Inheritance diagram for tbb::interface5::reader_writer_lock::scoped_lock:
+Inheritance diagram for tbb::flow::interface10::receiver_gateway< Input >:
- - + + +tbb::flow::interface10::graph_proxy
+ + + + +

+Public Types

+typedef Input input_type
 Type of inputing data into FG.
 
- - - - - - - - - - -

Public Member Functions

scoped_lock (reader_writer_lock &lock)
 Construct with blocking attempt to acquire write lock on the passed-in lock.
 
~scoped_lock ()
 Destructor, releases the write lock.
 
-void * operator new (size_t s)
 
-void operator delete (void *p)
 
- - - + + + + + + + + + +

-Friends

-class reader_writer_lock
 
+virtual bool try_put (const input_type &)=0
 Submit signal from an asynchronous activity to FG.
 
- Public Member Functions inherited from tbb::flow::interface10::graph_proxy
+virtual void reserve_wait ()=0
 Inform a graph that messages may come from outside, to prevent premature graph completion.
 
+virtual void release_wait ()=0
 Inform a graph that a previous call to reserve_wait is no longer in effect.
 
-

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:
-
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
+
tbb::recursive_mutex Class Reference
-

The scoped locking pattern. +

Mutex that allows recursive mutex acquisition. More...

-

#include <spin_rw_mutex.h>

+

#include <recursive_mutex.h>

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

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

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

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

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

Constructor & Destructor Documentation

- +

Mutex that allows recursive mutex acquisition.

+

Mutex that allows recursive mutex acquisition.

+

Member Function Documentation

+
@@ -121,9 +129,9 @@
- + - +
tbb::spin_rw_mutex_v3::scoped_lock::scoped_lock bool tbb::recursive_mutex::try_lock ())
@@ -134,68 +142,17 @@
-

Construct lock that has not acquired a mutex.

-

Equivalent to zero-initialization of *this.

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::upgrade_to_writer ()
-
-inline
-
- -

Upgrade reader to become a writer.

-

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

- -

References is_writer.

- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
bool tbb::spin_rw_mutex_v3::scoped_lock::is_writer
-
-protected
-
+

Try acquiring lock (non-blocking)

+

Return true if lock acquired; false otherwise.

-

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.

+

References tbb::aligned_space< T, N >::begin().

-

Referenced by acquire(), downgrade_to_reader(), release(), try_acquire(), and upgrade_to_writer().

+

Referenced by tbb::recursive_mutex::scoped_lock::try_acquire().


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

diff --git a/doc/html/a00135.png b/doc/html/a00135.png index 13249c6a5c9189fb4202efb8b5609124c7dc489e..3157a913de76891db2928ba797af89eeb5eb82f1 100644 GIT binary patch delta 721 zcmV;?0xtcJ1^xvgiBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA$e~n2* zK~#7F?VanAtRM`8KdQE>-~Wx*8$tjbT|H-JB3ri3LK4$-68{oH2u}b(lKi6+l_XE- zL?y`+Hi=&2f5O|E?m1SLrSbBAGvZehm1M3%L_<8H8N-KXcuY6zJFUgXXt%m#Ci6;e zvc%7w^LNAr8^-t-duzHI>6BiHf9PbD$X377`D9zhFsrG`#4MGM>{tD!)x_>)>n+pe-@!7YmJh4?l_CF!ftiAs_ubfS{v2?Nm(LU;fG{yTmEo`9zi{rPza z)29#}cs_&aV~7Gg1YJ)6e^2O&0(e4K6u=X@q5z)I6$S8wt|)*fbVUI?p(_gD30+YD zPw0vQctTecz!SQn0G{v`MMDVT2_OLYM<)v437sf_CtM;rxGvu3gBpYZR9j(<&}Yw0d8Uo3ZsE(RY;)XWmAX7aFp zJBph6062?#d$e7;$)wDFy|ooh9Ub$0*DxxlZmzAFy32qmN;kHvox0gbi)7zDbpgHw zA47DSIG4r^z&5&~Cjg$%i2`^+Cko&RERLtq;CLm00%RW^pW+>ny6@9FX!pv7*fIbcJ9qd zuMBux`d6)Z_5c6llTMFBIqtA{?Mr&$Ss>zl{Owawm|$*fs32&<~2|1VE;Mc0; zv@~TdW{G-#Mz#l@AZ&f3#Iu}1w$_YI|K2QfgNDamAJ5MIx!C*w!@cXD|2G-PnrO{TszBT{5uH3Yaw9NLYyJ_^US2RL&&aX2v(X+RE z|6BWhlT*}&rBhh0-w92KbS*8JX|1jJHIVf^=c|=7c+2X|X83l7mX;p1ol{z}yLiLo zwJ&}L7KT<&d>|TOc-4-5wmp#E<-1KR=j|h#4eZJB4QuQ5Wwg0GR?4Tmwz}3*E?2%h zDP6L3S}gCi%-1^SbT40??jMo-_F3TjuIQ5GFBNWVYyVPywAR)1=D*zVJL0b - -tbb::recursive_mutex::scoped_lock Class Reference + +tbb::flow::interface10::internal::reservable_predecessor_cache< T, M > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::recursive_mutex::scoped_lock Class Reference
+
tbb::flow::interface10::internal::reservable_predecessor_cache< T, M > Class Template Reference
- -

The scoped locking pattern. - More...

- -

#include <recursive_mutex.h>

-
-Inheritance diagram for tbb::recursive_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a recursive_mutex.
 
scoped_lock (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (recursive_mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (recursive_mutex &mutex)
 Try acquire lock on given recursive_mutex.
 
-void release ()
 Release lock.
 
- - - -

-Friends

-class recursive_mutex
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

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

diff --git a/doc/html/a00136.png b/doc/html/a00136.png deleted file mode 100644 index 9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmeAS@N?(olHy`uVBq!ia0vp^XMs3?gBeKn&SE?Uq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0L_A#_Ln;{G&VAdr+JMKUf2r5!fB7{F z9SRh-pMKYNO?u~}DQ5HKjv3Y)8cVbJOkz{K>Jj7<)T?q-1;p63+VE!a(Um`bhuz=7 zcXPrLzc1m&Yq!VfUHN*yESq=YlKA3g^Z$XxVy3fZ-An)0ob~LpvZrk2{8^WG{&ddL zyRzk9=eLR9eQ$p3UpaHn4Esrcw*Gy;|1<|?O{4eWO9hIr{T;iGiLTO z9gwbI;5i(SCD%Xk3D43rA>#>iHeO-qaj{|+nEZuJLG2~4gU==Dh8auD84Nx18ImU5 zV>qI+m$AdM3QfVD)6&M96Av%|eFIbh#7kDp%=@k1kY7-GEMM-9-S;hB?_Vuod%%?+ zy!pzjm#=R=QL|w`v-kCa)K6A^?`o9b?>?>GR(KE`e&B)WgJgk^!(|awzf|it6Wx! z=iBcOTXHq(`js>Dm(7}#`P%9A3Gu9JjG<1uWc$UY_FAu6=@wB6!)-w(~!n&QT3 z)&9G6R@t)9=ga11>UHxgPFugt{Ho`QRSxaN#p{@k&w3WS%Iic};wzuxtsmE - -tbb::null_mutex::scoped_lock Class Reference + +tbb::flow::interface10::internal::round_robin_cache< T, M > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::null_mutex::scoped_lock Class Reference
+
tbb::flow::interface10::internal::round_robin_cache< T, M > Class Template Reference
- -

Represents acquisition of a mutex. - More...

- -

#include <null_mutex.h>

-
-Inheritance diagram for tbb::null_mutex::scoped_lock:
-
-
- - - -
- - - - - - - - - - -

-Public Member Functions

scoped_lock (null_mutex &)
 
-void acquire (null_mutex &)
 
-bool try_acquire (null_mutex &)
 
-void release ()
 
-

Detailed Description

-

Represents acquisition of a mutex.

-

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

diff --git a/doc/html/a00137.png b/doc/html/a00137.png deleted file mode 100644 index d8565aa377b4b6d12e30bda0927c2756bdb21acf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^tARLxgBeH$CYOE$QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;52aiuSxa~wLJfQ*)=OiGU3+WPrHAf zU3{MXLxwKmhTpI_Q>zI0u*=dN@8JHx*I%8rS@ z!M@A;LEqo6GaiKR^s_uyKj~BQ|9iF&Bhq@tBEP@MXVC-9-;^4pCAFtpSpS`N5G&#kt3X;{t!^(;nH18{26qE)Ek=S z$tAlUW3_et_p*zRE?%+d-!RuNculh|@9)(44|hcF5Sts^5xH)5 zucOtZ#HYJ_B2A@C`u_xdwc9B+w_o$L)QLr2_Maoy=^oad@hE=A)Ntoza;E;q#f7D@ z_gd7ihd6)D$bRp?(`@>K%A41W?(f)^{UBt~(-)BwudZ9pWwTbdy=v|Cu$}xNqCc*b z=IeZGymDhVzl`hu#_!jTYU=OM^Hz$tWyrr+^{qAVf5kcmdBqsUKb%0{Jj=a#CWm7m ZL)Om>Id#FK%Yc#1;OXk;vd$@?2>|Ul6*&L^ diff --git a/doc/html/a00138.html b/doc/html/a00138.html index f6192cddd5..51a7d87997 100644 --- a/doc/html/a00138.html +++ b/doc/html/a00138.html @@ -3,8 +3,8 @@ - -tbb::mutex::scoped_lock Class Reference + +tbb::flow::interface10::run_and_put_task< R, B > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::mutex::scoped_lock Class Reference
+
tbb::flow::interface10::run_and_put_task< R, B > Class Template Reference
- -

The scoped locking pattern. - More...

- -

#include <mutex.h>

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

-Public Member Functions

scoped_lock ()
 Construct lock that has not acquired a mutex.
 
scoped_lock (mutex &mutex)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
-void acquire (mutex &mutex)
 Acquire lock on given mutex.
 
-bool try_acquire (mutex &mutex)
 Try acquire lock on given mutex.
 
-void release ()
 Release lock.
 
- - - -

-Friends

-class mutex
 
-

Detailed Description

-

The scoped locking pattern.

-

It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

-

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

diff --git a/doc/html/a00138.png b/doc/html/a00138.png deleted file mode 100644 index 5450176d7fa5c18126f5e6f83daf7a63bab18728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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::spin_mutex::scoped_lock Class Reference + +tbb::interface6::runtime_loader Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::spin_mutex::scoped_lock Class Reference
+
tbb::interface6::runtime_loader Class Reference
-

Represents acquisition of a mutex. +

Load TBB at runtime. More...

-

#include <spin_mutex.h>

+

#include <runtime_loader.h>

-Inheritance diagram for tbb::spin_mutex::scoped_lock:
+Inheritance diagram for tbb::interface6::runtime_loader:
- - + +
+ + + + + + + +

+Public Types

enum  error_mode { em_status, +em_throw, +em_abort + }
 Error mode constants. More...
 
enum  error_code {
+  ec_ok, +ec_bad_call, +ec_bad_arg, +ec_bad_lib, +
+  ec_bad_ver, +ec_no_lib +
+ }
 Error codes. More...
 
- - - - - - - - - - - - - - - - - - -

Public Member Functions

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

-

Represents acquisition of a mutex.

-

Member Function Documentation

- +

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

+
- - - - - -
- + - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool tbb::spin_mutex::scoped_lock::try_acquire tbb::interface6::runtime_loader::runtime_loader (spin_mutexm)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 ()
-
-inline
-

Try acquiring lock (non-blocking)

-

Return true if lock acquired; false otherwise.

+

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

diff --git a/doc/html/a00139.png b/doc/html/a00139.png index 25da9c6ba09d573b82ff7e6295013c42ed53edd9..56b89a68fda8064d7c58a403e3aa47ca3cccd7d0 100644 GIT binary patch delta 570 zcmcb_@`6RNGr-TCmrII^fq{Y7)59eQNN)q;01jp#*=$_Da-yPj{dZ3n$B+ufw{zd- ztuf$n>0dha+28v=K8Y3xEx0>vt5j^bB^T#9Tk9Dg#Emz9JfMb#f&8{iB zo`E(>w^O{Qy|nqdyRMj9)8kTph1<6&$+CWzw`pCD>`?jJ(|%{)guAQd!@eoM58Ci% z=W*4S+iSwguHUW?{ATVqslBRR<;|UYtN(=FoV@$jszZPa4%(D-DQ~z&=caV-| z^rS@+;oD~3EMTbV59+&i_v7xJ* z+&K}~f9UA)+@k$yar$z3Zs)ACUu^pp9Gi0T*0V_Q=!~xg=O%^Cc3oFqeKurS?T@3= z4#$2E4!qxTt#Z1-^yO90u7-r(zIx5~lG-Za9da6irNuk7O6yN=skG9*RrGvT->UZ~ z^!5fST`N6Vu;$*xy-(kygx{=rD!=n?#>@Dp<*CfaEwU$V`&64>zt~exyJXYe!i29C z%ePzKeCv5hZJnP`IoFQ2&m0O9OXpdAJ?put{r9P#h3r3gPivR|FJgTe~DWM4f2Hh0& delta 547 zcmaFCa*0K;Gr-TCmrII^fq{Y7)59eQNUsCp01jp#x!r5u)`^PN^$$H=978G?-_E_+ zx7t8}b@ft@=l}m#L>zmdD=CyAa{sonR>Q}jIUCPvr=>k^@VunavQDK^aMz?Kt}nbM zi7zkp-S)-cZD(a>+>dBgMbG&~aphV2mB*#uF%#Yi-@R64arg4;CvJBu z`MfVl{wbNg^SAFV_OdqaXNPp_f4?(3wEd-D=DGSwpOo*$8(ivr8E1Im|2M&DOMY|2 zdVWf>i8bDw$nfC-qXA#?OFKE|pM6WMZ}vU0o}qUjz-1dloXalaamCW?G&4Sl0~#%Q z4dM&A9~@m)Z$0;$b^~AizMC_{@834t`=tNg1=fm_xw~FZGyALK8ri%jqjKq^#H!OF znfqevx&p7Moo+7i`kT`_H7~TX-^jaM*Khfs73<6TOBd|D{OFW|{iopI-51ts?^|0%S6N9@>I${FKf$Xl)0(B z{{N@i8;{d>o#r|zE_@*R%PqMVU+4RXKhWlgWzcsLKhRyd+ss(HRerZj=6`*j_dLLO OXYh3Ob6Mw<&;$Th=>V4i diff --git a/doc/html/a00140.html b/doc/html/a00140.html index fb5bd28ff7..345ae835a3 100644 --- a/doc/html/a00140.html +++ b/doc/html/a00140.html @@ -3,8 +3,8 @@ - -tbb::queuing_rw_mutex::scoped_lock Class Reference + +tbb::scalable_allocator< T > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::queuing_rw_mutex::scoped_lock Class Reference
+
tbb::scalable_allocator< T > Class Template Reference
-

The scoped locking pattern. +

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

-

#include <queuing_rw_mutex.h>

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

#include <scalable_allocator.h>

+ + + +

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + +

+Public Types

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

Public Member Functions

 scoped_lock ()
 Construct 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.
 
scalable_allocator (const scalable_allocator &) throw ()
 
+template<typename U >
 scalable_allocator (const scalable_allocator< U > &) throw ()
 
+pointer address (reference x) const
 
+const_pointer address (const_reference x) const
 
+pointer allocate (size_type n, const void *=0)
 Allocate space for n objects.
 
+void deallocate (pointer p, size_type)
 Free previously allocated block of memory.
 
+size_type max_size () const throw ()
 Largest value for which method allocate might succeed.
 
+template<typename U , typename... Args>
void construct (U *p, Args &&...args)
 
+void construct (pointer p, value_type &&value)
 
+void construct (pointer p, const value_type &value)
 
+void destroy (pointer p)
 

Detailed Description

-

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

+

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

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

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

    +

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

    +

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

diff --git a/doc/html/a00140.png b/doc/html/a00140.png deleted file mode 100644 index 227e99a9e7146d2e7de5a746eb21af449090be9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^H-I>RgBeKr$a-f1DTx4|5ZC|z{{xvX-h3_XKQsZz z0^1(`B6p0qd!N_tZ`4AbY;Gf&m<+ygDRSnK#Y~VGfp1caJcYMb?tMT zl!+>LSGgrPUs$@LoUHPgHC;KFC+liQ!xuYOwpHe&PDdNwsr-KhzaL_9gwJSUno%$!-O(Xjp{ z0pDiO8| z^M!a6CV_C+hKHN}GF7bXpLari^7fsfBK5Cx4H~w8HQliC1Alz-^w|bq&lk^I{4BnB zcH6Y&$E1$yn(*DII__{eeBybbbFte@UoG7>XWNyq>N&~9+t^&A53cH#-c>JFy}@vQ z(Wd{Y4`%NVSnYZwq*xE%^^G}68F}m@& zSpJ4cZvHpPh>hRwCb)ObZ`7^+9DlrP2fOQ#FT1Lk<4Vi3z=vR~IFEz4zBImz^cgOsxOj4E!JuUK}hS-ewx(Y?nv(pNIiS-mis;o+17VCVtymat6Y&Fj9fN0hes2F?|K2uwK) Mp00i_>zopr00eb2^#A|> diff --git a/doc/html/a00141.html b/doc/html/a00141.html index 9b59417719..2d16fddf7a 100644 --- a/doc/html/a00141.html +++ b/doc/html/a00141.html @@ -3,8 +3,8 @@ - -tbb::internal::critical_section_v4::scoped_lock Class Reference + +tbb::scalable_allocator< void > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::internal::critical_section_v4::scoped_lock Class Reference
+
tbb::scalable_allocator< void > Class Template Reference
-
-Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
-
-
- - - -
+ +

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

+ +

#include <scalable_allocator.h>

- - - + + + +

-Public Member Functions

scoped_lock (critical_section_v4 &lock_me)
 

+Classes

struct  rebind
 
+ + + + + + +

+Public Types

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

    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/a00141.png b/doc/html/a00141.png deleted file mode 100644 index 15626cfa0fabd91facbde8e62a8b58a223eb2eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/doc/html/a00142.html b/doc/html/a00142.html index e3952785a4..46c326ec87 100644 --- a/doc/html/a00142.html +++ b/doc/html/a00142.html @@ -3,8 +3,8 @@ - -tbb::null_rw_mutex::scoped_lock Class Reference + +tbb::queuing_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
-
tbb::null_rw_mutex::scoped_lock Class Reference
+
tbb::queuing_mutex::scoped_lock Class Reference
-

Represents acquisition of a mutex. +

The scoped locking pattern. More...

-

#include <null_rw_mutex.h>

+

#include <queuing_mutex.h>

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

Public Member Functions

scoped_lock (null_rw_mutex &, bool=true)
 
-void acquire (null_rw_mutex &, bool=true)
 
-bool upgrade_to_writer ()
 
-bool downgrade_to_reader ()
 
-bool try_acquire (null_rw_mutex &, bool=true)
 
-void release ()
 
 scoped_lock ()
 Construct lock that has not acquired a 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

-

Represents acquisition of a mutex.

-

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

    The scoped locking pattern.

    +

    It helps to avoid the common problem of forgetting to release lock. It also nicely provides the "node" for queuing locks.

    +

    Constructor & Destructor Documentation

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

    diff --git a/doc/html/a00142.png b/doc/html/a00142.png index 081a54dff5c3418a26e55aabe7207612d4a46482..611457f0e8f9f148ec8a56d0ffee01acb4892bd2 100644 GIT binary patch delta 576 zcmcb^@{UEZGr-TCmrII^fq{Y7)59eQNFN5`01jp#IXT#{bfThl{a;TP$B+ufw{u^g zd#%93ay)2h?SFH-%)A*BR+;<#3EY{)ta{AAaK`=_GkNuVCbfkbc?9j5*w*P&7SKkdHegXb5~O)tJJPv$1{2L(jBbp{%?DA#%0pJ!21?92^oQP%?lqJ_9X6@ z&+YkYvA4vm&mW#k#+~qv-G1q6{rAImHwAbum+$|t@^jPQ_g0xcGQZAM8aAtxhQq8f zHJmZCSGVE+YUu+HelfP)&aLT?PnaRl*8YQ)t>NR;K!%R+V~h%MlI#r?sWJ?YrWO(s zD0P%MbB0Zv&0x!t2P;%Of@dueAavA z+nUn{#N$n`i5@Qe_4a9@{!agh5Aw!ydJbqT&6B+r;%58le#O`L`)lhz%C`MX`rnc$ zS#f7czr?D{Dr1@S8g;&@-IGl&>3!ln{4;Kq+0OT6dyhAN$ap^QMriu3!<8B5zZmN0 zUXym5Dsii}?$Cpmv2j}Z`_Fp+URX76U%b}`+q|j#wIzu+^qaoEV5(WPd82;CTjBQi s)9PGh82)XV1og75>a3Z)Vyo(p)RY@fnZWuSm?#)LUHx3vIVCg!0OLLg(*OVf delta 558 zcmV+}0@3~M1l$B6iBL{Q4GJ0x0000DNk~Le0002M0000`2m=5B0C;4Ic99`Ff9pv^ zK~#7F?Van6t1t`($5N&5{oi;g6mp|l&XQu%<6Wk-As0`aguj@XjSMD9;}Qar-Fn-GvB zPeMSFJedT{%mxPFqdWjcW^{qaV{n7f1*Z7NHW*$2U~ppo0X&He0C*A^0PrL-0N_bv z0Kk*T0Dvcv0RT@T0|1^x1^_&X3;=i%836DkG63Mo$1`ANHZmB%xP$#Ka0^_NPY-M&7GahDP12kUJe zb}Os|s>*4)vkbgKG)PwpyA@a(mjZJfO$&qFE59|h3xTTgHe$VmviVEyZ!^#q?nJjq z)=MH=vO5vBz2@^?ru@SKfAb5!5J+pU9b&0{p}_M0O9t8lpgc6%2!9dSUqZ#QZ)SN{ zpc)AyyKf(%*N#h195dYf~`k300000NkvXX1g=70f=kf!(EtDd diff --git a/doc/html/a00143.html b/doc/html/a00143.html index b03fc55bd5..4d2ee95d55 100644 --- a/doc/html/a00143.html +++ b/doc/html/a00143.html @@ -3,8 +3,8 @@ - -tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference + +tbb::interface5::reader_writer_lock::scoped_lock Class Reference @@ -13,7 +13,7 @@
-
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
+
tbb::interface5::reader_writer_lock::scoped_lock Class Reference
-

The scoped lock pattern for read locks. +

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

#include <reader_writer_lock.h>

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

Public Member Functions

scoped_lock_read (reader_writer_lock &lock)
 Construct with blocking attempt to acquire read lock on the passed-in lock.
 
~scoped_lock_read ()
 Destructor, releases the read lock.
 
+
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)
 
 
@@ -83,7 +83,8 @@

Friends

 

Detailed Description

-

The scoped lock pattern for read locks.

+

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/a00143.png b/doc/html/a00143.png index 10066bd980a7f04d27b6d2c16ba84af835b461d3..a999a7d0cd0bd7f4fb4169b8e0db9283f0821121 100644 GIT binary patch delta 753 zcmX@kHjhoQGr-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=huTO^TlNr%i6%Jr%LeWyaR+ zrfUT}e`!Dac(<=?Ys)pipsLtQ^?8$Ye|_Gv`+fDKFW-IE$8NnJY3+IQtI5^d#bvWp zt$WKReQ8Tyc+GE8*^ZxY{;6y3-S*FfwSM0FXDh!qZ<)Mg<%Y6JSK5(X(?7cm>`*O+ z&!1Qm81$0gGVJ>CYf}Y-ZG?4$Uf!ihn+Co$vJH$9-LdQm3~u#F_ZcM`Cf+D#U`tT> z1`_YA1&I?YeDcY@?hXS%!Rd+&JO^CY$U4Yh<6FR=&3>VMEAxxTEAOtY{OdLU`u=U7 zB^RVwHZpv({Jb}gmGNch-M#<5eorsmR=>sg)?2<^vmZMZH7MJ;?A{%o_y7C3TPl<8 z{pL4b+qdg}q|^1fTTf2PKc1f0KjV6Yr>k~<)Tt?%Pg9RAc@XBh_D?#SwZ{H0cR$^` zX0v|FW;N}!S*DS^o-bCPym#L8q;_VjsnIfLbM34r_HsIZh0cD8&NkEBzHjasy;AQ@ z*H)*-*SB1c+|(aqW5MMu{G9)@QPkw~uW!r0S@7ret-Ur|U3C7YUwf_?xVAI5_4zlO z#dqUw+$*{KqRO!(^Sajl)8$XEuQ)ej)wWu3k?PO8PKWMWeQ4E@r#1aX`!4InZ?1kS z|Gr%P+MAuGAJg_{hgKz?eJ1q(NL~07tIhYPKF`_uaasGl?1Hn~_!b2neR9w!pzNGn z#`NVj7E;%lKc=6%`KWOBpIh%4{>$t)JuJDUI_KC=Io^OGBOZn2Ur&8Zcph}KoT2s) u|1HKpY)Bz~_!i@r!pnL}hg@7@o=Rsa9kO!jtv?A&?hKx;elF{r5}E*kV1zRO diff --git a/doc/html/a00144.html b/doc/html/a00144.html index b69428297b..9e1a83929f 100644 --- a/doc/html/a00144.html +++ b/doc/html/a00144.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::sender< T > Class Template Reference + +tbb::spin_rw_mutex_v3::scoped_lock Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::sender< T > Class Template Referenceabstract
+
tbb::spin_rw_mutex_v3::scoped_lock Class Reference
-

Forward declaration section. +

The scoped locking pattern. More...

-

#include <flow_graph.h>

+

#include <spin_rw_mutex.h>

-Inheritance diagram for tbb::flow::interface10::sender< T >:
+Inheritance diagram for tbb::spin_rw_mutex_v3::scoped_lock:
- - -tbb::flow::interface10::internal::untyped_sender + +
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Types

-typedef T output_type
 The output type of this sender.
 
-typedef
-internal::async_helpers< T >
-::filtered_type 
filtered_type
 
-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 Types inherited from tbb::flow::interface10::internal::untyped_sender
-typedef untyped_receiver successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_get (T &)
 Request an item from the sender.
 
-virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
-virtual bool try_release ()
 Releases the reserved item.
 
-virtual bool try_consume ()
 Consumes the reserved item.
 
-virtual built_successors_typebuilt_successors ()=0
 
-virtual void internal_add_built_successor (successor_type &)=0
 
-virtual void internal_delete_built_successor (successor_type &)=0
 
-virtual void copy_successors (successor_list_type &)=0
 
-virtual size_t successor_count ()=0
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (spin_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+void release ()
 Release lock.
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 
+bool try_acquire (spin_rw_mutex &m, bool write=true)
 Try acquire lock on given mutex.
 
+ + + + + + +

+Protected Attributes

+spin_rw_mutexmutex
 The pointer to the current mutex that is held, or NULL if no mutex is held.
 
bool is_writer
 If mutex!=NULL, then is_writer is true if holding a writer lock, false if holding a reader lock. More...
 
- - - - - - - - - - - - - - + + +

-Protected Member Functions

-virtual bool try_get_wrapper (void *p, bool is_async) __TBB_override
 
-virtual bool try_reserve_wrapper (void *p, bool is_async) __TBB_override
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_sender
-template<typename X >
bool try_get (X &t)
 Request an item from the sender.
 
-template<typename X >
bool try_reserve (X &t)
 Reserves an item in the sender.
 

+Friends

+class tbb::interface8::internal::x86_rtm_rw_mutex
 

Detailed Description

-

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

+

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

-

Forward declaration section.

-

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

-

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

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

diff --git a/doc/html/a00144.png b/doc/html/a00144.png index 9655e6a47e8186100b02aa608adab807a495ea8f..13249c6a5c9189fb4202efb8b5609124c7dc489e 100644 GIT binary patch delta 610 zcmX@h-p{Jo8Q|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$ztaD0e0svq!6CD5m literal 973 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3mz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op3RPCZ~SBxU4HO9)IYsRC-YsBp|N*%xR9Z7ATm}C3d`MpC)6wBLv3?> z?v$A~4`jI)@_p7wyJq^*M!Hxk|5>5ylb;2$7Q4<=h6qhwVc&J4cvb&?tE>MQuZynf zecRr>*=()s+xXm-h1=41Uft-FBDT~wgBqK0#&TyM3O0XBK^V zxIB2)y)9L9E#IBH?~!s}C--LV@?8Gy9W5HsQSpKwJ#XH9yzZjj*Z(FHf0_T@Rkt-S zg{NYovSJsTRQ;om+>a#}#wxy>(2=+9;EQCvdCz~l%I*|Tb$Ie&X)NRJK=&ib`?4QJ z3Tw~RNsYLA=;SV0=Ea+r$;*caek%}&5VEV`P&zpoc1ktn#&oVDM!X};5ldkDE$S2A( zWO}kB}Hy9 z%~++AAr5Z(MQ#_lzS-;fELWe~tGvs`jgePxz7uU68-wykx=SErI+J7tPanAXo)yY#k%5TK)TbkC- zS@E}0>Gi8ui@ryno?Z6ZrKL3^aq_HAGkg``P}WEsD41Uy7u~yldtb+mhc|? z!7@qZ(%tei6X#jCTYA_;?)p>Lcrv>4&FrP?6aJs6Hnh2II@`G-zF%@$t;T-_^Ebac zuk4TP`*C&G#P*(!sb42}TmATdTJY|HX31my)!VZ3t_aFMozZhV=-)Fdq4TpM^iwqt zH%a(itE%BWKdWrRj$JFO_2!v2yx>jeJz$>z4-k~#zSs;3wy&@4kGEU!FiddD0p>jh MPgg&ebxsLQ0DX$B*#H0l diff --git a/doc/html/a00145.html b/doc/html/a00145.html index 5a3cea9658..11898a815c 100644 --- a/doc/html/a00145.html +++ b/doc/html/a00145.html @@ -3,8 +3,8 @@ - -tbb::spin_mutex Class Reference + +tbb::null_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
-
tbb::spin_mutex Class Reference
+
tbb::null_mutex::scoped_lock Class Reference
-

A lock that occupies a single byte. +

Represents acquisition of a mutex. More...

-

#include <spin_mutex.h>

+

#include <null_mutex.h>

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

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

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

    Represents acquisition of a mutex.

    +

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

    diff --git a/doc/html/a00145.png b/doc/html/a00145.png index 5dfc58974fe23922ad2b6e7edde1e485bc375a30..d8565aa377b4b6d12e30bda0927c2756bdb21acf 100644 GIT binary patch delta 528 zcmcb~x{pP%Gr-TCmrII^fq{Y7)59eQNUsLs01jp#8JJx9aiXGCJ>ywV7srqa#s9nufMWm;%~6;@_x`)|M%;R2jM&YEYHu5D8@#!v~NK+}3{y#xq?RJXI?bkdlbz+g1{pZMax`%aV zJc^$&HQafboTA*rJbr%e@1WxC(aTfRy#4b& zeVFfm?z)HUz24dJJ!@~j%~?KYYklLnFzKAHTju(kJ>l7G9XfNzx=knNy_y;(Y(MSm z_8jg0NSE0aw-<(PUwo_Rw~orp>E+jpCqI37PDrlq_+z~ne~SgS7~D*=KC$+7;r%;K zp=?*SFDRV$^3}F&bs}2=@6B4^&16=lc#>;tjmR?n*jaT(BHh~@Vqg7Cx^m_s*OsY^ z_tx*VKYj7sjo+5DvMzClZueO0cU4#Y{8^(rYj^Scx39`8`nKei*QL`%jnkGyz2Dof z`cg)gb?#>C^oh?&3>LdY0KhZrCrY-U02fbv|r1ps>??Cb_u)S;R8_sVquM3m0G$ zh-U_BWz%p_nagQaS!MD1cg?O_%g_D2y?|l&FUAW`V@>~_i8J0_dA&v=&tR^<(XRh< z>(3pvvtD$XFL-kO>E&-lrcM7@RnK!&_yFgx16R)~O^H3$b=Wtnan}LnJxlc))|G!V zc=7jh_ky_%Z{4n3HESsUdQqlSLp6}OWV7e*U;f>Jk)@ZHNynOItn#!EC}rIB>yiW@OD@=GpemQS0oSe*hC8gQu&X%Q|MK GgeCy;%Re0e diff --git a/doc/html/a00146.html b/doc/html/a00146.html index 1e9bf632ed..a2845e806f 100644 --- a/doc/html/a00146.html +++ b/doc/html/a00146.html @@ -3,8 +3,8 @@ - -tbb::spin_rw_mutex_v3 Class Reference + +tbb::internal::critical_section_v4::scoped_lock Class Reference @@ -13,7 +13,7 @@
-
tbb::spin_rw_mutex_v3 Class Reference
+
tbb::internal::critical_section_v4::scoped_lock Class 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:
+Inheritance diagram for tbb::internal::critical_section_v4::scoped_lock:
- - + +
- - - - -

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

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

diff --git a/doc/html/a00146.png b/doc/html/a00146.png index ff1efc94eefd31b2d4083e828ac11551d2a93292..15626cfa0fabd91facbde8e62a8b58a223eb2eca 100644 GIT binary patch delta 698 zcmeBVd(NuZ8Q|y6%O%Cdz`(%k>ERN@z`zJ%2XHV0$!q1O?@d&+t}pX+aSW+od^`7T z-WmfQm;R+*pa138EUZ~GH>EK*bk{D~Cz{?ua|)~q{|N~uo)uU0oR%Wursx^!mMAhQ zBo)jwU(9jzdCg_bdC|p>tx_hd++Dmo&}Xym#C^rJxAGP%PWp0r*IiNnfG;jRN_X?t zCFOS~t&^NoGXEZ{Yq)m(Kdvrr^%HM@Kh6`GRI;enwx09olct}OrX*MItBuWn-SvC= z*E$WAm*GgZnl9|<*szTI!S}C>36idg9}~sg7@y4Wn9&-@5W%qb4JQM)M`Acbgag-Z zrUOhtH$)l4CLCJFu%SVujJ1Jv$p&o(9fj6d#so&qH(U($m}(!{#t4GE%9!9g&wy(& zgN6~1SaB=RXZ!K>ckcgZ$}o8o6I2#^{Ed4)gUH@r@2!7y-6`#P^ytfZEBCj{H5m9z z=Tk=G~(}^%>9GfQ6FDaKlWof<6+qcW! z1)F%!me=YkGu_QPNjuD)eaZ>`>~(j%0v;JI$y{SRUDo8plx1>@I8I#LKb383@U+|4 zZstw+Vp?0wuy)q@>L;xphB~aP6>q=&nWA~t>6VD;Wyij>eOtbS2b>A-PX72+RpjiA zQrYZl#UiJZ+^chX9!>nt9#G=<)~CK@QT=U&#aXp|Nx$2Bg1_9aYD(JU=#{%;o1>dX z*7xmMuEC#;Uo?xXzuL7gXPf$o4K2CHoo_1aE-bFR7oU~&E%WDk^%KP+ziaN>Ieu&U z{7RDd!@XaR#Q$=2rS6WO_v7fp!}_}>9A5WheIP@PBQU`*fKm-ZsBl*YNA|9NjD9JL WI|NL<<1PY|BZH@_pUXO@geCwmUO2=6 delta 732 zcmV<20wewB1&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 O0000 - -tbb::structured_task_group Class Reference + +tbb::recursive_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
-
tbb::structured_task_group Class Reference
+
tbb::recursive_mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <recursive_mutex.h>

-Inheritance diagram for tbb::structured_task_group:
+Inheritance diagram for tbb::recursive_mutex::scoped_lock:
- - -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 ()
 
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

- 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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

+Friends

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

    diff --git a/doc/html/a00147.png b/doc/html/a00147.png index f9335edceafd7f8bc89407edcd399573fb4cb1e3..9d4ec98b911f2d18a41fad4e3ce2d10c7aa42596 100644 GIT binary patch delta 600 zcmX@e-pZ=j8Q|y6%O%Cdz`(%k>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;Vst00`6|`~Uy| delta 918 zcmZo=J;<)u8Q|y6%O%Cdz`(%k>ERLtq&EX`2M05doL#Q9exjmPJ#&Dki(^OyRy>bC1geztv%-0S~b+{W&G z>AX+3&b%pav6}zs=i@p0S9g>Jd=hokR9sl>e znQ^r`*s|s4l$2^21rCclq?f$-^Y!ZdlJ;|pi^?zAS}}idcav0@*JJEpBbnY%VRVk+ zW6B)HM<*?qk4!FP>rj8pBjA4wO##cXN{P0G#u6c+^}ChkhK4@&Ob@+UQIw7QXmlc6NsSoxo+kGY@<++x}+pv}L(Y zhFNb5*gmVBt}!pX|M zx6QbJqSt-S>egGOi%;Co-dT8i=ZPa)^Sgh(ds$&J|MjlIs%15IHR|?ne0wGT(Q$c3tr= zyV7&P)84I3Ts!0SoUNtvHlDxFzD|4Rg&hm?zS$kKzSI4A(}Qn}kJhcN-2e6dD!=XV zw!3arNZ*RsWpn%QodUUc+e-vBCVMn=B~_VjvEbuSpVe*iV$c6Y;&Yz=zuxxwQeBJ5 zot>iRZWrq9zxLX+=<)S)u6Dm||K==O&SU$&%6$H6=B?@RXP)oM+u{B`BB}a9|Fy+s zTV5TDD+7h+mCfs~@;2;$Q1z0(e4hM?;x(tvg - -tbb::flow::interface10::internal::successor_cache< T, M > Class Template Reference + +tbb::spin_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
    - +
+
-
tbb::flow::interface10::internal::successor_cache< T, M > Class Template Reference
+
tbb::spin_mutex::scoped_lock Class 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
 
+

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:

diff --git a/doc/html/a00148.png b/doc/html/a00148.png new file mode 100644 index 0000000000000000000000000000000000000000..25da9c6ba09d573b82ff7e6295013c42ed53edd9 GIT binary patch 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::interface7::task_arena Class Reference + +tbb::queuing_rw_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface7::task_arena Class Reference
+
tbb::queuing_rw_mutex::scoped_lock Class Reference
-

#include <task_arena.h>

+

The scoped locking pattern. + More...

+ +

#include <queuing_rw_mutex.h>

-Inheritance diagram for tbb::interface7::task_arena:
+Inheritance diagram for tbb::queuing_rw_mutex::scoped_lock:
- - + +
- - - - -

-Classes

struct  attach
 Tag class used to indicate the "attaching" constructor. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

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 (attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
-void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
-void initialize (int max_concurrency_, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
-void initialize (attach)
 Attaches this instance to the current arena of the thread.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (F &&f)
 
-template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (F &&f, priority_t p)
 
-void enqueue (const F &f, priority_t p)
 
template<typename F >
internal::return_type_or_void
-< F >::type 
execute (F &f)
 
template<typename F >
internal::return_type_or_void
-< F >::type 
execute (const F &f)
 
void debug_wait_until_empty ()
 
-int max_concurrency () const
 Returns the maximal number of threads that can work inside the arena.
 
- - - -

-Static Public Member Functions

static int current_thread_index ()
 
- - - - - + + + + + + + + + + + + + + + + + + + + + + + +

-Friends

-class tbb::internal::task_scheduler_observer_v3
 
-int tbb::this_task_arena::max_concurrency ()
 
 scoped_lock ()
 Construct lock that has not acquired a mutex. More...
 
scoped_lock (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
~scoped_lock ()
 Release lock (if lock is held).
 
+void acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex.
 
+bool try_acquire (queuing_rw_mutex &m, bool write=true)
 Acquire lock on given mutex if free (i.e. non-blocking)
 
+void release ()
 Release lock.
 
bool upgrade_to_writer ()
 Upgrade reader to become a writer. More...
 
+bool downgrade_to_reader ()
 Downgrade writer to become a reader.
 

Detailed Description

-

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.

+

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

- +
@@ -148,21 +103,10 @@ @@ -172,256 +116,32 @@
- + - - - - - - - - - - + - -
tbb::interface7::task_arena::task_arena tbb::queuing_rw_mutex::scoped_lock::scoped_lock (int max_concurrency_ = automatic,
unsigned reserved_for_masters = 1 
) )
-

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.

+

Construct lock that has not acquired a mutex.

+

Equivalent to zero-initialization of *this.

Member Function Documentation

- +
- - - - - -
- + - +
static int tbb::interface7::task_arena::current_thread_index bool tbb::queuing_rw_mutex::scoped_lock::upgrade_to_writer ())
-
-inlinestatic
-

Returns the index, aka slot number, of the calling thread in its current arena This method is deprecated and replaced with this_task_arena::current_thread_index()

-
-
- -
-
- - - - - -
- - - - - - - -
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 (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 (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 >
- - - - - -
- - - - - - - - -
internal::return_type_or_void<F>::type tbb::interface7::task_arena::execute (F & f)
-
-inline
-
-

Joins the arena and executes a mutable 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 Since C++11, the method returns the value returned by functor (prior to C++11 it returns void).

- -
-
- -
-
-
-template<typename F >
- - - - - -
- - - - - - - - -
internal::return_type_or_void<F>::type tbb::interface7::task_arena::execute (const F & f)
-
-inline
-
-

Joins the arena and executes a constant 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 Since C++11, the method returns the value returned by functor (prior to C++11 it returns void).

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

+

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

diff --git a/doc/html/a00149.png b/doc/html/a00149.png index e9685d4171a2c2b80abd7f134114e57d1cfc52ca..227e99a9e7146d2e7de5a746eb21af449090be9c 100644 GIT binary patch delta 605 zcmbQh+Rdui8Q|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;ucLK6UB79Vy1 delta 610 zcmeBXoxrNt8Q|y6%O%Cdz`(%k>ERLtq!$2j00%RWT-n^mHc`>KUf$EiF{Fa=?c9Tt z9xL#;$WQb$=^Mf;lm_ADihJh3#Hy_@&t$ zB=%bK9<#Yjb$iM3kDXuZn~z>(XN>=ES>1KF%PM#m+lDh=CT{D~d-5Y%bDh4s=C?%Y z;F=d6llEO$Yh5v6m*G+S3U=?>X}|5?%t?<5ot0x|9ewob#pSCaCjFcHjww(4j~9d9 zEze5}>vCCCU%HDlOfp%_FlC9PEn~1(W+G!v2!F%WtyT{nZ?t&$s=^)j+ zGlChI&S)?&rinB#7;`x^NU|y%=wT8_aAV{!Sj@mOBM?dY*MA0}S*a5lu7yHHw=mny zzP9;u^7=6Q11n;x(z_YEj>#Mh`?BICzbn8v|-;+{**FHXWH^*)bfBN%vZ?EpC>H7O-NAu+hQ!kfa zQ{K59KKeGsYLj$>>1J!MbBW=ywG&>IN-(V5{p{45ox%qvC(jRYoB#8%$nOn%JvZ(y z77wbaVb7g#%=$*{j(fX{8fr!Px8DgX^e$ZOVEvkFjTA5Y3gg_37M>s9ssDS$FlSqn r#cyS%JHmnp-+uX}wS3B@UB8%TNX08utlnV*Og0Rju6{1-oD!M - -tbb::task_group Class Reference + +tbb::mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::task_group Class Reference
+
tbb::mutex::scoped_lock Class Reference
+ +

The scoped locking pattern. + More...

+ +

#include <mutex.h>

-Inheritance diagram for tbb::task_group:
+Inheritance diagram for tbb::mutex::scoped_lock:
- - -tbb::internal::task_group_base + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

Public Member Functions

-template<typename F >
void run (task_handle< F > &h)
 
-template<typename F >
void run (F &&f)
 
-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 ()
 
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.
 
- - - - - - - - - - - - - - - + + +

-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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
-empty_task * my_root
 
-task_group_context my_context
 

+Friends

+class mutex
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.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/a00150.png b/doc/html/a00150.png index d42b601be28042a7d338382ac8733c816f06abe6..5450176d7fa5c18126f5e6f83daf7a63bab18728 100644 GIT binary patch delta 496 zcmey(HjhQIGr-TCmrII^fq{Y7)59eQNKXLb01jp#d9Z-TZla=9J>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>`Sg*s%Zr delta 848 zcmbQo@|#VuGr-TCmrII^fq{Y7)59eQNN)z>4i07@IlEkI{X|8pdS)(97srqa#=_Cam%-D(b-)yZ%VG~{49R1|5dG3{D)t6 zUfVp~I`ig#!B>AKoX>y$$K`JQ4i(dPtIq#c%ztTftn}B6$eY{#skYyhex7~q*XsRu z)6&W(fvhQcrK5C7oWZb$p~S8IoV@&B&+->GTIK3@7aKd&r%Yjdbkc(P$mBw{4)w=8 z0{+J&73TFAJJ?93H&hs%WB8ad2Tei3oc2Tst7ga0t@YZMB128*m4t=%rk79Kxwc+* z{^G}Np;x#5JzaHe`|6O;=sz1?s6SUX|0S9(D7n0Edgjp@ZMoD}{=(Bv+iW@?)wYc_ z@7gcdL<9LvYxKq5rOUKWtN!gL`}}Fc+ilx7ZGPYux+O35_|7%_kJ3cbW%{q(s-7MA zyzT$D!j)aC7I&rE)`ztDyKY@pnpXV&^0~{)?aDpb%kNla@1IlpP5SN0k41AlKyj%<_zx?<}yC=1P1CQU;vi@ z0~;T=Pfh8PB!@%z5@1BUmHp zQu!}d*XdT{=ZpDIj;*)eU6W^XYU2G+JL~69x9&Z - -tbb::internal::task_group_base Class Reference + +tbb::null_rw_mutex::scoped_lock Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::internal::task_group_base Class 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::task_group_base:
+Inheritance diagram for tbb::null_rw_mutex::scoped_lock:
- - -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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
- - - - - + + + + + + + + + + + +

-Protected Attributes

-empty_task * my_root
 
-task_group_context my_context
 
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 class was generated from the following file:
    -
  • task_group.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/a00151.png b/doc/html/a00151.png index e95fec5546162fcf72b876a7571a40174f6db6a5..081a54dff5c3418a26e55aabe7207612d4a46482 100644 GIT binary patch delta 559 zcmV+~0?_@e3fu%CiBL{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-PLWs402SiPrPzWe*W zVnb!bp#v2{mpGsN3OL4L8|AwDC+iON|IAhAPsYPq zxBK>jf%2EXDt1R!xE!&&s%@h5s5qj+#YG9IYGOyLyNgQFLqWk#uu!^qoR{WvrUMKn ze;5rIEF&x&;??ik4W+*Fs$n|mN~!>Bb;v0z_>&097u!joQF6yeDKm-I)|s>bJ4yJx-tra-0Z+W zViej~(BQI8agV)i{o35T^4Xuyrmp8d`SbV!Z|?fy*Y z_U|i~*e9o3ynbP()P*ln`5|?3-8_$1H-45n@A`V@?QZYX9|`GJXWeTJFKh{lko)SY zTvWs5yFRP;d2!_I-}3d24aOIyO)1M>|9hFkVWsZrzNL?X5>DQlwYvDf-^1_cgKh=5 zN`)t{|M`0Hq1&C$W_{XiRHK*|xqS9VZPlmsE&6J^u6cjn+O|JDXj`lK)$+i@vp-&y zei(lBL$zL?m74b3eeJV8OzTWlD+oJr#T$Q<9Q9D%Ta&b>z;-V8X2^f{0UPlh8 zYEBG)__VNRzl!N`ughuK)#*3Wt9w-5e&T#6J=@yA!t>VQL;IsEG?&J&|G!KBx5ZiW zw%OmGxx4T$ySDS;#^s53ZrJ!oZ@nJ9eplGy=XRw$^F{Y<+^O6=d5P^c$s_u=RIx4gh8pY>tk-&5$bwaLrPQF*&jsphBB`g>E)t1dJD zzPYq&>iM<7mp3cjy*>S5c=x(qx#S67Z0wY4YKz&~)IF>Ba7|zGKEd|O)@%M8)0gyr zs4JMX<@j{&`aO=@g%Wq|jOE!M_~SUp#yXF-e0w3!s0ni){uc#W^Rd{gOJ(nI^C=>p sR%{pn9#?U_^zP0TE# - -tbb::task_group_context Struct Reference + +tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference @@ -13,7 +13,7 @@
-
tbb::task_group_context Struct Reference
+
tbb::interface5::reader_writer_lock::scoped_lock_read Class Reference
-

#include <parallel_invoke.h>

+

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

task_group_context (tbb::internal::string_index)
 
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
 

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

    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/a00152.png b/doc/html/a00152.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/a00153.html b/doc/html/a00153.html index 90bd405adb..fef9107ffe 100644 --- a/doc/html/a00153.html +++ b/doc/html/a00153.html @@ -3,8 +3,8 @@ - -tbb::task_handle< F > Class Template Reference + +tbb::flow::interface10::sender< T > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::task_handle< F > Class Template Reference
+
tbb::flow::interface10::sender< T > Class Template Referenceabstract
+ +

Forward declaration section. + More...

+ +

#include <flow_graph.h>

-Inheritance diagram for tbb::task_handle< F >:
+Inheritance diagram for tbb::flow::interface10::sender< T >:
- - + + +tbb::flow::interface10::internal::untyped_sender
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

+typedef T output_type
 The output type of this sender.
 
+typedef
+internal::async_helpers< T >
+::filtered_type 
filtered_type
 
+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 Types inherited from tbb::flow::interface10::internal::untyped_sender
+typedef untyped_receiver 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

task_handle (const F &f)
 
task_handle (F &&f)
 
-void operator() () const
 
+virtual bool try_get (T &)
 Request an item from the sender.
 
+virtual bool try_reserve (T &)
 Reserves an item in the sender.
 
+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
 
- - - - - - - - + + + + + + + + + + + + + +

-Friends

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

+Protected Member Functions

+virtual bool try_get_wrapper (void *p, bool is_async) __TBB_override
 
+virtual bool try_reserve_wrapper (void *p, bool is_async) __TBB_override
 
- Protected Member Functions inherited from tbb::flow::interface10::internal::untyped_sender
+template<typename X >
bool try_get (X &t)
 Request an item from the sender.
 
+template<typename X >
bool try_reserve (X &t)
 Reserves an item in the sender.
 
-
The documentation for this class was generated from the following file:
    -
  • task_group.h
  • +

    Detailed Description

    +

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

    + +

    Forward declaration section.

    +

    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/a00153.png b/doc/html/a00153.png index 5f640e9e7369f83c7c304b581f01b7969a27ed2f..9655e6a47e8186100b02aa608adab807a495ea8f 100644 GIT binary patch literal 973 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3mz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op3RPCZ~SBxU4HO9)IYsRC-YsBp|N*%xR9Z7ATm}C3d`MpC)6wBLv3?> z?v$A~4`jI)@_p7wyJq^*M!Hxk|5>5ylb;2$7Q4<=h6qhwVc&J4cvb&?tE>MQuZynf zecRr>*=()s+xXm-h1=41Uft-FBDT~wgBqK0#&TyM3O0XBK^V zxIB2)y)9L9E#IBH?~!s}C--LV@?8Gy9W5HsQSpKwJ#XH9yzZjj*Z(FHf0_T@Rkt-S zg{NYovSJsTRQ;om+>a#}#wxy>(2=+9;EQCvdCz~l%I*|Tb$Ie&X)NRJK=&ib`?4QJ z3Tw~RNsYLA=;SV0=Ea+r$;*caek%}&5VEV`P&zpoc1ktn#&oVDM!X};5ldkDE$S2A( zWO}kB}Hy9 z%~++AAr5Z(MQ#_lzS-;fELWe~tGvs`jgePxz7uU68-wykx=SErI+J7tPanAXo)yY#k%5TK)TbkC- zS@E}0>Gi8ui@ryno?Z6ZrKL3^aq_HAGkg``P}WEsD41Uy7u~yldtb+mhc|? z!7@qZ(%tei6X#jCTYA_;?)p>Lcrv>4&FrP?6aJs6Hnh2II@`G-zF%@$t;T-_^Ebac zuk4TP`*C&G#P*(!sb42}TmATdTJY|HX31my)!VZ3t_aFMozZhV=-)Fdq4TpM^iwqt zH%a(itE%BWKdWrRj$JFO_2!v2yx>jeJz$>z4-k~#zSs;3wy&@4kGEU!FiddD0p>jh MPgg&ebxsLQ0DX$B*#H0l 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::spin_mutex Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::internal::task_handle_task< F > Class Template Reference
+
tbb::spin_mutex Class Reference
+ +

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

+ +

#include <spin_mutex.h>

-Inheritance diagram for tbb::internal::task_handle_task< F >:
+Inheritance diagram for tbb::spin_mutex:
- - + +
+ + + + +

+Classes

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

Public Member Functions

task_handle_task (task_handle< F > &h)
 
 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

+

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

diff --git a/doc/html/a00154.png b/doc/html/a00154.png index 229263c6223fbf739b854a1eafa70239ec72a2cf..5dfc58974fe23922ad2b6e7edde1e485bc375a30 100644 GIT binary patch delta 685 zcmaFEa+6iDGr-TCmrII^fq{Y7)59eQNWTE$01jp#sq*e*&_qS6dZr9d7srqa#A*rJbr%e@1WxC(aTfRy#4b& zeVFfm?z)HUz24dJJ!@~j%~?KYYklLnFzKAHTju(kJ>l7G9XfNzx=knNy_y;(Y(MSm z_8jg0NSE0aw-<(PUwo_Rw~orp>E+jpCqI37PDrlq_+z~ne~SgS7~D*=KC$+7;r%;K zp=?*SFDRV$^3}F&bs}2=@6B4^&16=lc#>;tjmR?n*jaT(BHh~@Vqg7Cx^m_s*OsY^ z_tx*VKYj7sjo+5DvMzClZueO0cU4#Y{8^(rYj^Scx39`8`nKei*QL`%jnkGyz2Dof z`cg)gb?#>C^oh?&3>LdY0KhZrCrY-U02fbv|r1ps>??Cb_u)S;R8_sVquM3m0G$ zh-U_BWz%p_nagQaS!MD1cg?O_%g_D2y?|l&FUAW`V@>~_i8J0_dA&v=&tR^<(XRh< z>(3pvvtD$XFL-kO>E&-lrcM7@RnK!&_yFgx16R)~O^H3$b=Wtnan}LnJxlc))|G!V zc=7jh_ky_%Z{4n3HESsUdQqlSLp6}OWV7e*U;f>Jk)@ZHNynOItn#!EC}rIB>yiW@OD@=GpemQS0oSe*hC8gQu&X%Q|MK GgeCxO@IOlc delta 575 zcmcb~`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~DWM4f9%K}7 diff --git a/doc/html/a00155.html b/doc/html/a00155.html index 23417aed9e..cf8d0c41e4 100644 --- a/doc/html/a00155.html +++ b/doc/html/a00155.html @@ -3,8 +3,8 @@ - -tbb::task_scheduler_init Class Reference + +tbb::spin_rw_mutex_v3 Class Reference @@ -13,7 +13,7 @@
-
tbb::task_scheduler_init Class Reference
+
tbb::spin_rw_mutex_v3 Class Reference
-

Class delimiting the scope of task scheduler activity. +

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

-

#include <task_scheduler_init.h>

+

#include <spin_rw_mutex.h>

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

+Classes

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

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.
 
-void blocking_terminate ()
 terminate() that waits for worker threads termination. Throws exception on error.
 
-bool blocking_terminate (const std::nothrow_t &) __TBB_NOEXCEPT(true)
 terminate() that waits for worker threads termination. Returns false on error.
 
task_scheduler_init (int number_of_threads=automatic, stack_size_type thread_stack_size=0)
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
~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...
 
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 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.
 
+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

-

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

+

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

Member Function Documentation

- +
@@ -124,80 +151,78 @@ +inline
- + - +
static int __TBB_EXPORTED_FUNC tbb::task_scheduler_init::default_num_threads bool tbb::spin_rw_mutex_v3::try_lock ())
-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.

+

Try acquiring writer lock (non-blocking)

+

Return true if lock acquired; false otherwise.

- +
+ + + + + +
- + - - +
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize bool tbb::spin_rw_mutex_v3::try_lock_read (int number_of_threads = automatic))
+
+inline
-

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.

- -

Referenced by task_scheduler_init().

+

Try acquiring reader lock (non-blocking)

+

Return true if reader lock acquired; false otherwise.

- +

Member Data Documentation

+
+ + + + + +
- - - - - - - - - - - - - - - +
void __TBB_EXPORTED_METHOD tbb::task_scheduler_init::initialize (int number_of_threads,
stack_size_type thread_stack_size 
)state_t tbb::spin_rw_mutex_v3::state
+
+protected
-

The overloaded method with stack size parameter.

-

Overloading is necessary to preserve ABI compatibility

+

State of lock.

+

Bit 0 = writer is holding lock Bit 1 = request by a writer to acquire lock (hint to readers to wait) Bit 2..N = number of readers holding lock

+ +

Referenced by tbb::spin_rw_mutex_v3::scoped_lock::release(), and unlock().


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

diff --git a/doc/html/a00155.png b/doc/html/a00155.png index 58550fd5aa8d025a8c6f44950d758c08a4175849..ff1efc94eefd31b2d4083e828ac11551d2a93292 100644 GIT binary patch delta 733 zcmV<30wVpj1c?SAiBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA#e*&0E zL_t(|0qvdJlJh7Ggg>gLs^9;OH^z2A9DGXtWFwPF2MO(Xf15JI>E2$JLON{;&}}5$NI*(b(rj)E}6+Z zlbbB@bLV`Ib;5=*{>9oe-A+2Ce^(+JtrFSlDV$%~&8S(U7136WfA(_UtI^Kd z>ovOeq!V4YD6LM{EuG^qFL%4{66sLaU4!j(T}e6(BeW#dc69!R9@`MM`5JI>C06vaCfIHwWMF0M7 z!t^dgA3X2D^fp8RZi1mFe}E?pMFBivC<@>SLs0-v7>WXT!cY{z6NaJyo-h;z@Pwf# zfF}$^0X$(S3g8JtQ2{lodi4OW_|31Sc(}{(Tu4*#FpL0cA?+FyNV8F~`Nz=Ce|$bkG$uDEvkv*U ze9DfYCK}l%vei>T^gCBK6C*q9D&->El0l1JMD6+&MH@uT)x1u0`jq0OME@5=JK7kc z^WTo5rs1VTKi!P#8Z}v$$(x&9&ozpB&1=UQ;2^FNExYcTUt{VZ(X}VFyY938KirG} zx_Ey?fEV!zqOrM@GfFfk0W1!h0c>L^3g8KYD1avnq5z&Sz1%|x!9V^3tc!!9zBrW= P00000NkvXXu0mjfY3WYq delta 519 zcmV+i0{H!j2DJnsiBL{Q4GJ0x0000DNk~Le0001w0000`2m=5B02kHPTah6;e*wfv zL_t(|0qvdJZp0uAM31GF=Kue=xj`VrZIbS`esINvB3}W3nY=dRMf)ZRa+nNRqDV0nZe$mS(f9RjRWolJv8l_~Y=5Sn+snU(QeR z%=bu=?&ys?!~OYFo(uW);J7~XfBvaU{yER&$NVR$Ev5Zn=}-FeWaa#RNs_PRktAOM zdCbh>2;d!h0R&Pop4TfDP%xeeClpXL9)MU%cL02)KLEbc9{^wJ4}h=q2f$bQ1K=zD z0q~Xn0QgFO0DPrC0KU>60AJ}3fUmdtV`dge7(f^$4}h=a0q|9MrfUDye~tr9@#)8r zz2`it8?T%H9}lpX1J9cI(_`tX@pJe3n5z!Ec5UM&Y@fZ&E!Eb)$1ejlcH?OMStCo; zl(y00bmPP9W9)|2g?GE0oL3Xs+gN=ZJZ_G8SmcD~`0w23SzhDiy!zYK%&j)9XFTjz zR{1s0-aek!kOrr%ZogYRUH!SA#&q}jcwMQ)pz0fJq7TUJOI9u2f)|zr8hH+qAwi}R-Wt>0&f5S002ov JPDHLkV1mfB2Co1B diff --git a/doc/html/a00156.html b/doc/html/a00156.html index ba1bfd1f45..a23e3f44db 100644 --- a/doc/html/a00156.html +++ b/doc/html/a00156.html @@ -3,8 +3,8 @@ - -tbb::interface6::task_scheduler_observer Class Reference + +tbb::structured_task_group Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface6::task_scheduler_observer Class Reference
+
tbb::structured_task_group Class Reference
-Inheritance diagram for tbb::interface6::task_scheduler_observer:
+Inheritance diagram for tbb::structured_task_group:
- - -tbb::internal::task_scheduler_observer_v3 + + +tbb::internal::task_group_base
- - - - -

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

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

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

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

+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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
+empty_task * my_root
 
+task_group_context my_context
 
-
-

Destructor protects instance of the observer from concurrent notification. It is recommended to disable observation before destructor of a derived class starts, otherwise it can lead to concurrent notification callback on partly destroyed object

- -

References observe().

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
virtual bool tbb::interface6::task_scheduler_observer::may_sleep ()
-
-inlinevirtual
-
- -

The callback can be invoked by a worker thread before it goes to sleep.

-

If it returns false ('keep_awake'), the thread will keep spinning and looking for work. It will not be called for master threads.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void tbb::interface6::task_scheduler_observer::observe (bool state = true)
-
-inline
-
- -

Enable or disable observation.

-

Warning: concurrent invocations of this method are not safe. Repeated calls with the same state are no-ops.

- -

References tbb::internal::task_scheduler_observer_v3::observe(), and tbb::relaxed.

- -

Referenced by ~task_scheduler_observer().

- -
-

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

diff --git a/doc/html/a00156.png b/doc/html/a00156.png index 37496e90766c364ef54c599c792827549384d309..f9335edceafd7f8bc89407edcd399573fb4cb1e3 100644 GIT binary patch delta 917 zcmeBTKgh1w8Q|y6%O%Cdz`(%k>ERLtq&EX`2M05doL#Q9exjmveSoKnV@L(#+qtic zK3VZFgnKQo`fqNx)4hy`S0u2;&M;D8-?~<%e@aT1Bs*qChA-JXGt%Z|PMVm%)$Ex^ zKXauU&J>r_UY`H8_w@u`;GKb#_oOT zyid2zyeV(7n*ZtN<2m|QdZ*VfIkx-N=Y1#Lt@;b+#-%-5|Ms8i?7ima*57;`|M$I_ zakVWP=CxL;C~EF0n4#UiMEBt5+R|x>y_q)hCcR854~DZmOgX+*V`Yh z^19MOb=U3PELU1SZBvG=YN#+lu)`*!-ij>uZAsQ7=&3L^P~dWx!L+_Ts2?Ojp4 z_>HZ9XrS(jq)7AnpC4APxVGh6&bq%_K7U#DJ@(SV8+o!@_uIaX(c7Ya{BYsAZ|jP; z&A5M}*L}|F)?1~EPu$PmS$KQri6dI`yMMlWSz$8&^{&FIWi@v->h^Et6Iq%+XeH^j28@`he5zp!pE|J0A$EzY0s@87s8>tI;Qoyp5q-FmjSaG&Ov%KE~v&|1Zp zYgS45TdiJo%-D+mu)!Br2cG*3b1yFZ{Jp&XlB`w#sk@%vU(6|GejvL97|bt$A!-E- zU0_J#;~psN>?mPlx*!TwUtA{l{`#_GnYY;Y)V^7~d?W7x<3IXy>ZgA)-*>ilUGXow z(sRMn-mOhsJLC17t)=rep1;q&PJ8Et9Sifm*&VaK)BSnVgKvzF)~&7F|MmVVzwPn1 zyKYoS--_5}bNla|0=akFO9VA0do*+1%sro|ywZ&yy zULA`o1BK_6&Fio7Htc^;^^(7Qp8Sd8HK)#nUHiAt_`vx)cA^ePpFd$cV0sCd#!A>a h(pTM7Qi}a3|Nd0}GW+$ChQOT0;OXk;vd$@?2>^yJ(TV^7 delta 862 zcmX@e-o>ui8Q|y6%O%Cdz`(%k>ERLtq`w1k00%RW{NyccK2g!SUeeRWF{Fa=?cA3| zPZW4s?4PXK^I!S>jb|4aXC|+nbXQ2&%4~t#7J*OkeUB}Knw(u!WVhuBPPDnP%hl!6 zg4cTCtMeb5Tct&~_`IHcFY9cV@%vvwf|dMBO+Fdl)!+5ozGVKHQ+d12d)WMYH&bq^ zRNvX$|8?6od9-u6-+G=6_w@l4l1SJbPs=|Xm|T( z!}Jaj&Isf1=YK=K|NPwd?uwb*s;S(&ylRW9Y8#iXU-@p^KBLtuXZHM`|F?njM~1lY4dMc|B9mb>ASi+^2`K+m(4cZ zRcp&%>UF(%^7C?&tLw6J`=me2XNawhp43+L&VGM))w+M~%jRALhK|rf_mcRj$HFWG zCx(BttUY_@xvtVA_UP>$9&$N%m6R$!T&R^fKCzykVSlTBLyO0%->|*?s@S5#J^IB;I{%v^;z(6M;An&HRRE33A0T@RR)ef)g_FV1jY&B$X zs}6B(=-3>m=gAO!Wad|`0~zu%ce!`fPk*g{cdl^lr}@`w>#wYvyoz5G7)NuHY)=(G zFv_rh<3B~~k+>7HGCHRtx?-DRDo9kb$ipZnC`+ur@{g>U&QuUEEqQ=E*e{bx-M z`h4(K@$T%|5p}!k+Jn`}$9QmhZG&K6}@*{4ZbXZdco1j&(4X?s#7L?scVx&#rm>HtRhtv|o3H z#NTE6lYXE^DeBX&s(1UuRs$o6ec5@d2A&_PCU?V^ZWQHv5c)^8cD}iTR?c09$_=H= jPY(V(slRke$q(lJD~u;ZdjIPNW*G)gS3j3^P6 - -tbb::internal::task_scheduler_observer_v3 Class Reference + +tbb::flow::interface10::internal::successor_cache< T, M > Class Template Reference @@ -13,7 +13,7 @@
- +
-
-
tbb::internal::task_scheduler_observer_v3 Class Reference
+
tbb::flow::interface10::internal::successor_cache< T, M > Class Template 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:

diff --git a/doc/html/a00157.png b/doc/html/a00157.png deleted file mode 100644 index b87088c72d9c41832275a3a031b419b26a0c66d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/doc/html/a00158.html b/doc/html/a00158.html index a48cb35341..28a380688b 100644 --- a/doc/html/a00158.html +++ b/doc/html/a00158.html @@ -3,8 +3,8 @@ - -tbb::tbb_allocator< T > Class Template Reference + +tbb::interface7::task_arena Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::tbb_allocator< T > Class Template Reference
+
tbb::interface7::task_arena Class Reference
-

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

- -

#include <tbb_allocator.h>

+

#include <task_arena.h>

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

Classes

struct  rebind
struct  attach
 Tag class used to indicate the "attaching" constructor. More...
 
- - - - - - - - - - - - - - - - - - -

-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.
 
 task_arena (int max_concurrency_=automatic, unsigned reserved_for_masters=1)
 Creates task_arena with certain concurrency limits. More...
 
task_arena (const task_arena &s)
 Copies settings from another task_arena.
 
task_arena (attach)
 Creates an instance of task_arena attached to the current arena of the thread.
 
+void initialize ()
 Forces allocation of the resources for the task_arena as specified in constructor arguments.
 
+void initialize (int max_concurrency_, unsigned reserved_for_masters=1)
 Overrides concurrency level and forces initialization of internal representation.
 
+void initialize (attach)
 Attaches this instance to the current arena of the thread.
 
void terminate ()
 
 ~task_arena ()
 
bool is_active () const
 
template<typename F >
void enqueue (F &&f)
 
+template<typename F >
void enqueue (const F &f)
 
template<typename F >
void enqueue (F &&f, priority_t p)
 
+void enqueue (const F &f, priority_t p)
 
template<typename F >
internal::return_type_or_void
+< F >::type 
execute (F &f)
 
template<typename F >
internal::return_type_or_void
+< F >::type 
execute (const F &f)
 
void debug_wait_until_empty ()
 
+int max_concurrency () const
 Returns the maximal number of threads that can work inside the arena.
 
- - - + + +

Static Public Member Functions

-static malloc_type allocator_type ()
 Returns current allocator.
 
static int current_thread_index ()
 
+ + + + +

+Friends

+class tbb::internal::task_scheduler_observer_v3
 
+int tbb::this_task_arena::max_concurrency ()
 

Detailed Description

-

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

+

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

+ +
+
+ + + + + +
+ + + + + + + +
static int tbb::interface7::task_arena::current_thread_index ()
+
+inlinestatic
+
+

Returns the index, aka slot number, of the calling thread in its current arena This method is deprecated and replaced with this_task_arena::current_thread_index()

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

-

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
  • +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void tbb::interface7::task_arena::enqueue (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 >
+ + + + + +
+ + + + + + + + +
internal::return_type_or_void<F>::type tbb::interface7::task_arena::execute (F & f)
+
+inline
+
+

Joins the arena and executes a mutable 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 Since C++11, the method returns the value returned by functor (prior to C++11 it returns void).

+ +
+
+ +
+
+
+template<typename F >
+ + + + + +
+ + + + + + + + +
internal::return_type_or_void<F>::type tbb::interface7::task_arena::execute (const F & f)
+
+inline
+
+

Joins the arena and executes a constant 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 Since C++11, the method returns the value returned by functor (prior to C++11 it returns void).

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

diff --git a/doc/html/a00158.png b/doc/html/a00158.png new file mode 100644 index 0000000000000000000000000000000000000000..e9685d4171a2c2b80abd7f134114e57d1cfc52ca GIT binary patch literal 656 zcmeAS@N?(olHy`uVBq!ia0vp^3xGI)gBeJ!Z0=(NQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;So7@Gz7IW5D3yfRZKs$|BpE>JnE!JwMyCeBdZ9Id`fwk@9F#~+cY z^TQ{9H_Co>#w_O9>W!wKo7u%Cl`O~>%!#@E*i6qTZ1+;bFU{^CvDcdSn9XIX+e?;z z?EKn%^ddWB{C~^puDe}U!MoTtocS_wTc6&OAJLlY^xZYTB}xa^yzrQ`@4{N^iV3?6 zkJ?wTd)H3;ZU1IYdQ|AF95d_aqgO93UllRw-`sahdE$S(81!y=URqd}%cA z$zp~nOC)U>gS|2n8EZoL8>VixdhmFo#lu$({`_fx(!| zp+S;W;Xn_QK!O`1hrwb7mKlLa(!c&Q0F6qW$Z#zbD!PT)ZuYg!pOe>z*&kRDQ=ZsYIeC7F+x(x8MSgGC>$!1vv3O8T4SVi{W7aoncih`u z)KDwRzx_^Fp?BeG2kX~dYovJDR~YAR^!)fv{ogBwIop~nek(KG5f()F^~*1<bP0l+XkKda59^ literal 0 HcmV?d00001 diff --git a/doc/html/a00159.html b/doc/html/a00159.html index 0b026722a8..c474252b60 100644 --- a/doc/html/a00159.html +++ b/doc/html/a00159.html @@ -3,8 +3,8 @@ - -tbb::tbb_allocator< void > Class Template Reference + +tbb::task_group Class Reference @@ -13,7 +13,7 @@
-
tbb::tbb_allocator< void > Class Template Reference
+
tbb::task_group Class Reference
- -

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

- -

#include <tbb_allocator.h>

+
+Inheritance diagram for tbb::task_group:
+
+
+ + +tbb::internal::task_group_base + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-Classes

struct  rebind
 

+Public Member Functions

+template<typename F >
void run (task_handle< F > &h)
 
+template<typename F >
void run (F &&f)
 
+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 ()
 
- - - - - - - + + + + + + + + + + + + + + +

-Public Types

-typedef void * pointer
 
-typedef const void * const_pointer
 
-typedef void value_type
 

+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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
- Protected Attributes inherited from tbb::internal::task_group_base
+empty_task * my_root
 
+task_group_context my_context
 
-

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

diff --git a/doc/html/a00159.png b/doc/html/a00159.png new file mode 100644 index 0000000000000000000000000000000000000000..d42b601be28042a7d338382ac8733c816f06abe6 GIT binary patch literal 891 zcmeAS@N?(olHy`uVBq!ia0vp^n}N84gBeK9F4tNQq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0xjbDQLn;{G&b?i<+JJ{4d{OY<|MK$h zBKmHt$+$dTX%x3YHeM`LV|_o|TTQUEo&9Ty7Ga_$p`={D|SNeJOxnHaI-%U#^p9Hd{6u4swB=G?`3p}wZL{foRNFSzylcN)6Ak1ytzKS~o#m+8NDt9o|e^S1xr3RiZmTHKXt8`9?Q zx^-D;TJihK=Poa|EB9nCzhjlXe@^K)>9;387R_0``SqOA*U~#bb`@_8+?}`MPpzK$ zzOu5J5l=Tq$M2C{|ExIHT<+e=O?f;1-;ZLyvnFc&D(Q6^HPPnVdZS96L%;If+WLK| zQC;`vKmVo}hJ}{qxGt->91?o_j`VZ=)_eNrR;?1B1SCE#*}N*tX7OhO9_M(5BOf>~ zNXlB(*L_pJyYTahJ9A6=&qbOuyi=IV_{b9&qL+Z7TLKJeeB3@YrAv|=4&h6HvG9^d z;QZ@zkN=c*Mn~ogOLW;k+%x6)N2B$3#r+STPTjTBJ-Ypx=S!v7N zuCOw%r*9qatV!Z;SZ+C2`uN$Wht@qfr0(FF&EKHD<4WbfSY4-Ejh`>(KRLGEdUs8p z&8dm^L+z}eKi#_b=+1T0OAkazaP3`{m!p~{y=!?M!<>b+=Vo3`p1XW{5pSLOxp&h! q9yFSlvF+%A`eSC+t`3jzKg|EG^ouF6xhx0f6b4UMKbLh*2~7aefv{!( literal 0 HcmV?d00001 diff --git a/doc/html/a00160.html b/doc/html/a00160.html index 0cd4850de6..6bbe2714b0 100644 --- a/doc/html/a00160.html +++ b/doc/html/a00160.html @@ -3,8 +3,8 @@ - -tbb::tbb_exception Class Reference + +tbb::internal::task_group_base Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::tbb_exception Class Referenceabstract
+
tbb::internal::task_group_base Class Reference
- -

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:
+Inheritance diagram for tbb::internal::task_group_base:
- - -tbb::captured_exception -tbb::movable_exception< ExceptionData > + + +tbb::structured_task_group +tbb::task_group
- - - - - - - - - - - - - - - - - + + + + + + + + + + + +

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 __TBB_override=0 throw ()
 Returns the result of originally intercepted exception's what() method.
 
void operator delete (void *p)
 
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 Task , typename F >
void internal_run (__TBB_FORWARDING_REF(F) f)
 
+ + + + +

+Protected Attributes

+empty_task * my_root
 
+task_group_context my_context
 
-

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

diff --git a/doc/html/a00160.png b/doc/html/a00160.png index a067095e06ef057d1150b21de7f8d9c17cb3c66c..e95fec5546162fcf72b876a7571a40174f6db6a5 100644 GIT binary patch literal 1324 zcmeAS@N?(olHy`uVBq!ia0y~yU@QQ#J2;quWs402SiPrPzWe*W zVnb!bp#v2{mpGsN3OL4L8|AwDC+iON|IAhAPsYPq zxBK>jf%2EXDt1R!xE!&&s%@h5s5qj+#YG9IYGOyLyNgQFLqWk#uu!^qoR{WvrUMKn ze;5rIEF&x&;??ik4W+*Fs$n|mN~!>Bb;v0z_>&097u!joQF6yeDKm-I)|s>bJ4yJx-tra-0Z+W zViej~(BQI8agV)i{o35T^4Xuyrmp8d`SbV!Z|?fy*Y z_U|i~*e9o3ynbP()P*ln`5|?3-8_$1H-45n@A`V@?QZYX9|`GJXWeTJFKh{lko)SY zTvWs5yFRP;d2!_I-}3d24aOIyO)1M>|9hFkVWsZrzNL?X5>DQlwYvDf-^1_cgKh=5 zN`)t{|M`0Hq1&C$W_{XiRHK*|xqS9VZPlmsE&6J^u6cjn+O|JDXj`lK)$+i@vp-&y zei(lBL$zL?m74b3eeJV8OzTWlD+oJr#T$Q<9Q9D%Ta&b>z;-V8X2^f{0UPlh8 zYEBG)__VNRzl!N`ughuK)#*3Wt9w-5e&T#6J=@yA!t>VQL;IsEG?&J&|G!KBx5ZiW zw%OmGxx4T$ySDS;#^s53ZrJ!oZ@nJ9eplGy=XRw$^F{Y<+^O6=d5P^c$s_u=RIx4gh8pY>tk-&5$bwaLrPQF*&jsphBB`g>E)t1dJD zzPYq&>iM<7mp3cjy*>S5c=x(qx#S67Z0wY4YKz&~)IF>Ba7|zGKEd|O)@%M8)0gyr zs4JMX<@j{&`aO=@g%Wq|jOE!M_~SUp#yXF-e0w3!s0ni){uc#W^Rd{gOJ(nI^C=>p sR%{pn9#?U_^zP0TE#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::task_group_context Struct Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::tbb_exception_ptr Class Reference
+
tbb::task_group_context Struct Reference
-

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

- -

#include <tbb_exception.h>

+

#include <parallel_invoke.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)
 
task_group_context (tbb::internal::string_index)
 

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

    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

diff --git a/doc/html/a00162.html b/doc/html/a00162.html index c4f1ab370b..2437466358 100644 --- a/doc/html/a00162.html +++ b/doc/html/a00162.html @@ -3,8 +3,8 @@ - -tbb::internal::tbb_thread_v3 Class Reference + +tbb::task_handle< F > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::tbb_thread_v3 Class Reference
+
tbb::task_handle< F > Class Template Reference
- -

Versioned thread class. - More...

- -

#include <tbb_thread.h>

+
+Inheritance diagram for tbb::task_handle< F >:
+
+
+ + + +
- - - -

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

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)
 
+template<typename _F >
class internal::task_handle_task
 
+class task_group
 
+class structured_task_group
 
-

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

diff --git a/doc/html/a00162.png b/doc/html/a00162.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/a00163.html b/doc/html/a00163.html index a97c5b0ec7..a7803b9848 100644 --- a/doc/html/a00163.html +++ b/doc/html/a00163.html @@ -3,8 +3,8 @@ - -tbb::thread_bound_filter Class Reference + +tbb::internal::task_handle_task< F > Class Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::thread_bound_filter Class Reference
+
tbb::internal::task_handle_task< F > Class Template Reference
- -

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

- -

#include <pipeline.h>

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

-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...
 
task_handle_task (task_handle< F > &h)
 
-

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

diff --git a/doc/html/a00163.png b/doc/html/a00163.png index 7eab1d5112ca5b7d7067137bdd3c71a2d17e0a60..229263c6223fbf739b854a1eafa70239ec72a2cf 100644 GIT binary patch delta 575 zcmey$`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~DWM4fT}Tv+ delta 713 zcmaFE@|9JwGr-TCmrII^fq{Y7)59eQNKXXf4i07@dEx#~r-_PI^-L|EE{-7;jBn>Y zoV3b-$Iahv&e`AlKe{?-aJxNul$WN?cRVZlmh-G>`)ABt%2ZtL?;^Q#_wgwccUSv> z7;_Aawm+Qr??p!T?NcjHGnaoqJjd|Wdx`aFyI$U3eBiawsfILX}?E9eBMoR_ld|reLayr(tS6kWlZ**|97>cdxJS>nzWz z_SZercFi~2q$u|HdhM%)GgiCL{doO`QH$@SzG5S{%Wu@SPWL%&`l)Wux%E-T@AqUy zD|=S;`%B)n-`R8RrJkqzPNn|3`m6iiZ}m;vUhO;S-lBU-lSG2u5cslmY3%h>rUyd% z7=k9&pL_9Idv=i3;y8_&L3WF8WizbT0J`3YsY8--Lr2U=iO@mZM{V9vOC67=NtcJub5?Rb~X8W_0bS}``1Pxm(4bY=-IaO z)dxo#KRLWabe@&ensqNDpKa0=`}u6&wg}$KM^?;Dl&j0XI!o{Vs_-{o?%cAI{@i(S zvQ1U0iOlEZ%BdHVPfT{Jp8UVQ=hl(>dF~fi$(~+Z`e^T&#l085?=|b+yld&rZ130i z;-b&ZaliLYYHRgd{{60PS8}egB+PfVeeKH)cC|dv^~Ltr&YThY$j_}%^2ONns4Xyc OGI+ZBxvX - -tbb::internal::thread_closure_0< F > Struct Template Reference + +tbb::task_scheduler_init Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::thread_closure_0< F > Struct Template Reference
+
tbb::task_scheduler_init Class Reference
+ +

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

+ +

#include <task_scheduler_init.h>

-Inheritance diagram for tbb::internal::thread_closure_0< F >:
+Inheritance diagram for tbb::task_scheduler_init:
- - -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)
 
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.
 
+void blocking_terminate ()
 terminate() that waits for worker threads termination. Throws exception on error.
 
+bool blocking_terminate (const std::nothrow_t &) __TBB_NOEXCEPT(true)
 terminate() that waits for worker threads termination. Returns false on error.
 
task_scheduler_init (int number_of_threads=automatic, stack_size_type thread_stack_size=0)
 Shorthand for default constructor followed by call to initialize(number_of_threads).
 
~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 __TBB_NATIVE_THREAD_ROUTINE start_routine (void *c)
 
static int __TBB_EXPORTED_FUNC default_num_threads ()
 Returns the number of threads TBB scheduler would create if initialized by default. More...
 
- - - + + + + + + +

-Public Attributes

-F function
 

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

    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.

    + +

    Referenced by task_scheduler_init().

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

    diff --git a/doc/html/a00164.png b/doc/html/a00164.png index ca33e7fe184cb31e2bdd96f46b569d3fabe4e756..58550fd5aa8d025a8c6f44950d758c08a4175849 100644 GIT binary patch delta 519 zcmV+i0{H!!2DJnsiBL{Q4GJ0x0000DNk~Le0001w0000`2m=5B02kHPTah6;e*wfv zL_t(|0qvdJZp0uAM31GF=Kue=xj`VrZIbS`esINvB3}W3nY=dRMf)ZRa+nNRqDV0nZe$mS(f9RjRWolJv8l_~Y=5Sn+snU(QeR z%=bu=?&ys?!~OYFo(uW);J7~XfBvaU{yER&$NVR$Ev5Zn=}-FeWaa#RNs_PRktAOM zdCbh>2;d!h0R&Pop4TfDP%xeeClpXL9)MU%cL02)KLEbc9{^wJ4}h=q2f$bQ1K=zD z0q~Xn0QgFO0DPrC0KU>60AJ}3fUmdtV`dge7(f^$4}h=a0q|9MrfUDye~tr9@#)8r zz2`it8?T%H9}lpX1J9cI(_`tX@pJe3n5z!Ec5UM&Y@fZ&E!Eb)$1ejlcH?OMStCo; zl(y00bmPP9W9)|2g?GE0oL3Xs+gN=ZJZ_G8SmcD~`0w23SzhDiy!zYK%&j)9XFTjz zR{1s0-aek!kOrr%ZogYRUH!SA#&q}jcwMQ)pz0fJq7TUJOI9u2f)|zr8hH+qAwi}R-Wt>0&f5S002ov JPDHLkV1nx_2EYIS delta 750 zcmdnWGK)>IGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0ruSdZv}0E{-7;jBn?@ z&U>Q3(`xUxWZ!?~_fME^sLk}eb+ybfWX_}q-ZedMf1ci?bGjm7;*yI7nVv!VGq$L# z6laObj6OcuI&Yqe<^qn@(waN-Lr`V32T^6kKDJ^;Rve26PJ?x)lyi3C3@7=vN@712EsquXpZ&ptFbLzNXPK(;l z=YESSJr8gF)~?hu>tgSuCjwmW7l&P5^Y3s_5chQU?0>QU7^aQDz$`q6<&f)}R5apBinuO?63 z?$5yJ8gZ9l&Vq?{9mE8M48pxk7|1-9Mvw|zSnAfMr!w>uWeyE zha^fbE2ht#Rs8t_N@)LkwvA!)x%|`LkF8bOmdKI;Vst07}knE&u=k diff --git a/doc/html/a00165.html b/doc/html/a00165.html index 1c534da3b6..11d36ddae1 100644 --- a/doc/html/a00165.html +++ b/doc/html/a00165.html @@ -3,8 +3,8 @@ - -tbb::internal::thread_closure_1< F, X > Struct Template Reference + +tbb::interface6::task_scheduler_observer Class Reference @@ -13,7 +13,7 @@
    - +
-
tbb::internal::thread_closure_1< F, X > Struct Template Reference
+
tbb::interface6::task_scheduler_observer Class 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 >:
+Inheritance diagram for tbb::interface6::task_scheduler_observer:
- - -tbb::internal::thread_closure_base + + +tbb::internal::task_scheduler_observer_v3
+ + + + +

+Public Types

enum  { keep_awake = false, +allow_sleep = true + }
 Return commands for may_sleep()
 
- - - - - - - -

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

-Public Attributes

-F function
 
-X arg1
 

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

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

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
-

Detailed Description

-

template<class F, class X>
-struct tbb::internal::thread_closure_1< F, X >

+
+

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

-

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

-

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

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

diff --git a/doc/html/a00165.png b/doc/html/a00165.png index 961925b53400cd0df57f3333002868179b5c8a9f..37496e90766c364ef54c599c792827549384d309 100644 GIT binary patch delta 863 zcmZ3_*2S*a8Q|y6%O%Cdz`(%k>ERLtq`w1k00%RW{NyccK2g!Co>|h<#WAFU@$KA~ zMNbrXTI`>!+Vfxe{f%cA7-uH0o^)48*vf2y+ZKUO@qLdigqoaPRAjg12~M=RvCGxv z(}LG};j8l>n_HztxcI!Dd@t*4m+|{wLV}h2OHDo*-__ss+rDJ}nNxYY&U@JWdpA>V zs#M?R`qov)UK_0q`yQYyvD&JB;kQi9UFBt~a;tgbzwKZPyuAA1oR!;Nl*Hf5>wkN3 z_PZ;sUss5H^ex|#V=TYMcKh#5yTAXIjt+91ZFF_U`QoG9hh1H4?#%q9_;e3{q-b~h zXT$Uk5zYwX@aKO+zW@B(_wI_B+^VVEyS!?Pt7;pUu3!0X+diY!E9GWty|uga_R#bC z=J!AC&O85{^KH@ko$oTt*6mnd|LT+d?)&SX{*2nbvuX2hS^tWn_vyR3JMzo~f|t!U z+*NDKU+Q(ec=GddldJ2pbNi$}%x8$Ljh@t2_0E2Och$Oo?#t$01cr{#L-&&SsmH=B z1Sf`nw5&aQ=ee%ZB=+d-9UgKyca@YXKU}DlIbJ`JpJ9KienX4Ls^71*mw#BYOMX)@ z*ZEb|*NYo`ZtP-Jpj>ufb- zaH|e+ZRpq>r{~EKd}QWVtpgeIGIzP_cTIn-e|N5M?Wg(IYwNG9o4kr&6c|TylWb2F zKQUWd`}e|cgC$lgpXr`mdo}0w;@xGPrX925c%S>!-`n2(?S*goE3a3!c2k^;tNmw9 z4*GoXR`Kra*%5WS>)M0UP86p~v`@X3m-xQ@)_T7~b}3y>vYXxn6^7VZTXxtUygM!m+p98`R;Y4hR?2f{Wj}8Ewo>E zg~Z=w`;&g4Mk(skuc~+Z#8v|%iGA65s|KDQrmAZl!`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?002ovPDHLkV1n9( BYTp0= diff --git a/doc/html/a00166.html b/doc/html/a00166.html index 13815aa139..2ad81b03fb 100644 --- a/doc/html/a00166.html +++ b/doc/html/a00166.html @@ -3,8 +3,8 @@ - -tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference + +tbb::internal::task_scheduler_observer_v3 Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
+
tbb::internal::task_scheduler_observer_v3 Class Reference
-Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
+Inheritance diagram for tbb::internal::task_scheduler_observer_v3:
- - -tbb::internal::thread_closure_base + + +tbb::interface6::task_scheduler_observer
- - - - - - - + + + + + + + + + + + + + + + + + +

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)
 
void __TBB_EXPORTED_METHOD observe (bool state=true)
 Enable or disable observation. More...
 
+bool is_observing () const
 Returns true if observation is enabled, false otherwise.
 
task_scheduler_observer_v3 ()
 Construct observer with observation disabled.
 
virtual void on_scheduler_entry (bool)
 Entry notification. More...
 
virtual void on_scheduler_exit (bool)
 Exit notification. More...
 
+virtual ~task_scheduler_observer_v3 ()
 Destructor automatically switches observation off if it is enabled.
 
- - - - -

-Static Public Member Functions

-static __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 observer_proxy
 
+class observer_list
 
+class interface6::task_scheduler_observer
 
-
The documentation for this struct was generated from the following file:
    -
  • tbb_thread.h
  • +

    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

    diff --git a/doc/html/a00166.png b/doc/html/a00166.png index aa52099a9d5bbc6b96933a805511a865e9ce5c50..b87088c72d9c41832275a3a031b419b26a0c66d6 100644 GIT binary patch delta 863 zcmV-l1EBob28stEiBL{Q4GJ0x0000DNk~Le0002@0000`2m=5B0P;%{H<2Mae*+mw zL_t(|0qvdZa^oNjg+Ihh-v5y|wlU}eY1*A>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)002ovPDHLkV1k7Ex|=siaykc#8%gS@8ND|DoTa4FK8t>H;opp&QhK?5{aaVq9u>;^ zy&CNQww}{!@5&P@H=E5lBR}f>f0wCc`1p3y^Ip8O@*znB-HQ4ivivw({c-HH?p2a) zx!Vj^gH;gwPW<%qsK(ZkG|=4(@4fk@lq4f}$=_Nv#ltQvCABhVWtRLl^!3m0Y|n%d zdY*AwU7-65U#461(`RELNsYcN>Mk%QVEw2!#zXYc^d>{BwIp5Wd9L5PfABZZpXYiL z{Xd-RzQTL&rox-scNF7nW%gWE_%eD~;cFM;3V)vB7gTsj`Zx6#p>LJxZLI#!1W8q! zQJ17>n&^@gO%q*`qUnXcEXxv706(V>fS8Jl{_zo(Judo-JSux&^jYBn;%TA-MAJkE zh^C1S5KR*uAetsRKr~Hse}HJ3=m60)(E*}qq60+JLs}JJgna`9(U2r`u4*6_58+2VB{|OTdSsc*o7g{ z%3a>dhfDQAN*N#J*q)#t3mNU1Fhb8WPOA%af8iUlk`)()qVt>OuR%WJhf#NdF#+pG zy)ho5kES~Umoz}te|nj1bEX@0o2$1j{0;Qyx!y#-`Jo->`Wy6auKNn_>yD}L=1v~P zI9r)LR~5dDURLSq sr~^FIL - -tbb::internal::thread_closure_base Struct Reference + +tbb::tbb_allocator< T > Class Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::internal::thread_closure_base Struct Reference
+
tbb::tbb_allocator< T > Class Template 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 > - -
+ +

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

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

    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

diff --git a/doc/html/a00168.html b/doc/html/a00168.html index 6a94f82901..6478f672b8 100644 --- a/doc/html/a00168.html +++ b/doc/html/a00168.html @@ -3,8 +3,8 @@ - -tbb::tick_count Class Reference + +tbb::tbb_allocator< void > Class Template Reference @@ -13,7 +13,7 @@
-
tbb::tick_count Class Reference
+
tbb::tbb_allocator< void > Class Template Reference
-

Absolute timestamp. +

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

-

#include <tick_count.h>

+

#include <tbb_allocator.h>

- - +

Classes

class  interval_t
 Relative time interval. More...
struct  rebind
 
- - - - -

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

+Public Types

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

Detailed Description

-

Absolute timestamp.

+

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

diff --git a/doc/html/a00169.html b/doc/html/a00169.html index 80ea833e79..5b8232b50c 100644 --- a/doc/html/a00169.html +++ b/doc/html/a00169.html @@ -3,8 +3,8 @@ - -tbb::flow::interface10::internal::untyped_receiver Class Reference + +tbb::tbb_exception Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::internal::untyped_receiver Class Referenceabstract
+
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::flow::interface10::internal::untyped_receiver:
+Inheritance diagram for tbb::tbb_exception:
- - -tbb::flow::interface10::receiver< continue_msg > -tbb::flow::interface10::receiver< T > -tbb::flow::interface10::continue_receiver + + +tbb::captured_exception +tbb::movable_exception< ExceptionData >
- - - - - - - - -

-Public Types

-typedef untyped_sender 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 ~untyped_receiver ()
 Destructor.
 
-template<typename X >
bool try_put (const X &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

-template<typename X >
task * try_put_task (const X &t)
 
-virtual task * try_put_task_wrapper (const void *p, bool is_async)=0
 
-virtual graph & graph_reference ()=0
 
-virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
 put receiver back in initial state
 
-virtual bool is_continue_receiver ()
 
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + +

-Friends

-template<typename , typename >
class run_and_put_task
 
-template<typename >
class limiter_node
 
-template<typename , typename >
class internal::broadcast_cache
 
-template<typename , typename >
class internal::round_robin_cache
 
-template<typename , typename >
class internal::successor_cache
 
-template<typename , typename >
class proxy_dependency_receiver
 
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 __TBB_override=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:
diff --git a/doc/html/a00169.png b/doc/html/a00169.png index f0c246f61c1c88275a7fc12e894bcf2469655537..a067095e06ef057d1150b21de7f8d9c17cb3c66c 100644 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`%UK3ZBtJElu61Hg$Pn05)v*)B66*1xg;T=i4ZO!h(JIt*-5+GJ^Q7nA9m-QdEaN|eP-sF zdH(<3nOk8Yxb^1S%^?uTdi*i}2nYm*1>>8hM&Rff`(O^7wuT))5un%W!B9OlpUP;t z4MxB2O-)URTXGxl(DciQ5CQ~DGHk!RJmCU?m@MM`51&YbYKDeVxB`o#ufH6e=7 zurEF4&8rG{)^3?a-}F4?(doyy^3dXY?&yRl^9?S&KcPYq6ckpAzQKvM;%ddk=b5oog_5i0aeWNrWeP2RKqHC%dT>I_-FskRut7!dH?eYg@s`13R zZ;N20oJqn<+Clo-sb!4Q7IV+izo`EK|CpLs=g|5_QZ+ki`*=@S{u$}ISytD_K?6wx zU8RA$(m1x<>(i}t?}Iy@S(e0T>Pd>)c8!3aG2Fd8M#)izTa$bIe7dQ0YuKgp>?qQv z;mYQ|35wwpC`B8~G;OWaFj(_#J@$@No;|vFY%k~fOlsh+t+UImbEuY??^)PC?Bc&V ztV-cW=XAVHxe7C1JP>_96DABagCp*~PIvgKBy$rB8`iYVcLfc`JOb=6)DBHA$s`!g zq62rKMmF1S+P}?x(92#Jr! z^uQA2wlJ72o@0T+8{5N9Cy7@h-&6Thjy1Z2qQV&bt1pCCypno%V(^OdbQaR92Mt_{ zv%+LAtpqW7E*9$ds$75?oM%Ied0Wi=tldnQsM2m$i^cDzoHqczk#p}byo;&tYI|kR z-{M>cHLo;nv-^qPiTRvl;iyn%B5Evd?9;G1M)2&j{cBZuadFE~>9+nz0mr)AbS_G{ zD28>BlZDb-TIk>U1pn5&&5!gM+lM9fLg}vxqeR36QZS60cAvUm8VQh1}0*Bgmo>luo> zL$oKfPx2CV!ojw0h90H)8fmCk@tEtojaHv{ULzPwSxUuM)P2o|C+J*?j-XBI_t;tJ zF{ysuZ97>dknjQrq~~n}64ziuz2FO+u@!Lp5X1Fa1^Fi>-}O9BjQHD6XW|5gDInX!xJd#P2CKFi=rjK#9?|17-2-oOpJb&kVW#2o#Y~ zU~od~{3&D5C+%@ z+w(va8{UcwGSc7$6cBq1{8T<5LLxvXFu-Mjr8>oXS|pt;8u~klQ%(%xA;&?~TX_sP z+2Mt4Mc##2XB7*}u}i-6;y21G!$W2HNa7FRJ)ICAL&Q;Z(Vz>mc)?_n{*YY-N}uj zpJnWYQOP}@@`ogJMmJVw$&*XX zYBV*v6j2${s{|}apZp)bV=UGCk4o-);PV}e57@RtZ8xr4vNVu=T}{xs2Gx@_PYzJK zPmwF!7GGqR|64_f^ao5ofHFT4XXcH<(1G;osae^>8ybIECjr*XaoMOYjGA^z#(nc6 zB(*NB(s_rMZ%=WDZh{Qzb)fd7iM&(cE>~4|se_vn#?ZhBjgVeGH3k9L|U(28Z&#=qJ%}^r - -tbb::flow::interface10::internal::untyped_sender Class Reference + +tbb::internal::tbb_exception_ptr Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::flow::interface10::internal::untyped_sender Class Referenceabstract
+
tbb::internal::tbb_exception_ptr Class Reference
-
-Inheritance diagram for tbb::flow::interface10::internal::untyped_sender:
-
-
- - -tbb::flow::interface10::sender< T > - -
+ +

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

+ +

#include <tbb_exception.h>

- - - - - - - - - -

-Public Types

-typedef untyped_receiver successor_type
 The successor type for this node.
 
-typedef
-internal::edge_container
-< successor_type
built_successors_type
 interface to record edges for traversal & deletion
 
-typedef
-built_successors_type::edge_list_type 
successor_list_type
 
- - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

-virtual bool register_successor (successor_type &r)=0
 Add a new successor to this node.
 
-virtual bool remove_successor (successor_type &r)=0
 Removes a successor from this node.
 
-virtual bool try_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
 
- - - - - - - - - - - - - + + + + + +

-Protected Member Functions

-template<typename X >
bool try_get (X &t)
 Request an item from the sender.
 
-template<typename X >
bool try_reserve (X &t)
 Reserves an item in the sender.
 
-virtual bool try_get_wrapper (void *p, bool is_async)=0
 
-virtual bool try_reserve_wrapper (void *p, bool is_async)=0
 
void destroy () throw ()
 Destroys this objects. More...
 
+void throw_self ()
 Throws the contained exception .
 
- - - - - - - + + + + + + + +

-Friends

-template<typename , typename >
class internal::predecessor_cache
 
-template<typename , typename >
class internal::reservable_predecessor_cache
 

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

diff --git a/doc/html/a00171.html b/doc/html/a00171.html index eb6b8c91e7..6725ab687a 100644 --- a/doc/html/a00171.html +++ b/doc/html/a00171.html @@ -3,8 +3,8 @@ - -tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference + +tbb::internal::tbb_thread_v3 Class Reference @@ -13,7 +13,7 @@
- +
-
tbb::interface5::internal::use_element_copy_constructor< T, C > Struct Template Reference
+
tbb::internal::tbb_thread_v3 Class Reference
+ +

Versioned thread class. + More...

+ +

#include <tbb_thread.h>

+ + + +

+Classes

class  id
 
- - - - + + + + +

Public Types

-typedef tbb::internal::true_type type
 
-typedef tbb::internal::true_type type
 
+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)
 
-
The documentation for this struct was generated from the following file:
    -
  • concurrent_priority_queue.h
  • +

    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

diff --git a/doc/html/a00172.html b/doc/html/a00172.html index 6ba840f547..3fa4f3feee 100644 --- a/doc/html/a00172.html +++ b/doc/html/a00172.html @@ -3,8 +3,8 @@ - -tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference + +tbb::thread_bound_filter Class Reference @@ -13,7 +13,7 @@
-
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
+
tbb::thread_bound_filter Class Reference
+ +

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

+ +

#include <pipeline.h>

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

Public Types

-typedef tbb::internal::false_type type
 
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)
 
+ + + + + + + + + + + + + + + + +

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

    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

diff --git a/doc/html/a00172.png b/doc/html/a00172.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/a00173.html b/doc/html/a00173.html index ed2db4d090..ac716c35a0 100644 --- a/doc/html/a00173.html +++ b/doc/html/a00173.html @@ -3,8 +3,8 @@ - -tbb::user_abort Class Reference + +tbb::internal::thread_closure_0< F > Struct Template Reference @@ -13,7 +13,7 @@
- +
-
tbb::user_abort Class Reference
+
tbb::internal::thread_closure_0< F > Struct Template Reference
- -

Exception for user-initiated abort. - More...

- -

#include <tbb_exception.h>

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

Public Member Functions

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

Detailed Description

-

Exception for user-initiated abort.

-

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

    diff --git a/doc/html/a00173.png b/doc/html/a00173.png index a1f23345c2fa666d8d20a82a156062980529dae0..ca33e7fe184cb31e2bdd96f46b569d3fabe4e756 100644 GIT binary patch delta 750 zcmcb@Jc~`SGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0ruSdZv}0E{-7;jBn?@ z&U>Q3(`xUxWZ!?~_fME^sLk}eb+ybfWX_}q-ZedMf1ci?bGjm7;*yI7nVv!VGq$L# z6laObj6OcuI&Yqe<^qn@(waN-Lr`V32T^6kKDJ^;Rve26PJ?x)lyi3C3@7=vN@712EsquXpZ&ptFbLzNXPK(;l z=YESSJr8gF)~?hu>tgSuCjwmW7l&P5^Y3s_5chQU?0>QU7^aQDz$`q6<&f)}R5apBinuO?63 z?$5yJ8gZ9l&Vq?{9mE8M48pxk7|1-9Mvw|zSnAfMr!w>uWeyE zha^fbE2ht#Rs8t_N@)LkwvA!)x%|`LkF8bOmdKI;Vst0HU*POaK4? delta 421 zcmbQmc7<87Gr-TCmrII^fq{Y7)59eQNGAYs00%RWylB&~e4?UNJ!7(`i(^Oy30Y~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<&;$Tbf39r+ diff --git a/doc/html/a00174.html b/doc/html/a00174.html index 0bd28fbb0a..2396160c43 100644 --- a/doc/html/a00174.html +++ b/doc/html/a00174.html @@ -3,8 +3,8 @@ - -tbb::zero_allocator< T, Allocator > Class Template Reference + +tbb::internal::thread_closure_1< F, X > Struct Template Reference @@ -13,7 +13,7 @@
    - +
-
tbb::zero_allocator< T, Allocator > Class Template Reference
+
tbb::internal::thread_closure_1< F, X > Struct Template Reference
-

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

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

-

#include <tbb_allocator.h>

+

#include <tbb_thread.h>

-Inheritance diagram for tbb::zero_allocator< T, Allocator >:
+Inheritance diagram for tbb::internal::thread_closure_1< F, X >:
- - + + +tbb::internal::thread_closure_base
- - - -

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

Detailed Description

-

template<typename T, template< typename X > class Allocator = tbb_allocator>
-class tbb::zero_allocator< T, Allocator >

+

template<class F, class X>
+struct tbb::internal::thread_closure_1< F, X >

-

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

    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/a00174.png b/doc/html/a00174.png index f03aec2f32170173a41127ef3c3e9c637b353f95..961925b53400cd0df57f3333002868179b5c8a9f 100644 GIT binary patch delta 770 zcmV+d1O5E|1g{1miBL{Q4GJ0x0000DNk~Le0002!0000`2m=5B03`0oQjsA$f4)gX zK~#7F?VZ_fgfI+6PcBmb|C2idWU<3qbx}q=56{XOX1Klbtlj|T^Ash1}H!z4N!nc8lV7?G(Z6& zX@CMm(f|dBqyY*LNdpuhf070$KqL)NfJhpk0Fg960e(s;rSt@m0OD(a0z}dP1&E{q z`nuJpcD{cCa4M5E48VrE**hEEJ1-5@TWrKU1HHJQUjem9JI?Qst&kaX`JtI3t+!_3 z@AvsD>!)VZ)oK~a4o#RPboR)%b`jOJPS=&T?l*Sn40MTVZslrUf7W%iqa^H=hs|^| zX_vGS#JhJ~CCX8awsw8#`sjWcBrtO2dTP}jdi!BW^l~S#CF$$g)8{&G`wd5Bn8sIVC>aGf)BpvDqyY*LNlyYzDWwPK6S5dEf>zye+5i9m07*qoM6N<$f+FH; AP5=M^ 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::internal::thread_closure_2< F, X, Y > Struct Template Reference @@ -13,7 +13,7 @@
-
tbb::zero_allocator< void, Allocator > Class Template Reference
+
tbb::internal::thread_closure_2< F, X, Y > Struct Template Reference
- -

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

- -

#include <tbb_allocator.h>

-Inheritance diagram for tbb::zero_allocator< void, Allocator >:
+Inheritance diagram for tbb::internal::thread_closure_2< F, X, Y >:
- - + + +tbb::internal::thread_closure_base
- - - + + + + + + + +

-Classes

struct  rebind
 

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

-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
 

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

Detailed Description

-

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

- -

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

-

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

    diff --git a/doc/html/a00175.png b/doc/html/a00175.png index f97e606d73f34771792a992f3bb005438d9cd609..aa52099a9d5bbc6b96933a805511a865e9ce5c50 100644 GIT binary patch delta 813 zcmV+|1JeAb1=$86iBL{Q4GJ0x0000DNk~Le0002`0000`2m=5B00*_0hmj#Wf9Od> 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{KiONQrMY@(udy_u(rV@L(#+qoB; z7Ax?$`p3=s|Nn7mmz2YXZK>tFll|7;P>d;Jd8DnRWXv5HIyang#j014U_zN;^5LSl zk+JiVcx8T`VQ292%3yiW{&CeRTVD2bMuE^8UkGzYqS{{Z6LTF#=uLvdAX#dDKdQ4g6hj=kCEEV zT;XjdwctYP?r&dSK7antoGItn`k%G@GvXvpKmDmM{iSB|l6SgQd$%)qCvcyZ+AVYb zu+=4-x->iHn#=z;G@VS#UiEh4x%&P0#Vw<1R-bH-zRagHZ(eWB@%;uXx4&p)Xk7N{ zZ=}?fShF=V_Dp`6ePCaG>kpxV+dSL4vz8Yf-OTc7-QM-5_In2GDrb!T$9|-{q4%oI z{Y7W@ycVtDoH2jm>VN6l5pxb^aj|gK7O_dIKY38d`{B&~Vz$>>yUvD(1@1n-Dno1C zS%0nRXFfe_s9oD49%^#mkoD;9e{WB5eW*7zSnkg_fBF735)8>Em%h!@<}mPJH?-F22WQ%mvv4FO#q616G{L8 diff --git a/doc/html/a00176.html b/doc/html/a00176.html new file mode 100644 index 0000000000..3b182aa963 --- /dev/null +++ b/doc/html/a00176.html @@ -0,0 +1,80 @@ + + + + + + +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-2018 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/a00167.png b/doc/html/a00176.png similarity index 100% rename from doc/html/a00167.png rename to doc/html/a00176.png diff --git a/doc/html/a00177.html b/doc/html/a00177.html new file mode 100644 index 0000000000..92aaf46e4b --- /dev/null +++ b/doc/html/a00177.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-2018 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/a00178.html b/doc/html/a00178.html new file mode 100644 index 0000000000..261b5736cf --- /dev/null +++ b/doc/html/a00178.html @@ -0,0 +1,172 @@ + + + + + + +tbb::flow::interface10::internal::untyped_receiver Class Reference + + + + + + +
    + + + + + +
    +
    + +
    +
    tbb::flow::interface10::internal::untyped_receiver Class Referenceabstract
    +
    +
    +
    +Inheritance diagram for tbb::flow::interface10::internal::untyped_receiver:
    +
    +
    + + +tbb::flow::interface10::receiver< continue_msg > +tbb::flow::interface10::receiver< T > +tbb::flow::interface10::continue_receiver + +
    + + + + + + + + + +

    +Public Types

    +typedef untyped_sender 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 ~untyped_receiver ()
     Destructor.
     
    +template<typename X >
    bool try_put (const X &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

    +template<typename X >
    task * try_put_task (const X &t)
     
    +virtual task * try_put_task_wrapper (const void *p, bool is_async)=0
     
    +virtual graph & graph_reference ()=0
     
    +virtual void reset_receiver (reset_flags f=rf_reset_protocol)=0
     put receiver back in initial state
     
    +virtual bool is_continue_receiver ()
     
    + + + + + + + + + + + + + + + + + + + +

    +Friends

    +template<typename , typename >
    class run_and_put_task
     
    +template<typename >
    class limiter_node
     
    +template<typename , typename >
    class internal::broadcast_cache
     
    +template<typename , typename >
    class internal::round_robin_cache
     
    +template<typename , typename >
    class internal::successor_cache
     
    +template<typename , typename >
    class proxy_dependency_receiver
     
    +
    The documentation for this class was generated from the following file: +
    +
    +

    +Copyright © 2005-2018 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/a00178.png b/doc/html/a00178.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c246f61c1c88275a7fc12e894bcf2469655537 GIT binary patch literal 2153 zcmcJRYg7|w8po56aI01qm3l$Y8cL$v1mq$@qJS|V*Vx4sBveHO3@9lH5~2)ssnSB+ z5Wog&kXY~>g$Pn05)v*)B66*1xg;T=i4ZO!h(JIt*-5+GJ^Q7nA9m-QdEaN|eP-sF zdH(<3nOk8Yxb^1S%^?uTdi*i}2nYm*1>>8hM&Rff`(O^7wuT))5un%W!B9OlpUP;t z4MxB2O-)URTXGxl(DciQ5CQ~DGHk!RJmCU?m@MM`51&YbYKDeVxB`o#ufH6e=7 zurEF4&8rG{)^3?a-}F4?(doyy^3dXY?&yRl^9?S&KcPYq6ckpAzQKvM;%ddk=b5oog_5i0aeWNrWeP2RKqHC%dT>I_-FskRut7!dH?eYg@s`13R zZ;N20oJqn<+Clo-sb!4Q7IV+izo`EK|CpLs=g|5_QZ+ki`*=@S{u$}ISytD_K?6wx zU8RA$(m1x<>(i}t?}Iy@S(e0T>Pd>)c8!3aG2Fd8M#)izTa$bIe7dQ0YuKgp>?qQv z;mYQ|35wwpC`B8~G;OWaFj(_#J@$@No;|vFY%k~fOlsh+t+UImbEuY??^)PC?Bc&V ztV-cW=XAVHxe7C1JP>_96DABagCp*~PIvgKBy$rB8`iYVcLfc`JOb=6)DBHA$s`!g zq62rKMmF1S+P}?x(92#Jr! z^uQA2wlJ72o@0T+8{5N9Cy7@h-&6Thjy1Z2qQV&bt1pCCypno%V(^OdbQaR92Mt_{ zv%+LAtpqW7E*9$ds$75?oM%Ied0Wi=tldnQsM2m$i^cDzoHqczk#p}byo;&tYI|kR z-{M>cHLo;nv-^qPiTRvl;iyn%B5Evd?9;G1M)2&j{cBZuadFE~>9+nz0mr)AbS_G{ zD28>BlZDb-TIk>U1pn5&&5!gM+lM9fLg}vxqeR36QZS60cAvUm8VQh1}0*Bgmo>luo> zL$oKfPx2CV!ojw0h90H)8fmCk@tEtojaHv{ULzPwSxUuM)P2o|C+J*?j-XBI_t;tJ zF{ysuZ97>dknjQrq~~n}64ziuz2FO+u@!Lp5X1Fa1^Fi>-}O9BjQHD6XW|5gDInX!xJd#P2CKFi=rjK#9?|17-2-oOpJb&kVW#2o#Y~ zU~od~{3&D5C+%@ z+w(va8{UcwGSc7$6cBq1{8T<5LLxvXFu-Mjr8>oXS|pt;8u~klQ%(%xA;&?~TX_sP z+2Mt4Mc##2XB7*}u}i-6;y21G!$W2HNa7FRJ)ICAL&Q;Z(Vz>mc)?_n{*YY-N}uj zpJnWYQOP}@@`ogJMmJVw$&*XX zYBV*v6j2${s{|}apZp)bV=UGCk4o-);PV}e57@RtZ8xr4vNVu=T}{xs2Gx@_PYzJK zPmwF!7GGqR|64_f^ao5ofHFT4XXcH<(1G;osae^>8ybIECjr*XaoMOYjGA^z#(nc6 zB(*NB(s_rMZ%=WDZh{Qzb)fd7iM&(cE>~4|se_vn#?ZhBjgVeGH3k9L|U(28Z&#=qJ%}^r + + + + + +tbb::flow::interface10::internal::untyped_sender Class Reference + + + + + + +
    + + + + + +
    +
    + +
    +
    tbb::flow::interface10::internal::untyped_sender Class Referenceabstract
    +
    +
    +
    +Inheritance diagram for tbb::flow::interface10::internal::untyped_sender:
    +
    +
    + + +tbb::flow::interface10::sender< T > + +
    + + + + + + + + + + +

    +Public Types

    +typedef untyped_receiver successor_type
     The successor type for this node.
     
    +typedef
    +internal::edge_container
    +< successor_type
    built_successors_type
     interface to record edges for traversal & deletion
     
    +typedef
    +built_successors_type::edge_list_type 
    successor_list_type
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +virtual bool register_successor (successor_type &r)=0
     Add a new successor to this node.
     
    +virtual bool remove_successor (successor_type &r)=0
     Removes a successor from this node.
     
    +virtual bool try_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
     
    + + + + + + + + + + + + + +

    +Protected Member Functions

    +template<typename X >
    bool try_get (X &t)
     Request an item from the sender.
     
    +template<typename X >
    bool try_reserve (X &t)
     Reserves an item in the sender.
     
    +virtual bool try_get_wrapper (void *p, bool is_async)=0
     
    +virtual bool try_reserve_wrapper (void *p, bool is_async)=0
     
    + + + + + + + +

    +Friends

    +template<typename , typename >
    class internal::predecessor_cache
     
    +template<typename , typename >
    class internal::reservable_predecessor_cache
     
    +
    The documentation for this class was generated from the following file: +
    +
    +

    +Copyright © 2005-2018 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/a00170.png b/doc/html/a00179.png similarity index 100% rename from doc/html/a00170.png rename to doc/html/a00179.png diff --git a/doc/html/a00180.html b/doc/html/a00180.html new file mode 100644 index 0000000000..15fd6d485d --- /dev/null +++ b/doc/html/a00180.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-2018 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/a00181.html similarity index 56% rename from doc/html/a00277.html rename to doc/html/a00181.html index 1f89a77637..95a0047dbd 100644 --- a/doc/html/a00277.html +++ b/doc/html/a00181.html @@ -3,8 +3,8 @@ - -Member List + +tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference @@ -13,7 +13,7 @@
+
-
tbb::cache_aligned_allocator< void > Member List
+
tbb::interface5::internal::use_element_copy_constructor< T, false > Struct Template Reference
- -

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

+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-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00270.html b/doc/html/a00182.html similarity index 52% rename from doc/html/a00270.html rename to doc/html/a00182.html index 702db8bc81..81b4ebfd75 100644 --- a/doc/html/a00270.html +++ b/doc/html/a00182.html @@ -3,8 +3,8 @@ - -Member List + +tbb::user_abort Class Reference @@ -13,7 +13,7 @@
- +
+
-
tbb::atomic< T > Member List
+
tbb::user_abort Class 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
+

Exception for user-initiated abort. + More...

+ +

#include <tbb_exception.h>

+
+Inheritance diagram for tbb::user_abort:
+
+
+ + + +
+ + + + +

+Public Member Functions

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

Detailed Description

+

Exception for user-initiated abort.

+

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

Copyright © 2005-2018 Intel Corporation. All Rights Reserved. diff --git a/doc/html/a00182.png b/doc/html/a00182.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/a00183.html b/doc/html/a00183.html new file mode 100644 index 0000000000..ff3e3f1e51 --- /dev/null +++ b/doc/html/a00183.html @@ -0,0 +1,133 @@ + + + + + + +tbb::zero_allocator< T, Allocator > Class Template Reference + + + + + + + +
+ +
+
tbb::zero_allocator< T, Allocator > Class Template Reference
+
+
+ +

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

+ +

#include <tbb_allocator.h>

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

+Classes

struct  rebind
 
+ + + + + + + + + + + + + + + + + +

+Public Types

+typedef Allocator< T > base_allocator_type
 
+typedef
+base_allocator_type::value_type 
value_type
 
+typedef
+base_allocator_type::pointer 
pointer
 
+typedef
+base_allocator_type::const_pointer 
const_pointer
 
+typedef
+base_allocator_type::reference 
reference
 
+typedef
+base_allocator_type::const_reference 
const_reference
 
+typedef
+base_allocator_type::size_type 
size_type
 
+typedef
+base_allocator_type::difference_type 
difference_type
 
+ + + + + + + + +

+Public Member Functions

zero_allocator (const zero_allocator &a) throw ()
 
+template<typename U >
 zero_allocator (const zero_allocator< U > &a) throw ()
 
+pointer allocate (const size_type n, const void *hint=0)
 
+

Detailed Description

+

template<typename T, template< typename X > class Allocator = tbb_allocator>
+class tbb::zero_allocator< T, Allocator >

+ +

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

+

The class is an adapter over an actual allocator that fills the allocation using memset function with template argument C as the value. The members are ordered the same way they are in section 20.4.1 of the ISO C++ standard.

+

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

+Copyright © 2005-2018 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.png b/doc/html/a00183.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-2018 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/a00184.png b/doc/html/a00184.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/a00194.html b/doc/html/a00203.html similarity index 80% rename from doc/html/a00194.html rename to doc/html/a00203.html index 7ec1176e4c..7ee3e8d45d 100644 --- a/doc/html/a00194.html +++ b/doc/html/a00203.html @@ -3,7 +3,7 @@ - + flow_graph.h File Reference @@ -13,7 +13,7 @@
- +