mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 10:38:55 +00:00
base: exit loop on cpu session close
if session can't be closed immediately, e.g. if the service is provided by a child (cpu_balancer) and not by the parent. Issue #4029
This commit is contained in:
parent
8eb514d6b5
commit
18182b11da
@ -870,8 +870,13 @@ void Child::close_all_sessions()
|
|||||||
* warnings generated by threads that are losing their PD while still
|
* warnings generated by threads that are losing their PD while still
|
||||||
* running.
|
* running.
|
||||||
*/
|
*/
|
||||||
while (unsigned long id_value = any_cpu_session_id(_id_space).value)
|
while (unsigned long id_value = any_cpu_session_id(_id_space).value) {
|
||||||
(void)close(Parent::Client::Id{id_value});
|
Close_result const close_result = close(Parent::Client::Id{id_value});
|
||||||
|
|
||||||
|
/* break infinte loop if CPU session is provided by a child */
|
||||||
|
if (close_result != CLOSE_DONE)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
_initial_thread.destruct();
|
_initial_thread.destruct();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user