Skip to content

Commit 41005e2

Browse files
committed
fix loop
1 parent 376b686 commit 41005e2

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

src/client.rs

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,34 @@ impl Client {
2828
let io_ref = io.get_ref();
2929
let queue2 = queue.clone();
3030
ntex::rt::spawn(async move {
31-
poll_fn(|cx| match ready!(io.poll_read_next(&Codec, cx)) {
32-
Some(Ok(item)) => {
33-
if let Some(tx) = queue2.borrow_mut().pop_front() {
34-
let _ = tx.send(Ok(item));
35-
} else {
36-
log::error!("Unexpected redis response: {:?}", item);
31+
poll_fn(|cx| loop {
32+
match ready!(io.poll_read_next(&Codec, cx)) {
33+
Some(Ok(item)) => {
34+
if let Some(tx) = queue2.borrow_mut().pop_front() {
35+
let _ = tx.send(Ok(item));
36+
} else {
37+
log::error!("Unexpected redis response: {:?}", item);
38+
}
39+
continue;
3740
}
38-
Poll::Pending
39-
}
40-
Some(Err(Either::Left(e))) => {
41-
if let Some(tx) = queue2.borrow_mut().pop_front() {
42-
let _ = tx.send(Err(e));
41+
Some(Err(Either::Left(e))) => {
42+
if let Some(tx) = queue2.borrow_mut().pop_front() {
43+
let _ = tx.send(Err(e));
44+
}
45+
queue2.borrow_mut().clear();
46+
let _ = ready!(io.poll_shutdown(cx));
47+
return Poll::Ready(());
4348
}
44-
queue2.borrow_mut().clear();
45-
let _ = ready!(io.poll_shutdown(cx));
46-
return Poll::Ready(());
47-
}
48-
Some(Err(Either::Right(e))) => {
49-
if let Some(tx) = queue2.borrow_mut().pop_front() {
50-
let _ = tx.send(Err(e.into()));
49+
Some(Err(Either::Right(e))) => {
50+
if let Some(tx) = queue2.borrow_mut().pop_front() {
51+
let _ = tx.send(Err(e.into()));
52+
}
53+
queue2.borrow_mut().clear();
54+
let _ = ready!(io.poll_shutdown(cx));
55+
return Poll::Ready(());
5156
}
52-
queue2.borrow_mut().clear();
53-
let _ = ready!(io.poll_shutdown(cx));
54-
return Poll::Ready(());
57+
None => return Poll::Ready(()),
5558
}
56-
None => Poll::Ready(()),
5759
})
5860
.await
5961
});

tests/test_redis.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ async fn test_keys() {
104104

105105
#[ntex::test]
106106
async fn test_strings_simple() {
107-
let mut redis = RedisConnector::new("127.0.0.1:6379")
107+
let redis = RedisConnector::new("127.0.0.1:6379")
108108
.connect_simple()
109109
.await
110110
.unwrap();

0 commit comments

Comments
 (0)