Merge lp:~andreas-pokorny/mir/dispatchable-event-hub into lp:mir
| Status: | Merged |
|---|---|
| Approved by: | Andreas Pokorny on 2015-04-28 |
| Approved revision: | 2350 |
| Merged at revision: | 2521 |
| Proposed branch: | lp:~andreas-pokorny/mir/dispatchable-event-hub |
| Merge into: | lp:mir |
| Prerequisite: | lp:~andreas-pokorny/mir/use-timerfd-in-eventhub |
| Diff against target: |
1162 lines (+409/-351) 22 files modified
3rd_party/android-input/android/frameworks/base/services/input/EventHub.cpp (+2/-2) 3rd_party/android-input/android/frameworks/base/services/input/EventHub.h (+2/-2) src/include/server/mir/default_server_configuration.h (+1/-5) src/include/server/mir/server_configuration.h (+0/-1) src/server/display_server.cpp (+0/-12) src/server/input/android/CMakeLists.txt (+1/-1) src/server/input/android/android_input_manager.cpp (+0/-55) src/server/input/android/android_input_manager.h (+0/-66) src/server/input/android/input_reader_dispatchable.cpp (+54/-0) src/server/input/android/input_reader_dispatchable.h (+56/-0) src/server/input/default_configuration.cpp (+24/-59) src/server/input/default_input_manager.cpp (+23/-10) src/server/input/default_input_manager.h (+15/-1) src/server/run_mir.cpp (+3/-1) src/server/symbols.map (+0/-2) tests/include/mir_test_doubles/mock_event_hub.h (+69/-0) tests/include/mir_test_doubles/mock_input_reader.h (+58/-0) tests/unit-tests/android_input/test_eventhub.cpp (+6/-6) tests/unit-tests/input/android/CMakeLists.txt (+2/-1) tests/unit-tests/input/android/test_android_input_channel_factory.cpp (+3/-126) tests/unit-tests/input/android/test_input_reader_dispatchable.cpp (+51/-0) tests/unit-tests/input/test_default_input_manager.cpp (+39/-1) |
| To merge this branch: | bzr merge lp:~andreas-pokorny/mir/dispatchable-event-hub |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| PS Jenkins bot | continuous-integration | 2015-04-16 | Approve on 2015-04-28 |
| Kevin DuBois (community) | 2015-04-16 | Approve on 2015-04-27 | |
| Alan Griffiths | 2015-04-16 | Approve on 2015-04-27 | |
| Chris Halse Rogers | 2015-04-16 | Approve on 2015-04-27 | |
| Alexandros Frantzis (community) | 2015-04-16 | Approve on 2015-04-21 | |
| Robert Carr (community) | 2015-04-16 | Approve on 2015-04-16 | |
| Daniel van Vugt | 2015-04-16 | Pending | |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2015-04-15.
Commit Message
Remove mir::input:
Since DefaultInputManager uses a MultiplexingDis
Description of the Change
Preparation Step to turn EventHub into a piece of the evdev input platform.
This change removes the old input reading thread and moves EventHub and InputReader to the Dispatchable driven input reading thread which was up to now only used for the stub-input platform. This requires EventHub::getEvents to not block on the epoll fd. Additionally an initial call to loopOnce is required to let EventHub do the first scan for devices - as the udev monitor is still part of EventHub.
| Kevin DuBois (kdub) wrote : | # |
Overall lgtm
I guess needs info on:
80 SimpleDispatchT
81 + SimpleDispatchT
82 + std::function<
The function of a function seems too tricky... Could we use an enum? eg
SimpleDispatchT
or maybe two different objects? (SimpleDispatch
511 + std::shared_
512 + std::shared_
why not private?
| Andreas Pokorny (andreas-pokorny) wrote : | # |
> Overall lgtm
>
> I guess needs info on:
>
> 80 SimpleDispatchT
> 81 + SimpleDispatchT
> dispatchee,
> 82 + std::function<
> execute_around);
>
> The function of a function seems too tricky... Could we use an enum? eg
> SimpleDispatchT
> or maybe two different objects? (SimpleDispatch
> SignalBlockingD
Yes I am not very fond of it either, but added it because I needed try{ .. } catch .. mir::termiates_
> 511 + std::shared_
> 512 + std::shared_
> why not private?
ok
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2323
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2324
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2325
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2326
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2327
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2327
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Chris Halse Rogers (raof) wrote : | # |
The thought occurs that another option would be
SimpleDispatchT
That would be simpler, as long as we don't need signals in the dispatch thread.
Why do we need signals to be delivered to the dispatch thread? :)
| Andreas Pokorny (andreas-pokorny) wrote : | # |
> The thought occurs that another option would be
> SimpleDispatchT
> exception_handler).
>
> That would be simpler, as long as we don't need signals in the dispatch
> thread.
>
> Why do we need signals to be delivered to the dispatch thread? :)
The signal blocking inside the dispatch thread blocked "raise(SIGTERM)" inside run_mir.cpp. With the last change I solved that by using kill(getpid(), SIGTERM) - which is probably closer to what we want?
Now what should the default implementation of the exception handler do?
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2328
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2328
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2328
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2330
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:
http://
| Robert Carr (robertcarr) wrote : | # |
LGTM. Addition of wakes() in FakeEventHub suggests a member function would be useful but FakeEventHub is already rather messy *shrug*
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
| Alan Griffiths (alan-griffiths) wrote : | # |
Trivial resolution required:
Text conflict in src/server/
Text conflict in tests/unit-
| Alan Griffiths (alan-griffiths) wrote : | # |
A very mild nitpicking "Needs Fixing":
94-
That whitespace is useful
~~~~
999 std::lock_
1000 events_
1001+ wake();
Partly pre-existing, but I see that code (and change) repeated too many times - how about factoring it out into a function?
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2333
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2335
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:
http://
| Daniel van Vugt (vanvugt) wrote : | # |
Fix reverted due to bug 1444061. Please fix and resubmit.
| Andreas Pokorny (andreas-pokorny) wrote : | # |
splitting this up..
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2343
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2344
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2345
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2346
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2346
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2347
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2349
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:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
- 2350. By Andreas Pokorny on 2015-04-28
-
merge lp:mir

FAILED: Continuous integration, rev:2322 jenkins. qa.ubuntu. com/job/ mir-ci/ 3284/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/1719 jenkins. qa.ubuntu. com/job/ mir-clang- vivid-amd64- build/1718/ console jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/1672/ console jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 1281/console jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 1672/console
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/3284/ rebuild
http://