Merge pull request #4549 from fufesou/fix/input_crash_on_macos
macos, fix input crash
This commit is contained in:
		
						commit
						492d0a32f6
					
				| @ -62,7 +62,9 @@ lazy_static::lazy_static! { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| lazy_static::lazy_static! { | lazy_static::lazy_static! { | ||||||
|  |     // Is server process, with "--server" args
 | ||||||
|     static ref IS_SERVER: bool = std::env::args().nth(1) == Some("--server".to_owned()); |     static ref IS_SERVER: bool = std::env::args().nth(1) == Some("--server".to_owned()); | ||||||
|  |     // Is server logic running. The server code can invoked to run by the main process if --server is not running.
 | ||||||
|     static ref SERVER_RUNNING: Arc<RwLock<bool>> = Default::default(); |     static ref SERVER_RUNNING: Arc<RwLock<bool>> = Default::default(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -101,9 +103,16 @@ pub fn set_server_running(b: bool) { | |||||||
|     *SERVER_RUNNING.write().unwrap() = b; |     *SERVER_RUNNING.write().unwrap() = b; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // is server process, with "--server" args
 | ||||||
| #[inline] | #[inline] | ||||||
| pub fn is_server() -> bool { | pub fn is_server() -> bool { | ||||||
|     *IS_SERVER || *SERVER_RUNNING.read().unwrap() |     *IS_SERVER | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Is server logic running. 
 | ||||||
|  | #[inline] | ||||||
|  | pub fn is_server_running() -> bool { | ||||||
|  |     *SERVER_RUNNING.read().unwrap() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #[inline] | #[inline] | ||||||
|  | |||||||
| @ -321,7 +321,7 @@ pub fn uninstall_plugin(id: &str, called_by_ui: bool) { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if is_server() { |     if super::is_server_running() { | ||||||
|         super::plugins::unload_plugin(&id); |         super::plugins::unload_plugin(&id); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -42,8 +42,6 @@ static PLUGIN_SOURCE_LOCAL_DIR: &str = "plugins"; | |||||||
| 
 | 
 | ||||||
| pub use config::{ManagerConfig, PeerConfig, SharedConfig}; | pub use config::{ManagerConfig, PeerConfig, SharedConfig}; | ||||||
| 
 | 
 | ||||||
| use crate::common::is_server; |  | ||||||
| 
 |  | ||||||
| /// Common plugin return.
 | /// Common plugin return.
 | ||||||
| ///
 | ///
 | ||||||
| /// [Note]
 | /// [Note]
 | ||||||
| @ -96,8 +94,12 @@ impl PluginReturn { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | fn is_server_running() -> bool { | ||||||
|  |     crate::common::is_server() || crate::common::is_server_running() | ||||||
|  | } | ||||||
|  | 
 | ||||||
| pub fn init() { | pub fn init() { | ||||||
|     if !is_server() { |     if !is_server_running() { | ||||||
|         std::thread::spawn(move || manager::start_ipc()); |         std::thread::spawn(move || manager::start_ipc()); | ||||||
|     } else { |     } else { | ||||||
|         if let Err(e) = remove_uninstalled() { |         if let Err(e) = remove_uninstalled() { | ||||||
|  | |||||||
| @ -371,7 +371,7 @@ fn load_plugin_path(path: &str) -> ResultType<()> { | |||||||
|     PLUGIN_INFO.write().unwrap().insert(id.clone(), plugin_info); |     PLUGIN_INFO.write().unwrap().insert(id.clone(), plugin_info); | ||||||
| 
 | 
 | ||||||
|     let init_info = serde_json::to_string(&InitInfo { |     let init_info = serde_json::to_string(&InitInfo { | ||||||
|         is_server: crate::common::is_server(), |         is_server: super::is_server_running(), | ||||||
|     })?; |     })?; | ||||||
|     let init_data = InitData { |     let init_data = InitData { | ||||||
|         version: str_to_cstr_ret(crate::VERSION), |         version: str_to_cstr_ret(crate::VERSION), | ||||||
| @ -389,7 +389,7 @@ fn load_plugin_path(path: &str) -> ResultType<()> { | |||||||
|         log::error!("Failed to init plugin '{}', {}", desc.meta().id, e); |         log::error!("Failed to init plugin '{}', {}", desc.meta().id, e); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if is_server() { |     if super::is_server_running() { | ||||||
|         super::config::ManagerConfig::add_plugin(&desc.meta().id)?; |         super::config::ManagerConfig::add_plugin(&desc.meta().id)?; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user