poll_fn — 폴링 클로저로 Future 만들기
poll_fn — 폴링 클로저로 Future 만들기
poll_fn는 매번 호출되는 폴링 클로저를 받아 Future를 만들어 주는 함수예요.
출처: Rust 공식 문서
본문
pub fn poll_fn<T, F>(f: F) -> PollFn<F>
where F: FnMut(&mut Context<'_>) -> Poll<T>,
클로저가 Context를 받아 Poll<T>를 반환하도록 정의하면, 자체 상태 기계를 직접 작성하지 않고도 Future를 만들 수 있어요. Poll::Ready를 반환하면 future가 완료되고, Poll::Pending을 반환하면 다시 폴링될 때까지 대기해요. 간단한 사용자 정의 future를 만들 때 유용해요.