Revision e87bd7c7 doc/activitydiagrams/core/urtCoreSynchronizeNodes.svg

View differences:

doc/activitydiagrams/core/urtCoreSynchronizeNodes.svg
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="276px" preserveAspectRatio="none" style="width:270px;height:276px;" version="1.1" viewBox="0 0 270 276" width="270px" zoomAndPan="magnify"><defs><filter height="300%" id="f1co5slmj06f3r" 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="90.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="12" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="138" y="68.6143"/><path d="M19,72.8594 L19,183.6563 L251,183.6563 L251,82.8594 L241,72.8594 L19,72.8594 " fill="#FBFB77" filter="url(#f1co5slmj06f3r)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M241,72.8594 L241,82.8594 L251,82.8594 L241,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="68.5" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="72.5" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="72.5" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="113.5" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="201.5" x2="251" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="25" y="105.0591">Pointer to a node tp synchronize.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="76" x="25" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="105" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="137" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="51.5" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="55.5" y="134.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="42" x="55.5" y="134.8247">stage</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="101.5" y="134.8247">: urt_nodestage_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="218.5" x2="251" y1="130.8242" y2="130.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="194" x="25" y="150.4575">Stage value to synchronize to.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="251" y1="158.5234" y2="158.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="251" y1="160.5234" y2="160.5234"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="19" x2="64" y1="171.0898" y2="171.0898"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="68" y="175.0903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="68" y="175.0903">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="117" y="175.0903">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="206" x2="251" y1="171.0898" y2="171.0898"/><ellipse cx="135" cy="213.6563" fill="#000000" filter="url(#f1co5slmj06f3r)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><ellipse cx="135" cy="254.6563" fill="#FFFFFF" filter="url(#f1co5slmj06f3r)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="135" cy="254.6563" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="135" y1="183.6563" y2="203.6563"/><polygon fill="#A80036" points="131,193.6563,135,203.6563,139,193.6563,135,197.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="135" x2="135" y1="223.6563" y2="243.6563"/><polygon fill="#A80036" points="131,233.6563,135,243.6563,139,233.6563,135,237.6563" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e880566e064a50cb3402d08c9a5033b1]
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="968px" preserveAspectRatio="none" style="width:1007px;height:968px;" version="1.1" viewBox="0 0 1007 968" width="1007px" zoomAndPan="magnify"><defs><filter height="300%" id="fz5718sbngl5u" 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="458" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="246" x="379.5" y="47.6611">urtCoreSynchronizeNodes()</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="505.5" y="68.6143"/><path d="M188.75,72.8594 L188.75,213.9219 L983.75,213.9219 L983.75,82.8594 L973.75,72.8594 L188.75,72.8594 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M973.75,72.8594 L973.75,82.8594 L983.75,82.8594 L973.75,72.8594 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="519.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="523.75" y="89.4263"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="523.75" y="89.4263">node</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="564.75" y="89.4263">: urt_node_t*</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="652.75" x2="983.75" y1="85.4258" y2="85.4258"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="211" x="194.75" 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="194.75" y="120.1919">Must not be</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="32" x="274.75" y="120.1919">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="306.75" y="120.1919">.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="128.2578" y2="128.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="983.75" y1="130.2578" y2="130.2578"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="188.75" x2="515.25" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="519.25" y="144.8247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="45" x="519.25" y="144.8247">return</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="85" x="568.25" y="144.8247">: urt_status_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="657.25" x2="983.75" y1="140.8242" y2="140.8242"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="194.75" y="160.4575">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="247.75" y="160.4575">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="355.75" 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="194.75" y="175.5903">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="247.75" y="175.5903">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="345" x="379.75" 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="183" x="194.75" y="190.7231">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="381.75" y="190.7231">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="489.75" y="190.7231">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="598.75" y="190.7231">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="238" x="730.75" 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="194.75" y="205.856">In the latter case, the node thread must still wait for the control event (proceed) to synchronize.</text><ellipse cx="586.25" cy="243.9219" fill="#000000" filter="url(#fz5718sbngl5u)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="77" x="547.75" y="273.9219"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="57" x="557.75" y="295.0605">lock core</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="231" x="470.75" y="327.8906"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="211" x="480.75" y="349.0293">increment the node's stage value</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="251" x="460.75" y="381.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="231" x="470.75" y="402.998">access first node core's list of nodes</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="508.25" y="493.1479"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="518.25" y="514.2866">proceed to next node</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="447.25,435.8281,725.25,435.8281,737.25,448.6328,725.25,461.4375,447.25,461.4375,435.25,448.6328,447.25,435.8281" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="471.6479">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="111" x="447.25" y="446.0386">Current node is not</text><text fill="#000000" font-family="monospace" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="28" x="562.25" y="446.0386">NULL</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="278" x="447.25" 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="421.25" y="446.0386">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="283" x="444.75" y="617.519"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="21" x="454.75" y="638.6577">call</text><text fill="#000000" font-family="monospace" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="238" x="479.75" y="638.6577">urtCoreStopNodes(URT_STATUS_ERROR)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="539.75" y="671.4878"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="549.75" y="692.6265">unlock core</text><path d="M349.25,723.8901 L349.25,749.0229 A0,0 0 0 0 349.25,749.0229 L555.25,749.0229 A0,0 0 0 0 555.25,749.0229 L555.25,741.8901 L575.25,736.4565 L555.25,733.8901 L555.25,733.8901 L545.25,723.8901 L349.25,723.8901 A0,0 0 0 0 349.25,723.8901 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M545.25,723.8901 L545.25,733.8901 L555.25,733.8901 L545.25,723.8901 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="49" x="355.25" y="740.957">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="408.25" y="740.957">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="536.25" y="740.957">.</text><ellipse cx="586.25" cy="736.4565" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="586.25" cy="736.4565" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="364.25,569.1167,808.25,569.1167,820.25,581.1167,808.25,593.1167,364.25,593.1167,352.25,581.1167,364.25,569.1167" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="590.25" y="603.3271">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="444" x="364.25" y="584.9248">The stage of a node was equal to the argument or 1 less than the argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="820.25" y="578.5225">no</text><polygon fill="#FEFECE" filter="url(#fz5718sbngl5u)" points="461.75,791.0229,710.75,791.0229,722.75,803.0229,710.75,815.0229,461.75,815.0229,449.75,803.0229,461.75,791.0229" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="249" x="461.75" y="806.8311">Stages of all nodes are equal to argument?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="429.75" y="800.4287">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="722.75" y="800.4287">no</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="237" x="104.5" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="217" x="114.5" y="846.1616">broadcast control event (proceed)</text><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="176.5" y="878.9917"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="186.5" y="900.1304">unlock core</text><path d="M10,931.394 L10,956.5269 A0,0 0 0 0 10,956.5269 L192,956.5269 A0,0 0 0 0 192,956.5269 L192,949.394 L212,943.9604 L192,941.394 L192,941.394 L182,931.394 L10,931.394 A0,0 0 0 0 10,931.394 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M182,931.394 L182,941.394 L192,941.394 L182,931.394 " 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="948.4609">Returns</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="69" y="948.4609">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="173" y="948.4609">.</text><ellipse cx="223" cy="943.9604" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="223" cy="943.9604" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#fz5718sbngl5u)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="903" y="825.0229"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="913" y="846.1616">unlock core</text><path d="M361.5,878.9917 L361.5,904.1245 A0,0 0 0 0 361.5,904.1245 L918.5,904.1245 A0,0 0 0 0 918.5,904.1245 L918.5,896.9917 L938.5,891.5581 L918.5,888.9917 L918.5,888.9917 L908.5,878.9917 L361.5,878.9917 A0,0 0 0 0 361.5,878.9917 " fill="#FBFB77" filter="url(#fz5718sbngl5u)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M908.5,878.9917 L908.5,888.9917 L918.5,888.9917 L908.5,878.9917 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="183" x="367.5" y="896.0586">Returns a value greater than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="104" x="554.5" y="896.0586">URT_STATUS_OK</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="105" x="662.5" y="896.0586">but smaller than</text><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="128" x="771.5" y="896.0586">URT_STATUS_ERROR</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="4" x="899.5" y="896.0586">.</text><ellipse cx="949.5" cy="891.5581" fill="#FFFFFF" filter="url(#fz5718sbngl5u)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="949.5" cy="891.5581" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="213.9219" y2="233.9219"/><polygon fill="#A80036" points="582.25,223.9219,586.25,233.9219,590.25,223.9219,586.25,227.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="253.9219" y2="273.9219"/><polygon fill="#A80036" points="582.25,263.9219,586.25,273.9219,590.25,263.9219,586.25,267.9219" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="307.8906" y2="327.8906"/><polygon fill="#A80036" points="582.25,317.8906,586.25,327.8906,590.25,317.8906,586.25,321.8906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="361.8594" y2="381.8594"/><polygon fill="#A80036" points="582.25,371.8594,586.25,381.8594,590.25,371.8594,586.25,375.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="461.4375" y2="493.1479"/><polygon fill="#A80036" points="582.25,483.1479,586.25,493.1479,590.25,483.1479,586.25,487.1479" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="527.1167" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="749.25" y1="537.1167" y2="537.1167"/><polygon fill="#A80036" points="745.25,501.3276,749.25,491.3276,753.25,501.3276,749.25,497.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="749.25" y1="448.6328" y2="537.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="749.25" x2="737.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="747.25,444.6328,737.25,448.6328,747.25,452.6328,743.25,448.6328" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="435.25" x2="423.25" y1="448.6328" y2="448.6328"/><polygon fill="#A80036" points="419.25,487.3276,423.25,497.3276,427.25,487.3276,423.25,491.3276" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="423.25" y1="448.6328" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="423.25" x2="586.25" y1="549.1167" y2="549.1167"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="549.1167" y2="569.1167"/><polygon fill="#A80036" points="582.25,559.1167,586.25,569.1167,590.25,559.1167,586.25,563.1167" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="415.8281" y2="435.8281"/><polygon fill="#A80036" points="582.25,425.8281,586.25,435.8281,590.25,425.8281,586.25,429.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="651.4878" y2="671.4878"/><polygon fill="#A80036" points="582.25,661.4878,586.25,671.4878,590.25,661.4878,586.25,665.4878" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="705.4565" y2="725.4565"/><polygon fill="#A80036" points="582.25,715.4565,586.25,725.4565,590.25,715.4565,586.25,719.4565" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="593.1167" y2="617.519"/><polygon fill="#A80036" points="582.25,607.519,586.25,617.519,590.25,607.519,586.25,611.519" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="820.25" x2="832.25" y1="581.1167" y2="581.1167"/><polygon fill="#A80036" points="828.25,671.0542,832.25,681.0542,836.25,671.0542,832.25,675.0542" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="832.25" y1="581.1167" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="832.25" x2="586.25" y1="771.0229" y2="771.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="586.25" x2="586.25" y1="771.0229" y2="791.0229"/><polygon fill="#A80036" points="582.25,781.0229,586.25,791.0229,590.25,781.0229,586.25,785.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="858.9917" y2="878.9917"/><polygon fill="#A80036" points="219,868.9917,223,878.9917,227,868.9917,223,872.9917" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="912.9604" y2="932.9604"/><polygon fill="#A80036" points="219,922.9604,223,932.9604,227,922.9604,223,926.9604" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="858.9917" y2="880.5581"/><polygon fill="#A80036" points="945.5,870.5581,949.5,880.5581,953.5,870.5581,949.5,874.5581" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="449.75" x2="223" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="223" x2="223" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="219,815.0229,223,825.0229,227,815.0229,223,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="722.75" x2="949.5" y1="803.0229" y2="803.0229"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="949.5" x2="949.5" y1="803.0229" y2="825.0229"/><polygon fill="#A80036" points="945.5,815.0229,949.5,825.0229,953.5,815.0229,949.5,819.0229" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6736767e544a542ba9ec8cfbdd65c55e]
2 2
@startuml
3 3

  
4 4
title **µRtWare**\nurtCoreSynchronizeNodes()\n
......
6 6

  
7 7
note
8 8
  - - **node** : urt_node_t* - -
