tokio-timer
Timer facilities for Tokio
0.2.13
25M downloads/mo
#1866 most downloaded on crates.io
tokio-rs/tokio
What this package is like to depend on
Last release 7 years ago
no release in 18 months
Release timing varies
gaps range from 9 days to 3 months
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
22 releases · first in 2017
0 releases in the last 12 months
see the full history below
Release timeline
22 releases · Jan 2017 to Feb 2020Releases
latest 22-
0.3.0-alpha.630 Sep 2019 pre-releaseNothing published for this version
-
0.3.0-alpha.519 Sep 2019 pre-releaseNothing published for this version
-
0.3.0-alpha.429 Aug 2019 pre-releaseNothing published for this version
-
0.3.0-alpha.328 Aug 2019 pre-releaseNothing published for this version
-
0.3.0-alpha.218 Aug 2019 pre-releaseNothing published for this version
-
0.3.0-alpha.108 Aug 2019 pre-releaseNothing published for this version
-
0.2.1304 Feb 2020 -
0.2.1227 Nov 2019Release notes
Open source →Fixes
- net:
UnixStream::poll_shutdownshould callshutdown(Write)(#2245). - process: Wake up read and write on
EPOLLERR(#2218). - rt: potential deadlock when using
block_in_placeand shutting down the runtime (#2119). - rt: only detect number of CPUs if
core_threadsnot specified (#2238). - sync: reduce
watch::Receiverstruct size (#2191). - time: succeed when setting delay of
$MAX-1(#2184). - time: avoid having to poll
DelayQueueafter inserting new delay (#2217).
Added
- macros:
pin!variant that assigns to identifier and pins (#2274). - net: impl
StreamforListenertypes (#2275). - rt:
Runtime::shutdown_timeoutwaits for runtime to shutdown for specified duration (#2186). - stream:
StreamMapmerges streams and can insert / remove streams at runtime (#2185). - stream:
StreamExt::skip()skips a fixed number of items (#2204). - stream:
StreamExt::skip_while()skips items based on a predicate (#2205). - sync:
Notifyprovides basicasync/awaittask notification (#2210). - sync:
Mutex::into_innerretrieves guarded data (#2250). - sync:
mpsc::Sender::send_timeoutsends, waiting for up to specified duration for channel capacity (#2227). - time: impl
OrdandHashforInstant(#2239).
Release notes
Open source →Added
timer::set_default, which functions liketimer::with_default, but returns a drop guard (#1725).clock::set_default, which functions likeclock::with_default, but returns a drop guard (#1725).
- net:
-
0.2.1114 May 2019Release notes
Open source →Fixes
- docs: misc fixes and tweaks (#2155, #2103, #2027, #2167, #2175).
- macros: handle generics in
#[tokio::main]method (#2177). - sync:
broadcastpotential lost notifications (#2135). - rt: improve "no runtime" panic messages (#2145).
Added
- optional support for using
parking_lotinternally (#2164). - fs:
fs::copy, an async version ofstd::fs::copy(#2079). - macros:
select!waits for the first branch to complete (#2152). - macros:
join!waits for all branches to complete (#2158). - macros:
try_join!waits for all branches to complete or the first error (#2169). - macros:
pin!pins a value to the stack (#2163). - net:
ReadHalf::poll()andReadHalf::poll_peak(#2151) - stream:
StreamExt::timeout()sets a per-item max duration (#2149). - stream:
StreamExt::fold()applies a function, producing a single value. (#2122). - sync: impl
Eq,PartialEqforoneshot::RecvError(#2168). - task: methods for inspecting the
JoinErrorcause (#2051).
Release notes
Open source →Added
Handle::timeoutAPI, replacing the deprecatedHandle::deadline(#1074).
-
0.2.1005 Feb 2019Release notes
Open source →Fixes
#[tokio::main]whenrt-corefeature flag is not enabled (#2139).- remove
AsyncBufReadfromBufStreamimpl block (#2108). - potential undefined behavior when implementing
AsyncReadincorrectly (#2030).
Added
BufStream::with_capacity(#2125).- impl
FromandDefaultforRwLock(#2089). io::ReadHalf::is_pair_ofchecks if providedWriteHalfis for the same underlying object (#1762, #2144).runtime::Handle::try_current()returns a handle to the current runtime (#2118).stream::empty()returns an immediately ready empty stream (#2092).stream::once(val)returns a stream that yields a single value:val(#2094).stream::pending()returns a stream that never becomes ready (#2092).StreamExt::chain()sequences a second stream after the first completes (#2093).StreamExt::collect()transform a stream into a collection (#2109).StreamExt::fuseends the stream after the firstNone(#2085).StreamExt::mergecombines two streams, yielding values as they become ready (#2091).- Task-local storage (#2126).
-
0.2.925 Jan 2019Release notes
Open source →Fixed
DelayQueuetiming logic when inserting / resetting a delay (#851, #863).- Documentation links (#842, #844, #845)
-
0.2.822 Nov 2018Release notes
Open source →- Implement throttle combinator (#736).
- Derive
Clonefordelay_queue::Key(#730). - Bump internal dependencies (#753).
-
0.2.727 Sep 2018Release notes
Open source →Fixes
- potential deadlock when dropping
basic_schedulerRuntime. - calling
spawn_blockingfrom within aspawn_blocking(#2006). - storing a
Runtimeinstance in a thread-local (#2011). - miscellaneous documentation fixes.
- rt: fix
Waker::will_waketo return true when tasks match (#2045). - test-util:
time::advanceruns pending tasks before changing the time (#2059).
Added
net::lookup_hostmaps aT: ToSocketAddrsto a stream ofSocketAddrs(#1870).process::Childfields are made public to matchstd(#2014).- impl
Streamforsync::broadcast::Receiver(#2012). sync::RwLockprovides an asynchronous read-write lock (#1699).runtime::Handle::currentreturns the handle for the current runtime (#2040).StreamExt::filterfilters stream values according to a predicate (#2001).StreamExt::filter_mapsimultaneously filter and map stream values (#2001).StreamExt::try_nextconvenience for streams ofResult<T, E>(#2005).StreamExt::takelimits a stream to a specified number of values (#2025).StreamExt::take_whilelimits a stream based on a predicate (#2029).StreamExt::alltests if every element of the stream matches a predicate (#2035).StreamExt::anytests if any element of the stream matches a predicate (#2034).task::LocalSet.awaitruns spawned tasks until the set is idle (#1971).time::DelayQueue::lenreturns the number entries in the queue (#1755).- expose runtime options from the
#[tokio::main]and#[tokio::test](#2022).
Release notes
Open source →- Fix
Timeouton error bug (#648). - Miscellaneous documentation improvements.
- potential deadlock when dropping
-
0.2.624 Aug 2018Release notes
Open source →- Implement
Defaultfortimer::Handle(#553) - Provide
DelayQueueutility (#550) - Reduce size of
Delaystruct (#554) - Introduce
Timeout, deprecateDeadline(#558)
- Implement
-
0.2.507 Aug 2018Release notes
Open source →Added
io::AsyncSeektrait (#1924).Mutex::try_lock(#1939)mpsc::Receiver::try_recvandmpsc::UnboundedReceiver::try_recv(#1939).writevsupport forTcpStream(#1956).time::throttlefor throttling streams (#1949).- implement
Streamfortime::DelayQueue(#1975). sync::broadcastprovides a fan-out channel (#1943).sync::Semaphoreprovides an async semaphore (#1973).stream::StreamExtprovides stream utilities (#1962).
Fixes
- deadlock risk while shutting down the runtime (#1972).
- panic while shutting down the runtime (#1978).
sync::MutexGuarddebug output (#1961).- misc doc improvements (#1933, #1934, #1940, #1942).
Changes
- runtime threads are configured with
runtime::Builder::core_threadsandruntime::Builder::max_threads.runtime::Builder::num_threadsis deprecated (#1977).
-
0.2.407 Jun 2018Release notes
Open source →- Add
sleepfunction for easy interval delays (#347). - Provide
clock::now(), a configurable source of time (#381).
- Add
-
0.2.302 May 2018Release notes
Open source →Added
- read / write integers using
AsyncReadExtandAsyncWriteExt(#1863). read_buf/write_buffor reading / writingBuf/BufMut(#1881).TcpStream::poll_peek- pollable API for performing TCP peek (#1864).sync::oneshot::error::TryRecvErrorprovides variants to detect the error kind (#1874).LocalSet::block_onaccepts!'statictask (#1882).task::JoinErroris nowSync(#1888).- impl conversions between
tokio::time::Instantandstd::time::Instant(#1904).
Fixes
- read / write integers using
-
0.2.102 Apr 2018Release notes
Open source → -
0.2.030 Mar 2018Release notes
Open source →A major breaking change. Most implementation and APIs have changed one way or another. This changelog entry contains a highlight
Changed
- APIs are updated to use
async / await. - most
tokio-*crates are collapsed into this crate. - Scheduler is rewritten.
tokio::spawnreturns aJoinHandle.- A single I/O / timer is used per runtime.
- I/O driver uses a concurrent slab for allocating state.
- components are made available via feature flag.
- Use
bytes0.5 tokio::codecis moved totokio-util.
Removed
- Standalone
timerandnetdrivers are removed, useRuntimeinstead current_threadruntime is removed, usetokio::runtime::Runtimewithbasic_schedulerinstead.
- APIs are updated to use
-
0.1.227 Jun 2017Release notes
Open source →- Introduce Tokio Runtime (#141)
- Provide
CurrentThreadfor more flexible usage of current thread executor (#141). - Add Lio for platforms that support it (#142).
- I/O resources now lazily bind to the reactor (#160).
- Extract Reactor to dedicated crate (#169)
- Add facade to sub crates and add prelude (#166).
- Switch TCP/UDP fns to poll_ -> Poll<...> style (#175)
-
0.1.106 Apr 2017Release notes
Open source →- Set Rust v1.14 as the minimum supported version.
- Fix bug related to intervals.
- Impl
PartialEq + Eqfor TimerError. - Add
Debugimplementations.
-
0.1.012 Jan 2017