Merge lp:~vanvugt/mir/fix-1194384 into lp:~mir-team/mir/trunk
Status: | Rejected |
---|---|
Rejected by: | Daniel van Vugt |
Proposed branch: | lp:~vanvugt/mir/fix-1194384 |
Merge into: | lp:~mir-team/mir/trunk |
Diff against target: |
346 lines (+182/-18) 6 files modified
examples/fingerpaint.c (+4/-2) include/client/mir_toolkit/mir_client_library.h (+22/-0) src/client/mir_client_library.cpp (+10/-0) src/client/mir_surface.cpp (+33/-12) src/client/mir_surface.h (+8/-4) tests/acceptance-tests/test_client_library.cpp (+105/-0) |
To merge this branch: | bzr merge lp:~vanvugt/mir/fix-1194384 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Mir development team | Pending | ||
Review via email: mp+171520@code.launchpad.net |
Commit message
Extend the client API to support thread-safe data sharing between event
callbacks and the rest of the client. Also document the risks. (LP: #1194384)
No existing behaviour changes. Thread safety is optional, but recommended. :)
Unmerged revisions
- 781. By Daniel van Vugt
-
Fix a possible race in:
TEST_F(DefaultDisplayS erverTestFixtur e, client_ event_handler_ is_thread_ safe) - 780. By Daniel van Vugt
-
Add acceptance test for {lock,unlock}
_event_ handler - 779. By Daniel van Vugt
-
Clarify that set_event_handler is a synchronization point too.
- 778. By Daniel van Vugt
-
Prototype event handler locking
- 777. By Daniel van Vugt
-
Fix build failure due to differing exception specifiers. noexcept destructors
should be enforced in derived classes if the base uses them. (LP: #1194703). Fixes: https://bugs.launchpad .net/bugs/ 1194703. Approved by Alexandros Frantzis, Thomas Voß, PS Jenkins bot.
- 776. By kevin gunn
-
this is to change the doc's fpr preinstalled binaries to reference using the system-
compositor- testing ppa. Approved by Robert Ancell, Kevin DuBois, PS Jenkins bot, Chris Halse Rogers.
- 775. By Robert Ancell
-
Update debian/copyright for 3rd_party files. Fixes: https:/
/bugs.launchpad .net/bugs/ 1194073. Approved by PS Jenkins bot.
- 774. By Alexandros Frantzis
-
graphics: Implement GLBufferPixels to extract buffer pixels using GL.
Approved by PS Jenkins bot.
- 773. By Daniel van Vugt
-
Don't pass a clang-only option to gcc. It will not understand and cause
build failure (LP: #1194385). Fixes: https://bugs.launchpad .net/bugs/ 1194385. Approved by Alexandros Frantzis, PS Jenkins bot.
- 772. By Didier Roche-Tolomelli
-
Various packaging fixes:
- cleanup the package for daily release standard.
- multiarch the packaging.
- reorganize the packages, having demos and examples not shipped in usr/bin
but rather in libexec.
- fix some dependency ordering.
- clean some olds transitions, lintian warnings, and cruft files.
- run tests on all archs and remove deprecated warnings.Approved by PS Jenkins bot, Chris Halse Rogers, Kevin DuBois.
One can argue that this whole proposal is unnecessary, except for the docs improvements. Because client authors can use their own locking instead.
The rationale for the proposal then is: Without this, it is impossible to write a reliable, predictable client that handles events without also forcing the client to depend on some third-party locking primitives (pthread, C++11). That's really the issue. With all the features you may choose to include or exclude from an API, determinism is something you need to include.
Also, assuming that all toolkits are thread-aware is a bad assumption. I'm sure there are plenty of toolkits out there that don't have, or care about, threads. And Mir should support them too.