diff options
Diffstat (limited to 'user/rust/0040-rls-atomics.patch')
-rw-r--r-- | user/rust/0040-rls-atomics.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/user/rust/0040-rls-atomics.patch b/user/rust/0040-rls-atomics.patch new file mode 100644 index 000000000..61811ef4d --- /dev/null +++ b/user/rust/0040-rls-atomics.patch @@ -0,0 +1,63 @@ +diff --git a/src/tools/rls/src/cmd.rs b/src/tools/rls/src/cmd.rs +index 545a129..8285f99 100644 +--- a/src/tools/rls/src/cmd.rs ++++ b/src/tools/rls/src/cmd.rs +@@ -16,7 +16,7 @@ use crate::actions::requests; + use rls_analysis::{AnalysisHost, Target}; + use crate::config::Config; + use crate::server::{self, LsService, Notification, Request, RequestId}; +-use std::sync::atomic::{AtomicU64, Ordering}; ++use std::sync::atomic::{AtomicU32, Ordering}; + use rls_vfs::Vfs; + + use languageserver_types::{ +@@ -415,8 +415,8 @@ fn url(file_name: &str) -> Url { + } + + fn next_id() -> RequestId { +- static ID: AtomicU64 = AtomicU64::new(1); +- RequestId::Num(ID.fetch_add(1, Ordering::SeqCst)) ++ static ID: AtomicU32 = AtomicU32::new(1); ++ RequestId::Num(ID.fetch_add(1, Ordering::SeqCst).into()) + } + + // Custom reader and output for the RLS server. +diff --git a/src/tools/rls/src/server/io.rs b/src/tools/rls/src/server/io.rs +index 5d5060e..55ab545 100644 +--- a/src/tools/rls/src/server/io.rs ++++ b/src/tools/rls/src/server/io.rs +@@ -17,7 +17,7 @@ use crate::lsp_data::{LSPNotification, LSPRequest}; + + use std::fmt; + use std::io::{self, BufRead, Write}; +-use std::sync::atomic::{AtomicU64, Ordering}; ++use std::sync::atomic::{AtomicU32, Ordering}; + use std::sync::Arc; + + use jsonrpc_core::{self as jsonrpc, response, version, Id}; +@@ -190,14 +190,14 @@ pub trait Output: Sync + Send + Clone + 'static { + /// An output that sends notifications and responses on `stdout`. + #[derive(Clone)] + pub(super) struct StdioOutput { +- next_id: Arc<AtomicU64>, ++ next_id: Arc<AtomicU32>, + } + + impl StdioOutput { + /// Construct a new `stdout` output. + crate fn new() -> StdioOutput { + StdioOutput { +- next_id: Arc::new(AtomicU64::new(1)), ++ next_id: Arc::new(AtomicU32::new(1).into()), + } + } + } +@@ -215,7 +215,7 @@ impl Output for StdioOutput { + } + + fn provide_id(&self) -> RequestId { +- RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst)) ++ RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst).into()) + } + } + |