digraph state_automaton { center = true; size = "7,11"; {node [shape = plaintext, style=invis, label=""] "__init_runnable"}; {node [shape = doublecircle] "runnable"}; {node [shape = circle] "runnable"}; {node [shape = circle] "signal_wakeup"}; {node [shape = circle] "sleepable"}; {node [shape = circle] "sleeping"}; "__init_runnable" -> "runnable"; "runnable" [label = "runnable", color = green3]; "runnable" -> "runnable" [ label = "sched_set_state_runnable\nsched_wakeup\nsched_switch_in\nsched_switch_yield\nsched_switch_preempt\nsignal_deliver" ]; "runnable" -> "sleepable" [ label = "sched_set_state_sleepable" ]; "runnable" -> "sleeping" [ label = "sched_switch_blocking" ]; "signal_wakeup" [label = "signal_wakeup"]; "signal_wakeup" -> "runnable" [ label = "signal_deliver" ]; "signal_wakeup" -> "signal_wakeup" [ label = "sched_switch_in\nsched_switch_preempt\nsched_switch_yield\nsched_wakeup" ]; "signal_wakeup" -> "sleepable" [ label = "sched_set_state_sleepable" ]; "sleepable" [label = "sleepable"]; "sleepable" -> "runnable" [ label = "sched_set_state_runnable\nsched_wakeup" ]; "sleepable" -> "signal_wakeup" [ label = "sched_switch_yield" ]; "sleepable" -> "sleepable" [ label = "sched_set_state_sleepable\nsched_switch_in\nsched_switch_preempt\nsignal_deliver" ]; "sleepable" -> "sleeping" [ label = "sched_switch_suspend\nsched_switch_blocking" ]; "sleeping" [label = "sleeping"]; "sleeping" -> "runnable" [ label = "sched_wakeup" ]; { rank = min ; "__init_runnable"; "runnable"; } }