crosvm/cros_async/Cargo.toml
Chirantan Ekbote f1ce859903 cros_async: Refactor executors
There are a lot of changes in this one but these are the high-level
points:

* Both executors now support non-fd futures and it's now possible to
  start a poll operation on one thread and then await the result inside
  a UringExecutor on another thread.  The reverse doesn't work yet but
  will once we make UringContext sync.
* A few layers of indirection have been removed so hopefully both the
  implementation and the interface are simpler.
* The thread local magic is gone in favor of directly calling methods on
  an executor.  Executor handles can be cheaply cloned to make this
  easier.
* Heap allocations are limited to the spawn and spawn_local methods so
  it's possible to completely avoid heap allocations if callers only use
  the run_until method.
* The IoSource, Executor, FutureList traits are gone.

BUG=none
TEST=unit tests

Cq-Depend: chromium:2629068
Change-Id: I86053007929c36da66f3b2499cdefce0b5e9a180
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2571401
Commit-Queue: Chirantan Ekbote <chirantan@chromium.org>
Tested-by: Chirantan Ekbote <chirantan@chromium.org>
Reviewed-by: Noah Gold <nkgold@google.com>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
2021-01-25 08:52:27 +00:00

28 lines
627 B
TOML

[package]
name = "cros_async"
version = "0.1.0"
authors = ["The Chromium OS Authors"]
edition = "2018"
[dependencies]
async-trait = "0.1.36"
async-task = "4"
io_uring = { path = "../io_uring" }
libc = "*"
paste = "1.0"
pin-utils = "0.1.0-alpha.4"
slab = "0.4"
sync = { path = "../sync" }
sys_util = { path = "../sys_util" }
syscall_defines = { path = "../syscall_defines" }
thiserror = "1.0.20"
[dependencies.futures]
version = "*"
default-features = false
features = ["alloc"]
[dev-dependencies]
futures = { version = "*", features = ["executor"] }
tempfile = { path = "../tempfile" }
vm_memory = { path = "../vm_memory" }