mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 02:01:38 +00:00
parent
9eb20c2be7
commit
751e6430fa
@ -199,7 +199,7 @@ int Signal_receiver::add_handler(Signal_handler &h)
|
||||
if (h._receiver) { return -1; }
|
||||
_handlers.enqueue(h._handlers_fe);
|
||||
h._receiver = this;
|
||||
h._thread.signal_wait_for_signal(*this);
|
||||
h._thread.signal_wait_for_signal();
|
||||
_listen();
|
||||
return 0;
|
||||
}
|
||||
|
@ -165,10 +165,9 @@ void Thread::signal_context_kill_failed()
|
||||
}
|
||||
|
||||
|
||||
void Thread::signal_wait_for_signal(Signal_receiver &receiver)
|
||||
void Thread::signal_wait_for_signal()
|
||||
{
|
||||
_become_inactive(AWAITS_SIGNAL);
|
||||
_signal_receiver = &receiver;
|
||||
}
|
||||
|
||||
|
||||
@ -821,7 +820,7 @@ Thread::Thread(unsigned const priority, unsigned const quota,
|
||||
:
|
||||
Kernel::Object { *this },
|
||||
Cpu_job(priority, quota), _ipc_node(*this), _state(AWAITS_START),
|
||||
_signal_receiver(0), _label(label), _core(core), regs(core) { }
|
||||
_label(label), _core(core), regs(core) { }
|
||||
|
||||
|
||||
void Thread::print(Genode::Output &out) const
|
||||
|
@ -136,7 +136,6 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout
|
||||
State _state;
|
||||
Signal_handler _signal_handler { *this };
|
||||
Signal_context_killer _signal_context_killer { *this };
|
||||
Signal_receiver *_signal_receiver;
|
||||
char const *const _label;
|
||||
capid_t _timeout_sigid { 0 };
|
||||
bool _paused { false };
|
||||
@ -378,7 +377,7 @@ class Kernel::Thread : private Kernel::Object, public Cpu_job, private Timeout
|
||||
void signal_context_kill_pending();
|
||||
void signal_context_kill_failed();
|
||||
void signal_context_kill_done();
|
||||
void signal_wait_for_signal(Signal_receiver &receiver);
|
||||
void signal_wait_for_signal();
|
||||
void signal_receive_signal(void * const base, size_t const size);
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user