urtware / doc / activitydiagrams / core / urtCoreSynchronizeNodes.svg @ fb72e91b
History | View | Annotate | Download (20.4 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=[fd18d5b4f5c8efdcb2effd6930682092] |
---|---|
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.7+10-post-Ubuntu-2ubuntu218.04 |
57 |
Operating System: Linux |
58 |
Default Encoding: UTF-8 |
59 |
Language: en |
60 |
Country: US |
61 |
--></g></svg> |