Statistics
| Branch: | Revision:

urtware / doc / activitydiagrams / core / urtCoreSynchronizeNodes.svg @ dd31cb03

History | View | Annotate | Download (20.402 KB)

1
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="776px" preserveAspectRatio="none" style="width:1340px;height:776px;" version="1.1" viewBox="0 0 1340 776" width="1340px" zoomAndPan="magnify"><defs><filter height="300%" id="f1x4zz6pvjwbbn" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="624.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="546" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="672" y="68.6143"/><path d="M351.5,72.8594 L351.5,213.9219 L983.5,213.9219 L983.5,82.8594 L973.5,72.8594 L351.5,72.8594 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M973.5,72.8594 L973.5,82.8594 L983.5,82.8594 L973.5,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="601" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="605" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="605" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="646" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="734" x2="983.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="357.5" y="105.0591">Pointer to a node to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="357.5" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="437.5" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="469.5" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="983.5" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="983.5" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="351.5" x2="596.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="600.5" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="600.5" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="649.5" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="738.5" x2="983.5" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="410.5" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="518.5" y="160.4575">if all nodes are synchronized and proceed.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="410.5" y="175.5903">URT_STATUS_SYNC_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="582.5" y="175.5903">if an exception occurred (faulty stage value detected).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="357.5" y="190.7231">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="410.5" y="190.7231">URT_STATUS_SYNC_PENDING</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="598.5" y="190.7231">if there are nodes left to synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="611" x="357.5" y="205.856">In the latter case, the node thread must still wait for the control event (proceed) to synchronize.</text><ellipse cx="667.5" cy="243.9219" fill="#000000" filter="url(#f1x4zz6pvjwbbn)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="629" y="273.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="639" y="295.0605">lock core</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="552" y="327.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="562" y="349.0293">increment the node's stage value</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="542" y="381.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="552" y="402.998">access first node core's list of nodes</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="589.5" y="493.1479"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="599.5" y="514.2866">proceed to next node</text><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="528.5,435.8281,806.5,435.8281,818.5,448.6328,806.5,461.4375,528.5,461.4375,516.5,448.6328,528.5,435.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="671.5" y="471.6479">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="528.5" y="446.0386">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="643.5" y="446.0386">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="528.5" y="458.8433">and stage of current node is equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="502.5" y="446.0386">no</text><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="128,569.1167,318,569.1167,330,581.1167,318,593.1167,128,593.1167,116,581.1167,128,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="227" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="128" y="584.9248">All nodes are at the same stage?</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="104.5" y="625.9214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="114.5" y="647.0601">broadcast control event (proceed)</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="683.2925"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="704.4312">unlock core</text><path d="M10,739.0972 L10,764.23 A0,0 0 0 0 10,764.23 L192,764.23 A0,0 0 0 0 192,764.23 L192,757.0972 L212,751.6636 L192,749.0972 L192,749.0972 L182,739.0972 L10,739.0972 A0,0 0 0 0 10,739.0972 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,739.0972 L182,749.0972 L192,749.0972 L182,739.0972 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="16" y="756.1641">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="756.1641">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="756.1641">.</text><ellipse cx="223" cy="751.6636" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="751.6636" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" points="464,569.1167,861,569.1167,873,581.1167,861,593.1167,464,593.1167,452,581.1167,464,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="666.5" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="397" x="464" y="584.9248">The stage of the last checked node was one less than the argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="873" y="578.5225">no</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="616" y="625.9214"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="626" y="647.0601">unlock core</text><path d="M357.5,683.2925 L357.5,708.4253 A0,0 0 0 0 357.5,708.4253 L631.5,708.4253 A0,0 0 0 0 631.5,708.4253 L631.5,701.2925 L651.5,695.8589 L631.5,693.2925 L631.5,693.2925 L621.5,683.2925 L357.5,683.2925 A0,0 0 0 0 357.5,683.2925 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M621.5,683.2925 L621.5,693.2925 L631.5,693.2925 L621.5,683.2925 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="363.5" y="700.3594">Returns a</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="184" x="428.5" y="700.3594">URT_STATUS_SYNC_PENDING</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="612.5" y="700.3594">.</text><ellipse cx="662.5" cy="695.8589" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="662.5" cy="695.8589" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="318" x="1011" y="622.519"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="1021" y="643.6577">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="273" x="1046" y="643.6577">urtCoreStopNodes(URT_STATUS_SYNC_ERROR)</text><rect fill="#FEFECE" filter="url(#f1x4zz6pvjwbbn)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="1123.5" y="679.8901"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="1133.5" y="701.0288">unlock core</text><path d="M893,735.6948 L893,760.8276 A0,0 0 0 0 893,760.8276 L1139,760.8276 A0,0 0 0 0 1139,760.8276 L1139,753.6948 L1159,748.2612 L1139,745.6948 L1139,745.6948 L1129,735.6948 L893,735.6948 A0,0 0 0 0 893,735.6948 " fill="#FBFB77" filter="url(#f1x4zz6pvjwbbn)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1129,735.6948 L1129,745.6948 L1139,745.6948 L1129,735.6948 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="899" y="752.7617">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="168" x="952" y="752.7617">URT_STATUS_SYNC_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="1120" y="752.7617">.</text><ellipse cx="1170" cy="748.2612" fill="#FFFFFF" filter="url(#f1x4zz6pvjwbbn)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="1170" cy="748.2612" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="663.5,223.9219,667.5,233.9219,671.5,223.9219,667.5,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="253.9219" y2="273.9219"/><polygon fill="#A80036" points="663.5,263.9219,667.5,273.9219,671.5,263.9219,667.5,267.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="307.8906" y2="327.8906"/><polygon fill="#A80036" points="663.5,317.8906,667.5,327.8906,671.5,317.8906,667.5,321.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="361.8594" y2="381.8594"/><polygon fill="#A80036" points="663.5,371.8594,667.5,381.8594,671.5,371.8594,667.5,375.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="461.4375" y2="493.1479"/><polygon fill="#A80036" points="663.5,483.1479,667.5,493.1479,671.5,483.1479,667.5,487.1479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="527.1167" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="830.5" y1="537.1167" y2="537.1167"/><polygon fill="#A80036" points="826.5,501.3276,830.5,491.3276,834.5,501.3276,830.5,497.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.5" x2="830.5" y1="448.6328" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="830.5" x2="818.5" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="828.5,444.6328,818.5,448.6328,828.5,452.6328,824.5,448.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="516.5" x2="504.5" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="500.5,487.3276,504.5,497.3276,508.5,487.3276,504.5,491.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="504.5" x2="504.5" y1="448.6328" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="504.5" x2="667.5" y1="549.1167" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="549.1167" y2="554.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="667.5" y1="415.8281" y2="435.8281"/><polygon fill="#A80036" points="663.5,425.8281,667.5,435.8281,671.5,425.8281,667.5,429.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="659.8901" y2="683.2925"/><polygon fill="#A80036" points="219,673.2925,223,683.2925,227,673.2925,223,677.2925" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="717.2612" y2="740.6636"/><polygon fill="#A80036" points="219,730.6636,223,740.6636,227,730.6636,223,734.6636" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="662.5" x2="662.5" y1="659.8901" y2="684.8589"/><polygon fill="#A80036" points="658.5,674.8589,662.5,684.8589,666.5,674.8589,662.5,678.8589" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="656.4878" y2="679.8901"/><polygon fill="#A80036" points="1166,669.8901,1170,679.8901,1174,669.8901,1170,673.8901" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="713.8589" y2="737.2612"/><polygon fill="#A80036" points="1166,727.2612,1170,737.2612,1174,727.2612,1170,731.2612" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="593.1167" y2="625.9214"/><polygon fill="#A80036" points="219,615.9214,223,625.9214,227,615.9214,223,619.9214" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="662.5" x2="662.5" y1="593.1167" y2="625.9214"/><polygon fill="#A80036" points="658.5,615.9214,662.5,625.9214,666.5,615.9214,662.5,619.9214" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="330" x2="452" y1="581.1167" y2="581.1167"/><polygon fill="#A80036" points="442,577.1167,452,581.1167,442,585.1167,446,581.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="667.5" x2="223" y1="554.1167" y2="554.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="554.1167" y2="569.1167"/><polygon fill="#A80036" points="219,559.1167,223,569.1167,227,559.1167,223,563.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="873" x2="1170" y1="581.1167" y2="581.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1170" x2="1170" y1="581.1167" y2="622.519"/><polygon fill="#A80036" points="1166,612.519,1170,622.519,1174,612.519,1170,616.519" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7f69c8272874c8fbc6ababb0005e1f1b]
2
@startuml
3

    
4
title **µRtWare**\nurtCoreSynchronizeNodes()\n
5

    
6

    
7
note
8
  - - **node** : urt_node_t* - -
