mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 11:16:57 +00:00
timer: Don't set default cap as custom cap
Without the patch the signal cap was ever transferred to the timer session when a usleep/msleep was called, even when unneeded. On base-nova this causes the allocation of new capability indexes which are not freed up. So the timer service run quickly out of indexes and get out of order... Related to issue #1
This commit is contained in:
parent
26e8e0ebdd
commit
439315d918
@ -38,7 +38,7 @@ namespace Timer {
|
||||
_default_sigh_cap(_sig_rec.manage(&_default_sigh_ctx))
|
||||
{
|
||||
/* register default signal handler */
|
||||
sigh(_default_sigh_cap);
|
||||
Session_client::sigh(_default_sigh_cap);
|
||||
}
|
||||
|
||||
~Connection() { _sig_rec.dissolve(&_default_sigh_ctx); }
|
||||
@ -59,7 +59,7 @@ namespace Timer {
|
||||
|
||||
/* temporarily install to the default signal handler */
|
||||
if (_custom_sigh_cap.valid())
|
||||
sigh(_default_sigh_cap);
|
||||
Session_client::sigh(_default_sigh_cap);
|
||||
|
||||
/* trigger timeout at default signal handler */
|
||||
trigger_once(us);
|
||||
@ -67,7 +67,7 @@ namespace Timer {
|
||||
|
||||
/* revert custom signal handler if registered */
|
||||
if (_custom_sigh_cap.valid())
|
||||
sigh(_custom_sigh_cap);
|
||||
Session_client::sigh(_custom_sigh_cap);
|
||||
}
|
||||
|
||||
void msleep(unsigned ms)
|
||||
|
Loading…
Reference in New Issue
Block a user