Statistics
| Branch: | Revision:

urtware / doc / statediagrams / node / nodethread.svg @ 6ebd2388

History | View | Annotate | Download (9.566 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="500px" preserveAspectRatio="none" style="width:598px;height:500px;" version="1.1" viewBox="0 0 598 500" width="598px" zoomAndPan="magnify"><defs><filter height="300%" id="f2m2ok2ab1v62" 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="253.5" y="26.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="116" x="240" y="47.6611">Node Thread</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="0" x="301" y="68.6143"/><ellipse cx="453.5" cy="82.8594" fill="#000000" filter="url(#f2m2ok2ab1v62)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><path d="M236,117.2773 L236,142.4102 A0,0 0 0 0 236,142.4102 L351,142.4102 A0,0 0 0 0 351,142.4102 L351,135.2773 L371,129.8438 L351,127.2773 L351,127.2773 L341,117.2773 L236,117.2773 A0,0 0 0 0 236,117.2773 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M341,117.2773 L341,127.2773 L351,127.2773 L341,117.2773 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="242" y="134.3442">must not loop!</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="165" x="371" y="112.8594"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="145" x="381" y="133.998">execute setup callback</text><path d="M10,171.2461 L10,196.3789 A0,0 0 0 0 10,196.3789 L300,196.3789 A0,0 0 0 0 300,196.3789 L300,189.2461 L320,183.8125 L300,181.2461 L300,181.2461 L290,171.2461 L10,171.2461 A0,0 0 0 0 10,171.2461 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M290,171.2461 L290,181.2461 L300,181.2461 L290,171.2461 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="269" x="16" y="188.313">threads are woken simultaneously by core</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="267" x="320" y="166.8281"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="247" x="330" y="187.9668">suspend thread and all children (if any)</text><path d="M184,280.9253 L184,306.0581 A0,0 0 0 0 184,306.0581 L381,306.0581 A0,0 0 0 0 381,306.0581 L381,298.9253 L401,293.4917 L381,290.9253 L381,290.9253 L371,280.9253 L184,280.9253 A0,0 0 0 0 184,280.9253 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M371,280.9253 L371,290.9253 L381,290.9253 L371,280.9253 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="190" y="297.9922">maks specified by callbacks</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="105" x="401" y="276.5073"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="85" x="411" y="297.646">wait for event</text><path d="M240.5,343.9917 L240.5,369.1245 A0,0 0 0 0 240.5,369.1245 L355.5,369.1245 A0,0 0 0 0 355.5,369.1245 L355.5,361.9917 L375.5,356.5581 L355.5,353.9917 L355.5,353.9917 L345.5,343.9917 L240.5,343.9917 A0,0 0 0 0 240.5,343.9917 " fill="#FBFB77" filter="url(#f2m2ok2ab1v62)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M345.5,343.9917 L345.5,353.9917 L355.5,353.9917 L345.5,343.9917 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="94" x="246.5" y="361.0586">must not loop!</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="156" x="375.5" y="339.5737"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="385.5" y="360.7124">execute loop callback</text><polygon fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" points="385.5,220.7969,521.5,220.7969,533.5,232.7969,521.5,244.7969,385.5,244.7969,373.5,232.7969,385.5,220.7969" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="457.5" y="255.0073">no</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="385.5" y="236.605">Termination requested?</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="353.5" y="230.2026">yes</text><rect fill="#FEFECE" filter="url(#f2m2ok2ab1v62)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="127" x="390" y="415.5425"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="107" x="400" y="436.6812">terminate thread</text><ellipse cx="453.5" cy="479.5112" fill="none" filter="url(#f2m2ok2ab1v62)" rx="10" ry="10" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="454" cy="480.0112" fill="#000000" filter="url(#f2m2ok2ab1v62)" rx="6" ry="6" style="stroke: none; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="92.8594" y2="112.8594"/><polygon fill="#A80036" points="449.5,102.8594,453.5,112.8594,457.5,102.8594,453.5,106.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="146.8281" y2="166.8281"/><polygon fill="#A80036" points="449.5,156.8281,453.5,166.8281,457.5,156.8281,453.5,160.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="310.4761" y2="339.5737"/><polygon fill="#A80036" points="449.5,329.5737,453.5,339.5737,457.5,329.5737,453.5,333.5737" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="244.7969" y2="276.5073"/><polygon fill="#A80036" points="449.5,266.5073,453.5,276.5073,457.5,266.5073,453.5,270.5073" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="373.5425" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="545.5" y1="383.5425" y2="383.5425"/><polygon fill="#A80036" points="541.5,319.5737,545.5,309.5737,549.5,319.5737,545.5,315.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="545.5" x2="545.5" y1="232.7969" y2="383.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="545.5" x2="533.5" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="543.5,228.7969,533.5,232.7969,543.5,236.7969,539.5,232.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="373.5" x2="172" y1="232.7969" y2="232.7969"/><polygon fill="#A80036" points="168,305.5737,172,315.5737,176,305.5737,172,309.5737" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="172" y1="232.7969" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="172" x2="453.5" y1="395.5425" y2="395.5425"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="395.5425" y2="415.5425"/><polygon fill="#A80036" points="449.5,405.5425,453.5,415.5425,457.5,405.5425,453.5,409.5425" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="200.7969" y2="220.7969"/><polygon fill="#A80036" points="449.5,210.7969,453.5,220.7969,457.5,210.7969,453.5,214.7969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="453.5" x2="453.5" y1="449.5112" y2="469.5112"/><polygon fill="#A80036" points="449.5,459.5112,453.5,469.5112,457.5,459.5112,453.5,463.5112" style="stroke: #A80036; stroke-width: 1.0;"/><!--
2
@startuml
3

    
4
title **µRtWare**\nNode Thread\n
5

    
6

    
7

    
8
start
9
:execute setup callback;
10
note
11
  must not loop!
12
endnote
13
:suspend thread and all children (if any);
14
note
15
  threads are woken simultaneously by core
16
endnote
17
while (Termination requested?) is (no)
18
  :wait for event;
19
  note
20
    maks specified by callbacks
21
  endnote
22
  :execute loop callback;
23
  note
24
    must not loop!
25
  endnote
26
endwhile (yes)
27
:terminate thread;
28
stop
29

    
30
@enduml
31

    
32
PlantUML version 1.2018.11(Sat Sep 22 18:43:53 CEST 2018)
33
(GPL source distribution)
34
Java Runtime: OpenJDK Runtime Environment
35
JVM: OpenJDK 64-Bit Server VM
36
Java Version: 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13
37
Operating System: Linux
38
OS Version: 4.15.0-36-generic
39
Default Encoding: UTF-8
40
Language: en
41
Country: US
42
--></g></svg>