acpid: setrens before ready(), fixing deadlock.
Otherwise, an open call to /scheme/acpi/tables will result in nsmgr blocking on an `openat(acpi_root, "tables")` call, which will never occur if acpid is itself blocking on a `ForkNs` call to nsmgr before it can serve any scheme requests.
This commit is contained in:
@@ -110,11 +110,11 @@ fn daemon(daemon: daemon::Daemon) -> ! {
|
|||||||
register_sync_scheme(&socket, "acpi", &mut scheme)
|
register_sync_scheme(&socket, "acpi", &mut scheme)
|
||||||
.expect("acpid: failed to register acpi scheme to namespace");
|
.expect("acpid: failed to register acpi scheme to namespace");
|
||||||
|
|
||||||
|
libredox::call::setrens(0, 0).expect("acpid: failed to enter null namespace");
|
||||||
|
|
||||||
daemon.ready();
|
daemon.ready();
|
||||||
log::info!("acpid ready");
|
log::info!("acpid ready");
|
||||||
|
|
||||||
libredox::call::setrens(0, 0).expect("acpid: failed to enter null namespace");
|
|
||||||
|
|
||||||
let mut mounted = true;
|
let mut mounted = true;
|
||||||
while mounted {
|
while mounted {
|
||||||
let Some(event) = event_queue
|
let Some(event) = event_queue
|
||||||
|
|||||||
Reference in New Issue
Block a user