Merge lp:~raof/mir/client-release-simplifications into lp:mir
Status: | Work in progress |
---|---|
Proposed branch: | lp:~raof/mir/client-release-simplifications |
Merge into: | lp:mir |
Diff against target: |
352 lines (+122/-59) 8 files modified
include/test/mir/test/validity_matchers.h (+8/-0) src/client/atomic_callback.h (+15/-10) src/client/mir_buffer_stream_api.cpp (+8/-1) src/client/mir_connection.cpp (+11/-46) src/client/mir_connection.h (+0/-2) tests/acceptance-tests/staging/test_render_surface.cpp (+45/-0) tests/mir_test/CMakeLists.txt (+4/-0) tests/mir_test/validity_matchers.cpp (+31/-0) |
To merge this branch: | bzr merge lp:~raof/mir/client-release-simplifications |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Cemil Azizoglu (community) | Needs Fixing | ||
Andreas Pokorny (community) | Approve | ||
Mir CI Bot | continuous-integration | Needs Fixing | |
Review via email: mp+312995@code.launchpad.net |
Commit message
Simplify the release operations for RenderSurface, BufferStream, and PresentationChain.
None of these require waiting for the server to acknowledge release, so don't.
Unmerged revisions
- 3881. By Chris Halse Rogers
-
Merge trunk
- 3880. By Chris Halse Rogers
-
Try hand-holding Yakkety compilers
- 3879. By Chris Halse Rogers
-
Remove now-vestigial MirConnection:
:StreamRelease and ::released - 3878. By Chris Halse Rogers
-
Eagerly destroy MirPresentation
Chain resources in _release() Just like MirBufferStream and MirRenderSurface, there's no need to wait for the
server to acknowledge. - 3877. By Chris Halse Rogers
-
Eagerly destroy MirBufferStream resources in _release()
Like MirRenderSurface, there's nothing to do client-side after sending the
release RPC message. Simplify things by deleting up-front. - 3876. By Chris Halse Rogers
-
Fix unsafe locking in AtomicCallback.
AtomicCallback was calling the underlying callback while holding a lock. Someone
clearly knew this was a bad idea, because they changed it to a std::recursive_mutex,
but that's not the only way this could deadlock.Since I've just seen a deadlock caused by this, fix it :)
- 3875. By Chris Halse Rogers
-
Eagerly destroy RenderSurface resources in _release()
There's no need to wait for the server to acknowledge our RPC request.
The client-side never uses any of the RenderSurface resources after sending
the release request, and there's no meaningfull error handling possible. - 3874. By Chris Halse Rogers
-
Add IsValid() implementations for MirBufferStream and MirRenderSurface
FAILED: Continuous integration, rev:3879 /mir-jenkins. ubuntu. com/job/ mir-ci/ 2371/ /mir-jenkins. ubuntu. com/job/ build-mir/ 3091/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/3158 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 3150 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 3150 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 3150 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= yakkety/ 3120/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3120 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3120/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 3120 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= yakkety/ 3120/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 3120 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 3120/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 3120 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 3120/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3120 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 3120/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 2371/rebuild
https:/