WebSockets: notify server there are pending client updates

This is an update to the surface ArdourFeedback class that is needed to support
the new event loop integration method.

The various session event callbacks cannot be queued in the surface event loop
because that would create a delay between the time such events are fired and
the time for writing to clients arrive, due to lws_service() blocking while
it waits to read. To solve this issue a helper AbstractUI is created for
catching events as soon as possible and issuing a call to lws_cancel_service().

See WebsocketsServer::glib_idle_callback()
This commit is contained in:
Luciano Iam 2021-06-13 20:54:43 +02:00 committed by Robin Gareus
parent b3661af92a
commit e3569b6469
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
6 changed files with 83 additions and 6 deletions

View file

@ -195,6 +195,7 @@ WebsocketsServer::stop ()
if (_g_source) { // Method 3
g_source_destroy (_g_source);
lws_cancel_service (_lws_context);
}
if (_lws_context) {