This repository has been archived by the owner on Aug 20, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 82
EventFactoryWayland should observe message loop destruction. #40
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
EventFactoryWayland registers itself for observing any processed tasks but is never removed from the list. Expectation here is that it would be cleaned up during exit phase. Correct solution would be to make EventFactoryWayland register as destruction observer of the message loop. Now, EventFactoryWayland adds itself to destruction observer list and does proper de-registrations when the message loop is about to be destroyed.
ghost
assigned tiagovignatti
Sep 3, 2013
@@ -30,11 +30,15 @@ | |||
CHECK(success); | |||
|
|||
dis->FlushTasks(); | |||
base::MessageLoop::current()->AddTaskObserver(this); | |||
loop_ = base::MessageLoop::current(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think if loop_ is NULL then we have to raise an fatal error here. And do we actually need loop_ to be saved out of this scope?
Take review comments into consideration. Done Changes: 1)Donot have a local pointer for currentloop. 2)Add an assertion in constructor of EventFactoryWayland.
This was referenced Sep 3, 2013
tiagovignatti
added a commit
that referenced
this pull request
May 28, 2014
[17567:17567:0528/100616:ERROR:display.cc(227)] Not implemented reached in virtual void ozonewayland::WaylandDisplay::SetWidgetState(unsigned int, ui::WidgetState, unsigned int, unsigned int) SHOW 1 [17567:17606:0528/100616:WARNING:server_connection_manager.cc(296)] ServerConnectionManager forcing SYNC_AUTH_ERROR [17567:17606:0528/100616:WARNING:syncer_proto_util.cc(277)] Error posting from syncer: Response Code (bogus on error): -1 Content-Length (bogus on error): -1 Server Status: SYNC_AUTH_ERROR [17567:17606:0528/100616:ERROR:get_updates_processor.cc(240)] PostClientToServerMessage() failed during GetUpdates [17567:17584:0528/100617:WARNING:backend_impl.cc(1780)] Destroying invalid entry. [17567:17567:0528/100616:FATAL:input_device.cc(216)] Check failed: input_pointer_. #0 0x7f9f01fd0a99 base::debug::StackTrace::StackTrace() #1 0x7f9f02022a33 logging::LogMessage::~LogMessage() #2 0x7f9f03337610 ozonewayland::WaylandInputDevice::SetCursorType() #3 0x7f9f0332f9c8 ozonewayland::WaylandDisplay::SetWidgetCursor() #4 0x7f9f06f07869 views::DesktopWindowTreeHostWayland::SetCursorNative() #5 0x7f9f033238ad aura::WindowTreeHost::SetCursor() #6 0x7f9f06f1da8d views::DesktopNativeCursorManager::SetCursor() #7 0x7f9f06dcdf5c wm::CursorManager::SetCursor() #8 0x7f9f06dc94d8 wm::CompoundEventFilter::UpdateCursor() #9 0x7f9f06dc99bf wm::CompoundEventFilter::OnMouseEvent() #10 0x7f9f086c0093 ui::EventHandler::OnEvent() #11 0x7f9f086bdcf1 ui::EventDispatcher::DispatchEvent() #12 0x7f9f086bdab7 ui::EventDispatcher::DispatchEventToEventHandlers() #13 0x7f9f086bd79d ui::EventDispatcher::ProcessEvent() #14 0x7f9f086bd476 ui::EventDispatcherDelegate::DispatchEventToTarget() #15 0x7f9f086bd33d ui::EventDispatcherDelegate::DispatchEvent() #16 0x7f9f0331bcbf aura::WindowEventDispatcher::DispatchMouseEnterOrExit() #17 0x7f9f0331dde1 aura::WindowEventDispatcher::PreDispatchMouseEvent() #18 0x7f9f0331c5c1 aura::WindowEventDispatcher::PreDispatchEvent() #19 0x7f9f086bd2dd ui::EventDispatcherDelegate::DispatchEvent() #20 0x7f9f086c15e7 ui::EventProcessor::OnEventFromSource() #21 0x7f9f0331d845 aura::WindowEventDispatcher::SynthesizeMouseMoveEvent() #22 0x7f9f0331fe00 base::internal::RunnableAdapter<>::Run() #23 0x7f9f0331fc87 base::internal::InvokeHelper<>::MakeItSo() #24 0x7f9f0331fab8 base::internal::Invoker<>::Run() #25 0x7f9f00e1beb9 base::Callback<>::Run() #26 0x7f9f02033288 base::MessageLoop::RunTask() #27 0x7f9f020333ac base::MessageLoop::DeferOrRunPendingTask() #28 0x7f9f020338d3 base::MessageLoop::DoWork() #29 0x7f9f01fb45ef base::MessagePumpLibevent::Run() #30 0x7f9f02032dd7 base::MessageLoop::RunHandler() #31 0x7f9f0207300a base::RunLoop::Run() #32 0x7f9f01678366 ChromeBrowserMainParts::MainMessageLoopRun() #33 0x7f9f05851634 content::BrowserMainLoop::RunMainMessageLoopParts() #34 0x7f9f058589dc content::BrowserMainRunnerImpl::Run() #35 0x7f9f0584dba8 content::BrowserMain() #36 0x7f9f01f73f75 content::RunNamedProcessTypeMain() #37 0x7f9f01f74fa1 content::ContentMainRunnerImpl::Run() #38 0x7f9f01f73439 content::ContentMain() #39 0x7f9f00d75344 ChromeMain #40 0x7f9f00d752ea main #41 0x7f9efcbc876d __libc_start_main #42 0x7f9f00d751f9 <unknown>
rakuco
pushed a commit
to rakuco/ozone-wayland
that referenced
this pull request
Jun 19, 2014
[17567:17567:0528/100616:ERROR:display.cc(227)] Not implemented reached in virtual void ozonewayland::WaylandDisplay::SetWidgetState(unsigned int, ui::WidgetState, unsigned int, unsigned int) SHOW 1 [17567:17606:0528/100616:WARNING:server_connection_manager.cc(296)] ServerConnectionManager forcing SYNC_AUTH_ERROR [17567:17606:0528/100616:WARNING:syncer_proto_util.cc(277)] Error posting from syncer: Response Code (bogus on error): -1 Content-Length (bogus on error): -1 Server Status: SYNC_AUTH_ERROR [17567:17606:0528/100616:ERROR:get_updates_processor.cc(240)] PostClientToServerMessage() failed during GetUpdates [17567:17584:0528/100617:WARNING:backend_impl.cc(1780)] Destroying invalid entry. [17567:17567:0528/100616:FATAL:input_device.cc(216)] Check failed: input_pointer_. #0 0x7f9f01fd0a99 base::debug::StackTrace::StackTrace() intel#1 0x7f9f02022a33 logging::LogMessage::~LogMessage() intel#2 0x7f9f03337610 ozonewayland::WaylandInputDevice::SetCursorType() intel#3 0x7f9f0332f9c8 ozonewayland::WaylandDisplay::SetWidgetCursor() intel#4 0x7f9f06f07869 views::DesktopWindowTreeHostWayland::SetCursorNative() intel#5 0x7f9f033238ad aura::WindowTreeHost::SetCursor() intel#6 0x7f9f06f1da8d views::DesktopNativeCursorManager::SetCursor() intel#7 0x7f9f06dcdf5c wm::CursorManager::SetCursor() intel#8 0x7f9f06dc94d8 wm::CompoundEventFilter::UpdateCursor() intel#9 0x7f9f06dc99bf wm::CompoundEventFilter::OnMouseEvent() intel#10 0x7f9f086c0093 ui::EventHandler::OnEvent() intel#11 0x7f9f086bdcf1 ui::EventDispatcher::DispatchEvent() intel#12 0x7f9f086bdab7 ui::EventDispatcher::DispatchEventToEventHandlers() intel#13 0x7f9f086bd79d ui::EventDispatcher::ProcessEvent() intel#14 0x7f9f086bd476 ui::EventDispatcherDelegate::DispatchEventToTarget() intel#15 0x7f9f086bd33d ui::EventDispatcherDelegate::DispatchEvent() intel#16 0x7f9f0331bcbf aura::WindowEventDispatcher::DispatchMouseEnterOrExit() intel#17 0x7f9f0331dde1 aura::WindowEventDispatcher::PreDispatchMouseEvent() intel#18 0x7f9f0331c5c1 aura::WindowEventDispatcher::PreDispatchEvent() intel#19 0x7f9f086bd2dd ui::EventDispatcherDelegate::DispatchEvent() intel#20 0x7f9f086c15e7 ui::EventProcessor::OnEventFromSource() intel#21 0x7f9f0331d845 aura::WindowEventDispatcher::SynthesizeMouseMoveEvent() intel#22 0x7f9f0331fe00 base::internal::RunnableAdapter<>::Run() intel#23 0x7f9f0331fc87 base::internal::InvokeHelper<>::MakeItSo() intel#24 0x7f9f0331fab8 base::internal::Invoker<>::Run() intel#25 0x7f9f00e1beb9 base::Callback<>::Run() intel#26 0x7f9f02033288 base::MessageLoop::RunTask() intel#27 0x7f9f020333ac base::MessageLoop::DeferOrRunPendingTask() intel#28 0x7f9f020338d3 base::MessageLoop::DoWork() intel#29 0x7f9f01fb45ef base::MessagePumpLibevent::Run() intel#30 0x7f9f02032dd7 base::MessageLoop::RunHandler() intel#31 0x7f9f0207300a base::RunLoop::Run() intel#32 0x7f9f01678366 ChromeBrowserMainParts::MainMessageLoopRun() intel#33 0x7f9f05851634 content::BrowserMainLoop::RunMainMessageLoopParts() intel#34 0x7f9f058589dc content::BrowserMainRunnerImpl::Run() intel#35 0x7f9f0584dba8 content::BrowserMain() intel#36 0x7f9f01f73f75 content::RunNamedProcessTypeMain() intel#37 0x7f9f01f74fa1 content::ContentMainRunnerImpl::Run() intel#38 0x7f9f01f73439 content::ContentMain() intel#39 0x7f9f00d75344 ChromeMain intel#40 0x7f9f00d752ea main intel#41 0x7f9efcbc876d __libc_start_main intel#42 0x7f9f00d751f9 <unknown> (cherry picked from commit 374e95a)
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EventFactoryWayland registers itself for observing
any processed tasks but is never removed from the list.
Expectation here is that it would be cleaned up during
exit phase. Correct solution would be to make
EventFactoryWayland register as destruction observer
of the message loop.
Now, EventFactoryWayland adds itself to destruction
observer list and does proper de-registrations when
the message loop is about to be destroyed.