mirror of
https://github.com/fafhrd91/actix-web
synced 2025-01-19 06:04:40 +01:00
optimize message pool release (#1871)
This commit is contained in:
parent
7d632d0b7b
commit
e567873326
@ -67,7 +67,7 @@ impl Head for RequestHead {
|
||||
fn clear(&mut self) {
|
||||
self.flags = Flags::empty();
|
||||
self.headers.clear();
|
||||
self.extensions.borrow_mut().clear();
|
||||
self.extensions.get_mut().clear();
|
||||
}
|
||||
|
||||
fn pool() -> &'static MessagePool<Self> {
|
||||
@ -440,9 +440,11 @@ impl<T: Head> MessagePool<T> {
|
||||
#[inline]
|
||||
fn get_message(&'static self) -> Message<T> {
|
||||
if let Some(mut msg) = self.0.borrow_mut().pop() {
|
||||
if let Some(r) = Rc::get_mut(&mut msg) {
|
||||
r.clear();
|
||||
}
|
||||
// Message is put in pool only when it's the last copy.
|
||||
// which means it's guaranteed to be unique when popped out.
|
||||
Rc::get_mut(&mut msg)
|
||||
.expect("Multiple copies exist")
|
||||
.clear();
|
||||
Message { head: msg }
|
||||
} else {
|
||||
Message {
|
||||
|
Loading…
x
Reference in New Issue
Block a user