Merge lp:~afrantzis/mir/fix-1679591-display-config-observer-race into lp:mir
Status: | Work in progress |
---|---|
Proposed branch: | lp:~afrantzis/mir/fix-1679591-display-config-observer-race |
Merge into: | lp:mir |
Diff against target: |
95 lines (+57/-3) 2 files modified
src/server/scene/mediating_display_changer.cpp (+6/-1) tests/unit-tests/scene/test_mediating_display_changer.cpp (+51/-2) |
To merge this branch: | bzr merge lp:~afrantzis/mir/fix-1679591-display-config-observer-race |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexandros Frantzis (community) | Needs Information | ||
Mir CI Bot | continuous-integration | Needs Fixing | |
Cemil Azizoglu (community) | Approve | ||
Alberto Aguirre (community) | Approve | ||
Chris Halse Rogers | Approve | ||
Review via email: mp+321870@code.launchpad.net |
Commit message
server: Emit the DisplayConfigur
Description of the change
server: Use the server action queue for all DisplayConfigur
The DisplayConfigur
This problem is the root cause of the linked bug #1679591. In that bug USC misses the initial config event because it registers interest in the observer in the server init callback, which is an intuitively correct, but it's too late in terms of the current implementation.
This MP changes the notification to emitted through the event loop. Thus the notification is guaranteed to be emitted after the server starts running, which is: 1. a well defined and 2. the expected behavior from the user's point of view.
Unmerged revisions
- 4141. By Alexandros Frantzis
-
tests: Fix gmock expectation complaints and leak
- 4140. By Alexandros Frantzis
-
server: Emit the DisplayConfigur
ationObserver initial_ configuration notification through the server action queue
FAILED: Continuous integration, rev:4140 /mir-jenkins. ubuntu. com/job/ mir-ci/ 3302/ /mir-jenkins. ubuntu. com/job/ build-mir/ 4464/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/4579 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 4569 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial/ 4569 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 4569 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/4569 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4496/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4496/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4496/ console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4496/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4496/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4496/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4496/console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 3302/rebuild
https:/