diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-27 08:27:14 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-03-27 08:27:14 +0400 |
| commit | 571768af433b0fdc653f44b7dee0ad2dda6fe344 (patch) | |
| tree | c022de422f89507444b60108abe60761db1bc7dc /src/ipc/server.rs | |
| parent | c09d5eb0487dd54d36e938978815d61aaeff58e1 (diff) | |
| download | niri-571768af433b0fdc653f44b7dee0ad2dda6fe344.tar.gz niri-571768af433b0fdc653f44b7dee0ad2dda6fe344.tar.bz2 niri-571768af433b0fdc653f44b7dee0ad2dda6fe344.zip | |
Make ipc_outputs Arc Mutex
Diffstat (limited to 'src/ipc/server.rs')
| -rw-r--r-- | src/ipc/server.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/ipc/server.rs b/src/ipc/server.rs index a1f3905b..102fcb94 100644 --- a/src/ipc/server.rs +++ b/src/ipc/server.rs @@ -1,8 +1,7 @@ -use std::cell::RefCell; use std::collections::HashMap; use std::os::unix::net::{UnixListener, UnixStream}; use std::path::PathBuf; -use std::rc::Rc; +use std::sync::{Arc, Mutex}; use std::{env, io, process}; use anyhow::Context; @@ -23,7 +22,7 @@ pub struct IpcServer { struct ClientCtx { event_loop: LoopHandle<'static, State>, - ipc_outputs: Rc<RefCell<HashMap<String, niri_ipc::Output>>>, + ipc_outputs: Arc<Mutex<HashMap<String, niri_ipc::Output>>>, } impl IpcServer { @@ -126,7 +125,7 @@ fn process(ctx: &ClientCtx, buf: &str) -> anyhow::Result<Response> { let response = match request { Request::Outputs => { - let ipc_outputs = ctx.ipc_outputs.borrow().clone(); + let ipc_outputs = ctx.ipc_outputs.lock().unwrap().clone(); Response::Outputs(ipc_outputs) } Request::Action(action) => { |
