Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
/// Adjusts resource limits applied to the Warp process (e.g.: the limit on open
|
||||
/// file descriptors) to ensure proper behavior.
|
||||
pub fn adjust_resource_limits() {
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
/// Our desired limit on the maximum number of file descriptors we can open.
|
||||
///
|
||||
/// MacOS sets this value to 256, by default, which can interfere with
|
||||
/// normal usage of Warp for users who open lots of tabs.
|
||||
const TARGET_FD_LIMIT: u64 = 2560;
|
||||
|
||||
use nix::sys::resource::{getrlimit, setrlimit, Resource::RLIMIT_NOFILE};
|
||||
|
||||
let (cur_limit, hard_limit) = match getrlimit(RLIMIT_NOFILE) {
|
||||
Ok(val) => val,
|
||||
Err(err) => {
|
||||
log::error!("Failed to retrieve resource limit for number of files: {err:#}");
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
log::info!(
|
||||
"Initial open file descriptor limit is {cur_limit}, with a hard limit of {hard_limit}"
|
||||
);
|
||||
let new_limit = TARGET_FD_LIMIT.min(hard_limit);
|
||||
if cur_limit < new_limit {
|
||||
match setrlimit(RLIMIT_NOFILE, new_limit, hard_limit) {
|
||||
Ok(_) => log::info!("Increased open file descriptor limit to {new_limit}"),
|
||||
Err(err) => log::error!("Failed to increase open file descriptor limit: {err:#}"),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user