windows: Missing commit of #25412 (#25732)

Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
This commit is contained in:
张小白 2025-02-27 16:00:42 +08:00 committed by GitHub
parent 0b96690446
commit 0625006a9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 15 additions and 13 deletions

View file

@ -524,7 +524,7 @@ mod flatpak {
#[cfg(target_os = "windows")]
mod windows {
use anyhow::Context;
use release_channel::APP_IDENTIFIER;
use release_channel::app_identifier;
use windows::{
core::HSTRING,
Win32::{
@ -546,7 +546,7 @@ mod windows {
CreateMutexW(
None,
false,
&HSTRING::from(format!("{}-Instance-Mutex", *APP_IDENTIFIER)),
&HSTRING::from(format!("{}-Instance-Mutex", app_identifier())),
)
.expect("Unable to create instance sync event")
};
@ -583,7 +583,7 @@ mod windows {
} else {
unsafe {
let pipe = CreateFileW(
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", *APP_IDENTIFIER)),
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", app_identifier())),
GENERIC_WRITE.0,
FILE_SHARE_MODE::default(),
None,

View file

@ -25,12 +25,14 @@ pub static RELEASE_CHANNEL: LazyLock<ReleaseChannel> =
/// The app identifier for the current release channel, Windows only.
#[cfg(target_os = "windows")]
pub static APP_IDENTIFIER: LazyLock<&str> = LazyLock::new(|| match *RELEASE_CHANNEL {
pub fn app_identifier() -> &'static str {
match *RELEASE_CHANNEL {
ReleaseChannel::Dev => "Zed-Editor-Dev",
ReleaseChannel::Nightly => "Zed-Editor-Nightly",
ReleaseChannel::Preview => "Zed-Editor-Preview",
ReleaseChannel::Stable => "Zed-Editor-Stable",
});
}
}
/// The Git commit SHA that Zed was built at.
#[derive(Clone)]

View file

@ -4,7 +4,7 @@ use anyhow::Context;
use clap::Parser;
use cli::{ipc::IpcOneShotServer, CliRequest, CliResponse, IpcHandshake};
use parking_lot::Mutex;
use release_channel::APP_IDENTIFIER;
use release_channel::app_identifier;
use util::ResultExt;
use windows::{
core::HSTRING,
@ -31,7 +31,7 @@ pub fn check_single_instance(opener: OpenListener, run_foreground: bool) -> bool
CreateMutexW(
None,
false,
&HSTRING::from(format!("{}-Instance-Mutex", *APP_IDENTIFIER)),
&HSTRING::from(format!("{}-Instance-Mutex", app_identifier())),
)
.expect("Unable to create instance sync event")
};
@ -51,7 +51,7 @@ pub fn check_single_instance(opener: OpenListener, run_foreground: bool) -> bool
fn with_pipe(f: impl Fn(String)) {
let pipe = unsafe {
CreateNamedPipeW(
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", *APP_IDENTIFIER)),
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", app_identifier())),
PIPE_ACCESS_INBOUND,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
1,
@ -152,7 +152,7 @@ fn send_args_to_instance() -> anyhow::Result<()> {
unsafe {
let pipe = CreateFileW(
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", *APP_IDENTIFIER)),
&HSTRING::from(format!("\\\\.\\pipe\\{}-Named-Pipe", app_identifier())),
GENERIC_WRITE.0,
FILE_SHARE_MODE::default(),
None,