github tokio-rs/tokio tokio-1.38.0
Tokio v1.38.0

latest releases: tokio-1.41.1, tokio-1.41.0, tokio-stream-0.1.16...
5 months ago

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added

  • fs: add File::create_new (#6573)
  • io: add copy_bidirectional_with_sizes (#6500)
  • io: implement AsyncBufRead for Join (#6449)
  • net: add Apple visionOS support (#6465)
  • net: implement Clone for NamedPipeInfo (#6586)
  • net: support QNX OS (#6421)
  • sync: add Notify::notify_last (#6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#6511)
  • sync: add split method to the semaphore permit (#6472, #6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#6510)

Changed

  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#6497)
  • metrics: fix blocking_threads count (#6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#6556)
  • runtime: move task out of the lifo_slot in block_in_place (#6596)
  • runtime: panic if global_queue_interval is zero (#6445)
  • sync: always drop message in destructor for oneshot receiver (#6558)
  • sync: instrument Semaphore for task dumps (#6499)
  • sync: use FIFO ordering when waking batches of wakers (#6521)
  • task: make LocalKey::get work with Clone types (#6433)
  • tests: update nix and mio-aio dev-dependencies (#6552)
  • time: clean up implementation (#6517)
  • time: lazily init timers on first poll (#6512)
  • time: remove the true_when field in TimerShared (#6563)
  • time: use sharding for timer implementation (#6534)

Fixed

  • taskdump: allow building taskdump docs on non-unix machines (#6564)
  • time: check for overflow in Interval::poll_tick (#6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#6603)

Documented

  • fs: rewrite file system docs (#6467)
  • io: fix stdin documentation (#6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#6498)
  • macros: render more comprehensible documentation for select! (#6468)
  • net: add missing types to module docs (#6482)
  • net: fix misleading NamedPipeServer example (#6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#6477)
  • sync: document that Barrier::wait is not cancel safe (#6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#6490)
  • task: clarify that you can't abort spawn_blocking tasks (#6571)
  • task: fix a typo in doc of LocalSet::run_until (#6599)
  • time: fix test-util requirement for pause and resume in docs (#6503)

Don't miss a new tokio release

NewReleases is sending notifications on new releases.