| 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"; |
| } |
| } |