aboutsummaryrefslogtreecommitdiff
path: root/libdiskfs/validate-rdev.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-11-26 21:01:49 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-11-26 21:01:49 +0100
commit5f25b24d6c6170cc366d9b71f99d741c4cfbc857 (patch)
tree38617ca12d24aa4f895948ad5fe26b1069776221 /libdiskfs/validate-rdev.c
parent9e419ee8f47028e8f58c456b6456c348f7f0bcfa (diff)
downloadhurd-5f25b24d6c6170cc366d9b71f99d741c4cfbc857.tar.gz
hurd-5f25b24d6c6170cc366d9b71f99d741c4cfbc857.tar.bz2
hurd-5f25b24d6c6170cc366d9b71f99d741c4cfbc857.zip
libports: Force threads to wake up periodically
Quiescence support in port-deref-deferred.c assumes that all threads will sooner or later go through a quiescent state (because it finished processing a message). But that is not true: proc doesn't set a thread timeout, and thus some threads can stay indefinitely stuck in receiving messages. And thus the deferred dereferencing used by ports_destroy_right never gets achieved. This accumulation can be seen by running: while true ; do echo $(echo -n $(echo a)) > /dev/null ; done while running vminfo 4 | wc -l in parallel. Making threads get out of mach_msg at least periodically allows unstucking quiescence generations.
Diffstat (limited to 'libdiskfs/validate-rdev.c')
0 files changed, 0 insertions, 0 deletions