0a358aa05f
Add diagnostics to pin down where the INIT_NOTIFY fd handoff hangs: - init/src/service.rs: log read_pipe fd and call_ro results - daemon/src/lib.rs: log cap_fd, write_pipe, and call_wo result - logd/src/main.rs: explicit ready_sync_scheme result and setrens fallback These are temporary diagnostics for the boot-hang investigation.
32 lines
843 B
Rust
32 lines
843 B
Rust
use redox_scheme::Socket;
|
|
use scheme_utils::Blocking;
|
|
|
|
use crate::scheme::LogScheme;
|
|
|
|
mod scheme;
|
|
|
|
fn daemon(daemon: daemon::SchemeDaemon) -> ! {
|
|
let socket = Socket::create().expect("logd: failed to create log scheme");
|
|
|
|
let mut scheme = LogScheme::new(&socket);
|
|
let handler = Blocking::new(&socket, 16);
|
|
|
|
match daemon.ready_sync_scheme(&socket, &mut scheme) {
|
|
Ok(()) => eprintln!("logd: ready_sync_scheme succeeded"),
|
|
Err(err) => eprintln!("logd: ready_sync_scheme failed: {err}"),
|
|
}
|
|
|
|
match libredox::call::setrens(0, 0) {
|
|
Ok(_) => {}
|
|
Err(err) => eprintln!("logd: warning: failed to enter null namespace: {err}"),
|
|
}
|
|
|
|
handler
|
|
.process_requests_blocking(scheme)
|
|
.expect("logd: failed to process requests");
|
|
}
|
|
|
|
fn main() {
|
|
daemon::SchemeDaemon::new(daemon);
|
|
}
|