Skip to content

Commit

Permalink
bb8: Drop reliance on parking_lot
Browse files Browse the repository at this point in the history
  • Loading branch information
r-ml committed Feb 9, 2023
1 parent 5737736 commit a12c61d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 16 deletions.
3 changes: 1 addition & 2 deletions bb8/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ rust-version = "1.57"
async-trait = "0.1"
futures-channel = "0.3.2"
futures-util = { version = "0.3.2", default-features = false, features = ["channel"] }
parking_lot = "0.12"
tokio = { version = "1.0", features = ["rt", "time", "parking_lot"] }
tokio = { version = "1.0", features = ["rt", "time"] }

[dev-dependencies]
tokio = { version = "1.0", features = ["macros"] }
26 changes: 14 additions & 12 deletions bb8/src/inner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ where
}

pub(crate) async fn start_connections(&self) -> Result<(), M::Error> {
let wanted = self.inner.internals.lock().wanted(&self.inner.statics);
let wanted = {
let mut locked = self.inner.internals.lock().unwrap();
locked.wanted(&self.inner.statics)
};
let mut stream = self.replenish_idle_connections(wanted);
while let Some(result) = stream.next().await {
result?;
Expand All @@ -49,7 +52,7 @@ where
}

pub(crate) fn spawn_start_connections(&self) {
let mut locked = self.inner.internals.lock();
let mut locked = self.inner.internals.lock().unwrap();
self.spawn_replenishing_approvals(locked.wanted(&self.inner.statics));
}

Expand Down Expand Up @@ -108,7 +111,7 @@ where
{
loop {
let mut conn = {
let mut locked = self.inner.internals.lock();
let mut locked = self.inner.internals.lock().unwrap();
match locked.pop(&self.inner.statics) {
Some((conn, approvals)) => {
self.spawn_replenishing_approvals(approvals);
Expand All @@ -134,7 +137,7 @@ where

let (tx, rx) = oneshot::channel();
{
let mut locked = self.inner.internals.lock();
let mut locked = self.inner.internals.lock().unwrap();
let approvals = locked.push_waiter(tx, &self.inner.statics);
self.spawn_replenishing_approvals(approvals);
};
Expand All @@ -161,7 +164,7 @@ where
}
});

let mut locked = self.inner.internals.lock();
let mut locked = self.inner.internals.lock().unwrap();
match conn {
Some(conn) => locked.put(conn, None, self.inner.clone()),
None => {
Expand All @@ -173,11 +176,12 @@ where

/// Returns information about the current state of the pool.
pub(crate) fn state(&self) -> State {
self.inner.internals.lock().state()
let locked = self.inner.internals.lock().unwrap();
locked.state()
}

fn reap(&self) {
let mut internals = self.inner.internals.lock();
let mut internals = self.inner.internals.lock().unwrap();
let approvals = internals.reap(&self.inner.statics);
self.spawn_replenishing_approvals(approvals);
}
Expand Down Expand Up @@ -205,15 +209,13 @@ where
match conn {
Ok(conn) => {
let conn = Conn::new(conn);
shared
.internals
.lock()
.put(conn, Some(approval), self.inner.clone());
let mut locked = shared.internals.lock().unwrap();
locked.put(conn, Some(approval), self.inner.clone());
return Ok(());
}
Err(e) => {
if Instant::now() - start > self.inner.statics.connection_timeout {
let mut locked = shared.internals.lock();
let mut locked = shared.internals.lock().unwrap();
locked.connect_failed(approval);
return Err(e);
} else {
Expand Down
4 changes: 2 additions & 2 deletions bb8/src/internals.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use std::cmp::min;
use std::sync::Arc;
use std::sync::Mutex;
use std::time::Instant;

use futures_channel::oneshot;
use parking_lot::Mutex;

use crate::api::{Builder, ManageConnection};
use std::collections::VecDeque;
Expand Down Expand Up @@ -188,7 +188,7 @@ impl<M: ManageConnection> InternalsGuard<M> {
impl<M: ManageConnection> Drop for InternalsGuard<M> {
fn drop(&mut self) {
if let Some(conn) = self.conn.take() {
let mut locked = self.pool.internals.lock();
let mut locked = self.pool.internals.lock().unwrap();
locked.put(conn, None, self.pool.clone());
}
}
Expand Down

0 comments on commit a12c61d

Please sign in to comment.