summaryrefslogblamecommitdiff
path: root/user/rust/0040-rls-atomics.patch
blob: e084217ba761a5af4e4f52fa6cfb52625153ef2d (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                 
                                          
                                                                        

                                          

                                              
 
                 
                                                                             
                                                    









                                                             


                                                                   







                                                            
                                                                       







                                                                  
                                          


                                                                    

      
 
                                                 







                                                                           
--- rustc-1.58.1-src/src/tools/rls/rls/src/cmd.rs
+++ rustc-1.58.1-src/src/tools/rls/rls/src/cmd.rs
@@ -7,7 +7,7 @@ use crate::config::Config;
 use crate::server::{self, LsService, Notification, Request, RequestId};
 use rls_analysis::{AnalysisHost, Target};
 use rls_vfs::Vfs;
-use std::sync::atomic::{AtomicU64, Ordering};
+use std::sync::atomic::{AtomicU32, Ordering};
 
 use lsp_types::{
     ClientCapabilities, CodeActionContext, CodeActionParams, CompletionItem,
@@ -316,8 +316,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.
--- rustc-1.58.1-src/src/tools/rls/rls/src/server/io.rs
+++ rustc-1.58.1-src/src/tools/rls/rls/src/server/io.rs
@@ -5,7 +5,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};
@@ -169,13 +169,13 @@ 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 {
     /// Constructs a new `stdout` output.
     pub(crate) fn new() -> StdioOutput {
-        StdioOutput { next_id: Arc::new(AtomicU64::new(1)) }
+        StdioOutput { next_id: Arc::new(AtomicU32::new(1).into()) }
     }
 }
 
@@ -192,7 +192,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())
     }
 }