mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-28 12:10:37 +00:00
parent
72d6346c0d
commit
7707ba88ef
@ -76,6 +76,7 @@ pub struct AsyncFdReadyGuard<'a, T: AsRawFd> {
|
||||
const ALL_INTEREST: Interest = Interest::READABLE.add(Interest::WRITABLE);
|
||||
|
||||
impl<T: AsRawFd> AsyncFd<T> {
|
||||
#[inline]
|
||||
/// Creates an AsyncFd backed by (and taking ownership of) an object
|
||||
/// implementing [`AsRawFd`]. The backing file descriptor is cached at the
|
||||
/// time of creation.
|
||||
@ -85,14 +86,28 @@ impl<T: AsRawFd> AsyncFd<T> {
|
||||
where
|
||||
T: AsRawFd,
|
||||
{
|
||||
Self::new_with_handle(inner, Handle::current())
|
||||
Self::with_interest(inner, ALL_INTEREST)
|
||||
}
|
||||
|
||||
pub(crate) fn new_with_handle(inner: T, handle: Handle) -> io::Result<Self> {
|
||||
#[inline]
|
||||
/// Creates new instance as `new` with additional ability to customize interest,
|
||||
/// allowing to specify whether file descriptor will be polled for read, write or both.
|
||||
pub fn with_interest(inner: T, interest: Interest) -> io::Result<Self>
|
||||
where
|
||||
T: AsRawFd,
|
||||
{
|
||||
Self::new_with_handle_and_interest(inner, Handle::current(), interest)
|
||||
}
|
||||
|
||||
pub(crate) fn new_with_handle_and_interest(
|
||||
inner: T,
|
||||
handle: Handle,
|
||||
interest: Interest,
|
||||
) -> io::Result<Self> {
|
||||
let fd = inner.as_raw_fd();
|
||||
|
||||
let registration =
|
||||
Registration::new_with_interest_and_handle(&mut SourceFd(&fd), ALL_INTEREST, handle)?;
|
||||
Registration::new_with_interest_and_handle(&mut SourceFd(&fd), interest, handle)?;
|
||||
|
||||
Ok(AsyncFd {
|
||||
registration,
|
||||
|
Loading…
x
Reference in New Issue
Block a user