io: add assert in copy_bidirectional that poll_write is sensible (#4125)

This commit is contained in:
Suika
2021-09-22 10:06:51 +02:00
committed by GitHub
parent b9834f6d8b
commit cdc46a9ded
+8
View File
@@ -84,6 +84,14 @@ impl CopyBuffer {
}
}
// If pos larger than cap, this loop will never stop.
// In particular, user's wrong poll_write implementation returning
// incorrect written length may lead to thread blocking.
debug_assert!(
self.pos <= self.cap,
"writer returned length larger than input slice"
);
// If we've written all the data and we've seen EOF, flush out the
// data and finish the transfer.
if self.pos == self.cap && self.read_done {