9
  Pointer to a node to synchronize.
10
  Must not be ""NULL"".
11
  ====
12
  - - **return** : urt_status_t - -
13
  Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed.
14
  Returns ""URT_STATUS_SYNC_ERROR"" if an exception occurred (faulty stage value detected).
15
  Returns ""URT_STATUS_SYNC_PENDING"" if there are nodes left to synchronize.
16
  In the latter case, the node thread must still wait for the control event (proceed) to synchronize.
17
endnote
18

    
19

    
20
start
21
:lock core;
22
:increment the node's stage value;
23
:access first node core's list of nodes;
24
while (Current node is not ""NULL""\nand stage of current node is equal to argument?) is (yes)
25
  :proceed to next node;
26
endwhile (no)
27
if (All nodes are at the same stage?) then (yes)
28
  :broadcast control event (proceed);
29
  :unlock core;
30
  stop
31
  note
32
    Returns ""URT_STATUS_OK"".
33
  endnote
34
elseif (The stage of the last checked node was one less than the argument?) then (yes)
35
  :unlock core;
36
  stop
37
  note
38
    Returns a ""URT_STATUS_SYNC_PENDING"".
39
  endnote
40
else (no)
41
  :call ""urtCoreStopNodes(URT_STATUS_SYNC_ERROR)"";
42
  :unlock core;
43
  stop
44
  note
45
    Returns ""URT_STATUS_SYNC_ERROR"".
46
  endnote
47
endif
48

    
49

    
50
@enduml
51

    
52
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
53
(GPL source distribution)
54
Java Runtime: OpenJDK Runtime Environment
55
JVM: OpenJDK 64-Bit Server VM
56
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
57
Operating System: Linux
58
Default Encoding: UTF-8
59
Language: en
60
Country: US
61
--></g></svg>