vfs/pipe: use local signal handling

This commit improves the performance of the pipe plugin by using local
signal handling and avoiding sending a signal during write when pipe
buffer is full.

Issue 
This commit is contained in:
Sid Hussmann 2021-02-19 16:54:58 +01:00 committed by Norman Feske
parent 90d9470dfd
commit 6e8728f2d3

@ -128,12 +128,12 @@ struct Vfs_pipe::Pipe
void submit_read_signal()
{
Genode::Signal_transmitter(_read_notify_handler).submit();
_read_notify_handler.local_submit();
}
void submit_write_signal()
{
Genode::Signal_transmitter(_write_notify_handler).submit();
_write_notify_handler.local_submit();
}
/**
@ -212,7 +212,6 @@ struct Vfs_pipe::Pipe
bool notify = buffer.empty();
if (buffer.avail_capacity() == 0) {
submit_read_signal();
out_count = 0;
return Write_result::WRITE_OK;
}