Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io: Add AsyncFd #2903

Merged
merged 11 commits into from Oct 22, 2020
Merged

io: Add AsyncFd #2903

merged 11 commits into from Oct 22, 2020

Commits on Oct 20, 2020

  1. io: Add AsyncFd

    This adds AsyncFd, a unix-only structure to allow for read/writability states
    to be monitored for arbitrary file descriptors.
    
    Issue: tokio-rs#2728
    Bryan Donlan committed Oct 20, 2020
    Configuration menu
    Copy the full SHA
    f4905ef View commit details
    Browse the repository at this point in the history
  2. driver: fix shutdown notification unreliability

    Previously, there was a race window in which an IO driver shutting down could
    fail to notify ScheduledIo instances of this state; in particular, notification
    of outstanding ScheduledIo registrations was driven by `Driver::drop`, but
    registrations bypass `Driver` and go directly to a `Weak<Inner>`. The `Driver`
    holds the `Arc<Inner>` keeping `Inner` alive, but it's possible that a new
    handle could be registered (or a new readiness future created for an existing
    handle) after the `Driver::drop` handler runs and prior to `Inner` being
    dropped.
    
    This change fixes this in two parts: First, notification of outstanding
    ScheduledIo handles is pushed down into the drop method of `Inner` instead,
    and, second, we add state to ScheduledIo to ensure that we remember that the IO
    driver we're bound to has shut down after the initial shutdown notification, so
    that subsequent readiness future registrations can immediately return (instead
    of potentially blocking indefinitely).
    
    Fixes: tokio-rs#2924
    Bryan Donlan committed Oct 20, 2020
    Configuration menu
    Copy the full SHA
    799e763 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2020

  1. io_async_fd: add tests for wakeup on rt shutdown

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    62deeaf View commit details
    Browse the repository at this point in the history
  2. async_fd: fixing a couple of PR nits

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    5b09dbf View commit details
    Browse the repository at this point in the history
  3. driver: fix unused code warning on non-unix platforms

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    7333337 View commit details
    Browse the repository at this point in the history
  4. fixing doc and clippy lints

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    f4398a9 View commit details
    Browse the repository at this point in the history
  5. fix doc errors

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    fc9cb03 View commit details
    Browse the repository at this point in the history
  6. fix additional clippy lints

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    1f2d7ee View commit details
    Browse the repository at this point in the history
  7. async_fd: docs clarification

    Bryan Donlan committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    c4b73de View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2020

  1. async_fd: changes requested in PR

    Bryan Donlan committed Oct 22, 2020
    Configuration menu
    Copy the full SHA
    cb28392 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    029d89e View commit details
    Browse the repository at this point in the history