1digraph state_automaton { 2 center = true; 3 size = "7,11"; 4 {node [shape = plaintext, style=invis, label=""] "__init_runnable"}; 5 {node [shape = doublecircle] "runnable"}; 6 {node [shape = circle] "runnable"}; 7 {node [shape = circle] "signal_wakeup"}; 8 {node [shape = circle] "sleepable"}; 9 {node [shape = circle] "sleeping"}; 10 "__init_runnable" -> "runnable"; 11 "runnable" [label = "runnable", color = green3]; 12 "runnable" -> "runnable" [ label = "sched_set_state_runnable\nsched_wakeup\nsched_switch_in\nsched_switch_yield\nsched_switch_preempt\nsignal_deliver" ]; 13 "runnable" -> "sleepable" [ label = "sched_set_state_sleepable" ]; 14 "runnable" -> "sleeping" [ label = "sched_switch_blocking" ]; 15 "signal_wakeup" [label = "signal_wakeup"]; 16 "signal_wakeup" -> "runnable" [ label = "signal_deliver" ]; 17 "signal_wakeup" -> "signal_wakeup" [ label = "sched_switch_in\nsched_switch_preempt\nsched_switch_yield\nsched_wakeup" ]; 18 "signal_wakeup" -> "sleepable" [ label = "sched_set_state_sleepable" ]; 19 "sleepable" [label = "sleepable"]; 20 "sleepable" -> "runnable" [ label = "sched_set_state_runnable\nsched_wakeup" ]; 21 "sleepable" -> "signal_wakeup" [ label = "sched_switch_yield" ]; 22 "sleepable" -> "sleepable" [ label = "sched_set_state_sleepable\nsched_switch_in\nsched_switch_preempt\nsignal_deliver" ]; 23 "sleepable" -> "sleeping" [ label = "sched_switch_suspend\nsched_switch_blocking" ]; 24 "sleeping" [label = "sleeping"]; 25 "sleeping" -> "runnable" [ label = "sched_wakeup" ]; 26 { rank = min ; 27 "__init_runnable"; 28 "runnable"; 29 } 30} 31