9
  Pointer to a node tp synchronize.
9
  Pointer to a node to synchronize.
10 10
  Must not be ""NULL"".
11
  - - **stage** : urt_nodestage_t - -
12
  Stage value to synchronize to.
13 11
  ====
14 12
  - - **return** : urt_status_t - -
13
  Returns ""URT_STATUS_OK"" if all nodes are synchronized and proceed.
14
  Returns ""URT_STATUS_ERROR"" if an exception occurred (faulty stage value detected).
15
  Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"" 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.
15 17
endnote
16 18

  
17 19

  
18 20
start
19
stop
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 (The stage of a node was equal to the argument or 1 less than the argument?) then (yes)
28
  :call ""urtCoreStopNodes(URT_STATUS_ERROR)"";
29
  :unlock core;
30
  stop
31
  note
32
    Returns ""URT_STATUS_ERROR"".
33
  endnote
34
else (no)
35
endif
36
if (Stages of all nodes are equal to argument?) then (yes)
37
  :broadcast control event (proceed);
38
  :unlock core;
39
  stop
40
  note
41
    Returns ""URT_STATUS_OK"".
42
  endnote
43
else (no)
44
  :unlock core;
45
  stop
46
  note
47
    Returns a value greater than ""URT_STATUS_OK"" but smaller than ""URT_STATUS_ERROR"".
48
  endnote
49
endif
20 50

  
21 51

  
22 52
@enduml

Also available in: Unified diff