@@ -6,7 +6,7 @@ use crate::pool::PoolConnection;
66use crate :: rt:: JoinHandle ;
77use crate :: Error ;
88use ease_off:: EaseOff ;
9- use event_listener:: Event ;
9+ use event_listener:: { listener , Event } ;
1010use std:: fmt:: { Display , Formatter } ;
1111use std:: future:: Future ;
1212use std:: ptr;
@@ -50,7 +50,7 @@ use std::io;
5050/// let database_url = database_url.clone();
5151/// async move {
5252/// println!(
53- /// "opening connection {}, attempt {}; elapsed time: {}",
53+ /// "opening connection {}, attempt {}; elapsed time: {:? }",
5454/// meta.pool_size,
5555/// meta.num_attempts + 1,
5656/// meta.start.elapsed()
@@ -96,10 +96,10 @@ use std::io;
9696///
9797/// let pool = PgPoolOptions::new()
9898/// .connect_with_connector(move |meta: PoolConnectMetadata| {
99- /// let connect_opts_ = connect_opts .clone();
99+ /// let connect_opts = connect_opts_ .clone();
100100/// async move {
101101/// println!(
102- /// "opening connection {}, attempt {}; elapsed time: {}",
102+ /// "opening connection {}, attempt {}; elapsed time: {:? }",
103103/// meta.pool_size,
104104/// meta.num_attempts + 1,
105105/// meta.start.elapsed()
@@ -318,7 +318,8 @@ impl ConnectionCounter {
318318
319319 pub async fn drain ( & self ) {
320320 while self . count . load ( Ordering :: Acquire ) > 0 {
321- self . connect_available . listen ( ) . await ;
321+ listener ! ( self . connect_available => permit_released) ;
322+ permit_released. await ;
322323 }
323324 }
324325
@@ -386,13 +387,14 @@ impl ConnectionCounter {
386387 return acquired;
387388 }
388389
389- self . connect_available . listen ( ) . await ;
390-
391390 if attempt == 2 {
392391 tracing:: warn!(
393392 "unable to acquire a connect permit after sleeping; this may indicate a bug"
394393 ) ;
395394 }
395+
396+ listener ! ( self . connect_available => connect_available) ;
397+ connect_available. await ;
396398 }
397399
398400 panic ! ( "BUG: was never able to acquire a connection despite waking many times" )
0 commit comments