Review Request 126101: allow loading backends in-process

Sebastian Kügler sebas at kde.org
Wed Nov 18 02:36:14 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126101/
-----------------------------------------------------------

(Updated Nov. 18, 2015, 2:36 a.m.)


Review request for Plasma, Solid, Àlex Fiestas, Aleix Pol Gonzalez, Daniel Vrátil, and Martin Gräßlin.


Changes
-------

Address comments.

As I explained, I've left the plugin loading logic in BackendManager, but made the method names a bit more verbose. Everything else is taken care of as suggested.


Repository: libkscreen


Description
-------

This patchset adds in-process operation to libkscreen

purpose:
- allow easier debugging
- for some backends (qscreen, upcoming kwayland) the out of process operation is not necessary since these backends are well-shielded

This implementation is backwards compatible and should mean only minimal changes to running setups.

If the user exports KSCREEN_BACKEND_INPROCESS=1 before running, all operations will be done in process. Otherwise, the out-of-process mode is used.

The idea is that we use 
The changes in the clients to use the in-process mode are to use ConfigOperation::create() and ConfigOperation::setOperation() to retrieve the get or set config jobs. The rest will be handled inside libkscreen.

Autotests should cover all the cases (and actually a few currently unsupported ones, such as using different backends in the same process).

Details on performance, etc.: http://vizzzion.org/blog/2015/11/wayland-and-libkscreen-benchmarks/


Diffs (updated)
-----

  src/configoperation.h 2405d79 
  autotests/testconfigmonitor.cpp a051226 
  backends/fake/fake.cpp 60264dd 
  src/configmonitor.cpp a14bc70 
  src/backendlauncher/backendloader.cpp 52051df 
  src/backendmanager.cpp ca9c746 
  src/backendmanager_p.h c6418e2 
  src/config.cpp 75d947d 
  src/configmonitor.h b6f1189 
  src/configoperation.cpp 87fe141 
  CMakeLists.txt 86a0965 
  autotests/CMakeLists.txt 69af7f0 
  autotests/testinprocess.cpp PRE-CREATION 
  autotests/testqscreenbackend.cpp da4dbae 
  autotests/testscreenconfig.cpp ecbcedf 
  autotests/testxrandr.cpp b9b838a 
  src/configoperation_p.h afdc462 
  src/getconfigoperation.h c85bfaa 
  src/getconfigoperation.cpp 22f92b4 
  src/output.cpp bd381fa 
  src/setconfigoperation.h 020a990 
  src/setconfigoperation.cpp 6ea944f 

Diff: https://git.reviewboard.kde.org/r/126101/diff/


Testing
-------

Added a ton of autotests, made sure all existing ones pass.

tried "KSCREEN_BACKEND_INPROCESS=1 kcmshell5 kscreen", all working as expected.


Thanks,

Sebastian Kügler

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20151118/396e1e7a/attachment-0001.html>


More information about the Plasma-devel mailing list