We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 396a757 commit 0c32efeCopy full SHA for 0c32efe
1 file changed
sqlx-core/src/pool/inner.rs
@@ -97,7 +97,17 @@ impl<DB: Database> PoolInner<DB> {
97
self.mark_closed();
98
99
async move {
100
- let _permits = self.semaphore.acquire(self.options.max_connections).await;
+ // For child pools, we need to acquire permits we actually have rather than
101
+ // max_connections
102
+ let permits_to_acquire = if self.options.parent_pool.is_some() {
103
+ // Child pools start with 0 permits, so we acquire based on current size
104
+ self.size()
105
+ } else {
106
+ // Parent pools can acquire all max_connections permits
107
+ self.options.max_connections
108
+ };
109
+
110
+ let _permits = self.semaphore.acquire(permits_to_acquire).await;
111
112
while let Some(idle) = self.idle_conns.pop() {
113
let _ = idle.live.raw.close().await;
0 commit comments