Mir

Merge lp://qastaging/~mir-team/mir/eventloop-integration into lp://qastaging/mir

Proposed by Chris Halse Rogers
Status: Work in progress
Proposed branch: lp://qastaging/~mir-team/mir/eventloop-integration
Merge into: lp://qastaging/mir
Diff against target: 5401 lines (+2778/-885)
68 files modified
benchmarks/benchmark_multiplexing_dispatchable.cpp (+1/-1)
debian/control (+1/-0)
debian/mir-test-tools.install (+1/-0)
include/client/mir_toolkit/mir_connection.h (+51/-0)
include/client/mir_toolkit/mir_wait.h (+1/-0)
include/common/mir/dispatch/simple_dispatch_thread.h (+0/-50)
include/common/mir/dispatch/threaded_dispatcher.h (+75/-0)
src/client/CMakeLists.txt (+1/-0)
src/client/buffer_stream.cpp (+25/-6)
src/client/buffer_stream.h (+10/-2)
src/client/client_buffer_stream.h (+2/-0)
src/client/client_buffer_stream_factory.h (+15/-5)
src/client/connection_configuration.h (+6/-1)
src/client/default_client_buffer_stream_factory.cpp (+27/-17)
src/client/default_client_buffer_stream_factory.h (+16/-6)
src/client/default_connection_configuration.cpp (+1/-1)
src/client/default_connection_configuration.h (+2/-2)
src/client/mir_buffer_stream_api.cpp (+23/-16)
src/client/mir_connection.cpp (+52/-4)
src/client/mir_connection.h (+27/-9)
src/client/mir_connection_api.cpp (+60/-1)
src/client/mir_prompt_session_api.cpp (+10/-3)
src/client/mir_screencast.cpp (+15/-4)
src/client/mir_screencast.h (+3/-0)
src/client/mir_screencast_api.cpp (+20/-2)
src/client/mir_surface.cpp (+20/-8)
src/client/mir_surface.h (+4/-2)
src/client/mir_surface_api.cpp (+12/-18)
src/client/mir_wait_api.cpp (+9/-0)
src/client/mir_wait_handle.cpp (+6/-0)
src/client/mir_wait_handle.h (+1/-0)
src/client/rpc/make_rpc_channel.h (+2/-3)
src/client/rpc/make_socket_rpc_channel.cpp (+1/-1)
src/client/rpc/mir_basic_rpc_channel.cpp (+7/-2)
src/client/rpc/mir_basic_rpc_channel.h (+12/-5)
src/client/rpc/mir_protobuf_rpc_channel.cpp (+52/-18)
src/client/rpc/mir_protobuf_rpc_channel.h (+33/-14)
src/client/symbols.map (+4/-0)
src/client/synchronous_helper.cpp (+33/-0)
src/client/synchronous_helper.h (+160/-0)
src/common/dispatch/CMakeLists.txt (+1/-2)
src/common/dispatch/simple_dispatch_thread.cpp (+0/-163)
src/common/dispatch/threaded_dispatcher.cpp (+294/-0)
src/common/symbols.map (+6/-4)
src/server/input/default_input_manager.cpp (+3/-3)
src/server/input/default_input_manager.h (+2/-2)
tests/acceptance-tests/CMakeLists.txt (+2/-1)
tests/acceptance-tests/test_client_library.cpp (+331/-105)
tests/include/mir_test/test_protobuf_client.h (+2/-2)
tests/include/mir_test_doubles/mock_client_buffer_stream.h (+1/-0)
tests/include/mir_test_doubles/mock_client_buffer_stream_factory.h (+16/-6)
tests/include/mir_test_doubles/stub_client_buffer_stream_factory.h (+5/-1)
tests/include/mir_test_framework/udev_environment.h (+26/-0)
tests/integration-tests/client/test_screencast.cpp (+5/-5)
tests/mir_test_doubles/test_protobuf_client.cpp (+2/-2)
tests/mir_test_framework/CMakeLists.txt (+3/-0)
tests/mir_test_framework/udev_environment.cpp (+66/-1)
tests/mir_test_framework/udev_recordings/laptop-keyboard-hello.evemu (+272/-0)
tests/unit-tests/client/test_client_buffer_stream.cpp (+2/-2)
tests/unit-tests/client/test_client_mir_surface.cpp (+1/-1)
tests/unit-tests/client/test_mir_connection.cpp (+162/-11)
tests/unit-tests/client/test_mir_screencast.cpp (+10/-1)
tests/unit-tests/client/test_protobuf_rpc_channel.cpp (+295/-62)
tests/unit-tests/dispatch/CMakeLists.txt (+1/-1)
tests/unit-tests/dispatch/test_multiplexing_dispatchable.cpp (+21/-18)
tests/unit-tests/dispatch/test_simple_dispatch_thread.cpp (+0/-291)
tests/unit-tests/dispatch/test_threaded_dispatcher.cpp (+403/-0)
tools/valgrind_suppressions_generic (+45/-0)
To merge this branch: bzr merge lp://qastaging/~mir-team/mir/eventloop-integration
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Mir development team Pending
Review via email: mp+245926@code.qastaging.launchpad.net

Commit message

Add a client-driven MirConnection dispatch option.

Lots of clients aren't appreciative of our devil-may-care approach to calling their code on threads of our choosing. For them, we offer mir_connection_dispatch().

This will simplify XMir, make a Mir backend for Plymouth feasible, and greatly please Ryan.

Fixes: https://bugs.launchpad.net/mir/+bug/1397375

Description of the change

Add a client-driven MirConnection dispatch option.

Lots of clients aren't appreciative of our devil-may-care approach to calling their code on threads of our choosing. For them, we offer mir_connection_dispatch().

This will simplify XMir, make a Mir backend for Plymouth feasible, and greatly please Ryan.

Fixes: https://bugs.launchpad.net/mir/+bug/1397375

To post a comment you must log in.
Revision history for this message
Chris Halse Rogers (raof) wrote :

Marked as WIP; I'll break this up to make the review easier.

Revision history for this message
Chris Halse Rogers (raof) wrote :

Looks like I'll be breaking this up a bit more, but now actually works!

Bounce off CI to fully test that it fully really fully does fully work.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Unmerged revisions

2387. By Chris Halse Rogers

Add valgrind suppressions for GDBus bollocks.

2386. By Chris Halse Rogers

Free the surface_spec in ClientLibrary test.

Now doesn't leak!

2385. By Chris Halse Rogers

Don't call a synchronous method from a manually-dispatched async callback.

This fails for... some reason. Don't know at the moment.

2384. By Chris Halse Rogers

Initialise ProtobufRpcChannel::prioritise_next_request.

Thanks, valgrind.

2383. By Chris Halse Rogers

Minor improvements to synchronous helper

2382. By Chris Halse Rogers

Use make_synchronous_call helper for all synchronous RPC calls

2381. By Chris Halse Rogers

Add helper infrastructure for making synchronous RPC calls

2380. By Chris Halse Rogers

Enable getting a MirConnection out of a MirScreencast

2379. By Chris Halse Rogers

We treat MirBufferStream as a ClientBufferStream internally - make sure the pointers we return *are* ClientBufferStreams

2378. By Chris Halse Rogers

Add a way to get the MirConnection associated with a MirSurface

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches