autocommit 2022-04-11 19:56:52 CEST
This commit is contained in:
parent
86ca98c38a
commit
d9d1addbf5
3 changed files with 23 additions and 3 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -700,9 +700,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "uapi"
|
||||
version = "0.2.7"
|
||||
version = "0.2.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea2a608d845b3ddcf7769250f94124d29e346c0f8fdb935756c6b758ac5d9b59"
|
||||
checksum = "7e1cab2fc800ded6ae4bc579e8c563a7dba3e1691510c1a82375409e44aa5b58"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cfg-if 0.1.10",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ panic = "abort"
|
|||
panic = "abort"
|
||||
|
||||
[dependencies]
|
||||
uapi = "0.2.7"
|
||||
uapi = "0.2.9"
|
||||
thiserror = "1.0.30"
|
||||
ahash = "0.7.6"
|
||||
log = { version = "0.4.16", features = ["std"] }
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
use uapi::c;
|
||||
use {
|
||||
crate::{
|
||||
acceptor::{Acceptor, AcceptorError},
|
||||
|
|
@ -35,6 +36,8 @@ use {
|
|||
std::{cell::Cell, ops::Deref, rc::Rc, sync::Arc},
|
||||
thiserror::Error,
|
||||
};
|
||||
use crate::utils::oserror::OsError;
|
||||
use crate::utils::tri::Try;
|
||||
|
||||
pub const MAX_EXTENTS: i32 = (1 << 24) - 1;
|
||||
|
||||
|
|
@ -51,6 +54,7 @@ pub fn start_compositor(global: GlobalArgs, args: RunArgs) {
|
|||
eprintln!("See {} for more details.", logger.path());
|
||||
std::process::exit(1);
|
||||
}
|
||||
log::info!("Exit");
|
||||
}
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
|
|
@ -72,6 +76,7 @@ enum MainError {
|
|||
}
|
||||
|
||||
fn main_(forker: Rc<ForkerProxy>, logger: Arc<Logger>, _args: &RunArgs) -> Result<(), MainError> {
|
||||
init_fd_limit();
|
||||
leaks::init();
|
||||
render::init()?;
|
||||
clientmem::init()?;
|
||||
|
|
@ -195,3 +200,18 @@ fn main_(forker: Rc<ForkerProxy>, logger: Arc<Logger>, _args: &RunArgs) -> Resul
|
|||
leaks::log_leaked();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn init_fd_limit() {
|
||||
let res = OsError::tri(|| {
|
||||
let mut cur = uapi::getrlimit(c::RLIMIT_NOFILE as _)?;
|
||||
if cur.rlim_cur < cur.rlim_max {
|
||||
log::info!("Increasing file descriptor limit from {} to {}", cur.rlim_cur, cur.rlim_max);
|
||||
cur.rlim_cur = cur.rlim_max;
|
||||
uapi::setrlimit(c::RLIMIT_NOFILE as _, &cur)?;
|
||||
}
|
||||
Ok(())
|
||||
});
|
||||
if let Err(e) = res {
|
||||
log::warn!("Could not increase file descriptor limit: {}", ErrorFmt(e));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue