Implementing GSettingsBackend: blocking reads
Hello GNOME/glib community!
We have been working on an alternative GSettings backend based on Elektra and we currently have a working but unfinished prototype.
In the documentation of g_settings_backend_read()
(as well as g_settings_backend_write_tree()
) it is stated that the calls will never block. Our current prototype does disk I/O in the read function, which would strictly speaking violate the documentation, but works quite well in our tests.
It is a bit unclear to me why g_settings_backend_write()
does not have the same requirement to be non-blocking. Am I misunderstanding the docs?
May a compliant implementation perform blocking operations or is it strictly needed to implement everything in a non-blocking way. Afaik dconf
solves this by using a separate writer process. We'd like to avoid this in order to keep our architecture simple.
Regards, Mihael / Elektra Initiative