#include #include #include namespace raleigh { dllist open_windows; __attribute__ ((noreturn)) void start_runtime() { while (1) { if (!open_windows.first) __pcrt_quit(); for (dllist::node *w = open_windows.first; w; w = w->next) if (w->d.try_actions() == window::DELETE) if (!(w = open_windows.remove_in_place(w))) break; _wait_for_action(); _yield_task(); } } }