Mir

Merge lp:~vanvugt/mir/lock-default_stream-changes into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Daniel van Vugt
Approved revision: no longer in the source branch.
Merged at revision: 3883
Proposed branch: lp:~vanvugt/mir/lock-default_stream-changes
Merge into: lp:mir
Diff against target: 22 lines (+11/-1)
1 file modified
src/client/mir_surface.cpp (+11/-1)
To merge this branch: bzr merge lp:~vanvugt/mir/lock-default_stream-changes
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Kevin DuBois (community) Approve
Review via email: mp+313329@code.launchpad.net

Commit message

Add missing locking for when MirSurface replaces its default_stream.
Also add a related comment.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3883
https://mir-jenkins.ubuntu.com/job/mir-ci/2400/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3128/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3195
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3187
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3187
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/3187
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=yakkety/3157/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3157
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3157/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/3157
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/3157/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3157
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3157/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3157
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3157/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3157
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3157/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2400/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

alright to this MP, curious though as to why the client has to know about the mappings though. FWIW, I think it would be better if the client did get a notification about the server accepting its modifications.

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/client/mir_surface.cpp'
2--- src/client/mir_surface.cpp 2016-12-13 06:00:32 +0000
3+++ src/client/mir_surface.cpp 2016-12-15 09:57:53 +0000
4@@ -609,7 +609,17 @@
5
6 if (spec.streams.is_set())
7 {
8- default_stream = nullptr;
9+ /*
10+ * Note that we don't check for errors from modify_surface. So in
11+ * updating default_stream here, we're just assuming it will succeed.
12+ * Seems to be a harmless assumption to have made so far and much
13+ * simpler than communicating back suceessful mappings from the server,
14+ * but there is a prototype started for that: lp:~vanvugt/mir/adoption
15+ */
16+ {
17+ std::lock_guard<decltype(mutex)> lock(mutex);
18+ default_stream = nullptr;
19+ }
20 for(auto const& stream : spec.streams.value())
21 {
22 auto const new_stream = surface_specification->add_stream();

Subscribers

People subscribed via source and target branches