mirror of
https://github.com/actix/actix-extras.git
synced 2024-11-28 01:32:57 +01:00
Fix BorrowMutError panic in client connector #793
This commit is contained in:
parent
3532602299
commit
5d531989e7
@ -1,5 +1,12 @@
|
|||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
## [0.1.2] - 2019-04-23
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Fix BorrowMutError panic in client connector #793
|
||||||
|
|
||||||
|
|
||||||
## [0.1.1] - 2019-04-19
|
## [0.1.1] - 2019-04-19
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
@ -113,13 +113,23 @@ where
|
|||||||
match self.1.as_ref().borrow_mut().acquire(&key) {
|
match self.1.as_ref().borrow_mut().acquire(&key) {
|
||||||
Acquire::Acquired(io, created) => {
|
Acquire::Acquired(io, created) => {
|
||||||
// use existing connection
|
// use existing connection
|
||||||
Either::A(ok(IoConnection::new(
|
return Either::A(ok(IoConnection::new(
|
||||||
io,
|
io,
|
||||||
created,
|
created,
|
||||||
Some(Acquired(key, Some(self.1.clone()))),
|
Some(Acquired(key, Some(self.1.clone()))),
|
||||||
)))
|
)));
|
||||||
}
|
}
|
||||||
Acquire::NotAvailable => {
|
Acquire::Available => {
|
||||||
|
// open new connection
|
||||||
|
return Either::B(Either::B(OpenConnection::new(
|
||||||
|
key,
|
||||||
|
self.1.clone(),
|
||||||
|
self.0.call(req),
|
||||||
|
)));
|
||||||
|
}
|
||||||
|
_ => (),
|
||||||
|
}
|
||||||
|
|
||||||
// connection is not available, wait
|
// connection is not available, wait
|
||||||
let (rx, token) = self.1.as_ref().borrow_mut().wait_for(req);
|
let (rx, token) = self.1.as_ref().borrow_mut().wait_for(req);
|
||||||
Either::B(Either::A(WaitForConnection {
|
Either::B(Either::A(WaitForConnection {
|
||||||
@ -129,16 +139,6 @@ where
|
|||||||
inner: Some(self.1.clone()),
|
inner: Some(self.1.clone()),
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
Acquire::Available => {
|
|
||||||
// open new connection
|
|
||||||
Either::B(Either::B(OpenConnection::new(
|
|
||||||
key,
|
|
||||||
self.1.clone(),
|
|
||||||
self.0.call(req),
|
|
||||||
)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
|
Loading…
Reference in New Issue
Block a user