mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-06 01:11:46 +00:00
parent
519bed419d
commit
dc0ac78b34
@ -178,12 +178,13 @@ namespace Nic {
|
|||||||
if (!_tx_sink->ready_to_ack()) {
|
if (!_tx_sink->ready_to_ack()) {
|
||||||
_wait_event(_tx_sink->ready_to_ack());
|
_wait_event(_tx_sink->ready_to_ack());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* acknowledge to client */
|
/* acknowledge to client */
|
||||||
_tx_sink->acknowledge_packet(packet);
|
_tx_sink->acknowledge_packet(packet);
|
||||||
|
|
||||||
/* check if we received any signals (don't block) */
|
/* it's cooperative scheduling - be nice */
|
||||||
if ((tx_cnt % 20) == 0)
|
if (tx_cnt == 20)
|
||||||
Service_handler::s()->check_signal(false);
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* sumbit last skb */
|
/* sumbit last skb */
|
||||||
@ -197,6 +198,9 @@ namespace Nic {
|
|||||||
|
|
||||||
/* release acknowledged packets */
|
/* release acknowledged packets */
|
||||||
_rx_ack(false);
|
_rx_ack(false);
|
||||||
|
|
||||||
|
if (_tx_sink->packet_avail())
|
||||||
|
Signal_transmitter(_tx.sigh_packet_avail()).submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rx_ack(bool block = true)
|
void _rx_ack(bool block = true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user