Skip to content

Tokio v1.22.0

Compare
Choose a tag to compare
@carllerche carllerche released this 18 Nov 21:17
· 604 commits to master since this release
bf31759

Added

  • runtime: add Handle::runtime_flavor (#5138)
  • sync: add Mutex::blocking_lock_owned (#5130)
  • sync: add Semaphore::MAX_PERMITS (#5144)
  • sync: add merge() to semaphore permits (#4948)
  • sync: add mpsc::WeakUnboundedSender (#5189)

Added (unstable)

  • process: add Command::process_group (#5114)
  • runtime: export metrics about the blocking thread pool (#5161)
  • task: add task::id() and task::try_id() (#5171)

Fixed

  • macros: don't take ownership of futures in macros (#5087)
  • runtime: fix Stacked Borrows violation in LocalOwnedTasks (#5099)
  • runtime: mitigate ABA with 32-bit queue indices when possible (#5042)
  • task: wake local tasks to the local queue when woken by the same thread (#5095)
  • time: panic in release mode when mark_pending called illegally (#5093)
  • runtime: fix typo in expect message (#5169)
  • runtime: fix unsync_load on atomic types (#5175)
  • task: elaborate safety comments in task deallocation (#5172)
  • runtime: fix LocalSet drop in thread local (#5179)
  • net: remove libc type leakage in a public API (#5191)
  • runtime: update the alignment of CachePadded (#5106)

Changed

  • io: make tokio::io::copy continue filling the buffer when writer stalls (#5066)
  • runtime: remove coop::budget from LocalSet::run_until (#5155)
  • sync: make Notify panic safe (#5154)

Documented

  • io: fix doc for write_i8 to use signed integers (#5040)
  • net: fix doc typos for TCP and UDP set_tos methods (#5073)
  • net: fix function name in UdpSocket::recv documentation (#5150)
  • sync: typo in TryLockError for RwLock::try_write (#5160)
  • task: document that spawned tasks execute immediately (#5117)
  • time: document return type of timeout (#5118)
  • time: document that timeout checks only before poll (#5126)
  • sync: specify return type of oneshot::Receiver in docs (#5198)

Internal changes

  • runtime: use const Mutex::new for globals (#5061)
  • runtime: remove Option around mio::Events in io driver (#5078)
  • runtime: remove a conditional compilation clause (#5104)
  • runtime: remove a reference to internal time handle (#5107)
  • runtime: misc time driver cleanup (#5120)
  • runtime: move signal driver to runtime module (#5121)
  • runtime: signal driver now uses I/O driver directly (#5125)
  • runtime: start decoupling I/O driver and I/O handle (#5127)
  • runtime: switch io::handle refs with scheduler:Handle (#5128)
  • runtime: remove Arc from I/O driver (#5134)
  • runtime: use signal driver handle via scheduler::Handle (#5135)
  • runtime: move internal clock fns out of context (#5139)
  • runtime: remove runtime::context module (#5140)
  • runtime: keep driver cfgs in driver.rs (#5141)
  • runtime: add runtime::context to unify thread-locals (#5143)
  • runtime: rename some confusing internal variables/fns (#5151)
  • runtime: move coop mod into runtime (#5152)
  • runtime: move budget state to context thread-local (#5157)
  • runtime: move park logic into runtime module (#5158)
  • runtime: move Runtime into its own file (#5159)
  • runtime: unify entering a runtime with Handle::enter (#5163)
  • runtime: remove handle reference from each scheduler (#5166)
  • runtime: move enter into context (#5167)
  • runtime: combine context and entered thread-locals (#5168)
  • runtime: fix accidental unsetting of current handle (#5178)
  • runtime: move CoreStage methods to Core (#5182)
  • sync: name mpsc semaphore types (#5146)