Merge lp:~albaguirre/mir/fix-1481034 into lp:mir
| Status: | Merged |
|---|---|
| Approved by: | Alberto Aguirre on 2015-08-04 |
| Approved revision: | 2808 |
| Merged at revision: | 2808 |
| Proposed branch: | lp:~albaguirre/mir/fix-1481034 |
| Merge into: | lp:mir |
| Diff against target: |
44 lines (+9/-9) 1 file modified
src/server/input/default_input_manager.cpp (+9/-9) |
| To merge this branch: | bzr merge lp:~albaguirre/mir/fix-1481034 |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| PS Jenkins bot | continuous-integration | Approve on 2015-08-04 | |
| Alan Griffiths | 2015-08-03 | Approve on 2015-08-04 | |
|
Review via email:
|
|||
Commit Message
input: Avoid throwing exception while unwinding input thread
The input thread exception handler and the the enqueued action can race to set a std::promise during start.
Have the promise be owned and set by the starting action only instead.
Description of the Change
input: Avoid throwing exception while unwinding input thread
The input thread exception handler and the the enqueued action can race to set a std::promise during start.
Have the promise be owned and set by the starting action only instead.
| Chris Halse Rogers (raof) wrote : | # |
Hah! I happen to have also run into and fixed this in the glib-mainloop-
I think http://
| Alberto Aguirre (albaguirre) wrote : | # |
@Chris, yeah I'll cherry pick your fix in here. Thanks!
- 2807. By Chris Halse Rogers on 2015-08-04
-
Use Chris' fix instead
| Alan Griffiths (alan-griffiths) wrote : | # |
24 +
25 + /* Emulate move-semantics for started_promise.
26 + *
27 + * We need the starting-lambda to own started_promise so that it is guaranteed that
28 + * started_future gets signalled; either by ->set_value in the success path or
29 + * by the destruction of started_promise generating a broken_promise exception.
30 + */
31 + started_
Couldn't we just do a move capture in the lambda expression?
queue-
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2807
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 2808. By Alberto Aguirre on 2015-08-04
-
Use move capture instead
| Alberto Aguirre (albaguirre) wrote : | # |
> Couldn't we just do a move capture in the lambda expression?
>
> queue->
Yep.
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2808
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://

PASSED: Continuous integration, rev:2806 jenkins. qa.ubuntu. com/job/ mir-ci/ 4462/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/3387 s-jenkins. ubuntu- ci:8080/ job/mir- clang-ts- wily-amd64- build/242 jenkins. qa.ubuntu. com/job/ mir-clang- wily-amd64- build/914 jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/3335 jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 611 jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 611/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 3335 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 3335/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/6126 s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 22288
http://
Executed test runs:
SUCCESS: http://
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/4462/ rebuild
http://