Merge lp:~albaguirre/mir/fix-1427976-take2 into lp:mir
Status: | Merged |
---|---|
Approved by: | Alberto Aguirre |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2379 |
Proposed branch: | lp:~albaguirre/mir/fix-1427976-take2 |
Merge into: | lp:mir |
Diff against target: |
232 lines (+41/-30) 4 files modified
src/server/frontend/session_mediator.cpp (+25/-26) src/server/frontend/session_mediator.h (+2/-0) src/server/frontend/surface_tracker.cpp (+8/-1) src/server/frontend/surface_tracker.h (+6/-3) |
To merge this branch: | bzr merge lp:~albaguirre/mir/fix-1427976-take2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexandros Frantzis (community) | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Alan Griffiths | Approve | ||
Review via email: mp+252031@code.launchpad.net |
Commit message
Avoid unlocking a mutex in a thread that does not own it.
SessionMediator unlocks its session_mutex before invoking rpc callbacks.
This becomes cumbersome when SessionMediator needs to call Surface:
as the completion function may be executed in an entirely different thread.
The session_mutex should only be unlocked if the completion function is invoked during Surface:
Description of the change
Avoid unlocking a mutex in a thread that does not own it.
SessionMediator unlocks its session_mutex before invoking rpc callbacks.
This becomes cumbersome when SessionMediator needs to call Surface:
as the completion function may be executed in an entirely different thread.
The session_mutex should only be unlocked if the completion function is invoked during Surface:
PASSED: Continuous integration, rev:2370 jenkins. qa.ubuntu. com/job/ mir-ci/ 3146/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/1534 jenkins. qa.ubuntu. com/job/ mir-clang- vivid-amd64- build/1533 jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/1488 jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 1143 jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 1143/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 1488 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 1488/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/4507 s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 18603
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/3146/ rebuild
http://