Files
rippled/classripple_1_1JobQueue_1_1Coro.html
2025-11-04 00:36:48 -08:00

804 lines
57 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rippled: ripple::JobQueue::Coro Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">rippled
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceripple.html">ripple</a></li><li class="navelem"><a class="el" href="classripple_1_1JobQueue.html">JobQueue</a></li><li class="navelem"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classripple_1_1JobQueue_1_1Coro-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">ripple::JobQueue::Coro Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Coroutines must run to completion.
<a href="classripple_1_1JobQueue_1_1Coro.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ripple::JobQueue::Coro:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1JobQueue_1_1Coro__inherit__graph.png" border="0" usemap="#aripple_1_1JobQueue_1_1Coro_inherit__map" alt="Inheritance graph"/></div>
<map name="aripple_1_1JobQueue_1_1Coro_inherit__map" id="aripple_1_1JobQueue_1_1Coro_inherit__map">
<area shape="rect" title="Coroutines must run to completion." alt="" coords="5,93,172,119"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html" title=" " alt="" coords="13,5,164,45"/>
<area shape="poly" title=" " alt="" coords="91,59,91,93,86,93,86,59"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ripple::JobQueue::Coro:</div>
<div class="dyncontent">
<div class="center"><img src="classripple_1_1JobQueue_1_1Coro__coll__graph.png" border="0" usemap="#aripple_1_1JobQueue_1_1Coro_coll__map" alt="Collaboration graph"/></div>
<map name="aripple_1_1JobQueue_1_1Coro_coll__map" id="aripple_1_1JobQueue_1_1Coro_coll__map">
<area shape="rect" title="Coroutines must run to completion." alt="" coords="2528,147,2695,173"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html" title=" " alt="" coords="2279,5,2430,45"/>
<area shape="poly" title=" " alt="" coords="2433,48,2450,55,2493,76,2534,101,2595,145,2592,149,2531,106,2491,81,2448,60,2431,53"/>
<area shape="rect" href="structripple_1_1detail_1_1LocalValues.html" title=" " alt="" coords="2260,70,2449,95"/>
<area shape="poly" title=" " alt="" coords="2442,96,2505,112,2585,145,2583,150,2503,117,2441,101"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/unordered_map.html" title=" " alt="" coords="1977,11,2129,95"/>
<area shape="poly" title=" " alt="" coords="2144,59,2260,71,2259,76,2143,65"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/unique_ptr.html" title=" " alt="" coords="1633,26,1803,81"/>
<area shape="poly" title=" " alt="" coords="1817,51,1977,51,1977,56,1817,56"/>
<area shape="rect" href="structripple_1_1detail_1_1LocalValues_1_1BasicValue.html" title=" " alt="" coords="1214,33,1403,73"/>
<area shape="poly" title=" " alt="" coords="1417,51,1633,51,1633,56,1417,56"/>
<area shape="rect" href="classripple_1_1JobQueue.html" title="A pool of threads to perform work." alt="" coords="2290,1098,2419,1123"/>
<area shape="poly" title=" " alt="" coords="2360,1084,2604,172,2609,174,2366,1085"/>
<area shape="rect" href="structripple_1_1Workers_1_1Callback.html" title="Called to perform tasks as needed." alt="" coords="1627,861,1809,886"/>
<area shape="poly" title=" " alt="" coords="1823,861,1893,858,1972,858,2055,864,2137,876,2191,889,2213,901,2238,919,2279,964,2312,1015,2336,1062,2351,1097,2346,1099,2332,1064,2308,1018,2275,968,2234,923,2210,905,2189,894,2135,881,2054,869,1972,863,1893,863,1823,866"/>
<area shape="rect" href="classripple_1_1Workers.html" title="Workers is effectively a thread pool." alt="" coords="1994,683,2113,709"/>
<area shape="poly" title=" " alt="" coords="1791,854,1824,839,1836,828,1848,816,1875,805,1897,800,1920,796,1945,786,1973,767,1999,746,2038,707,2042,711,2003,750,1977,771,1948,790,1921,801,1898,806,1876,810,1851,821,1839,832,1827,844,1793,859"/>
<area shape="rect" href="classbeast_1_1Journal.html" title="A generic endpoint for log messages." alt="" coords="289,1339,399,1365"/>
<area shape="poly" title=" " alt="" coords="380,1369,418,1389,461,1407,650,1470,727,1492,800,1510,874,1523,953,1531,1151,1537,2055,1537,2092,1533,2126,1523,2157,1505,2185,1483,2211,1456,2234,1426,2274,1357,2304,1286,2326,1218,2348,1123,2354,1124,2331,1219,2309,1288,2278,1360,2239,1429,2215,1460,2189,1487,2160,1510,2128,1527,2093,1539,2055,1543,1151,1543,953,1536,873,1528,799,1515,726,1497,648,1475,459,1412,416,1394,377,1374"/>
<area shape="rect" href="classripple_1_1LoadMonitor.html" title=" " alt="" coords="631,1206,779,1231"/>
<area shape="poly" title=" " alt="" coords="392,1332,669,1229,671,1234,394,1337"/>
<area shape="rect" href="classbeast_1_1Journal_1_1Sink.html" title="Abstraction for the underlying message destination." alt="" coords="5,1339,152,1365"/>
<area shape="poly" title=" " alt="" coords="166,1349,289,1349,289,1355,166,1355"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/mutex.html" title=" " alt="" coords="298,425,390,450"/>
<area shape="poly" title=" " alt="" coords="355,411,396,341,425,301,458,265,517,209,568,167,595,151,626,140,661,133,704,131,2356,131,2447,135,2530,145,2530,150,2446,140,2356,136,704,136,662,138,627,145,598,156,571,171,521,213,462,269,429,304,400,343,360,413"/>
<area shape="poly" title=" " alt="" coords="361,412,403,365,430,341,458,319,521,278,574,250,630,233,704,228,1719,228,1787,227,1841,230,1891,244,1948,276,2014,329,2064,379,2102,430,2130,483,2178,602,2205,671,2238,750,2280,852,2314,954,2353,1097,2348,1099,2309,956,2275,854,2234,752,2200,673,2173,604,2126,485,2097,433,2060,383,2011,333,1945,281,1889,249,1840,235,1787,232,1719,233,704,233,631,239,576,255,524,283,462,324,433,345,407,369,365,415"/>
<area shape="poly" title=" " alt="" coords="349,464,356,547,374,667,389,735,408,804,432,872,462,936,477,960,492,978,524,1004,558,1031,592,1072,600,1089,604,1103,607,1116,616,1132,652,1173,688,1204,685,1208,648,1177,611,1135,602,1118,599,1104,595,1091,587,1075,554,1035,521,1009,489,982,473,963,458,939,427,874,403,806,384,736,369,668,351,548,344,464"/>
<area shape="rect" href="classripple_1_1ClosureCounter.html" title=" " alt="" coords="1635,1011,1801,1051"/>
<area shape="poly" title=" " alt="" coords="364,460,405,512,432,541,462,566,563,636,652,690,734,732,814,765,896,793,985,820,1206,884,1290,900,1400,913,1508,930,1554,942,1588,958,1597,966,1601,974,1605,982,1612,990,1646,1008,1643,1013,1609,994,1601,985,1597,977,1593,969,1585,962,1552,947,1507,935,1399,918,1289,905,1205,889,984,825,894,798,812,770,732,736,650,695,560,640,458,570,428,545,401,516,359,463"/>
<area shape="poly" title=" " alt="" coords="373,415,431,378,511,337,556,318,605,303,654,293,704,289,1154,289,1235,292,1336,300,1450,313,1570,332,1687,357,1794,388,1884,425,1920,446,1948,469,1972,495,1991,524,2022,585,2042,642,2052,682,2047,684,2036,643,2017,587,1987,526,1967,498,1945,473,1917,450,1881,429,1792,393,1686,362,1569,337,1449,318,1335,305,1234,297,1154,295,704,295,655,298,606,308,558,323,513,342,433,383,375,419"/>
<area shape="rect" href="classripple_1_1basic__semaphore.html" title=" " alt="" coords="1617,575,1819,630"/>
<area shape="poly" title=" " alt="" coords="375,456,433,492,513,533,558,551,606,566,655,576,704,580,1310,580,1472,584,1617,592,1616,598,1472,589,1310,585,704,585,654,582,605,571,556,556,511,538,431,497,373,460"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/integer.html" title=" " alt="" coords="293,1466,395,1491"/>
<area shape="poly" title=" " alt="" coords="379,1496,438,1527,518,1561,609,1589,657,1597,704,1600,2055,1600,2113,1595,2156,1579,2194,1550,2234,1506,2268,1457,2294,1403,2314,1346,2329,1289,2346,1189,2350,1123,2356,1124,2351,1189,2334,1290,2320,1347,2299,1405,2272,1460,2238,1510,2198,1554,2159,1584,2114,1600,2055,1605,704,1605,656,1602,608,1594,516,1566,436,1532,377,1501"/>
<area shape="rect" href="classripple_1_1Job.html" title=" " alt="" coords="1675,1359,1761,1385"/>
<area shape="poly" title=" " alt="" coords="409,1479,583,1486,831,1489,1119,1482,1267,1473,1412,1460,1500,1447,1586,1423,1641,1403,1689,1382,1691,1387,1643,1408,1587,1428,1501,1452,1412,1465,1267,1479,1119,1488,831,1494,583,1491,409,1485"/>
<area shape="poly" title=" " alt="" coords="380,1457,477,1401,588,1326,647,1274,690,1229,694,1233,650,1278,591,1330,479,1406,383,1462"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/set.html" title=" " alt="" coords="1971,1353,2136,1378"/>
<area shape="poly" title=" " alt="" coords="2149,1370,2194,1363,2215,1355,2234,1344,2262,1321,2285,1293,2303,1261,2319,1229,2339,1167,2349,1123,2354,1124,2344,1169,2323,1231,2308,1264,2289,1296,2266,1325,2238,1349,2217,1360,2195,1368,2150,1375"/>
<area shape="poly" title=" " alt="" coords="1775,1368,1970,1364,1970,1370,1775,1374"/>
<area shape="rect" href="classripple_1_1CountedObject.html" title=" " alt="" coords="1227,1360,1390,1400"/>
<area shape="poly" title=" " alt="" coords="1404,1375,1674,1370,1675,1375,1404,1381"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/utility/functional/function.html" title=" " alt="" coords="1225,1425,1392,1450"/>
<area shape="poly" title=" " alt="" coords="1405,1422,1586,1395,1674,1378,1675,1383,1587,1400,1406,1427"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1223,1296,1394,1336"/>
<area shape="poly" title=" " alt="" coords="1408,1327,1675,1364,1674,1369,1407,1332"/>
<area shape="rect" href="classripple_1_1LoadEvent.html" title=" " alt="" coords="937,1303,1071,1329"/>
<area shape="poly" title=" " alt="" coords="1085,1313,1223,1313,1223,1319,1085,1319"/>
<area shape="poly" title=" " alt="" coords="723,1241,764,1292,791,1316,822,1335,861,1344,901,1343,939,1336,971,1326,973,1331,940,1341,902,1349,860,1349,820,1340,788,1321,760,1296,719,1245"/>
<area shape="rect" href="structripple_1_1JobTypeData.html" title=" " alt="" coords="1644,1166,1792,1191"/>
<area shape="poly" title=" " alt="" coords="793,1213,1644,1179,1644,1184,793,1218"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/duration.html" title=" " alt="" coords="252,1085,436,1110"/>
<area shape="poly" title=" " alt="" coords="397,1112,667,1203,665,1208,395,1117"/>
<area shape="rect" href="classripple_1_1JobTypeInfo.html" title="Holds all the &#39;static&#39; information about a job, which does not change." alt="" coords="933,1029,1075,1054"/>
<area shape="poly" title=" " alt="" coords="411,1079,460,1071,590,1057,720,1047,932,1040,933,1045,721,1053,591,1062,460,1076,412,1084"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/chrono/time_point.html" title=" " alt="" coords="258,1199,430,1239"/>
<area shape="poly" title=" " alt="" coords="444,1216,631,1216,631,1221,444,1221"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="662,963,749,989"/>
<area shape="poly" title=" " alt="" coords="705,949,713,848,724,778,741,702,767,624,802,548,848,478,875,447,906,419,953,390,1011,365,1077,345,1152,329,1319,308,1500,296,1859,289,2014,285,2136,276,2225,268,2294,263,2363,254,2449,233,2526,203,2587,170,2590,175,2528,207,2450,239,2364,260,2295,268,2225,273,2136,281,2014,290,1860,294,1501,302,1320,313,1153,335,1079,350,1012,370,956,394,910,423,879,451,852,481,806,550,772,626,746,704,729,779,718,849,710,950"/>
<area shape="poly" title=" " alt="" coords="763,986,782,996,799,1010,813,1036,814,1060,814,1084,824,1111,842,1136,859,1152,909,1179,1006,1218,1091,1241,1168,1253,1242,1258,1317,1262,1397,1269,1485,1284,1587,1311,1646,1333,1694,1357,1692,1362,1644,1338,1586,1316,1484,1289,1396,1274,1317,1267,1242,1263,1168,1258,1090,1246,1004,1223,907,1184,856,1157,838,1139,819,1113,809,1085,809,1061,808,1037,795,1014,780,1000,761,991"/>
<area shape="poly" title=" " alt="" coords="763,985,783,996,800,1012,810,1037,813,1072,810,1155,807,1236,812,1268,823,1290,841,1300,868,1307,937,1313,936,1318,867,1312,839,1305,819,1294,807,1270,802,1237,804,1155,808,1072,805,1038,795,1015,780,1000,760,990"/>
<area shape="poly" title=" " alt="" coords="763,986,946,1026,945,1031,762,991"/>
<area shape="poly" title=" " alt="" coords="743,955,818,920,907,887,1063,843,1223,806,1384,775,1538,750,1808,715,1993,698,1994,703,1809,721,1539,756,1384,781,1225,811,1064,848,909,892,820,925,745,960"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/string/basic_string.html" title=" " alt="" coords="275,949,413,989"/>
<area shape="poly" title=" " alt="" coords="427,968,662,973,662,978,427,974"/>
<area shape="poly" title=" " alt="" coords="1815,1024,1905,1024,2011,1028,2125,1039,2237,1059,2288,1076,2331,1096,2329,1100,2286,1081,2235,1064,2124,1044,2011,1033,1905,1029,1815,1029"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html" title=" " alt="" coords="1223,694,1394,719"/>
<area shape="poly" title=" " alt="" coords="1371,686,1393,673,1410,656,1424,627,1428,599,1425,572,1418,545,1412,518,1410,490,1416,462,1434,434,1451,424,1484,412,1591,381,1916,304,2278,226,2547,170,2548,175,2279,231,1917,309,1593,386,1486,417,1453,429,1438,438,1421,464,1415,491,1417,517,1423,544,1430,571,1433,599,1429,628,1414,659,1396,677,1374,691"/>
<area shape="poly" title=" " alt="" coords="1408,712,1515,730,1559,744,1589,762,1604,786,1608,810,1606,833,1600,857,1595,880,1593,902,1598,924,1612,945,1644,958,1703,970,1868,987,2036,998,2136,1007,2188,1016,2237,1034,2294,1065,2338,1096,2335,1100,2291,1069,2235,1038,2186,1022,2136,1012,2035,1003,1867,992,1702,975,1642,963,1609,949,1593,926,1588,902,1590,879,1595,856,1601,833,1603,810,1599,788,1585,766,1557,749,1514,735,1407,718"/>
<area shape="poly" title=" " alt="" coords="1345,724,1491,810,1589,874,1597,891,1601,906,1600,935,1599,963,1603,976,1613,990,1636,1008,1633,1013,1609,994,1599,978,1594,963,1594,935,1596,907,1592,893,1585,878,1488,815,1342,729"/>
<area shape="poly" title=" " alt="" coords="1408,703,1994,694,1994,700,1408,708"/>
<area shape="poly" title=" " alt="" coords="1391,689,1485,669,1586,644,1640,628,1641,633,1587,649,1486,674,1393,694"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="1237,850,1380,875"/>
<area shape="poly" title=" " alt="" coords="1380,876,1436,888,1481,892,1517,892,1552,897,1570,905,1589,920,1600,937,1602,956,1603,973,1613,990,1638,1008,1635,1013,1609,994,1598,975,1597,956,1595,939,1585,923,1567,910,1550,902,1517,897,1480,898,1436,893,1379,881"/>
<area shape="poly" title=" " alt="" coords="1366,844,1436,828,1495,821,1547,819,1635,823,1677,824,1721,821,1769,810,1824,791,1836,782,1848,771,2018,706,2019,711,1851,776,1839,786,1827,796,1770,815,1721,826,1677,829,1635,829,1547,824,1496,826,1436,833,1367,849"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="1988,1074,2119,1099"/>
<area shape="poly" title=" " alt="" coords="2132,1090,2290,1103,2290,1108,2132,1096"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/container/map.html" title=" " alt="" coords="1979,1236,2127,1276"/>
<area shape="poly" title=" " alt="" coords="2140,1247,2189,1237,2235,1219,2269,1197,2299,1170,2342,1122,2346,1125,2303,1174,2272,1201,2237,1224,2190,1242,2142,1252"/>
<area shape="poly" title=" " alt="" coords="1806,1182,1960,1185,2048,1181,2136,1172,2187,1162,2237,1149,2320,1121,2321,1126,2238,1154,2188,1167,2136,1177,2049,1187,1960,1190,1806,1187"/>
<area shape="poly" title=" " alt="" coords="1767,1193,1850,1219,1980,1244,1979,1249,1849,1224,1766,1199"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1205,1145,1412,1170"/>
<area shape="poly" title=" " alt="" coords="1371,1171,1482,1198,1631,1231,1799,1262,1971,1285,2054,1293,2090,1292,2136,1285,2188,1273,2234,1247,2270,1216,2301,1181,2343,1122,2348,1125,2306,1185,2274,1220,2238,1252,2190,1278,2136,1291,2090,1297,2054,1298,1970,1291,1798,1268,1630,1236,1481,1203,1370,1176"/>
<area shape="poly" title=" " alt="" coords="1426,1161,1644,1172,1643,1177,1425,1166"/>
<area shape="rect" href="classbeast_1_1insight_1_1Collector.html" title="Interface for a manager that allows collection of metrics." alt="" coords="916,1145,1092,1170"/>
<area shape="poly" title=" " alt="" coords="1106,1155,1205,1155,1205,1160,1106,1160"/>
<area shape="poly" title=" " alt="" coords="1089,1035,1216,1032,1362,1036,1433,1041,1497,1051,1550,1064,1588,1083,1600,1098,1602,1113,1604,1128,1613,1142,1630,1154,1649,1163,1647,1168,1627,1159,1609,1146,1599,1130,1597,1114,1595,1100,1585,1087,1548,1069,1496,1056,1432,1047,1362,1041,1216,1037,1089,1040"/>
<area shape="rect" href="classbeast_1_1insight_1_1Event.html" title="A metric for reporting event timing." alt="" coords="1231,1090,1386,1115"/>
<area shape="poly" title=" " alt="" coords="1400,1112,1587,1143,1672,1163,1671,1168,1586,1148,1399,1117"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="919,1080,1089,1120"/>
<area shape="poly" title=" " alt="" coords="1103,1098,1231,1099,1231,1105,1103,1104"/>
<area shape="rect" href="classbeast_1_1insight_1_1EventImpl.html" title=" " alt="" coords="613,1097,797,1122"/>
<area shape="poly" title=" " alt="" coords="811,1103,918,1100,919,1105,811,1109"/>
<area shape="poly" title=" " alt="" coords="2090,714,2163,766,2203,800,2238,840,2283,911,2316,986,2340,1052,2353,1097,2348,1098,2335,1053,2311,988,2278,913,2234,843,2199,804,2160,770,2087,718"/>
<area shape="rect" href="classripple_1_1perf_1_1PerfLog.html" title="Singleton class that maintains performance counters and optionally writes Json&#45;formatted data to a di..." alt="" coords="1643,910,1793,935"/>
<area shape="poly" title=" " alt="" coords="1799,905,1893,896,2006,895,2065,900,2125,911,2183,928,2237,952,2259,967,2279,985,2312,1025,2336,1065,2351,1096,2346,1099,2331,1068,2308,1028,2275,988,2256,971,2235,957,2181,933,2124,916,2065,906,2005,900,1893,901,1800,911"/>
<area shape="poly" title=" " alt="" coords="1797,904,1873,877,1911,858,1945,834,1977,802,2005,766,2043,707,2047,710,2010,769,1981,805,1948,838,1913,863,1875,882,1798,909"/>
<area shape="poly" title=" " alt="" coords="1833,619,1947,648,2027,681,2025,686,1946,653,1832,625"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/types/size_t.html" title=" " alt="" coords="1265,621,1353,646"/>
<area shape="poly" title=" " alt="" coords="1366,628,1586,613,1616,611,1617,616,1587,619,1366,633"/>
<area shape="rect" href="classbeast_1_1LockFreeStack.html" title=" " alt="" coords="1617,432,1819,472"/>
<area shape="poly" title=" " alt="" coords="1819,474,1886,501,1919,520,1948,542,1983,578,2011,617,2048,682,2044,684,2007,620,1979,581,1945,546,1916,524,1884,506,1817,479"/>
<area shape="rect" href="classbeast_1_1LockFreeStack_1_1Node.html" title=" " alt="" coords="915,433,1093,473"/>
<area shape="poly" title=" " alt="" coords="1107,437,1124,435,1254,423,1355,420,1457,424,1587,433,1617,436,1616,441,1586,439,1456,429,1355,425,1254,428,1124,440,1107,442"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/atomic/atomic.html" title=" " alt="" coords="1213,443,1405,483"/>
<area shape="poly" title=" " alt="" coords="1107,454,1212,457,1212,462,1107,459"/>
<area shape="rect" href="classbeast_1_1LockFreeStack.html" title=" " alt="" coords="1611,497,1825,551"/>
<area shape="poly" title=" " alt="" coords="1076,475,1139,493,1206,507,1313,519,1421,525,1610,526,1610,531,1421,530,1312,524,1205,512,1138,498,1075,480"/>
<area shape="poly" title=" " alt="" coords="1418,457,1616,452,1616,457,1419,462"/>
<area shape="poly" title=" " alt="" coords="1199,478,1124,477,1094,474,1094,468,1124,472,1199,473"/>
<area shape="poly" title=" " alt="" coords="1418,476,1611,505,1610,511,1418,482"/>
<area shape="poly" title=" " alt="" coords="1832,553,1891,576,1948,604,2002,644,2041,681,2038,685,1998,648,1945,609,1888,581,1830,558"/>
<area shape="rect" href="classbeast_1_1insight_1_1Gauge.html" title="A metric for measuring an integral value." alt="" coords="1973,1123,2133,1149"/>
<area shape="poly" title=" " alt="" coords="2147,1126,2236,1119,2289,1114,2290,1119,2236,1124,2147,1131"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1633,1092,1803,1132"/>
<area shape="poly" title=" " alt="" coords="1818,1116,1973,1128,1973,1133,1817,1122"/>
<area shape="rect" href="classbeast_1_1insight_1_1GaugeImpl.html" title=" " alt="" coords="1214,973,1403,998"/>
<area shape="poly" title=" " alt="" coords="1417,976,1460,979,1505,986,1548,1000,1588,1021,1598,1030,1602,1041,1605,1051,1613,1061,1634,1077,1659,1089,1656,1094,1631,1081,1609,1065,1600,1053,1597,1043,1593,1033,1585,1025,1546,1005,1503,992,1460,984,1417,981"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this.html" title=" " alt="" coords="908,964,1100,1004"/>
<area shape="poly" title=" " alt="" coords="1113,982,1214,982,1214,988,1113,987"/>
<area shape="rect" href="classbeast_1_1insight_1_1Hook.html" title="A reference to a handler for performing polled collection." alt="" coords="1977,1642,2129,1667"/>
<area shape="poly" title=" " alt="" coords="2142,1663,2192,1657,2214,1648,2234,1634,2248,1618,2261,1595,2285,1535,2304,1461,2320,1380,2341,1224,2350,1123,2355,1124,2346,1225,2325,1381,2309,1463,2290,1537,2266,1598,2253,1621,2238,1638,2217,1652,2193,1662,2143,1669"/>
<area shape="rect" target="_parent" href="http://en.cppreference.com/w/cpp/memory/shared_ptr.html" title=" " alt="" coords="1633,1641,1803,1681"/>
<area shape="poly" title=" " alt="" coords="1817,1657,1977,1654,1977,1659,1817,1662"/>
<area shape="rect" href="classbeast_1_1insight_1_1HookImpl.html" title=" " alt="" coords="1218,1651,1399,1677"/>
<area shape="poly" title=" " alt="" coords="1413,1661,1632,1659,1632,1665,1413,1666"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abf8b35538eae5b48a7c55e8676569fce" id="r_abf8b35538eae5b48a7c55e8676569fce"><td class="memTemplParams" colspan="2">template&lt;class F &gt; </td></tr>
<tr class="memitem:abf8b35538eae5b48a7c55e8676569fce"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#abf8b35538eae5b48a7c55e8676569fce">Coro</a> (<a class="el" href="structripple_1_1Coro__create__t.html">Coro_create_t</a>, <a class="el" href="classripple_1_1JobQueue.html">JobQueue</a> &amp;, <a class="el" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a>, <a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;, F &amp;&amp;)</td></tr>
<tr class="separator:abf8b35538eae5b48a7c55e8676569fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afed03d8df6bfd2ab1d2876ad38dbcbe6" id="r_afed03d8df6bfd2ab1d2876ad38dbcbe6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#afed03d8df6bfd2ab1d2876ad38dbcbe6">Coro</a> (<a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> const &amp;)=delete</td></tr>
<tr class="separator:afed03d8df6bfd2ab1d2876ad38dbcbe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0b004cb1a39eb55cf461178c914144c" id="r_aa0b004cb1a39eb55cf461178c914144c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#aa0b004cb1a39eb55cf461178c914144c">operator=</a> (<a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> const &amp;)=delete</td></tr>
<tr class="separator:aa0b004cb1a39eb55cf461178c914144c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a41016e2a2a968e0da664237078273a" id="r_a9a41016e2a2a968e0da664237078273a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a9a41016e2a2a968e0da664237078273a">~Coro</a> ()</td></tr>
<tr class="separator:a9a41016e2a2a968e0da664237078273a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf59dc12d67b8e0d9dc82e8023e9de97" id="r_adf59dc12d67b8e0d9dc82e8023e9de97"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#adf59dc12d67b8e0d9dc82e8023e9de97">yield</a> () const</td></tr>
<tr class="memdesc:adf59dc12d67b8e0d9dc82e8023e9de97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend coroutine execution. <br /></td></tr>
<tr class="separator:adf59dc12d67b8e0d9dc82e8023e9de97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b83fd8b286c29a56975e32284244db0" id="r_a7b83fd8b286c29a56975e32284244db0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a7b83fd8b286c29a56975e32284244db0">post</a> ()</td></tr>
<tr class="memdesc:a7b83fd8b286c29a56975e32284244db0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule coroutine execution. <br /></td></tr>
<tr class="separator:a7b83fd8b286c29a56975e32284244db0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f2b97204a563d708fcd3ee4262db824" id="r_a2f2b97204a563d708fcd3ee4262db824"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a2f2b97204a563d708fcd3ee4262db824">resume</a> ()</td></tr>
<tr class="memdesc:a2f2b97204a563d708fcd3ee4262db824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume coroutine execution. <br /></td></tr>
<tr class="separator:a2f2b97204a563d708fcd3ee4262db824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b420fe0e3eacc79ee483debccbff40a" id="r_a7b420fe0e3eacc79ee483debccbff40a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a7b420fe0e3eacc79ee483debccbff40a">runnable</a> () const</td></tr>
<tr class="memdesc:a7b420fe0e3eacc79ee483debccbff40a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the <a class="el" href="classripple_1_1JobQueue_1_1Coro.html" title="Coroutines must run to completion.">Coro</a> is still runnable (has not returned). <br /></td></tr>
<tr class="separator:a7b420fe0e3eacc79ee483debccbff40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a764e7597e4d15e282f3d87d1364c577f" id="r_a764e7597e4d15e282f3d87d1364c577f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a764e7597e4d15e282f3d87d1364c577f">expectEarlyExit</a> ()</td></tr>
<tr class="memdesc:a764e7597e4d15e282f3d87d1364c577f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Once called, the <a class="el" href="classripple_1_1JobQueue_1_1Coro.html" title="Coroutines must run to completion.">Coro</a> allows early exit without an assert. <br /></td></tr>
<tr class="separator:a764e7597e4d15e282f3d87d1364c577f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a035344c995eb7c257f15cf844a2bf913" id="r_a035344c995eb7c257f15cf844a2bf913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a035344c995eb7c257f15cf844a2bf913">join</a> ()</td></tr>
<tr class="memdesc:a035344c995eb7c257f15cf844a2bf913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits until coroutine returns from the user function. <br /></td></tr>
<tr class="separator:a035344c995eb7c257f15cf844a2bf913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/shared_from_this.html">shared_from_this</a> (T... args)</td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="elRef" href="http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/weak_from_this.html">weak_from_this</a> (T... args)</td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a9ae6d29e6af4311658bf567baed62561" id="r_a9ae6d29e6af4311658bf567baed62561"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structripple_1_1detail_1_1LocalValues.html">detail::LocalValues</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a9ae6d29e6af4311658bf567baed62561">lvs_</a></td></tr>
<tr class="separator:a9ae6d29e6af4311658bf567baed62561"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac09ae854553dc54ac8b5be6cf3e9bd7d" id="r_ac09ae854553dc54ac8b5be6cf3e9bd7d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classripple_1_1JobQueue.html">JobQueue</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#ac09ae854553dc54ac8b5be6cf3e9bd7d">jq_</a></td></tr>
<tr class="separator:ac09ae854553dc54ac8b5be6cf3e9bd7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4adb1c6eb251bde0b9e56b082ef2ea68" id="r_a4adb1c6eb251bde0b9e56b082ef2ea68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a4adb1c6eb251bde0b9e56b082ef2ea68">type_</a></td></tr>
<tr class="separator:a4adb1c6eb251bde0b9e56b082ef2ea68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b85222d497232aadaf559913d3ec475" id="r_a1b85222d497232aadaf559913d3ec475"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a1b85222d497232aadaf559913d3ec475">name_</a></td></tr>
<tr class="separator:a1b85222d497232aadaf559913d3ec475"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a372851e769e2daac2f6c1e704be79567" id="r_a372851e769e2daac2f6c1e704be79567"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a372851e769e2daac2f6c1e704be79567">running_</a></td></tr>
<tr class="separator:a372851e769e2daac2f6c1e704be79567"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dd2b8ab272921eaa7d7cd8f4a5fc3e9" id="r_a8dd2b8ab272921eaa7d7cd8f4a5fc3e9"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a8dd2b8ab272921eaa7d7cd8f4a5fc3e9">mutex_</a></td></tr>
<tr class="separator:a8dd2b8ab272921eaa7d7cd8f4a5fc3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f7febd6ceef544a109ea398b5453e51" id="r_a1f7febd6ceef544a109ea398b5453e51"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a1f7febd6ceef544a109ea398b5453e51">mutex_run_</a></td></tr>
<tr class="separator:a1f7febd6ceef544a109ea398b5453e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35cc379df37dd5e5b2ac28bfda99aa4c" id="r_a35cc379df37dd5e5b2ac28bfda99aa4c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html">std::condition_variable</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a35cc379df37dd5e5b2ac28bfda99aa4c">cv_</a></td></tr>
<tr class="separator:a35cc379df37dd5e5b2ac28bfda99aa4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af413c96bdf42fee7e7edd2d98e690611" id="r_af413c96bdf42fee7e7edd2d98e690611"><td class="memItemLeft" align="right" valign="top">boost::coroutines::asymmetric_coroutine&lt; void &gt;::pull_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#af413c96bdf42fee7e7edd2d98e690611">coro_</a></td></tr>
<tr class="separator:af413c96bdf42fee7e7edd2d98e690611"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac956633e9ba5a1ae42a3d14a575ff674" id="r_ac956633e9ba5a1ae42a3d14a575ff674"><td class="memItemLeft" align="right" valign="top">boost::coroutines::asymmetric_coroutine&lt; void &gt;::push_type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#ac956633e9ba5a1ae42a3d14a575ff674">yield_</a></td></tr>
<tr class="separator:ac956633e9ba5a1ae42a3d14a575ff674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5573d1100550035d43a54b1610a205c7" id="r_a5573d1100550035d43a54b1610a205c7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a5573d1100550035d43a54b1610a205c7">finished_</a> = false</td></tr>
<tr class="separator:a5573d1100550035d43a54b1610a205c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Coroutines must run to completion. </p>
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00042">42</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abf8b35538eae5b48a7c55e8676569fce" name="abf8b35538eae5b48a7c55e8676569fce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf8b35538eae5b48a7c55e8676569fce">&#9670;&#160;</a></span>Coro() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class F &gt; </div>
<table class="memname">
<tr>
<td class="memname">ripple::JobQueue::Coro::Coro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structripple_1_1Coro__create__t.html">Coro_create_t</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classripple_1_1JobQueue.html">JobQueue</a> &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a>&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> const &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">F &amp;&amp;&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afed03d8df6bfd2ab1d2876ad38dbcbe6" name="afed03d8df6bfd2ab1d2876ad38dbcbe6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afed03d8df6bfd2ab1d2876ad38dbcbe6">&#9670;&#160;</a></span>Coro() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ripple::JobQueue::Coro::Coro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9a41016e2a2a968e0da664237078273a" name="a9a41016e2a2a968e0da664237078273a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a41016e2a2a968e0da664237078273a">&#9670;&#160;</a></span>~Coro()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ripple::JobQueue::Coro::~Coro </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa0b004cb1a39eb55cf461178c914144c" name="aa0b004cb1a39eb55cf461178c914144c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0b004cb1a39eb55cf461178c914144c">&#9670;&#160;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> &amp; ripple::JobQueue::Coro::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classripple_1_1JobQueue_1_1Coro.html">Coro</a> const &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="adf59dc12d67b8e0d9dc82e8023e9de97" name="adf59dc12d67b8e0d9dc82e8023e9de97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf59dc12d67b8e0d9dc82e8023e9de97">&#9670;&#160;</a></span>yield()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::JobQueue::Coro::yield </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Suspend coroutine execution. </p>
<p>Effects: The coroutine's stack is saved. The associated <a class="el" href="classripple_1_1Job.html">Job</a> thread is released. Note: The associated <a class="el" href="classripple_1_1Job.html">Job</a> function returns. Undefined behavior if called consecutively without a corresponding post. </p>
</div>
</div>
<a id="a7b83fd8b286c29a56975e32284244db0" name="a7b83fd8b286c29a56975e32284244db0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b83fd8b286c29a56975e32284244db0">&#9670;&#160;</a></span>post()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::JobQueue::Coro::post </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Schedule coroutine execution. </p>
<p>Effects: Returns immediately. A new job is scheduled to resume the execution of the coroutine. When the job runs, the coroutine's stack is restored and execution continues at the beginning of coroutine function or the statement after the previous call to yield. Undefined behavior if called after the coroutine has completed with a return (as opposed to a <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#adf59dc12d67b8e0d9dc82e8023e9de97" title="Suspend coroutine execution.">yield()</a>). Undefined behavior if <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a7b83fd8b286c29a56975e32284244db0" title="Schedule coroutine execution.">post()</a> or <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a2f2b97204a563d708fcd3ee4262db824" title="Resume coroutine execution.">resume()</a> called consecutively without a corresponding yield.</p>
<dl class="section return"><dt>Returns</dt><dd>true if the <a class="el" href="classripple_1_1JobQueue_1_1Coro.html" title="Coroutines must run to completion.">Coro</a>'s job is added to the <a class="el" href="classripple_1_1JobQueue.html" title="A pool of threads to perform work.">JobQueue</a>. </dd></dl>
</div>
</div>
<a id="a2f2b97204a563d708fcd3ee4262db824" name="a2f2b97204a563d708fcd3ee4262db824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f2b97204a563d708fcd3ee4262db824">&#9670;&#160;</a></span>resume()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::JobQueue::Coro::resume </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Resume coroutine execution. </p>
<p>Effects: The coroutine continues execution from where it last left off using this same thread. Undefined behavior if called after the coroutine has completed with a return (as opposed to a <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#adf59dc12d67b8e0d9dc82e8023e9de97" title="Suspend coroutine execution.">yield()</a>). Undefined behavior if <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a2f2b97204a563d708fcd3ee4262db824" title="Resume coroutine execution.">resume()</a> or <a class="el" href="classripple_1_1JobQueue_1_1Coro.html#a7b83fd8b286c29a56975e32284244db0" title="Schedule coroutine execution.">post()</a> called consecutively without a corresponding yield. </p>
</div>
</div>
<a id="a7b420fe0e3eacc79ee483debccbff40a" name="a7b420fe0e3eacc79ee483debccbff40a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b420fe0e3eacc79ee483debccbff40a">&#9670;&#160;</a></span>runnable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ripple::JobQueue::Coro::runnable </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the <a class="el" href="classripple_1_1JobQueue_1_1Coro.html" title="Coroutines must run to completion.">Coro</a> is still runnable (has not returned). </p>
</div>
</div>
<a id="a764e7597e4d15e282f3d87d1364c577f" name="a764e7597e4d15e282f3d87d1364c577f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a764e7597e4d15e282f3d87d1364c577f">&#9670;&#160;</a></span>expectEarlyExit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::JobQueue::Coro::expectEarlyExit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Once called, the <a class="el" href="classripple_1_1JobQueue_1_1Coro.html" title="Coroutines must run to completion.">Coro</a> allows early exit without an assert. </p>
</div>
</div>
<a id="a035344c995eb7c257f15cf844a2bf913" name="a035344c995eb7c257f15cf844a2bf913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a035344c995eb7c257f15cf844a2bf913">&#9670;&#160;</a></span>join()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void ripple::JobQueue::Coro::join </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits until coroutine returns from the user function. </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a9ae6d29e6af4311658bf567baed62561" name="a9ae6d29e6af4311658bf567baed62561"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ae6d29e6af4311658bf567baed62561">&#9670;&#160;</a></span>lvs_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structripple_1_1detail_1_1LocalValues.html">detail::LocalValues</a> ripple::JobQueue::Coro::lvs_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00045">45</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="ac09ae854553dc54ac8b5be6cf3e9bd7d" name="ac09ae854553dc54ac8b5be6cf3e9bd7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac09ae854553dc54ac8b5be6cf3e9bd7d">&#9670;&#160;</a></span>jq_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classripple_1_1JobQueue.html">JobQueue</a>&amp; ripple::JobQueue::Coro::jq_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00046">46</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a4adb1c6eb251bde0b9e56b082ef2ea68" name="a4adb1c6eb251bde0b9e56b082ef2ea68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4adb1c6eb251bde0b9e56b082ef2ea68">&#9670;&#160;</a></span>type_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceripple.html#ae0f54f8ce649d639bf3e2b295347e17a">JobType</a> ripple::JobQueue::Coro::type_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00047">47</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a1b85222d497232aadaf559913d3ec475" name="a1b85222d497232aadaf559913d3ec475"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b85222d497232aadaf559913d3ec475">&#9670;&#160;</a></span>name_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> ripple::JobQueue::Coro::name_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00048">48</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a372851e769e2daac2f6c1e704be79567" name="a372851e769e2daac2f6c1e704be79567"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a372851e769e2daac2f6c1e704be79567">&#9670;&#160;</a></span>running_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::JobQueue::Coro::running_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00049">49</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a8dd2b8ab272921eaa7d7cd8f4a5fc3e9" name="a8dd2b8ab272921eaa7d7cd8f4a5fc3e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8dd2b8ab272921eaa7d7cd8f4a5fc3e9">&#9670;&#160;</a></span>mutex_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::JobQueue::Coro::mutex_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00050">50</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a1f7febd6ceef544a109ea398b5453e51" name="a1f7febd6ceef544a109ea398b5453e51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f7febd6ceef544a109ea398b5453e51">&#9670;&#160;</a></span>mutex_run_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/mutex.html">std::mutex</a> ripple::JobQueue::Coro::mutex_run_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00051">51</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a35cc379df37dd5e5b2ac28bfda99aa4c" name="a35cc379df37dd5e5b2ac28bfda99aa4c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35cc379df37dd5e5b2ac28bfda99aa4c">&#9670;&#160;</a></span>cv_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="elRef" href="http://en.cppreference.com/w/cpp/thread/condition_variable.html">std::condition_variable</a> ripple::JobQueue::Coro::cv_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00052">52</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="af413c96bdf42fee7e7edd2d98e690611" name="af413c96bdf42fee7e7edd2d98e690611"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af413c96bdf42fee7e7edd2d98e690611">&#9670;&#160;</a></span>coro_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::coroutines::asymmetric_coroutine&lt;void&gt;::pull_type ripple::JobQueue::Coro::coro_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00053">53</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="ac956633e9ba5a1ae42a3d14a575ff674" name="ac956633e9ba5a1ae42a3d14a575ff674"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac956633e9ba5a1ae42a3d14a575ff674">&#9670;&#160;</a></span>yield_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::coroutines::asymmetric_coroutine&lt;void&gt;::push_type* ripple::JobQueue::Coro::yield_</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00054">54</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
<a id="a5573d1100550035d43a54b1610a205c7" name="a5573d1100550035d43a54b1610a205c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5573d1100550035d43a54b1610a205c7">&#9670;&#160;</a></span>finished_</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool ripple::JobQueue::Coro::finished_ = false</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="JobQueue_8h_source.html#l00056">56</a> of file <a class="el" href="JobQueue_8h_source.html">JobQueue.h</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>