Skip to content

Instantly share code, notes, and snippets.

@lovettchris
Last active October 28, 2019 19:15
Show Gist options
  • Save lovettchris/39bba45067ed233e98803c6d7fc14c40 to your computer and use it in GitHub Desktop.
Save lovettchris/39bba45067ed233e98803c6d7fc14c40 to your computer and use it in GitHub Desktop.
A DGML graph generated by CoyoteTester
<DirectedGraph xmlns='http://schemas.microsoft.com/vs/2009/dgml'>
<Nodes>
<Node Id='Coyote.Examples.FailureDetector.Driver' Label='Coyote.Examples.FailureDetector.Driver' Group='Expanded'/>
<Node Id='Coyote.Examples.FailureDetector.Driver.Init' Label='Init'/>
<Node Id='Coyote.Examples.FailureDetector.Driver.InjectFailures' Label='InjectFailures'/>
<Node Id='Coyote.Examples.FailureDetector.FailureDetector' Label='Coyote.Examples.FailureDetector.FailureDetector' Group='Expanded'/>
<Node Id='Coyote.Examples.FailureDetector.FailureDetector.Init' Label='Init'/>
<Node Id='Coyote.Examples.FailureDetector.FailureDetector.Reset' Label='Reset'/>
<Node Id='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='SendPing'/>
<Node Id='Coyote.Examples.FailureDetector.Liveness' Label='Coyote.Examples.FailureDetector.Liveness' Group='Expanded'/>
<Node Id='Coyote.Examples.FailureDetector.Liveness.Done' Label='Done'/>
<Node Id='Coyote.Examples.FailureDetector.Liveness.Init' Label='Init'/>
<Node Id='Coyote.Examples.FailureDetector.Liveness.Wait' Label='Wait'/>
<Node Id='Coyote.Examples.FailureDetector.Liveness.Wait[hot]' Label='Wait[hot]'/>
<Node Id='Coyote.Examples.FailureDetector.Node' Label='Coyote.Examples.FailureDetector.Node' Group='Expanded'/>
<Node Id='Coyote.Examples.FailureDetector.Node.Halt' Label='Halt'/>
<Node Id='Coyote.Examples.FailureDetector.Node.Init' Label='Init'/>
<Node Id='Coyote.Examples.FailureDetector.Node.WaitPing' Label='WaitPing'/>
<Node Id='Coyote.Examples.FailureDetector.Safety' Label='Coyote.Examples.FailureDetector.Safety'/>
<Node Id='Coyote.Examples.FailureDetector.Timer' Label='Coyote.Examples.FailureDetector.Timer' Group='Expanded'/>
<Node Id='Coyote.Examples.FailureDetector.Timer.Init' Label='Init'/>
<Node Id='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Label='WaitForCancel'/>
<Node Id='Coyote.Examples.FailureDetector.Timer.WaitForReq' Label='WaitForReq'/>
</Nodes>
<Links>
<Link Source='Coyote.Examples.FailureDetector.Driver.Init' Target='Coyote.Examples.FailureDetector.Driver.Init' Label='goto' EventId='Microsoft.Coyote.Machines.GotoStateEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Driver.Init' Target='Coyote.Examples.FailureDetector.Driver.InjectFailures' Label='goto'/>
<Link Source='Coyote.Examples.FailureDetector.Driver.Init' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='RegisterClient' EventId='Coyote.Examples.FailureDetector.Driver+RegisterClient'/>
<Link Source='Coyote.Examples.FailureDetector.Driver.InjectFailures' Target='Coyote.Examples.FailureDetector.Node.WaitPing' Label='Microsoft.Coyote.Machines.Halt' EventId='Microsoft.Coyote.Machines.Halt'/>
<Link Source='Coyote.Examples.FailureDetector.Driver' Target='Coyote.Examples.FailureDetector.Driver.Init' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Driver' Target='Coyote.Examples.FailureDetector.Driver.InjectFailures' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.Init' Target='Coyote.Examples.FailureDetector.FailureDetector.Init' Label='Unit' EventId='Coyote.Examples.FailureDetector.FailureDetector+Unit'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.Init' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='Microsoft.Coyote.Machines.Halt(push)' EventId='Microsoft.Coyote.Machines.Halt'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.Reset' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='TimeoutEvent(goto)' EventId='Coyote.Examples.FailureDetector.Timer+TimeoutEvent'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.Reset' Target='Coyote.Examples.FailureDetector.Timer.WaitForReq' Label='StartTimerEvent' EventId='Coyote.Examples.FailureDetector.Timer+StartTimerEvent'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Target='Coyote.Examples.FailureDetector.Driver.InjectFailures' Label='NodeFailed' EventId='Coyote.Examples.FailureDetector.FailureDetector+NodeFailed'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Target='Coyote.Examples.FailureDetector.FailureDetector.Reset' Label='TimeoutEvent(goto)' EventId='Coyote.Examples.FailureDetector.Timer+TimeoutEvent'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='goto' EventId='Coyote.Examples.FailureDetector.FailureDetector+RoundDone'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Target='Coyote.Examples.FailureDetector.Timer.WaitForReq' Label='StartTimerEvent' EventId='Coyote.Examples.FailureDetector.Timer+StartTimerEvent'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector' Target='Coyote.Examples.FailureDetector.FailureDetector.Init' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector' Target='Coyote.Examples.FailureDetector.FailureDetector.Reset' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.FailureDetector' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness.Init' Target='Coyote.Examples.FailureDetector.Liveness.Init' Label='goto' EventId='Microsoft.Coyote.Machines.GotoStateEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness.Init' Target='Coyote.Examples.FailureDetector.Liveness.Wait[hot]' Label='RegisterNodes' EventId='Coyote.Examples.FailureDetector.Liveness+RegisterNodes'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness.Wait' Target='Coyote.Examples.FailureDetector.Liveness.Done' Label='NodeFailed' EventId='Coyote.Examples.FailureDetector.FailureDetector+NodeFailed'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness.Wait' Target='Coyote.Examples.FailureDetector.Liveness.Wait[hot]' Label='goto' EventId='Microsoft.Coyote.Machines.GotoStateEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness' Target='Coyote.Examples.FailureDetector.Liveness.Done' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness' Target='Coyote.Examples.FailureDetector.Liveness.Init' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness' Target='Coyote.Examples.FailureDetector.Liveness.Wait' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Liveness' Target='Coyote.Examples.FailureDetector.Liveness.Wait[hot]' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Node.Halt' Target='Coyote.Examples.FailureDetector.Node.Halt' Label='halt'/>
<Link Source='Coyote.Examples.FailureDetector.Node.Init' Target='Coyote.Examples.FailureDetector.Node.Halt' Label='halt'/>
<Link Source='Coyote.Examples.FailureDetector.Node' Target='Coyote.Examples.FailureDetector.Node.Halt' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Node' Target='Coyote.Examples.FailureDetector.Node.Init' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Node' Target='Coyote.Examples.FailureDetector.Node.WaitPing' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.Init' Target='Coyote.Examples.FailureDetector.Timer.Init' Label='goto' EventId='Microsoft.Coyote.Machines.GotoStateEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.Init' Target='Coyote.Examples.FailureDetector.Timer.WaitForReq' Label='RegisterClient(goto)' EventId='Coyote.Examples.FailureDetector.Driver+RegisterClient'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Target='Coyote.Examples.FailureDetector.FailureDetector.Reset' Label='TimeoutEvent' EventId='Coyote.Examples.FailureDetector.Timer+TimeoutEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Target='Coyote.Examples.FailureDetector.FailureDetector.SendPing' Label='TimeoutEvent' EventId='Coyote.Examples.FailureDetector.Timer+TimeoutEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Target='Coyote.Examples.FailureDetector.Timer.WaitForReq' Label='goto'/>
<Link Source='Coyote.Examples.FailureDetector.Timer.WaitForReq' Target='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Label='StartTimerEvent(goto)' EventId='Coyote.Examples.FailureDetector.Timer+StartTimerEvent'/>
<Link Source='Coyote.Examples.FailureDetector.Timer' Target='Coyote.Examples.FailureDetector.Timer.Init' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Timer' Target='Coyote.Examples.FailureDetector.Timer.WaitForCancel' Category='Contains'/>
<Link Source='Coyote.Examples.FailureDetector.Timer' Target='Coyote.Examples.FailureDetector.Timer.WaitForReq' Category='Contains'/>
</Links>
</DirectedGraph>
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="utf-8"?>
<svg stroke-linecap="round" font-size="12" font-family="Segoe UI" width="1041.098892919857" height="720.85500000000047" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
<defs />
<rect width="1041.098892919857" height="720.85500000000047" fill="#1E1E1E" />
<g transform="translate(19.9999999999999,20)">
<path d="M 263.369607845573,157.88 C 261.63946877285,165.370589450268 259.325947229385,173.130133178073 256.429043215179,181.158631183414" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 253.221096017133,189.5675 L 260.522756822333,181.650066736259 C 257.674801558377,181.633882620162 255.183284871981,180.683379746667 253.048206763146,178.798558115773 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<path d="M 360.674280081328,157.88 L 433.886056263896,219.71995825099" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 440.761553252006,225.5275 L 435.703241820333,216.018899395273 C 434.746432819305,218.701366104603 433.025679708487,220.738550397376 430.54098248788,222.130452273593 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<path d="M 217.895201486488,419.3675 C 218.442225779355,426.93401511962 218.597385685687,434.50053023924 218.360681205484,442.06704535886" fill="none" stroke="#A0A0A0" stroke-width="1.5" />
<path d="M 217.895201486488,451.055 L 222.407047681435,441.275263607175 C 219.692230041209,442.136005317229 217.029132369759,441.99808540049 214.417754667088,440.861503856957 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<path d="M 195.48675831724,189.5675 C 197.66697671908,181.457462045243 200.415882991584,173.609603780602 203.733477134751,166.023925206077" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 207.564466855152,157.88 L 199.68828929645,165.226143686574 C 202.526969696814,165.456371173425 204.939984572688,166.591479238729 206.927333924074,168.631467882486 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<path d="M 160.540631846845,451.055 C 159.993607553978,443.488484880381 159.838447647646,435.921969760761 160.07515212785,428.355454641141" fill="none" stroke="#A0A0A0" stroke-width="1.5" />
<path d="M 160.540631846845,419.3675 L 156.028785651899,429.147236392825 C 158.743603292125,428.286494682771 161.406700963574,428.424414599511 164.018078666246,429.560996143043 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<rect x="143.74958333333342" rx="5" ry="5" width="246.93666666666667" height="157.88000000000011" fill="#EEEEEE" stroke="#A5A6A9" stroke-width="1" />
<text x="163.74958333333342" y="17.950000000000003" fill="#000000">Coyote.Examples.FailureDetector.Driver</text>
<rect x="148.74958333333342" y="27.96" width="236.93666666666667" height="124.9200000000001" fill="#1E1E1E" stroke="#A5A6A9" stroke-width="1" />
<path d="M 266.944583333333,46.5588319401044 C 264.103416815467,46.5129439800348 261.020083482134,46.49 257.694583333333,46.49 C 234.86125,46.49 223.444583333333,48.6533333333333 223.444583333333,52.98 C 223.444583333333,57.3066666666666 234.86125,59.47 257.694583333333,59.47 C 257.778157242265,59.47 257.86157820379,59.4699855090705 257.944846217908,59.4699565272115" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 266.944583333333,59.4011680598957 L 256.914302775165,55.4777165278353 C 257.934655333861,58.1366621397411 257.955037101955,60.8032509146819 256.975448079446,63.4774828526578 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="198.25125000000008" y="57.95" fill="#A0A0A0">goto</text>
<path d="M 291.944583333333,65.96 L 291.944583333333,102.92" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 291.944583333333,111.92 L 295.944583333333,101.92 C 293.277916666667,102.92 290.61125,102.92 287.944583333333,101.92 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="266.75125000000008" y="93.910000000000039" fill="#A0A0A0">goto</text>
<rect x="266.94458333333341" y="40" rx="3" ry="3" width="50" height="25.960000000000008" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="282.94458333333341" y="57.95" fill="#3D3D3D">Init</text>
<rect x="247.7045833333334" y="111.92000000000007" rx="3" ry="3" width="88.480000000000018" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="257.7045833333334" y="129.87000000000006" fill="#3D3D3D">InjectFailures</text>
<rect x="5.6843418860808015E-14" y="189.56750000000011" rx="5" ry="5" width="378.43583333333333" height="229.80000000000018" fill="#EEEEEE" stroke="#A5A6A9" stroke-width="1" />
<text x="61.000000000000057" y="207.5175000000001" fill="#000000">Coyote.Examples.FailureDetector.FailureDetector</text>
<rect x="5.0000000000000568" y="217.52750000000012" width="368.43583333333333" height="196.84000000000017" fill="#1E1E1E" stroke="#A5A6A9" stroke-width="1" />
<path d="M 195.666666666667,236.126331940104 C 192.825500148801,236.080443980035 189.742166815467,236.0575 186.416666666667,236.0575 C 163.583333333333,236.0575 152.166666666667,238.220833333333 152.166666666667,242.5475 C 152.166666666667,246.874166666667 163.583333333333,249.0375 186.416666666667,249.0375 C 186.500240575599,249.0375 186.583661537124,249.037485509071 186.666929551241,249.037456527212" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 195.666666666667,248.968668059896 L 185.636386108498,245.045216527835 C 186.656738667195,247.704162139741 186.677120435288,250.370750914682 185.697531412779,253.044982852658 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="130.16000000000003" y="247.5175000000001" fill="#A0A0A0">Unit</text>
<path d="M 220.666666666667,255.5275 L 220.666666666667,292.4875" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 220.666666666667,301.4875 L 224.666666666667,291.4875 C 222,292.4875 219.333333333333,292.4875 216.666666666667,291.4875 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="20.000000000000057" y="283.47750000000013" fill="#A0A0A0">Microsoft.Coyote.Machines.Halt(push)</text>
<path d="M 205.145532072673,373.4075 L 199.166666666667,368.4075 C 185.145708215247,356.682065908999 184.840141105439,344.956631817997 198.249965337245,333.231197726995" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 205.145532072673,327.4475 L 194.913258932421,330.809134480915 C 197.393121229542,332.20963228471 199.106809444948,334.252763169281 200.054323578639,336.93852713463 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="82.840000000000089" y="355.39750000000021" fill="#A0A0A0">TimeoutEvent(goto)</text>
<path d="M 236.160127919911,327.4475 L 242.128333333333,332.4475 C 256.121823777506,344.170865295623 256.429207416519,355.894230591246 243.050484250373,367.617595886869" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 236.160127919911,373.4075 L 246.38937011515,370.036653798948 C 243.908247822689,368.638389417308 242.192720678058,366.59680235643 241.242788681255,363.911892616315 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="253.35916666666674" y="355.39750000000021" fill="#A0A0A0">TimeoutEvent(goto)</text>
<path d="M 185.671666666667,307.987577792561 C 184.294796164719,307.980859264187 182.877296164719,307.9775 181.419166666667,307.9775 C 155.254166666667,307.9775 142.171666666667,310.140833333333 142.171666666667,314.4675 C 142.171666666667,318.524052184165 153.671670954844,320.678953872623 176.671679531199,320.932205065373" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 185.671666666667,320.947422207439 L 175.678444134843,316.93051998938 C 176.673933922616,319.598873637897 176.669425139782,322.26553649285 175.66491778634,324.930508554241 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="116.97833333333341" y="319.43750000000017" fill="#A0A0A0">goto</text>
<rect x="195.66666666666671" y="229.56750000000014" rx="3" ry="3" width="49.999999999999972" height="25.960000000000008" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="211.66666666666671" y="247.51750000000013" fill="#3D3D3D">Init</text>
<rect x="195.66666666666674" y="373.40750000000025" rx="3" ry="3" width="50" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="205.66666666666674" y="391.35750000000024" fill="#3D3D3D">Reset</text>
<rect x="185.67166666666674" y="301.48750000000018" rx="3" ry="3" width="69.990000000000009" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="195.67166666666674" y="319.43750000000017" fill="#3D3D3D">SendPing</text>
<rect x="689.55458333333354" rx="5" ry="5" width="311.54430958652358" height="157.88000000000011" fill="#EEEEEE" stroke="#A5A6A9" stroke-width="1" />
<text x="735.55458333333354" y="17.950000000000003" fill="#000000">Coyote.Examples.FailureDetector.Liveness</text>
<rect x="694.55458333333354" y="27.96" width="301.54430958652358" height="124.9200000000001" fill="#1E1E1E" stroke="#A5A6A9" stroke-width="1" />
<path d="M 923.968892919857,46.5588319401044 C 921.127726401991,46.5129439800348 918.044393068658,46.49 914.718892919857,46.49 C 891.885559586524,46.49 880.468892919857,48.6533333333333 880.468892919857,52.98 C 880.468892919857,57.3066666666666 891.885559586524,59.47 914.718892919857,59.47 C 914.802466828789,59.47 914.885887790314,59.4699855090705 914.969155804432,59.4699565272115" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 923.968892919857,59.4011680598957 L 913.938612361689,55.4777165278353 C 914.958964920385,58.1366621397411 914.979346688478,60.8032509146819 913.999757665969,63.4774828526578 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="855.27555958652385" y="57.95" fill="#A0A0A0">goto</text>
<path d="M 932.725845088934,65.96 L 882.242807616951,106.301556166501" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 875.21194075078,111.92 L 885.521101194747,108.802114347743 C 883.075169666358,107.3431660726 881.410445567543,105.259946260401 880.526928898303,102.552454911147 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="903.96889291985713" y="93.910000000000039" fill="#A0A0A0">RegisterNodes</text>
<path d="M 788.779237747443,65.96 L 784.468892919857,70.96 C 775.2843988219,81.6140131536304 770.181594974043,92.2680263072607 769.160481376287,102.922039460891" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 768.968892919857,111.92 L 773.180862555495,102.007416492737 C 770.493512567266,102.950422935918 767.827450185308,102.893655985864 765.18267540962,101.837115642577 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="709.55458333333365" y="94.061465744666023" fill="#A0A0A0">NodeFailed</text>
<path d="M 811.880461329201,65.96 L 816.468892919857,70.96 C 826.769430674614,82.1844647776081 836.046955280253,93.4089295552162 844.301466736772,104.633394332824" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 849.584020839768,111.92 L 846.953007688517,101.475969657362 C 845.38096387265,103.850793724973 843.221969600894,105.415994940676 840.47602487325,106.171573304469 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="807.77555958652385" y="93.910000000000039" fill="#A0A0A0">goto</text>
<rect x="743.96889291985713" y="111.92000000000007" rx="3" ry="3" width="50" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="753.96889291985713" y="129.87000000000006" fill="#3D3D3D">Done</text>
<rect x="923.96889291985713" y="40" rx="3" ry="3" width="50" height="25.960000000000008" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="939.96889291985713" y="57.95" fill="#3D3D3D">Init</text>
<rect x="774.96889291985713" y="40" rx="3" ry="3" width="50" height="25.960000000000008" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="787.96889291985713" y="57.95" fill="#3D3D3D">Wait</text>
<rect x="824.49555958652377" y="111.92000000000007" rx="3" ry="3" width="68.946666666666715" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="834.49555958652377" y="129.87000000000006" fill="#3D3D3D">Wait[hot]</text>
<rect x="408.88125000000008" y="225.52750000000015" rx="5" ry="5" width="250.67333333333323" height="157.88000000000011" fill="#EEEEEE" stroke="#A5A6A9" stroke-width="1" />
<text x="431.88125000000008" y="243.47750000000013" fill="#000000">Coyote.Examples.FailureDetector.Node</text>
<rect x="413.88125000000008" y="253.48750000000015" width="240.67333333333323" height="124.9200000000001" fill="#1E1E1E" stroke="#A5A6A9" stroke-width="1" />
<path d="M 492.25125,344.006331940105 C 489.410083482134,343.960443980035 486.326750148801,343.9375 483.00125,343.9375 C 460.167916666667,343.9375 448.75125,346.100833333334 448.75125,350.4275 C 448.75125,354.754166666667 460.167916666667,356.9175 483.00125,356.9175 C 483.084823908932,356.9175 483.168244870457,356.917485509071 483.251512884575,356.917456527212" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 492.25125,356.848668059896 L 482.220969441832,352.925216527836 C 483.241322000528,355.584162139741 483.261703768621,358.250750914682 482.282114746112,360.924982852658 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="428.88125000000008" y="355.39750000000021" fill="#A0A0A0">halt</text>
<path d="M 517.25125,291.4875 L 517.25125,328.4475" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 517.25125,337.4475 L 521.25125,327.4475 C 518.584583333333,328.4475 515.917916666667,328.4475 513.25125,327.4475 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="497.38125000000019" y="319.43750000000017" fill="#A0A0A0">halt</text>
<rect x="492.25125" y="337.44750000000022" rx="3" ry="3" width="50" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="506.25125" y="355.39750000000021" fill="#3D3D3D">Halt</text>
<rect x="492.25125" y="265.52750000000015" rx="3" ry="3" width="50" height="25.95999999999998" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="508.25125" y="283.47750000000013" fill="#3D3D3D">Init</text>
<rect x="572.25125" y="265.52750000000015" rx="3" ry="3" width="67.303333333333285" height="25.95999999999998" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="582.25125" y="283.47750000000013" fill="#3D3D3D">WaitPing</text>
<rect x="42.499166666666838" y="451.05500000000029" rx="5" ry="5" width="293.43750000000006" height="229.80000000000018" fill="#EEEEEE" stroke="#A5A6A9" stroke-width="1" />
<text x="86.499166666666838" y="469.00500000000028" fill="#000000">Coyote.Examples.FailureDetector.Timer</text>
<rect x="47.499166666666838" y="479.01500000000027" width="283.43750000000006" height="196.84000000000017" fill="#1E1E1E" stroke="#A5A6A9" stroke-width="1" />
<path d="M 142.995833333334,497.613831940105 C 140.154666815468,497.567943980035 137.071333482134,497.545 133.745833333334,497.545 C 110.9125,497.545 99.4958333333335,499.708333333334 99.4958333333335,504.035 C 99.4958333333335,508.361666666667 110.9125,510.525 133.745833333334,510.525 C 133.829407242265,510.525 133.91282820379,510.524985509071 133.996096217908,510.524956527212" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 142.995833333334,510.456168059896 L 132.965552775165,506.532716527836 C 133.985905333861,509.191662139741 134.006287101955,511.858250914682 133.026698079446,514.532482852658 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="74.302500000000236" y="509.00500000000028" fill="#A0A0A0">goto</text>
<path d="M 167.995833333334,517.015 L 167.995833333334,553.975" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 167.995833333334,562.975 L 171.995833333334,552.975 C 169.329166666667,553.975 166.6625,553.975 163.995833333334,552.975 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="62.499166666666838" y="544.96500000000037" fill="#A0A0A0">RegisterClient(goto)</text>
<path d="M 152.47469873934,634.895 L 146.495833333334,629.895 C 132.474874881913,618.169565908999 132.169307772106,606.444131817997 145.579132003912,594.718697726996" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 152.47469873934,588.935 L 142.242425599088,592.296634480916 C 144.722287896209,593.69713228471 146.435976111615,595.740263169281 147.383490245306,598.42602713463 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="110.05250000000024" y="616.88500000000045" fill="#A0A0A0">goto</text>
<path d="M 183.241437708565,588.935 L 189.114166666667,593.935 C 202.861871410202,605.639698821976 203.185264959366,617.344397643952 190.084347314159,629.049096465928" fill="none" stroke="#A0A0A0" stroke-width="1" />
<path d="M 183.241437708565,634.895 L 193.442849952146,631.440844786851 C 190.950407096984,630.062860851942 189.218287531333,628.035332079915 188.246491255193,625.358258470768 z" fill="#A0A0A0" stroke="#A0A0A0" stroke-width="1" stroke-linejoin="round" />
<text x="200.17333333333357" y="616.88500000000045" fill="#A0A0A0">StartTimerEvent(goto)</text>
<rect x="142.99583333333354" y="491.05500000000029" rx="3" ry="3" width="50" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="158.99583333333354" y="509.00500000000028" fill="#3D3D3D">Init</text>
<rect x="120.02750000000023" y="634.89500000000044" rx="3" ry="3" width="95.936666666666667" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="130.02750000000023" y="652.84500000000048" fill="#3D3D3D">WaitForCancel</text>
<rect x="127.46916666666689" y="562.97500000000036" rx="3" ry="3" width="81.053333333333342" height="25.960000000000036" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="137.46916666666689" y="580.92500000000041" fill="#3D3D3D">WaitForReq</text>
<rect x="689.55458333333354" y="187.88000000000011" rx="3" ry="3" width="227.63333333333333" height="25.960000000000008" fill="#FFFFFF" stroke="#A5A6A9" stroke-width="1" />
<text x="699.55458333333354" y="205.8300000000001" fill="#3D3D3D">Coyote.Examples.FailureDetector.Safety</text>
</g>
</svg>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment