summaryrefslogtreecommitdiffstats
path: root/tokio-threadpool
AgeCommit message (Collapse)Author
2019-03-01Bump Tokio to 0.1.16. (#941)Carl Lerche
Also bumps: * tokio-current-thread (0.1.5) * tokio-fs (0.1.6) * tokio-io (0.1.12) * tokio-reactor (0.1.9) * tokio-threadpool (0.1.12)
2019-02-21chore: apply rustfmt to all crates (#917)Carl Lerche
2019-02-21threadpool: fix typo in documentation (#915)Nicholas Young
2019-01-30threadpool: update crossbeam dependencies (#874)Stjepan Glavina
2019-01-25Bump Tokio to v0.1.15. (#869)Carl Lerche
Also bumps: - tokio-sync (0.1.0) - tokio-threadpool (0.1.11) - tokio-timer (0.2.9)
2019-01-17threadpool: drop incomplete tasks on shutdown (#722)Stjepan Glavina
## Motivation When the thread pool shuts down, futures that have been polled at least once but not completed yet are simply leaked. We should drop them instead. ## Solution Multiple changes are introduced: * Tasks are assigned a home worker the first time they are polled. * Each worker contains a set of tasks (`Arc<Task>`) it is home to. When a task is assigned a home worker, it is registered in that worker's set of tasks. When the task is completed, it is unregistered from the set. * When the thread pool shuts down and after all worker threads stop, the remaining tasks in workers' sets are aborted, i.e. they are switched to the `Aborted` state and their `Future`s are dropped. * The thread pool shutdown process is refactored to make it more robust. We don't track the number of active threads manually anymore. Instead, there's `Arc<ShutdownTrigger>` that aborts remaining tasks and completes the `Shutdown` future once it gets destroyed (when all `Worker`s and `ThreadPool` get dropped because they're the only ones to contain strong references to the `ShutdownTrigger`). Closes #424 Closes #428
2019-01-06Bump version to 0.1.14. (#836)Carl Lerche
Also bumps: * tokio-async-await (0.1.5) * tokio-executor (0.1.6) * tokio-fs (0.1.5) * tokio-io (0.1.11) * tokio-reactor (0.1.8) * tokio-tcp (0.1.3) * tokio-threadpool (0.1.10) * tokio-tls (0.2.1) * tokio-uds (0.2.5) ...and updates LICENSE files to 2019.
2019-01-05threadpool: panic if a worker thread cannot be spawned (#826)Stjepan Glavina
2019-01-03threadpool: remove unused fn (#822)Carl Lerche
The unused lint on nightly has discovered a new unused fn.
2019-01-02Use Crossbeam's Parker/Unparker (#528)Stjepan Glavina
2018-12-28threadpool: introduce a global task queue (#798)Stjepan Glavina
2018-12-12threadpool: fix semaphore deadlock (#795)Stjepan Glavina
2018-12-05threadpool: improve the documentation of `blocking` (#789)Simon Farnsworth
2018-11-21Bump version to v0.1.13 (#771)Carl Lerche
This also bumps the following sub crate versions: * tokio-current-thread (0.1.4) * tokio-reactor (0.1.7) * tokio-signal (0.2.7) * tokio-threadpool (0.1.9) * tokio-timer (0.2.8) * tokio-udp (0.1.3) * tokio-uds (0.2.4)
2018-11-21threadpool: remove smoke example (#764) (#770)Felix Obenhuber
2018-11-20threadpool: refactor pool shutdown (#769)Stjepan Glavina
2018-11-20threadpool: rename inner to something more descriptive (#768)Stjepan Glavina
`inner` is a fitting name for variables of type named `Inner`, but in other cases I find them confusing - sometimes `inner` refers to a `Pool`, sometimes to a `Sender`. I renamed a bunch of variables named `inner` to be more descriptive. This PR is the first step in an effort of splitting https://github.com/tokio-rs/tokio/pull/722#issuecomment-439552671 into multiple PRs.
2018-11-16chore: bump rand dependency to 0.6 (#753)Alex Gaynor
2018-11-10Bumped crossbeam-utils version (#746)Alex Gaynor
## Motivation tokio depends on an out of date version of crossbeam-utils, which results in multiple versions of that package being linked in binaries which use other popular libraries. ## Solution Bump the version; there's no API changes and tests still pass.
2018-10-23Bump version to 0.1.12 (#718)Carl Lerche
Also bumps the following sub-crates: * tokio-fs (0.1.4) * tokio-io (0.1.10) * tokio-signal (0.2.6) * tokio-threadpool (0.1.8) * tokio-uds (0.2.3)
2018-10-15threadpool: Arc instead of Inner in Notifier (#702)Stjepan Glavina
2018-10-10threadpool: worker threads shouldn't respect keep_alive (#692)Stjepan Glavina
<!-- Thank you for your Pull Request. Please provide a description above and review the requirements below. Bug fixes and new features should include tests. Contributors guide: https://github.com/tokio-rs/tokio/blob/master/CONTRIBUTING.md --> ## Motivation Now that each worker thread drives its own reactor, reactors have to be driven until the threadpool shuts down. We mustn't use the `keep_alive` setting to shut down a worker thread if it doesn't receive an event from the reactor for a certain duration of time. <!-- Explain the context and why you're making that change. What is the problem you're trying to solve? In some cases there is not a problem and this can be thought of as being the motivation for your change. --> ## Solution Just ignore the `keep_alive` setting when parking in `Worker::sleep`. <!-- Summarize the solution and provide any necessary context needed to understand the code change. -->
2018-10-03threadpool: spawn new tasks onto a random worker (#683)Stjepan Glavina
* threadpool: submit new tasks to a random worker * Revert unnecessary version bumps
2018-10-02runtime: create reactor per worker (#660)Stjepan Glavina
2018-09-26Bump version to v0.1.9 (#666)Carl Lerche
This also includes bumps to subcrates. * tokio-async-await (0.1.4) * tokio-codec (0.1.1) * tokio-current-thread (0.1.2) * tokio-executor (0.1.5) * tokio-io (0.1.9) * tokio-reactor (0.1.6) * tokio-tcp (0.1.2) * tokio-threadpool (0.1.7) * tokio-timer (0.2.7)
2018-09-26reactor: turn bench-poll into a proper benchmark (#662)Stjepan Glavina
2018-09-21threadpool: impl Drop for Queue (#649)Stjepan Glavina
We need to drain the queue when dropping, or else those `Arc<Task>`s will be leaked. Fixes #542
2018-09-10Expose thread_pool::SpawnHandle (#604)Flux Xu
2018-08-30Add ThreadPool::spawn_handle (#602)Flux Xu
## Motivation `tokio_threadpool::ThreadPool::spawn` has no return value. ## Solution Add `ThreadPool::spawn_handle` which calls `futures::sync::oneshot::spawn` to return a future represents the return value.
2018-08-25Spelling fixes (#571)Ben Boeckel
* docs: fix spelling and whitespace errors
2018-08-24Bump version to v0.1.8 (#566)Carl Lerche
This also bumps a number of sub crates: * tokio-executor (0.1.3) * tokio-io (0.1.8) * tokio-reactor (0.1.4) * tokio-threadpool (0.1.6) * tokio-timer (0.2.6) * tokio-udp (0.1.2)
2018-08-10Routine dependencies update (#533)Mateusz MikuĊ‚a
* Update dependencies * Replace deprecated tempdir with tempfile
2018-08-10Enable sanitizer tests for tokio-threadpool (#537)Stjepan Glavina
Closes #536.
2018-08-09Remove dead futures2 code. (#538)Carl Lerche
The futures 0.2 crate is not intended for widespread usage. Also, the futures team is exploring the compat shim route. If futures 0.3 support is added to Tokio 0.1, then a different integration route will be explored, making the current code unhelpful.
2018-08-09Steal multiple tasks from another worker at a time (#534)Stjepan Glavina
* Steal multiple tasks from another worker at a time * Better spinning and failing pop * Update crossbeam-deque and simplify spinning
2018-08-08Update to crossbeam-utils 0.5.0, fix imports (#519)David Kellum
2018-08-08Fix num CPUs in threadpool::builder::Builder::new (#530)Roman
Closes #400
2018-08-07Implement Error for a few error types (#511)Stjepan Glavina
2018-08-07Fix tokio threadpool readme examples (#521)Serho Liu
2018-07-30Terminate backup threads when idle (#489)Stjepan Glavina
2018-07-22General rustdoc improvements (#450)David Kellum
* Normalize links to docs.rs/CRATE/M.N/... docs.rs is smart enough to show docs for the latest M.N.P release when M.N is used in the link. For example: https://docs.rs/mio/0.6/mio/struct.Poll.html ..will show mio 0.6.14 and later docs. While using the `M.N.*` (ASTERISK) syntax also works, `M.N` is the more common usage, so standarize a few existing links to that format. * Fix missing or malformed rustdoc links * executor lib rustdoc minor format change * Promote tokio-threadpool crate level comments to rustdoc * Replace hidden tokio::executor::thread_pool docs with deprecation note * Fix typo/simplify util module rustdoc * Reuse some tokio::executor::thread_pool rustdoc for the crate Relates to #421
2018-07-16Pad fields to cacheline size to avoid false sharing (#475)Stjepan Glavina
2018-07-11Optimize spinning in Worker::run (#470)Stjepan Glavina
2018-07-11New version of crossbeam-deque (#468)Stjepan Glavina
2018-07-11Update rand dep from 0.4 to 0.5 (#458)Roman
2018-07-06Replace XorShiftRng with a custom RNG (#466)Stjepan Glavina
2018-07-05Bump tokio-threadpool to v0.1.5 (#462)Carl Lerche
2018-07-03Fix a race in thread wakeup (#459)Stjepan Glavina
2018-07-02Make WorkerId public (#460)Stjepan Glavina
2018-06-26Add a verbose error message for BlockingError (#451)Roman
Add a verbose error message for EnterError while trying to run tokio_threadpool::blocking on a current_thread::Runtime