mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-10-01 12:20:39 +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);
|
const ALL_INTEREST: Interest = Interest::READABLE.add(Interest::WRITABLE);
|
||||||
|
|
||||||
impl<T: AsRawFd> AsyncFd<T> {
|
impl<T: AsRawFd> AsyncFd<T> {
|
||||||
|
#[inline]
|
||||||
/// Creates an AsyncFd backed by (and taking ownership of) an object
|
/// Creates an AsyncFd backed by (and taking ownership of) an object
|
||||||
/// implementing [`AsRawFd`]. The backing file descriptor is cached at the
|
/// implementing [`AsRawFd`]. The backing file descriptor is cached at the
|
||||||
/// time of creation.
|
/// time of creation.
|
||||||
@ -85,14 +86,28 @@ impl<T: AsRawFd> AsyncFd<T> {
|
|||||||
where
|
where
|
||||||
T: AsRawFd,
|
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 fd = inner.as_raw_fd();
|
||||||
|
|
||||||
let registration =
|
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 {
|
Ok(AsyncFd {
|
||||||
registration,
|
registration,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user