diff --git a/doc/eventloop.svg b/doc/eventloop.svg new file mode 100644 index 0000000000..09683c5efc --- /dev/null +++ b/doc/eventloop.svg @@ -0,0 +1,451 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + UI Event Loop Thread + CrossThreadChannel + RT Thread + Freeze Thread + Step One:AbstractUI::get_request()AbstractUI::send_request() + Generic non-RT-safe request queue + RT-safe per-thread request queues + + + + while (1) if (channel.data_available()) { channel.drain(); handle_ui_requests(); } + + + + J. Random Thread + + + Step Two:CrossThreadChannel::wakeup() + + + + + + AbstractUI IS-A BaseUI IS-A Event Loop + +