mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 10:38:55 +00:00
base: call Io_progress_handler only in signal RPC
This remove the call to Io_progress_handler::handle_io_progress() from wait_and_dispatch_one_io_signal() to prevent unexpected nesting I/O-progress handling in case of custom dispatch loops (e.g., in libc). The original intention of Io_progress_handler was to inform the entrypoint just before blocking in the entrypoint loop. Issue #2635
This commit is contained in:
parent
9e42a9ac7e
commit
a89d61acf2
@ -233,8 +233,6 @@ bool Entrypoint::_wait_and_dispatch_one_io_signal(bool const dont_block)
|
||||
}
|
||||
}
|
||||
|
||||
_handle_io_progress();
|
||||
|
||||
/* initiate potential deferred-signal handling in entrypoint */
|
||||
if (_deferred_signals.first()) {
|
||||
/* construct the handler on demand (otherwise we break core) */
|
||||
|
@ -458,6 +458,7 @@ struct Libc::Kernel final : Vfs::Io_response_handler,
|
||||
} else {
|
||||
/* block for signals */
|
||||
_env.ep().wait_and_dispatch_one_io_signal();
|
||||
handle_io_progress();
|
||||
}
|
||||
|
||||
if (!_kernel_routine && _resume_main_once && !_setjmp(_kernel_context))
|
||||
|
Loading…
Reference in New Issue
Block a user