mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 16:14:13 +00:00
libc: remove Reconstructible / use local_submit in kernel
This commit is contained in:
parent
acb6bbb649
commit
424ed1b79a
@ -198,7 +198,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
|||||||
|
|
||||||
Atexit _atexit { _heap };
|
Atexit _atexit { _heap };
|
||||||
|
|
||||||
Reconstructible<Io_signal_handler<Kernel>> _resume_main_handler {
|
Io_signal_handler<Kernel> _resume_main_handler {
|
||||||
_env.ep(), *this, &Kernel::_resume_main };
|
_env.ep(), *this, &Kernel::_resume_main };
|
||||||
|
|
||||||
jmp_buf _kernel_context;
|
jmp_buf _kernel_context;
|
||||||
@ -275,7 +275,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
|||||||
|
|
||||||
Monitor::Pool _monitors { *this };
|
Monitor::Pool _monitors { *this };
|
||||||
|
|
||||||
Reconstructible<Io_signal_handler<Kernel>> _execute_monitors {
|
Io_signal_handler<Kernel> _execute_monitors {
|
||||||
_env.ep(), *this, &Kernel::_monitors_handler };
|
_env.ep(), *this, &Kernel::_monitors_handler };
|
||||||
|
|
||||||
Monitor::Pool::State _execute_monitors_pending = Monitor::Pool::State::ALL_COMPLETE;
|
Monitor::Pool::State _execute_monitors_pending = Monitor::Pool::State::ALL_COMPLETE;
|
||||||
@ -517,7 +517,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
|||||||
if (_main_context())
|
if (_main_context())
|
||||||
_resume_main();
|
_resume_main();
|
||||||
else
|
else
|
||||||
Signal_transmitter(*_resume_main_handler).submit();
|
_resume_main_handler.local_submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
_pthreads.resume_all();
|
_pthreads.resume_all();
|
||||||
@ -573,7 +573,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
|||||||
if (_main_context())
|
if (_main_context())
|
||||||
_monitors_handler();
|
_monitors_handler();
|
||||||
else
|
else
|
||||||
_execute_monitors->local_submit();
|
_execute_monitors.local_submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -615,7 +615,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
|||||||
if (_main_context())
|
if (_main_context())
|
||||||
_resume_main();
|
_resume_main();
|
||||||
else
|
else
|
||||||
Signal_transmitter(*_resume_main_handler).submit();
|
_resume_main_handler.local_submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,7 +132,7 @@ struct Libc::Pthread : Noncopyable
|
|||||||
/*
|
/*
|
||||||
* The mutex synchronizes the execution of cancel() and join() to
|
* The mutex synchronizes the execution of cancel() and join() to
|
||||||
* protect the about-to-exit pthread to be destructed before it leaves
|
* protect the about-to-exit pthread to be destructed before it leaves
|
||||||
* trigger_monitor_examination(), which uses a 'Signal_transmitter'
|
* trigger_monitor_examination(), which uses 'Signal_context::local_submit()'
|
||||||
* and, therefore, holds a reference to a signal context capability
|
* and, therefore, holds a reference to a signal context capability
|
||||||
* that needs to be released before the thread can be destroyed.
|
* that needs to be released before the thread can be destroyed.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user