diff --git a/server/texture-sync-server/src/server_state.rs b/server/texture-sync-server/src/server_state.rs
index 09ef116..d7a1875 100644
--- a/server/texture-sync-server/src/server_state.rs
+++ b/server/texture-sync-server/src/server_state.rs
@@ -25,24 +25,38 @@ impl ProtocolHandler for ServerState {
let q = Query::parse(query)
.map_err(|e| ProtocolError::BadRequest(format!("Invalid Query String: {:?}", e)))?;
- let data_store = self.data_store.read().unwrap();
+ let data_store = self
+ .data_store
+ .read()
+ .unwrap_or_else(|_| handle_broken_rwlock());
let mut textures = data_store.borrow_textures();
Ok(q.search(&mut textures))
}
fn get_texture_by_id(&mut self, id: &str) -> ProtocolResult