Live and replay demo for a runtime dashboard. Added docs with svg files. Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
258 lines
20 KiB
XML
258 lines
20 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
<!-- Generated by graphviz version 14.1.1 (20251213.1925)
|
|
-->
|
|
<!-- Title: tick_cycle Pages: 1 -->
|
|
<svg width="1100pt" height="1053pt"
|
|
viewBox="0.00 0.00 1100.00 1053.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1049.2)">
|
|
<title>tick_cycle</title>
|
|
<polygon fill="white" stroke="none" points="-4,4 -4,-1049.2 1096.05,-1049.2 1096.05,4 -4,4"/>
|
|
<g id="clust1" class="cluster">
|
|
<title>cluster_backoff</title>
|
|
<path fill="#f5f5f5" stroke="#888888" d="M20,-874.4C20,-874.4 385,-874.4 385,-874.4 391,-874.4 397,-880.4 397,-886.4 397,-886.4 397,-1025.2 397,-1025.2 397,-1031.2 391,-1037.2 385,-1037.2 385,-1037.2 20,-1037.2 20,-1037.2 14,-1037.2 8,-1031.2 8,-1025.2 8,-1025.2 8,-886.4 8,-886.4 8,-880.4 14,-874.4 20,-874.4"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="62.96" y="-1024.2" font-family="Helvetica,sans-Serif" font-size="10.00">Worker::run() backoff</text>
|
|
</g>
|
|
<!-- start -->
|
|
<g id="node1" class="node">
|
|
<title>start</title>
|
|
<ellipse fill="#333333" stroke="black" cx="519" cy="-900.4" rx="10.8" ry="10.8"/>
|
|
</g>
|
|
<!-- phase1 -->
|
|
<g id="node3" class="node">
|
|
<title>phase1</title>
|
|
<path fill="#d6eaf8" stroke="#2980b9" d="M633.78,-837.4C633.78,-837.4 492.22,-837.4 492.22,-837.4 486.22,-837.4 480.22,-831.4 480.22,-825.4 480.22,-825.4 480.22,-802.6 480.22,-802.6 480.22,-796.6 486.22,-790.6 492.22,-790.6 492.22,-790.6 633.78,-790.6 633.78,-790.6 639.78,-790.6 645.78,-796.6 645.78,-802.6 645.78,-802.6 645.78,-825.4 645.78,-825.4 645.78,-831.4 639.78,-837.4 633.78,-837.4"/>
|
|
<text xml:space="preserve" text-anchor="start" x="493.81" y="-821.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 1: Drain Spawn Queue</text>
|
|
<text xml:space="preserve" text-anchor="start" x="492.22" y="-801.3" font-family="Helvetica,sans-Serif" font-size="9.00">spawn_rx → pool.insert(addr, actor)</text>
|
|
</g>
|
|
<!-- start->phase1 -->
|
|
<g id="edge1" class="edge">
|
|
<title>start->phase1</title>
|
|
<path fill="none" stroke="black" d="M519,-889.1C519,-889.1 519,-849.2 519,-849.2"/>
|
|
<polygon fill="black" stroke="black" points="522.5,-849.2 519,-839.2 515.5,-849.2 522.5,-849.2"/>
|
|
</g>
|
|
<!-- end -->
|
|
<g id="node2" class="node">
|
|
<title>end</title>
|
|
<ellipse fill="#333333" stroke="black" cx="447" cy="-14.8" rx="10.8" ry="10.8"/>
|
|
<ellipse fill="none" stroke="black" cx="447" cy="-14.8" rx="14.8" ry="14.8"/>
|
|
</g>
|
|
<!-- idle_check -->
|
|
<g id="node13" class="node">
|
|
<title>idle_check</title>
|
|
<polygon fill="#fef9e7" stroke="black" points="302,-1009.2 249.63,-991.2 302,-973.2 354.37,-991.2 302,-1009.2"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="302" y="-988.2" font-family="Helvetica,sans-Serif" font-size="10.00">did_work?</text>
|
|
</g>
|
|
<!-- end->idle_check -->
|
|
<g id="edge17" class="edge">
|
|
<title>end->idle_check</title>
|
|
<path fill="none" stroke="#888888" stroke-dasharray="5,2" d="M442.07,-29.27C442.07,-149.96 442.07,-985 442.07,-985 442.07,-985 349.22,-985 349.22,-985"/>
|
|
<polygon fill="#888888" stroke="#888888" points="349.22,-981.5 339.22,-985 349.22,-988.5 349.22,-981.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="436.26" y="-527.7" font-family="Helvetica,sans-Serif" font-size="9.00">run() loop</text>
|
|
</g>
|
|
<!-- phase2 -->
|
|
<g id="node4" class="node">
|
|
<title>phase2</title>
|
|
<path fill="#d5f5e3" stroke="#27ae60" d="M652.54,-735.8C652.54,-735.8 491.46,-735.8 491.46,-735.8 485.46,-735.8 479.46,-729.8 479.46,-723.8 479.46,-723.8 479.46,-701 479.46,-701 479.46,-695 485.46,-689 491.46,-689 491.46,-689 652.54,-689 652.54,-689 658.54,-689 664.54,-695 664.54,-701 664.54,-701 664.54,-723.8 664.54,-723.8 664.54,-729.8 658.54,-735.8 652.54,-735.8"/>
|
|
<text xml:space="preserve" text-anchor="start" x="498.92" y="-719.8" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 2: Drain Transfer Queue</text>
|
|
<text xml:space="preserve" text-anchor="start" x="491.46" y="-699.7" font-family="Helvetica,sans-Serif" font-size="9.00">transfer_rx → pool.deliver(dest, payload)</text>
|
|
</g>
|
|
<!-- phase1->phase2 -->
|
|
<g id="edge2" class="edge">
|
|
<title>phase1->phase2</title>
|
|
<path fill="none" stroke="black" d="M563,-790.18C563,-790.18 563,-747.58 563,-747.58"/>
|
|
<polygon fill="black" stroke="black" points="566.5,-747.58 563,-737.58 559.5,-747.59 566.5,-747.58"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="639.28" y="-760.5" font-family="Helvetica,sans-Serif" font-size="9.00">(ActorAddress, Box<dyn AnyActor>)</text>
|
|
</g>
|
|
<!-- phase3 -->
|
|
<g id="node5" class="node">
|
|
<title>phase3</title>
|
|
<path fill="#fdebd0" stroke="#e67e22" d="M691.55,-634.2C691.55,-634.2 484.45,-634.2 484.45,-634.2 478.45,-634.2 472.45,-628.2 472.45,-622.2 472.45,-622.2 472.45,-580.6 472.45,-580.6 472.45,-574.6 478.45,-568.6 484.45,-568.6 484.45,-568.6 691.55,-568.6 691.55,-568.6 697.55,-568.6 703.55,-574.6 703.55,-580.6 703.55,-580.6 703.55,-622.2 703.55,-622.2 703.55,-628.2 697.55,-634.2 691.55,-634.2"/>
|
|
<text xml:space="preserve" text-anchor="start" x="531.03" y="-618.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 3: Tick All Actors</text>
|
|
<text xml:space="preserve" text-anchor="start" x="484.45" y="-598.1" font-family="Helvetica,sans-Serif" font-size="9.00">for each actor: pop mailbox → handle_any(ctx, msg)</text>
|
|
<text xml:space="preserve" text-anchor="start" x="513.45" y="-579.3" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#c0392b">catch_unwind wraps each handle call</text>
|
|
</g>
|
|
<!-- phase2->phase3 -->
|
|
<g id="edge3" class="edge">
|
|
<title>phase2->phase3</title>
|
|
<path fill="none" stroke="black" d="M572,-688.59C572,-688.59 572,-645.95 572,-645.95"/>
|
|
<polygon fill="black" stroke="black" points="575.5,-645.95 572,-635.95 568.5,-645.95 575.5,-645.95"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="645.92" y="-658.9" font-family="Helvetica,sans-Serif" font-size="9.00">Envelope → Box<dyn Any + Send></text>
|
|
</g>
|
|
<!-- phase4 -->
|
|
<g id="node6" class="node">
|
|
<title>phase4</title>
|
|
<path fill="#d6eaf8" stroke="#2980b9" d="M665.97,-478C665.97,-478 492.03,-478 492.03,-478 486.03,-478 480.03,-472 480.03,-466 480.03,-466 480.03,-443.2 480.03,-443.2 480.03,-437.2 486.03,-431.2 492.03,-431.2 492.03,-431.2 665.97,-431.2 665.97,-431.2 671.97,-431.2 677.97,-437.2 677.97,-443.2 677.97,-443.2 677.97,-466 677.97,-466 677.97,-472 671.97,-478 665.97,-478"/>
|
|
<text xml:space="preserve" text-anchor="start" x="492.03" y="-462" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 4: Drain Spawn Queue (again)</text>
|
|
<text xml:space="preserve" text-anchor="start" x="497.45" y="-441.9" font-family="Helvetica,sans-Serif" font-size="9.00">actors spawned during Phase 3 handlers</text>
|
|
</g>
|
|
<!-- phase3->phase4 -->
|
|
<g id="edge4" class="edge">
|
|
<title>phase3->phase4</title>
|
|
<path fill="none" stroke="black" d="M579,-568.46C579,-568.46 579,-489.81 579,-489.81"/>
|
|
<polygon fill="black" stroke="black" points="582.5,-489.81 579,-479.81 575.5,-489.81 582.5,-489.81"/>
|
|
</g>
|
|
<!-- route_decision -->
|
|
<g id="node9" class="node">
|
|
<title>route_decision</title>
|
|
<polygon fill="#fef9e7" stroke="#d4ac0d" points="850,-492.2 739.28,-454.6 850,-417 960.72,-454.6 850,-492.2"/>
|
|
<text xml:space="preserve" text-anchor="start" x="808.33" y="-459.4" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">send_any routing</text>
|
|
<text xml:space="preserve" text-anchor="start" x="804.64" y="-444.2" font-family="Helvetica,sans-Serif" font-size="8.00">(inside Phase 3 handlers)</text>
|
|
</g>
|
|
<!-- phase3->route_decision -->
|
|
<g id="edge8" class="edge">
|
|
<title>phase3->route_decision</title>
|
|
<path fill="none" stroke="#888888" stroke-dasharray="5,2" d="M690.76,-568.36C690.76,-533.94 690.76,-485 690.76,-485 690.76,-485 816.01,-485 816.01,-485"/>
|
|
<polygon fill="#888888" stroke="#888888" points="816.01,-488.5 826.01,-485 816.01,-481.5 816.01,-488.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="681.76" y="-527.7" font-family="Helvetica,sans-Serif" font-size="9.00">ctx.send()</text>
|
|
</g>
|
|
<!-- phase5 -->
|
|
<g id="node7" class="node">
|
|
<title>phase5</title>
|
|
<path fill="#e8daef" stroke="#8e44ad" d="M646.04,-260.6C646.04,-260.6 485.96,-260.6 485.96,-260.6 479.96,-260.6 473.96,-254.6 473.96,-248.6 473.96,-248.6 473.96,-207 473.96,-207 473.96,-201 479.96,-195 485.96,-195 485.96,-195 646.04,-195 646.04,-195 652.04,-195 658.04,-201 658.04,-207 658.04,-207 658.04,-248.6 658.04,-248.6 658.04,-254.6 652.04,-260.6 646.04,-260.6"/>
|
|
<text xml:space="preserve" text-anchor="start" x="495.7" y="-244.6" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 5: Drain Pending Local</text>
|
|
<text xml:space="preserve" text-anchor="start" x="486.46" y="-224.5" font-family="Helvetica,sans-Serif" font-size="9.00">same-worker sends buffered in Phase 3</text>
|
|
<text xml:space="preserve" text-anchor="start" x="485.96" y="-205.7" font-family="Helvetica,sans-Serif" font-size="9.00">pending_local → pool.deliver(addr, msg)</text>
|
|
</g>
|
|
<!-- phase4->phase5 -->
|
|
<g id="edge5" class="edge">
|
|
<title>phase4->phase5</title>
|
|
<path fill="none" stroke="black" d="M569.04,-430.76C569.04,-430.76 569.04,-272.3 569.04,-272.3"/>
|
|
<polygon fill="black" stroke="black" points="572.54,-272.3 569.04,-262.3 565.54,-272.3 572.54,-272.3"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="605.03" y="-341.5" font-family="Helvetica,sans-Serif" font-size="9.00">new actors ready for local delivery</text>
|
|
</g>
|
|
<!-- phase6 -->
|
|
<g id="node8" class="node">
|
|
<title>phase6</title>
|
|
<path fill="#d1c4e9" stroke="#283593" d="M648.29,-150C648.29,-150 483.71,-150 483.71,-150 477.71,-150 471.71,-144 471.71,-138 471.71,-138 471.71,-96.4 471.71,-96.4 471.71,-90.4 477.71,-84.4 483.71,-84.4 483.71,-84.4 648.29,-84.4 648.29,-84.4 654.29,-84.4 660.29,-90.4 660.29,-96.4 660.29,-96.4 660.29,-138 660.29,-138 660.29,-144 654.29,-150 648.29,-150"/>
|
|
<text xml:space="preserve" text-anchor="start" x="512.37" y="-134" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="10.00">Phase 6: Publish Stats</text>
|
|
<text xml:space="preserve" text-anchor="start" x="483.71" y="-113.9" font-family="Helvetica,sans-Serif" font-size="9.00">AtomicStore: num_actors, mailbox_depth</text>
|
|
<text xml:space="preserve" text-anchor="start" x="486.71" y="-95.1" font-family="Helvetica,sans-Serif" font-size="9.00">AtomicFetchAdd: messages_processed</text>
|
|
</g>
|
|
<!-- phase5->phase6 -->
|
|
<g id="edge6" class="edge">
|
|
<title>phase5->phase6</title>
|
|
<path fill="none" stroke="black" d="M566,-194.62C566,-194.62 566,-161.87 566,-161.87"/>
|
|
<polygon fill="black" stroke="black" points="569.5,-161.87 566,-151.87 562.5,-161.87 569.5,-161.87"/>
|
|
</g>
|
|
<!-- phase6->end -->
|
|
<g id="edge7" class="edge">
|
|
<title>phase6->end</title>
|
|
<path fill="none" stroke="black" d="M471.28,-117C459.75,-117 451.93,-117 451.93,-117 451.93,-117 451.93,-40.52 451.93,-40.52"/>
|
|
<polygon fill="black" stroke="black" points="455.43,-40.52 451.93,-30.52 448.43,-40.52 455.43,-40.52"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="565.27" y="-54.3" font-family="Helvetica,sans-Serif" font-size="9.00">returns did_work: bool</text>
|
|
</g>
|
|
<!-- local_buf -->
|
|
<g id="node10" class="node">
|
|
<title>local_buf</title>
|
|
<polygon fill="#e8daef" stroke="black" points="809.03,-362.2 708.97,-362.2 708.97,-326.2 815.03,-326.2 815.03,-356.2 809.03,-362.2"/>
|
|
<polyline fill="none" stroke="black" points="809.03,-362.2 809.03,-356.2"/>
|
|
<polyline fill="none" stroke="black" points="815.03,-356.2 809.03,-356.2"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="762" y="-347.2" font-family="Helvetica,sans-Serif" font-size="10.00">pending_local buffer</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="762" y="-335.2" font-family="Helvetica,sans-Serif" font-size="10.00">(same worker)</text>
|
|
</g>
|
|
<!-- route_decision->local_buf -->
|
|
<g id="edge9" class="edge">
|
|
<title>route_decision->local_buf</title>
|
|
<path fill="none" stroke="#8e44ad" d="M777.16,-441.5C777.16,-441.5 777.16,-373.92 777.16,-373.92"/>
|
|
<polygon fill="#8e44ad" stroke="#8e44ad" points="780.66,-373.92 777.16,-363.92 773.66,-373.92 780.66,-373.92"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="796.76" y="-386.9" font-family="Helvetica,sans-Serif" font-size="9.00">same worker</text>
|
|
</g>
|
|
<!-- cross_q -->
|
|
<g id="node11" class="node">
|
|
<title>cross_q</title>
|
|
<polygon fill="#fadbd8" stroke="black" points="928.9,-362.2 851.1,-362.2 851.1,-326.2 934.9,-326.2 934.9,-356.2 928.9,-362.2"/>
|
|
<polyline fill="none" stroke="black" points="928.9,-362.2 928.9,-356.2"/>
|
|
<polyline fill="none" stroke="black" points="934.9,-356.2 928.9,-356.2"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="893" y="-347.2" font-family="Helvetica,sans-Serif" font-size="10.00">transfer_tx[wid]</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="893" y="-335.2" font-family="Helvetica,sans-Serif" font-size="10.00">(cross worker)</text>
|
|
</g>
|
|
<!-- route_decision->cross_q -->
|
|
<g id="edge10" class="edge">
|
|
<title>route_decision->cross_q</title>
|
|
<path fill="none" stroke="#c0392b" d="M893,-431.19C893,-431.19 893,-373.99 893,-373.99"/>
|
|
<polygon fill="#c0392b" stroke="#c0392b" points="896.5,-373.99 893,-363.99 889.5,-373.99 896.5,-373.99"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="905.01" y="-386.9" font-family="Helvetica,sans-Serif" font-size="9.00">different worker</text>
|
|
</g>
|
|
<!-- inbox_reg -->
|
|
<g id="node12" class="node">
|
|
<title>inbox_reg</title>
|
|
<polygon fill="#d1f2eb" stroke="black" points="1049.46,-362.2 970.54,-362.2 970.54,-326.2 1055.46,-326.2 1055.46,-356.2 1049.46,-362.2"/>
|
|
<polyline fill="none" stroke="black" points="1049.46,-362.2 1049.46,-356.2"/>
|
|
<polyline fill="none" stroke="black" points="1055.46,-356.2 1049.46,-356.2"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="1013" y="-347.2" font-family="Helvetica,sans-Serif" font-size="10.00">inbox_registry</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="1013" y="-335.2" font-family="Helvetica,sans-Serif" font-size="10.00">(external inbox)</text>
|
|
</g>
|
|
<!-- route_decision->inbox_reg -->
|
|
<g id="edge11" class="edge">
|
|
<title>route_decision->inbox_reg</title>
|
|
<path fill="none" stroke="#148f77" d="M947.81,-449.88C947.81,-428.07 947.81,-338 947.81,-338 947.81,-338 958.73,-338 958.73,-338"/>
|
|
<polygon fill="#148f77" stroke="#148f77" points="958.73,-341.5 968.73,-338 958.73,-334.5 958.73,-341.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="1052.52" y="-386.9" font-family="Helvetica,sans-Serif" font-size="9.00">not in address_map</text>
|
|
</g>
|
|
<!-- local_buf->phase5 -->
|
|
<g id="edge12" class="edge">
|
|
<title>local_buf->phase5</title>
|
|
<path fill="none" stroke="#8e44ad" stroke-dasharray="5,2" d="M762,-325.79C762,-293.02 762,-228 762,-228 762,-228 669.77,-228 669.77,-228"/>
|
|
<polygon fill="#8e44ad" stroke="#8e44ad" points="669.77,-224.5 659.77,-228 669.77,-231.5 669.77,-224.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="701.02" y="-296.1" font-family="Helvetica,sans-Serif" font-size="9.00">delivered</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="701.02" y="-285.3" font-family="Helvetica,sans-Serif" font-size="9.00">next phase</text>
|
|
</g>
|
|
<!-- cross_q->phase2 -->
|
|
<g id="edge13" class="edge">
|
|
<title>cross_q->phase2</title>
|
|
<path fill="none" stroke="#c0392b" stroke-dasharray="5,2" d="M935.25,-350C951.23,-350 965.63,-350 965.63,-350 965.63,-350 965.63,-712 965.63,-712 965.63,-712 676.3,-712 676.3,-712"/>
|
|
<polygon fill="#c0392b" stroke="#c0392b" points="676.3,-708.5 666.3,-712 676.3,-715.5 676.3,-708.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="781.01" y="-538.5" font-family="Helvetica,sans-Serif" font-size="9.00">delivered</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="781.01" y="-527.7" font-family="Helvetica,sans-Serif" font-size="9.00">next tick</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="781.01" y="-516.9" font-family="Helvetica,sans-Serif" font-size="9.00">(other worker)</text>
|
|
</g>
|
|
<!-- idle_check->start -->
|
|
<g id="edge18" class="edge">
|
|
<title>idle_check->start</title>
|
|
<path fill="none" stroke="#888888" stroke-dasharray="5,2" d="M338.81,-997C400.72,-997 519,-997 519,-997 519,-997 519,-922.99 519,-922.99"/>
|
|
<polygon fill="#888888" stroke="#888888" points="522.5,-922.99 519,-912.99 515.5,-922.99 522.5,-922.99"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="534.4" y="-943.1" font-family="Helvetica,sans-Serif" font-size="9.00">yes / idle_count=0</text>
|
|
</g>
|
|
<!-- spinning -->
|
|
<g id="node14" class="node">
|
|
<title>spinning</title>
|
|
<path fill="#d5f5e3" stroke="black" d="M85.52,-918.4C85.52,-918.4 28.48,-918.4 28.48,-918.4 22.48,-918.4 16.48,-912.4 16.48,-906.4 16.48,-906.4 16.48,-894.4 16.48,-894.4 16.48,-888.4 22.48,-882.4 28.48,-882.4 28.48,-882.4 85.52,-882.4 85.52,-882.4 91.52,-882.4 97.52,-888.4 97.52,-894.4 97.52,-894.4 97.52,-906.4 97.52,-906.4 97.52,-912.4 91.52,-918.4 85.52,-918.4"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="57" y="-897.4" font-family="Helvetica,sans-Serif" font-size="10.00">Spin (hot loop)</text>
|
|
</g>
|
|
<!-- idle_check->spinning -->
|
|
<g id="edge14" class="edge">
|
|
<title>idle_check->spinning</title>
|
|
<path fill="none" stroke="black" d="M248.84,-991C176.78,-991 57,-991 57,-991 57,-991 57,-930.25 57,-930.25"/>
|
|
<polygon fill="black" stroke="black" points="60.5,-930.25 57,-920.25 53.5,-930.25 60.5,-930.25"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="93.4" y="-943.1" font-family="Helvetica,sans-Serif" font-size="9.00">idle < spin_threshold</text>
|
|
</g>
|
|
<!-- yielding -->
|
|
<g id="node15" class="node">
|
|
<title>yielding</title>
|
|
<path fill="#fdebd0" stroke="black" d="M222.52,-918.4C222.52,-918.4 145.48,-918.4 145.48,-918.4 139.48,-918.4 133.48,-912.4 133.48,-906.4 133.48,-906.4 133.48,-894.4 133.48,-894.4 133.48,-888.4 139.48,-882.4 145.48,-882.4 145.48,-882.4 222.52,-882.4 222.52,-882.4 228.52,-882.4 234.52,-888.4 234.52,-894.4 234.52,-894.4 234.52,-906.4 234.52,-906.4 234.52,-912.4 228.52,-918.4 222.52,-918.4"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="184" y="-897.4" font-family="Helvetica,sans-Serif" font-size="10.00">thread::yield_now()</text>
|
|
</g>
|
|
<!-- idle_check->yielding -->
|
|
<g id="edge15" class="edge">
|
|
<title>idle_check->yielding</title>
|
|
<path fill="none" stroke="black" d="M260.06,-987.28C260.06,-969.82 260.06,-900 260.06,-900 260.06,-900 246.24,-900 246.24,-900"/>
|
|
<polygon fill="black" stroke="black" points="246.24,-896.5 236.24,-900 246.24,-903.5 246.24,-896.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="218.4" y="-943.1" font-family="Helvetica,sans-Serif" font-size="9.00">idle < yield_threshold</text>
|
|
</g>
|
|
<!-- sleeping -->
|
|
<g id="node16" class="node">
|
|
<title>sleeping</title>
|
|
<path fill="#fadbd8" stroke="black" d="M349.52,-918.4C349.52,-918.4 282.48,-918.4 282.48,-918.4 276.48,-918.4 270.48,-912.4 270.48,-906.4 270.48,-906.4 270.48,-894.4 270.48,-894.4 270.48,-888.4 276.48,-882.4 282.48,-882.4 282.48,-882.4 349.52,-882.4 349.52,-882.4 355.52,-882.4 361.52,-888.4 361.52,-894.4 361.52,-894.4 361.52,-906.4 361.52,-906.4 361.52,-912.4 355.52,-918.4 349.52,-918.4"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="316" y="-897.4" font-family="Helvetica,sans-Serif" font-size="10.00">thread::sleep(μs)</text>
|
|
</g>
|
|
<!-- idle_check->sleeping -->
|
|
<g id="edge16" class="edge">
|
|
<title>idle_check->sleeping</title>
|
|
<path fill="none" stroke="black" d="M312.43,-976.61C312.43,-976.61 312.43,-930.23 312.43,-930.23"/>
|
|
<polygon fill="black" stroke="black" points="315.93,-930.23 312.43,-920.23 308.93,-930.23 315.93,-930.23"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="345.53" y="-943.1" font-family="Helvetica,sans-Serif" font-size="9.00">idle ≥ yield_threshold</text>
|
|
</g>
|
|
</g>
|
|
</svg>
|