From 1d84d3e4405bc61c4a2346a5b97913a18c73e1b0 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Fri, 13 Sep 2019 12:57:37 -0700 Subject: [PATCH] Wrap RojoTree in Mutex --- src/serve_session.rs | 13 ++++++++----- src/web/api.rs | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/serve_session.rs b/src/serve_session.rs index eee32144..a26b8184 100644 --- a/src/serve_session.rs +++ b/src/serve_session.rs @@ -1,4 +1,7 @@ -use std::collections::HashSet; +use std::{ + collections::HashSet, + sync::{Mutex, MutexGuard}, +}; use crate::{ imfs::new::{Imfs, ImfsFetcher}, @@ -12,7 +15,7 @@ use crate::{ pub struct ServeSession { root_project: Option, session_id: SessionId, - tree: RojoTree, + tree: Mutex, message_queue: MessageQueue<()>, // TODO: Real message type imfs: Imfs, } @@ -25,14 +28,14 @@ impl ServeSession { ServeSession { session_id, root_project, - tree, + tree: Mutex::new(tree), message_queue, imfs, } } - pub fn tree(&self) -> &RojoTree { - &self.tree + pub fn tree(&self) -> MutexGuard<'_, RojoTree> { + self.tree.lock().unwrap() } pub fn imfs(&self) -> &Imfs { diff --git a/src/web/api.rs b/src/web/api.rs index 4bb6eedd..4bd676b9 100644 --- a/src/web/api.rs +++ b/src/web/api.rs @@ -13,8 +13,8 @@ use crate::{ serve_session::ServeSession, web::{ interface::{ - Instance, NotFoundError, ReadResponse, ServerInfoResponse, SubscribeResponse, - PROTOCOL_VERSION, SERVER_VERSION, + Instance, NotFoundError, ReadResponse, ServerInfoResponse, PROTOCOL_VERSION, + SERVER_VERSION, }, util::{json, json_ok}, },