aboutsummaryrefslogtreecommitdiff
path: root/src/ipc/server.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-03-27 08:27:14 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-27 08:27:14 +0400
commit571768af433b0fdc653f44b7dee0ad2dda6fe344 (patch)
treec022de422f89507444b60108abe60761db1bc7dc /src/ipc/server.rs
parentc09d5eb0487dd54d36e938978815d61aaeff58e1 (diff)
downloadniri-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.rs7
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) => {