mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 13:26:27 +00:00
gui_fb: reset signal handlers when closing fb
The gui_fb client may have installed a custom sync_sigh and mode_sigh. Reset those signal handlers at the GUI server should the client disappear. Otherwise, the GUI server (nitpicker) continues to attempt transmitting sync signals to the no-longer existing component, spamming the log with "Warning: invalid signal-context capability" messages.
This commit is contained in:
parent
dd13a976af
commit
f650f2e91b
@ -289,11 +289,30 @@ struct Nit_fb::Main : View_updater
|
||||
Input::Session_component input_session { env, env.ram() };
|
||||
Framebuffer::Session_component fb_session { env.pd(), gui, *this, _initial_mode() };
|
||||
|
||||
Static_root<Input::Session> input_root { env.ep().manage(input_session) };
|
||||
|
||||
/*
|
||||
* Attach root interfaces to the entry point
|
||||
*/
|
||||
Static_root<Input::Session> input_root { env.ep().manage(input_session) };
|
||||
Static_root<Framebuffer::Session> fb_root { env.ep().manage(fb_session) };
|
||||
|
||||
struct Fb_root : Static_root<Framebuffer::Session>
|
||||
{
|
||||
Main &_main;
|
||||
|
||||
Fb_root(Main &main)
|
||||
:
|
||||
Static_root<Framebuffer::Session>(main.env.ep().manage(main.fb_session)),
|
||||
_main(main)
|
||||
{ }
|
||||
|
||||
void close(Genode::Capability<Genode::Session>) override
|
||||
{
|
||||
_main.fb_session.sync_sigh(Genode::Signal_context_capability());
|
||||
_main.fb_session.mode_sigh(Genode::Signal_context_capability());
|
||||
}
|
||||
};
|
||||
|
||||
Fb_root fb_root { *this };
|
||||
|
||||
/**
|
||||
* View_updater interface
|
||||
|
Loading…
Reference in New Issue
Block a user