mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 14:13:09 +00:00
parent
fa047f4dda
commit
cbd1464ee3
@ -584,6 +584,15 @@ namespace Kernel
|
|||||||
*/
|
*/
|
||||||
void _deliver();
|
void _deliver();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called by receiver when all submits have been delivered
|
||||||
|
*/
|
||||||
|
void _delivered()
|
||||||
|
{
|
||||||
|
_submits = 0;
|
||||||
|
_await_ack = 1;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -654,9 +663,7 @@ namespace Kernel
|
|||||||
c->_submits);
|
c->_submits);
|
||||||
*(Signal::Data *)t->phys_utcb()->base() = data;
|
*(Signal::Data *)t->phys_utcb()->base() = data;
|
||||||
t->received_signal();
|
t->received_signal();
|
||||||
|
c->_delivered();
|
||||||
/* reset context */
|
|
||||||
c->_submits = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1623,12 +1630,12 @@ void Signal_context::_deliver()
|
|||||||
{
|
{
|
||||||
if (!_submits) return;
|
if (!_submits) return;
|
||||||
_receiver->deliver(this);
|
_receiver->deliver(this);
|
||||||
_await_ack = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Signal_context::ack()
|
void Signal_context::ack()
|
||||||
{
|
{
|
||||||
|
assert(_await_ack);
|
||||||
_await_ack = 0;
|
_await_ack = 0;
|
||||||
if (!_killer) {
|
if (!_killer) {
|
||||||
_deliver();
|
_deliver();
|
||||||
|
Loading…
Reference in New Issue
Block a user