Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ env:
RUSTUP_WINDOWS_PATH_ADD_BIN: 1
# Change to specific Rust release to pin
rust_stable: stable
rust_nightly: nightly-2025-01-25
rust_nightly: nightly-2025-10-12
# Pin a specific miri version
rust_miri_nightly: nightly-2025-06-02
rust_clippy: '1.88'
Expand Down Expand Up @@ -494,8 +494,8 @@ jobs:
target:
- name: x86_64-unknown-haiku
exclude_features: "taskdump" # taskdump is only available on Linux
- name: armv7-sony-vita-newlibeabihf
exclude_features: "process,signal,rt-process-signal,full,taskdump"
# - name: armv7-sony-vita-newlibeabihf
# exclude_features: "process,signal,rt-process-signal,full,taskdump"
steps:
- uses: actions/checkout@v5
- name: Install Rust ${{ env.rust_nightly }}
Expand Down Expand Up @@ -646,6 +646,7 @@ jobs:
cargo test --doc -Zbuild-std --target target-specs/i686-unknown-linux-gnu.json -p tokio --features $TOKIO_STABLE_FEATURES,taskdump
env:
RUST_TEST_THREADS: 1
RUSTDOCFLAGS: --cfg tokio_unstable
RUSTFLAGS: --cfg tokio_unstable -Dwarnings --cfg tokio_no_tuning_tests

no-atomic-u64-check:
Expand Down
11 changes: 1 addition & 10 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
[build]
# TODO: unfreeze toolchain
# error[E0557]: feature has been removed
# --> /opt/buildhome/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.13/src/lib.rs:89:29
# |
# 89 | #![cfg_attr(docsrs, feature(doc_auto_cfg))]
# | ^^^^^^^^^^^^ feature has been removed
# |
# = note: removed in 1.58.0; see <https://github.com/rust-lang/rust/pull/138907; for more information
# = note: merged into `doc_cfg`
command = """
rustup install nightly-2025-01-25 --profile minimal && cargo doc --no-deps --all-features
rustup install nightly --profile minimal && cargo doc --no-deps --all-features
"""
publish = "target/doc"

Expand Down
12 changes: 7 additions & 5 deletions target-specs/i686-unknown-linux-gnu.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"crt-objects-fallback": "false",
"crt-static-respected": true,
"data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-f64:32:64-f80:32-n8:16:32-S128",
"default-uwtable": true,
"dynamic-linking": true,
"env": "gnu",
"has-rpath": true,
Expand All @@ -12,10 +13,10 @@
"llvm-target": "i686-unknown-linux-gnu",
"max-atomic-width": 32,
"metadata": {
"description": null,
"host_tools": null,
"std": null,
"tier": null
"description": "32-bit Linux (kernel 3.2, glibc 2.17+)",
"host_tools": true,
"std": true,
"tier": 1
},
"os": "linux",
"position-independent-executables": true,
Expand All @@ -28,6 +29,7 @@
]
},
"relro-level": "full",
"rustc-abi": "x86-sse2",
"stack-probes": {
"kind": "inline"
},
Expand All @@ -42,5 +44,5 @@
"target-family": [
"unix"
],
"target-pointer-width": "32"
"target-pointer-width": 32
}
33 changes: 30 additions & 3 deletions tokio/src/process/unix/pidfd_reaper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,41 @@ where
pidfd: PollEvented<Pidfd>,
}

fn display_eq(d: impl std::fmt::Display, s: &str) -> bool {
use std::fmt::Write;

struct FormatEq<'r> {
remainder: &'r str,
unequal: bool,
}

impl<'r> Write for FormatEq<'r> {
fn write_str(&mut self, s: &str) -> std::fmt::Result {
if !self.unequal {
if let Some(new_remainder) = self.remainder.strip_prefix(s) {
self.remainder = new_remainder;
} else {
self.unequal = true;
}
}
Ok(())
}
}

let mut fmt_eq = FormatEq {
remainder: s,
unequal: false,
};
let _ = write!(fmt_eq, "{d}");
fmt_eq.remainder.is_empty() && !fmt_eq.unequal
}

#[allow(deprecated)]
fn is_rt_shutdown_err(err: &io::Error) -> bool {
if let Some(inner) = err.get_ref() {
// Using `Error::description()` is more efficient than `format!("{inner}")`,
// so we use it here even if it is deprecated.
err.kind() == io::ErrorKind::Other
&& inner.source().is_none()
&& inner.description() == RUNTIME_SHUTTING_DOWN_ERROR
&& display_eq(inner, RUNTIME_SHUTTING_DOWN_ERROR)
} else {
false
}
Expand Down