diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 89ff72b5a9..83f30f3e6d 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -32,7 +32,7 @@ use node_runtime::{NodeBinaryOptions, NodeRuntime}; use parking_lot::Mutex; use project::project_settings::ProjectSettings; use recent_projects::{open_ssh_project, SshSettings}; -use release_channel::{AppCommitSha, AppVersion}; +use release_channel::{AppCommitSha, AppVersion, ReleaseChannel}; use session::{AppSession, Session}; use settings::{ handle_settings_file_changes, watch_config_file, InvalidSettingsError, Settings, SettingsStore, @@ -164,32 +164,29 @@ fn main() { let (open_listener, mut open_rx) = OpenListener::new(); - #[cfg(target_os = "linux")] - { - if env::var("ZED_STATELESS").is_err() { - if crate::zed::listen_for_cli_connections(open_listener.clone()).is_err() { - println!("zed is already running"); - return; + let failed_single_instance_check = + if *db::ZED_STATELESS || *release_channel::RELEASE_CHANNEL == ReleaseChannel::Dev { + false + } else { + #[cfg(target_os = "linux")] + { + crate::zed::listen_for_cli_connections(open_listener.clone()).is_err() } - } - } - #[cfg(target_os = "windows")] - { - use zed::windows_only_instance::*; - if !check_single_instance() { - println!("zed is already running"); - return; - } - } + #[cfg(target_os = "windows")] + { + !crate::zed::windows_only_instance::check_single_instance() + } - #[cfg(target_os = "macos")] - { - use zed::mac_only_instance::*; - if ensure_only_instance() != IsOnlyInstance::Yes { - println!("zed is already running"); - return; - } + #[cfg(target_os = "macos")] + { + use zed::mac_only_instance::*; + ensure_only_instance() != IsOnlyInstance::Yes + } + }; + if failed_single_instance_check { + println!("zed is already running"); + return; } let git_hosting_provider_registry = Arc::new(GitHostingProviderRegistry::new()); diff --git a/crates/zed/src/zed/mac_only_instance.rs b/crates/zed/src/zed/mac_only_instance.rs index 2c8f564201..716c2224e3 100644 --- a/crates/zed/src/zed/mac_only_instance.rs +++ b/crates/zed/src/zed/mac_only_instance.rs @@ -87,10 +87,6 @@ pub enum IsOnlyInstance { } pub fn ensure_only_instance() -> IsOnlyInstance { - if *db::ZED_STATELESS || *release_channel::RELEASE_CHANNEL == ReleaseChannel::Dev { - return IsOnlyInstance::Yes; - } - if check_got_handshake() { return IsOnlyInstance::No; } diff --git a/crates/zed/src/zed/windows_only_instance.rs b/crates/zed/src/zed/windows_only_instance.rs index e8d32e7ed0..2645650bfa 100644 --- a/crates/zed/src/zed/windows_only_instance.rs +++ b/crates/zed/src/zed/windows_only_instance.rs @@ -17,14 +17,6 @@ fn retrieve_app_instance_event_identifier() -> &'static str { } pub fn check_single_instance() -> bool { - if *db::ZED_STATELESS || *release_channel::RELEASE_CHANNEL == ReleaseChannel::Dev { - return true; - } - - check_single_instance_event() -} - -fn check_single_instance_event() -> bool { unsafe { CreateEventW( None,