Repository: vercel/next.js
Pull request: Update tokio from 1.43.0 to 1.47.3

## Summary

Update the workspace `tokio` dependency from 1.43.0 to ~1.47.3 (pinned to the 1.47.x LTS minor line).

The tokio 1.43.x LTS line expires **March 2026**. This moves to the 1.47.x LTS line (supported until September 2026). The tilde version specifier (`~1.47.3`) ensures we stay on the 1.47.x minor version and only pick up patch releases (e.g. 1.47.4), not new minor versions.

### Key changes included in this bump

- **Soundness fix**: broadcast channel clone race condition (1.44.2)
- **`select!` is now budget-aware** (1.44) — cooperates with tokio's cooperative scheduling
- **Stabilized runtime metrics**: `worker_total_busy_duration`, `worker_park_count`, `worker_unpark_count` (1.45)
- **Performance**: improved `AtomicWaker::wake`, eliminated unnecessary `lfence` in task queue (1.46-1.47)
- **New APIs**: `sync::SetOnce`, `Notify::notified_owned()`, `broadcast::WeakSender`, `biased` option for `join!`/`try_join!`
- **`runtime::Handle` marked unwind-safe** (1.45)
- Transitive dep bump: `socket2` 0.5 → 0.6, `windows-sys` 0.52 → 0.61

### Breaking changes (verified safe)

- `from_std` now panics on blocking sockets — **no `TcpStream::from_std` calls in codebase**
- `LocalSet::{poll,drop}` disallows blocking — **no `LocalSet` usage in codebase**
- `select!` budget awareness — behavioral change, should improve fairness

### New duplicate dependencies

- `socket2 v0.6.2` added (v0.4 and v0.5 already existed due to `hyper 0.14`)

## Test plan

- [x] `cargo check` passes with no errors
- [ ] CI build and test suite

Changed files:
filename: Cargo.lock
patch: @@ -1309,7 +1309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c"
 dependencies = [
  "lazy_static",
- "windows-sys 0.59.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -3471,6 +3471,17 @@ dependencies = [
  "rustversion",
 ]
 
+[[package]]
+name = "io-uring"
+version = "0.7.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fdd7bddefd0a8833b88a4b68f90dae22c7450d11b354198baee3874fd811b344"
+dependencies = [
+ "bitflags 2.9.1",
+ "cfg-if",
+ "libc",
+]
+
 [[package]]
 name = "ipnet"
 version = "2.10.1"
@@ -7027,6 +7038,16 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "socket2"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0"
+dependencies = [
+ "libc",
+ "windows-sys 0.60.2",
+]
+
 [[package]]
 name = "spin"
 version = "0.9.8"
@@ -8890,21 +8911,23 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.43.0"
+version = "1.47.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
+checksum = "d89b5fb34fc88de6a0c0e32dcee5f4890c67b8afbbc4ba35afc0671c6eacda60"
 dependencies = [
  "backtrace",
  "bytes",
+ "io-uring",
  "libc",
  "mio 1.0.3",
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.10",
+ "slab",
+ "socket2 0.6.2",
  "tokio-macros",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]

filename: Cargo.toml
patch: @@ -487,7 +487,7 @@ tempfile = "3.20.0"
 terminal_size = "0.3.0"
 thiserror = "1.0.48"
 thread_local = "1.1.8"
-tokio = "1.43.0"
+tokio = "~1.47.3"
 tokio-util = { version = "0.7.13", features = ["io", "rt"] }
 tracing = "0.1.37"
 tracing-subscriber = "0.3.16"