Skip to content
  • Dan Vrátil's avatar
    Introduce out-of-process KScreen backends · a127049b
    Dan Vrátil authored
    Until now KScreen was loading the backend plugin into each KScreen-enabled
    application. This patch changes the design completely: The KScreen library
    now requests a backend (which is represented by a DBus interface) from
    BackendManager (a replacement for BackendLoader). BackendManager will then
    start (if not running) kscreen_backend_launcher process (BackendLauncher),
    that will detect the correct plugin for the current platform, load it, and
    will create a DBus service called org.kde.KScreen.Backend.%backendName%
    with org.kde.KScreen.Backend interface. The library will now communicate
    with the backend through this DBus interface.
    
    The out-of-process design solves many issues, including blocking calls in
    main thread, better performance (backend aggregates notifications before
    emitting them to clients, reducing number of "changes" clients have to handle,
    and better stability (backend crash does not crash the application).
    a127049b