diff --git a/Cargo.lock b/Cargo.lock index 4b6e7ea11..6a8a21a71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,15 +136,6 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" -[[package]] -name = "arrayvec" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] - [[package]] name = "arrayvec" version = "0.5.1" @@ -765,41 +756,17 @@ dependencies = [ "itertools", ] -[[package]] -name = "crossbeam-deque" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" -dependencies = [ - "crossbeam-epoch 0.7.2", - "crossbeam-utils 0.6.6", -] - [[package]] name = "crossbeam-deque" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", + "crossbeam-epoch", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-epoch" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9" -dependencies = [ - "arrayvec 0.4.12", - "cfg-if", - "crossbeam-utils 0.6.6", - "lazy_static", - "memoffset", - "scopeguard 1.1.0", -] - [[package]] name = "crossbeam-epoch" version = "0.8.2" @@ -808,7 +775,7 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg 1.0.0", "cfg-if", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "maybe-uninit", "memoffset", @@ -822,17 +789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" dependencies = [ "cfg-if", - "crossbeam-utils 0.7.2", -] - -[[package]] -name = "crossbeam-utils" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" -dependencies = [ - "cfg-if", - "lazy_static", + "crossbeam-utils", ] [[package]] @@ -945,7 +902,7 @@ version = "0.1.2" dependencies = [ "app_dirs", "ethereum-types", - "home 0.3.4", + "home", "journaldb", ] @@ -1354,7 +1311,7 @@ dependencies = [ name = "ethcore-io" version = "1.12.0" dependencies = [ - "crossbeam-deque 0.6.3", + "crossbeam-deque", "fnv", "futures", "log", @@ -1421,7 +1378,7 @@ name = "ethcore-logger" version = "1.12.0" dependencies = [ "ansi_term", - "arrayvec 0.4.12", + "arrayvec", "atty", "env_logger 0.5.13", "lazy_static", @@ -2157,16 +2114,6 @@ dependencies = [ "digest", ] -[[package]] -name = "home" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29302b90cfa76231a757a887d1e3153331a63c7f80b6c75f86366334cbe70708" -dependencies = [ - "scopeguard 0.3.3", - "winapi 0.3.8", -] - [[package]] name = "home" version = "0.5.3" @@ -2825,7 +2772,7 @@ dependencies = [ "client-traits", "common-types", "criterion", - "crossbeam-utils 0.6.6", + "crossbeam-utils", "ethabi", "ethabi-contract", "ethabi-derive", @@ -3072,12 +3019,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - [[package]] name = "nom" version = "5.1.1" @@ -3411,7 +3352,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f66a327a200fe67c16f1d0acab2f74a2ec67c41d6202a2a98a7378df653d848d" dependencies = [ - "home 0.5.3", + "home", ] [[package]] @@ -3516,7 +3457,7 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f509c5e67ca0605ee17dcd3f91ef41cadd685c75a298fb6261b781a5acb3f910" dependencies = [ - "arrayvec 0.5.1", + "arrayvec", "bitvec", "byte-slice-cast", "serde", @@ -4223,7 +4164,7 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" dependencies = [ - "crossbeam-deque 0.7.3", + "crossbeam-deque", "either", "rayon-core", ] @@ -4234,9 +4175,9 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" dependencies = [ - "crossbeam-deque 0.7.3", + "crossbeam-deque", "crossbeam-queue", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -4693,7 +4634,7 @@ dependencies = [ "client-traits", "common-types", "criterion", - "crossbeam-utils 0.6.6", + "crossbeam-utils", "engine", "env_logger 0.5.13", "ethabi", @@ -5152,7 +5093,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", ] @@ -5197,7 +5138,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -5263,9 +5204,9 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque 0.7.3", + "crossbeam-deque", "crossbeam-queue", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -5290,7 +5231,7 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "slab 0.4.2", "tokio-executor", diff --git a/ethcore/machine/Cargo.toml b/ethcore/machine/Cargo.toml index 9fb850c93..8f9fef268 100644 --- a/ethcore/machine/Cargo.toml +++ b/ethcore/machine/Cargo.toml @@ -15,7 +15,7 @@ required-features = ["test-helpers"] account-state = { path = "../account-state" } client-traits = { path = "../client-traits" } common-types = { path = "../types" } -crossbeam-utils = "0.6" +crossbeam-utils = "0.7.2" ethabi = "9.0.1" ethabi-contract = "9.0.0" ethabi-derive = "9.0.1" diff --git a/ethcore/snapshot/Cargo.toml b/ethcore/snapshot/Cargo.toml index 081b21465..1ff82383c 100644 --- a/ethcore/snapshot/Cargo.toml +++ b/ethcore/snapshot/Cargo.toml @@ -18,7 +18,7 @@ bloom-journal = { package = "accounts-bloom", path = "../../util/bloom" } bytes = { package = "parity-bytes", version = "0.1.0" } client-traits = { path = "../client-traits" } common-types = { path = "../types" } -crossbeam-utils = "0.6" +crossbeam-utils = "0.7.2" engine = { path = "../engine" } ethcore-db = { path = "../db" } ethcore-io = { path = "../../util/io" } diff --git a/parity/logger/Cargo.toml b/parity/logger/Cargo.toml index 44114b300..19b913dc9 100644 --- a/parity/logger/Cargo.toml +++ b/parity/logger/Cargo.toml @@ -13,5 +13,5 @@ lazy_static = "1.0" regex = "1.0" time = "0.1" parking_lot = "0.10.0" -arrayvec = "0.4" +arrayvec = "0.5.1" ansi_term = "0.11" diff --git a/util/dir/Cargo.toml b/util/dir/Cargo.toml index 48e90eb85..156fdc199 100644 --- a/util/dir/Cargo.toml +++ b/util/dir/Cargo.toml @@ -8,4 +8,4 @@ license = "GPL3" ethereum-types = "0.8.0" journaldb = { path = "../journaldb" } app_dirs = { git = "https://github.com/paritytech/app-dirs-rs" } -home = "0.3" +home = "0.5.3" diff --git a/util/io/Cargo.toml b/util/io/Cargo.toml index c5854b792..cf9cba493 100644 --- a/util/io/Cargo.toml +++ b/util/io/Cargo.toml @@ -10,7 +10,7 @@ edition = "2018" [dependencies] fnv = "1.0" mio = { version = "0.6.19", optional = true } -crossbeam-deque = "0.6" +crossbeam-deque = "0.7.3" parking_lot = "0.10.0" log = "0.4" slab = "0.4" diff --git a/util/io/src/service_mio.rs b/util/io/src/service_mio.rs index b04ed4148..3c979e607 100644 --- a/util/io/src/service_mio.rs +++ b/util/io/src/service_mio.rs @@ -199,7 +199,8 @@ impl IoManager where Message: Send + Sync + 'static { event_loop: &mut EventLoop>, handlers: Arc>>>> ) -> Result<(), IoError> { - let (worker, stealer) = deque::fifo(); + let worker = deque::Worker::new_fifo(); + let stealer = worker.stealer(); let num_workers = 4; let work_ready_mutex = Arc::new(Mutex::new(())); let work_ready = Arc::new(Condvar::new()); diff --git a/util/io/src/service_non_mio.rs b/util/io/src/service_non_mio.rs index 239181709..09131b72a 100644 --- a/util/io/src/service_non_mio.rs +++ b/util/io/src/service_non_mio.rs @@ -227,7 +227,8 @@ impl Clone for WorkTask where Message: Send + Sized { impl IoService where Message: Send + Sync + 'static { /// Starts IO event loop pub fn start() -> Result, IoError> { - let (tx, rx) = deque::fifo(); + let tx = deque::Worker::new_fifo(); + let rx = tx.stealer(); let shared = Arc::new(Shared { handlers: RwLock::new(Slab::with_capacity(MAX_HANDLERS)), @@ -317,8 +318,8 @@ fn do_work(shared: &Arc>, rx: deque::Stealer continue, deque::Steal::Empty => thread::park(), - deque::Steal::Data(WorkTask::Shutdown) => break, - deque::Steal::Data(WorkTask::UserMessage(message)) => { + deque::Steal::Success(WorkTask::Shutdown) => break, + deque::Steal::Success(WorkTask::UserMessage(message)) => { for id in 0 .. MAX_HANDLERS { if let Some(handler) = shared.handlers.read().get(id) { let ctxt = IoContext { handler: id, shared: shared.clone() }; @@ -326,7 +327,7 @@ fn do_work(shared: &Arc>, rx: deque::Stealer { + deque::Steal::Success(WorkTask::TimerTrigger { handler_id, token }) => { if let Some(handler) = shared.handlers.read().get(handler_id) { let ctxt = IoContext { handler: handler_id, shared: shared.clone() }; handler.timeout(&ctxt, token); diff --git a/util/io/src/worker.rs b/util/io/src/worker.rs index f8f8e5434..1aee07ad8 100644 --- a/util/io/src/worker.rs +++ b/util/io/src/worker.rs @@ -90,7 +90,7 @@ impl Worker { while !deleting.load(AtomicOrdering::Acquire) { match stealer.steal() { - deque::Steal::Data(work) => Worker::do_work(work, channel.clone()), + deque::Steal::Success(work) => Worker::do_work(work, channel.clone()), deque::Steal::Retry => {}, deque::Steal::Empty => break, }