Skip to content

Commit

Permalink
Drop all unnecessary self.state.clone()
Browse files Browse the repository at this point in the history
In many cases, cloning the Arc<Mutex<…>> or Arc<RwLock<…>> doesn't seem
to be needed as it can just be dereferenced directly.
  • Loading branch information
liskin committed Jun 6, 2023
1 parent 07f4e71 commit 3f21138
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 22 deletions.
18 changes: 6 additions & 12 deletions src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -440,8 +440,7 @@ impl Mock {
///
#[track_caller]
pub fn assert(&self) {
let mutex = self.state.clone();
let state = mutex.read().unwrap();
let state = self.state.read().unwrap();
if let Some(hits) = state.get_mock_hits(self.inner.id.clone()) {
let matched = self.matched_hits(hits);
let message = if !matched {
Expand All @@ -461,8 +460,7 @@ impl Mock {
/// Same as `Mock::assert` but async.
///
pub async fn assert_async(&self) {
let mutex = self.state.clone();
let state = mutex.read().unwrap();
let state = self.state.read().unwrap();
if let Some(hits) = state.get_mock_hits(self.inner.id.clone()) {
let matched = self.matched_hits(hits);
let message = if !matched {
Expand All @@ -482,8 +480,7 @@ impl Mock {
/// Returns whether the expected amount of requests (defaults to 1) were performed.
///
pub fn matched(&self) -> bool {
let mutex = self.state.clone();
let state = mutex.read().unwrap();
let state = self.state.read().unwrap();
let Some(hits) = state.get_mock_hits(self.inner.id.clone()) else {
return false;
};
Expand All @@ -495,8 +492,7 @@ impl Mock {
/// Same as `Mock::matched` but async.
///
pub async fn matched_async(&self) -> bool {
let mutex = self.state.clone();
let state = mutex.read().unwrap();
let state = self.state.read().unwrap();
let Some(hits) = state.get_mock_hits(self.inner.id.clone()) else {
return false;
};
Expand Down Expand Up @@ -544,17 +540,15 @@ impl Mock {
/// Removes the mock from the server.
///
pub fn remove(&self) {
let mutex = self.state.clone();
let mut state = mutex.write().unwrap();
let mut state = self.state.write().unwrap();
state.remove_mock(self.inner.id.clone());
}

///
/// Same as `Mock::remove` but async.
///
pub async fn remove_async(&self) {
let mutex = self.state.clone();
let mut state = mutex.write().unwrap();
let mut state = self.state.write().unwrap();
state.remove_mock(self.inner.id.clone());
}

Expand Down
9 changes: 3 additions & 6 deletions src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,7 @@ impl Server {
/// Removes all the mocks stored on the server.
///
pub fn reset(&mut self) {
let state = self.state.clone();
let mut state = state.write().unwrap();
let mut state = self.state.write().unwrap();
state.mocks.clear();
state.unmatched_requests.clear();
}
Expand All @@ -329,8 +328,7 @@ impl Server {
///
#[deprecated(since = "1.0.1", note = "Use `Server::reset` instead")]
pub async fn reset_async(&mut self) {
let state = self.state.clone();
let mut state = state.write().unwrap();
let mut state = self.state.write().unwrap();
state.mocks.clear();
state.unmatched_requests.clear();
}
Expand All @@ -356,8 +354,7 @@ async fn handle_request(
request.read_body().await;
log::debug!("Request received: {}", request.formatted());

let mutex = state.clone();
let mut state = mutex.write().unwrap();
let mut state = state.write().unwrap();
let mut matching_mocks: Vec<&mut RemoteMock> = vec![];

for mock in state.mocks.iter_mut() {
Expand Down
6 changes: 2 additions & 4 deletions src/server_pool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,7 @@ impl ServerPool {
None
};

let state_mutex = self.state.clone();
let mut state = state_mutex.lock().unwrap();
let mut state = self.state.lock().unwrap();

if let Some(server) = server {
state.push_back(server);
Expand All @@ -100,8 +99,7 @@ impl ServerPool {

fn recycle(&self, mut server: Server) {
server.reset();
let state_mutex = self.state.clone();
let mut state = state_mutex.lock().unwrap();
let mut state = self.state.lock().unwrap();
state.push_back(server);
}
}

0 comments on commit 3f21138

Please sign in to comment.