1#!/usr/bin/mscgen -Tpng 2 3msc { 4 hscale="1.5"; 5 6 c [label = "compositor"], w [label = "libweston core"], 7 b [label = "backend"]; 8 9 |||; 10 11 --- [label = "Head is destroyed for an enabled output"]; 12 13 b box b [label = "A head disappears, e.g. MST connector is removed, not just disconnected"]; 14 15 w <= b [label = "weston_head_release()"]; 16 c x- w [label = "head->destroy_signal"]; 17 w => w [label = "weston_head_detach()"]; 18 w :> b [label = "weston_output::detach_head()"]; 19 w note w [label = "No heads left in the output."]; 20 w => w [label = "weston_output_disable()"]; 21 w :> b [label = "weston_output::disable()"]; 22 w >> b [label = "release return"]; 23 b box b [label = "free(head)"]; 24 25 --- [label = "The output is left disabled."]; 26} 27