1
0
Fork 0
forked from wry/wry

compositor: add common parent for both compostior and forker

This commit is contained in:
Julian Orth 2025-04-26 19:49:12 +02:00
parent fdfc20452f
commit 4fa7e2a6ac
3 changed files with 136 additions and 23 deletions

View file

@ -44,9 +44,9 @@ use {
},
user_session::import_environment,
utils::{
clonecell::CloneCell, errorfmt::ErrorFmt, fdcloser::FdCloser, numcell::NumCell,
oserror::OsError, queue::AsyncQueue, refcounted::RefCounted, run_toplevel::RunToplevel,
tri::Try,
clone3::ensure_reaper, clonecell::CloneCell, errorfmt::ErrorFmt, fdcloser::FdCloser,
numcell::NumCell, oserror::OsError, queue::AsyncQueue, refcounted::RefCounted,
run_toplevel::RunToplevel, tri::Try,
},
version::VERSION,
video::drm::wait_for_sync_obj::WaitForSyncObj,
@ -64,7 +64,8 @@ pub const MAX_EXTENTS: i32 = (1 << 22) - 1;
pub fn start_compositor(global: GlobalArgs, args: RunArgs) {
sighand::reset_all();
let forker = create_forker();
let reaper_pid = ensure_reaper();
let forker = create_forker(reaper_pid);
let portal = portal::run_from_compositor(global.log_level.into());
enable_profiler();
let logger = Logger::install_compositor(global.log_level.into());
@ -94,8 +95,8 @@ pub fn start_compositor_for_test(future: TestFuture) -> Result<(), CompositorErr
res
}
fn create_forker() -> Rc<ForkerProxy> {
match ForkerProxy::create() {
fn create_forker(reaper_pid: c::pid_t) -> Rc<ForkerProxy> {
match ForkerProxy::create(reaper_pid) {
Ok(f) => Rc::new(f),
Err(e) => fatal!("Could not create a forker process: {}", ErrorFmt(e)),
}