os: remove blocking semantics from packet stream

Fixes #4390
This commit is contained in:
Norman Feske
2022-01-25 15:11:46 +01:00
parent 59ca8f2489
commit 2b0e64e061
5 changed files with 55 additions and 114 deletions

View File

@ -58,8 +58,6 @@ class Packet_stream_tx::Client : public Genode::Rpc_client<CHANNEL>
/* wire data-flow signals for the packet transmitter */
_source.register_sigh_packet_avail(Base::template call<Rpc_packet_avail>());
_source.register_sigh_ready_to_ack(Base::template call<Rpc_ready_to_ack>());
sigh_ready_to_submit(_source.sigh_ready_to_submit());
sigh_ack_avail(_source.sigh_ack_avail());
}
void sigh_ready_to_submit(Genode::Signal_context_capability sigh) override {

View File

@ -29,8 +29,8 @@ class Packet_stream_tx::Rpc_object : public Genode::Rpc_object<CHANNEL, Rpc_obje
Genode::Capability<CHANNEL> _cap { };
typename CHANNEL::Sink _sink;
Genode::Signal_context_capability _sigh_ready_to_ack;
Genode::Signal_context_capability _sigh_packet_avail;
Genode::Signal_context_capability _sigh_ready_to_ack { };
Genode::Signal_context_capability _sigh_packet_avail { };
public:
@ -46,11 +46,7 @@ class Packet_stream_tx::Rpc_object : public Genode::Rpc_object<CHANNEL, Rpc_obje
Genode::Region_map &rm,
Genode::Rpc_entrypoint &ep)
:
_ep(ep), _sink(ds, rm),
/* init signal handlers with default handlers of sink */
_sigh_ready_to_ack(_sink.sigh_ready_to_ack()),
_sigh_packet_avail(_sink.sigh_packet_avail())
_ep(ep), _sink(ds, rm)
{
_cap = _ep.manage(this);
}