remove exit-future (#5183)

* remove exit-future usage,

as it is non maintained, and replace with async-channel which is already in the repo.

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove-exit-future

* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove-exit-future
This commit is contained in:
João Oliveira 2024-02-27 22:12:44 +00:00 committed by GitHub
parent abd99652b4
commit 65c4ff0775
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 171 additions and 193 deletions

256
Cargo.lock generated
View File

@ -154,9 +154,9 @@ dependencies = [
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.8.8" version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"once_cell", "once_cell",
@ -265,7 +265,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -687,7 +687,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -757,13 +757,13 @@ dependencies = [
[[package]] [[package]]
name = "auto_impl" name = "auto_impl"
version = "1.1.2" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -785,7 +785,7 @@ dependencies = [
"http 1.0.0", "http 1.0.0",
"http-body 1.0.0", "http-body 1.0.0",
"http-body-util", "http-body-util",
"hyper 1.1.0", "hyper 1.2.0",
"hyper-util", "hyper-util",
"itoa", "itoa",
"matchit", "matchit",
@ -894,7 +894,6 @@ dependencies = [
"ethereum_ssz", "ethereum_ssz",
"ethereum_ssz_derive", "ethereum_ssz_derive",
"execution_layer", "execution_layer",
"exit-future",
"fork_choice", "fork_choice",
"futures", "futures",
"genesis", "genesis",
@ -957,7 +956,7 @@ dependencies = [
"genesis", "genesis",
"hex", "hex",
"http_api", "http_api",
"hyper 1.1.0", "hyper 1.2.0",
"lighthouse_network", "lighthouse_network",
"lighthouse_version", "lighthouse_version",
"monitoring_api", "monitoring_api",
@ -1047,7 +1046,7 @@ dependencies = [
"regex", "regex",
"rustc-hash", "rustc-hash",
"shlex", "shlex",
"syn 2.0.49", "syn 2.0.51",
"which", "which",
] ]
@ -1246,9 +1245,9 @@ dependencies = [
[[package]] [[package]]
name = "bumpalo" name = "bumpalo"
version = "3.15.0" version = "3.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
[[package]] [[package]]
name = "byte-slice-cast" name = "byte-slice-cast"
@ -1361,11 +1360,10 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.83" version = "1.0.88"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
dependencies = [ dependencies = [
"jobserver",
"libc", "libc",
] ]
@ -1417,7 +1415,7 @@ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
"num-traits", "num-traits",
"windows-targets 0.52.0", "windows-targets 0.52.3",
] ]
[[package]] [[package]]
@ -1562,9 +1560,9 @@ dependencies = [
[[package]] [[package]]
name = "const-hex" name = "const-hex"
version = "1.11.0" version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18d59688ad0945eaf6b84cb44fedbe93484c81b48970e98f09db8a22832d7961" checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"cpufeatures", "cpufeatures",
@ -1839,7 +1837,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2041,7 +2039,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2080,7 +2078,7 @@ dependencies = [
"diesel_table_macro_syntax", "diesel_table_macro_syntax",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2100,7 +2098,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5" checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
dependencies = [ dependencies = [
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2213,7 +2211,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2396,7 +2394,7 @@ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -2426,10 +2424,10 @@ dependencies = [
name = "environment" name = "environment"
version = "0.1.2" version = "0.1.2"
dependencies = [ dependencies = [
"async-channel 1.9.0",
"ctrlc", "ctrlc",
"eth2_config", "eth2_config",
"eth2_network_config", "eth2_network_config",
"exit-future",
"futures", "futures",
"logging", "logging",
"serde", "serde",
@ -2985,12 +2983,12 @@ dependencies = [
name = "execution_engine_integration" name = "execution_engine_integration"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"async-channel 1.9.0",
"deposit_contract", "deposit_contract",
"environment", "environment",
"ethers-core", "ethers-core",
"ethers-providers", "ethers-providers",
"execution_layer", "execution_layer",
"exit-future",
"fork_choice", "fork_choice",
"futures", "futures",
"hex", "hex",
@ -3021,7 +3019,6 @@ dependencies = [
"ethereum_serde_utils", "ethereum_serde_utils",
"ethereum_ssz", "ethereum_ssz",
"ethers-core", "ethers-core",
"exit-future",
"fork_choice", "fork_choice",
"futures", "futures",
"hash-db", "hash-db",
@ -3058,15 +3055,6 @@ dependencies = [
"zeroize", "zeroize",
] ]
[[package]]
name = "exit-future"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5"
dependencies = [
"futures",
]
[[package]] [[package]]
name = "eyre" name = "eyre"
version = "0.6.12" version = "0.6.12"
@ -3369,7 +3357,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -3407,9 +3395,9 @@ dependencies = [
[[package]] [[package]]
name = "futures-timer" name = "futures-timer"
version = "3.0.2" version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
[[package]] [[package]]
name = "futures-util" name = "futures-util"
@ -3526,7 +3514,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -3609,9 +3597,9 @@ dependencies = [
[[package]] [[package]]
name = "half" name = "half"
version = "1.8.2" version = "1.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
[[package]] [[package]]
name = "hash-db" name = "hash-db"
@ -3712,9 +3700,9 @@ dependencies = [
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.3.6" version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
[[package]] [[package]]
name = "hex" name = "hex"
@ -3754,7 +3742,7 @@ dependencies = [
"ipnet", "ipnet",
"once_cell", "once_cell",
"rand", "rand",
"socket2 0.5.5", "socket2 0.5.6",
"thiserror", "thiserror",
"tinyvec", "tinyvec",
"tokio", "tokio",
@ -4011,7 +3999,7 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"socket2 0.5.5", "socket2 0.5.6",
"tokio", "tokio",
"tower-service", "tower-service",
"tracing", "tracing",
@ -4020,9 +4008,9 @@ dependencies = [
[[package]] [[package]]
name = "hyper" name = "hyper"
version = "1.1.0" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures-channel", "futures-channel",
@ -4034,6 +4022,7 @@ dependencies = [
"httpdate", "httpdate",
"itoa", "itoa",
"pin-project-lite", "pin-project-lite",
"smallvec",
"tokio", "tokio",
] ]
@ -4074,9 +4063,9 @@ dependencies = [
"futures-util", "futures-util",
"http 1.0.0", "http 1.0.0",
"http-body 1.0.0", "http-body 1.0.0",
"hyper 1.1.0", "hyper 1.2.0",
"pin-project-lite", "pin-project-lite",
"socket2 0.5.5", "socket2 0.5.6",
"tokio", "tokio",
] ]
@ -4304,7 +4293,7 @@ version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [ dependencies = [
"hermit-abi 0.3.6", "hermit-abi 0.3.8",
"libc", "libc",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -4315,7 +4304,7 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
dependencies = [ dependencies = [
"socket2 0.5.5", "socket2 0.5.6",
"widestring 1.0.2", "widestring 1.0.2",
"windows-sys 0.48.0", "windows-sys 0.48.0",
"winreg", "winreg",
@ -4333,7 +4322,7 @@ version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
dependencies = [ dependencies = [
"hermit-abi 0.3.6", "hermit-abi 0.3.8",
"libc", "libc",
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
@ -4384,15 +4373,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "jobserver"
version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.68" version = "0.3.68"
@ -4798,7 +4778,7 @@ dependencies = [
"libp2p-swarm", "libp2p-swarm",
"rand", "rand",
"smallvec", "smallvec",
"socket2 0.5.5", "socket2 0.5.6",
"tokio", "tokio",
"tracing", "tracing",
"void", "void",
@ -4899,7 +4879,7 @@ dependencies = [
"rand", "rand",
"ring 0.16.20", "ring 0.16.20",
"rustls", "rustls",
"socket2 0.5.5", "socket2 0.5.6",
"thiserror", "thiserror",
"tokio", "tokio",
"tracing", "tracing",
@ -4937,7 +4917,7 @@ dependencies = [
"heck", "heck",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -4952,7 +4932,7 @@ dependencies = [
"libc", "libc",
"libp2p-core", "libp2p-core",
"libp2p-identity", "libp2p-identity",
"socket2 0.5.5", "socket2 0.5.6",
"tokio", "tokio",
"tracing", "tracing",
] ]
@ -5158,7 +5138,6 @@ dependencies = [
"error-chain", "error-chain",
"ethereum_ssz", "ethereum_ssz",
"ethereum_ssz_derive", "ethereum_ssz_derive",
"exit-future",
"fnv", "fnv",
"futures", "futures",
"futures-ticker", "futures-ticker",
@ -5313,9 +5292,9 @@ dependencies = [
[[package]] [[package]]
name = "lru" name = "lru"
version = "0.12.2" version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
dependencies = [ dependencies = [
"hashbrown 0.14.3", "hashbrown 0.14.3",
] ]
@ -5717,6 +5696,7 @@ name = "network"
version = "0.2.0" version = "0.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-channel 1.9.0",
"beacon_chain", "beacon_chain",
"beacon_processor", "beacon_processor",
"delay_map", "delay_map",
@ -5727,7 +5707,6 @@ dependencies = [
"ethereum-types 0.14.1", "ethereum-types 0.14.1",
"ethereum_ssz", "ethereum_ssz",
"execution_layer", "execution_layer",
"exit-future",
"fnv", "fnv",
"futures", "futures",
"genesis", "genesis",
@ -5906,7 +5885,7 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [ dependencies = [
"hermit-abi 0.3.6", "hermit-abi 0.3.8",
"libc", "libc",
] ]
@ -5980,9 +5959,9 @@ dependencies = [
[[package]] [[package]]
name = "openssl" name = "openssl"
version = "0.10.63" version = "0.10.64"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
dependencies = [ dependencies = [
"bitflags 2.4.2", "bitflags 2.4.2",
"cfg-if", "cfg-if",
@ -6001,7 +5980,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -6021,9 +6000,9 @@ dependencies = [
[[package]] [[package]]
name = "openssl-sys" name = "openssl-sys"
version = "0.9.99" version = "0.9.101"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@ -6313,7 +6292,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -6535,7 +6514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -6652,7 +6631,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -6819,7 +6798,7 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
dependencies = [ dependencies = [
"bytes", "bytes",
"libc", "libc",
"socket2 0.5.5", "socket2 0.5.6",
"tracing", "tracing",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -7557,9 +7536,9 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.196" version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
@ -7586,20 +7565,20 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.196" version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.113" version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@ -7624,7 +7603,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -8059,12 +8038,12 @@ dependencies = [
[[package]] [[package]]
name = "socket2" name = "socket2"
version = "0.5.5" version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.48.0", "windows-sys 0.52.0",
] ]
[[package]] [[package]]
@ -8273,9 +8252,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.49" version = "2.0.51"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -8377,7 +8356,7 @@ checksum = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe"
name = "task_executor" name = "task_executor"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"exit-future", "async-channel 1.9.0",
"futures", "futures",
"lazy_static", "lazy_static",
"lighthouse_metrics", "lighthouse_metrics",
@ -8388,9 +8367,9 @@ dependencies = [
[[package]] [[package]]
name = "tempfile" name = "tempfile"
version = "3.10.0" version = "3.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"fastrand 2.0.1", "fastrand 2.0.1",
@ -8477,14 +8456,14 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "1.1.7" version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"once_cell", "once_cell",
@ -8607,7 +8586,7 @@ dependencies = [
"num_cpus", "num_cpus",
"pin-project-lite", "pin-project-lite",
"signal-hook-registry", "signal-hook-registry",
"socket2 0.5.5", "socket2 0.5.6",
"tokio-macros", "tokio-macros",
"windows-sys 0.48.0", "windows-sys 0.48.0",
] ]
@ -8630,7 +8609,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -8663,7 +8642,7 @@ dependencies = [
"postgres-protocol", "postgres-protocol",
"postgres-types", "postgres-types",
"rand", "rand",
"socket2 0.5.5", "socket2 0.5.6",
"tokio", "tokio",
"tokio-util 0.7.10", "tokio-util 0.7.10",
"whoami", "whoami",
@ -8836,7 +8815,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -9057,9 +9036,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]] [[package]]
name = "unicode-normalization" name = "unicode-normalization"
version = "0.1.22" version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [ dependencies = [
"tinyvec", "tinyvec",
] ]
@ -9186,11 +9165,10 @@ dependencies = [
"eth2", "eth2",
"eth2_keystore", "eth2_keystore",
"ethereum_serde_utils", "ethereum_serde_utils",
"exit-future",
"filesystem", "filesystem",
"futures", "futures",
"hex", "hex",
"hyper 1.1.0", "hyper 1.2.0",
"itertools", "itertools",
"lazy_static", "lazy_static",
"libsecp256k1", "libsecp256k1",
@ -9416,7 +9394,7 @@ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -9450,7 +9428,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -9505,7 +9483,7 @@ dependencies = [
"eth2", "eth2",
"hex", "hex",
"http_api", "http_api",
"hyper 1.1.0", "hyper 1.2.0",
"log", "log",
"logging", "logging",
"network", "network",
@ -9539,10 +9517,10 @@ name = "web3signer_tests"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"account_utils", "account_utils",
"async-channel 1.9.0",
"environment", "environment",
"eth2_keystore", "eth2_keystore",
"eth2_network_config", "eth2_network_config",
"exit-future",
"futures", "futures",
"lazy_static", "lazy_static",
"parking_lot 0.12.1", "parking_lot 0.12.1",
@ -9668,7 +9646,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [ dependencies = [
"windows-targets 0.52.0", "windows-targets 0.52.3",
] ]
[[package]] [[package]]
@ -9695,7 +9673,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [ dependencies = [
"windows-targets 0.52.0", "windows-targets 0.52.3",
] ]
[[package]] [[package]]
@ -9730,17 +9708,17 @@ dependencies = [
[[package]] [[package]]
name = "windows-targets" name = "windows-targets"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
dependencies = [ dependencies = [
"windows_aarch64_gnullvm 0.52.0", "windows_aarch64_gnullvm 0.52.3",
"windows_aarch64_msvc 0.52.0", "windows_aarch64_msvc 0.52.3",
"windows_i686_gnu 0.52.0", "windows_i686_gnu 0.52.3",
"windows_i686_msvc 0.52.0", "windows_i686_msvc 0.52.3",
"windows_x86_64_gnu 0.52.0", "windows_x86_64_gnu 0.52.3",
"windows_x86_64_gnullvm 0.52.0", "windows_x86_64_gnullvm 0.52.3",
"windows_x86_64_msvc 0.52.0", "windows_x86_64_msvc 0.52.3",
] ]
[[package]] [[package]]
@ -9757,9 +9735,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]] [[package]]
name = "windows_aarch64_gnullvm" name = "windows_aarch64_gnullvm"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
[[package]] [[package]]
name = "windows_aarch64_msvc" name = "windows_aarch64_msvc"
@ -9775,9 +9753,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]] [[package]]
name = "windows_aarch64_msvc" name = "windows_aarch64_msvc"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
[[package]] [[package]]
name = "windows_i686_gnu" name = "windows_i686_gnu"
@ -9793,9 +9771,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]] [[package]]
name = "windows_i686_gnu" name = "windows_i686_gnu"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
[[package]] [[package]]
name = "windows_i686_msvc" name = "windows_i686_msvc"
@ -9811,9 +9789,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]] [[package]]
name = "windows_i686_msvc" name = "windows_i686_msvc"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
[[package]] [[package]]
name = "windows_x86_64_gnu" name = "windows_x86_64_gnu"
@ -9829,9 +9807,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]] [[package]]
name = "windows_x86_64_gnu" name = "windows_x86_64_gnu"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
[[package]] [[package]]
name = "windows_x86_64_gnullvm" name = "windows_x86_64_gnullvm"
@ -9847,9 +9825,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]] [[package]]
name = "windows_x86_64_gnullvm" name = "windows_x86_64_gnullvm"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
[[package]] [[package]]
name = "windows_x86_64_msvc" name = "windows_x86_64_msvc"
@ -9865,9 +9843,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]] [[package]]
name = "windows_x86_64_msvc" name = "windows_x86_64_msvc"
version = "0.52.0" version = "0.52.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
[[package]] [[package]]
name = "winnow" name = "winnow"
@ -10032,7 +10010,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]
@ -10052,7 +10030,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.49", "syn 2.0.51",
] ]
[[package]] [[package]]

View File

@ -96,6 +96,7 @@ edition = "2021"
[workspace.dependencies] [workspace.dependencies]
anyhow = "1" anyhow = "1"
arbitrary = { version = "1", features = ["derive"] } arbitrary = { version = "1", features = ["derive"] }
async-channel = "1.9.0"
bincode = "1" bincode = "1"
bitvec = "1" bitvec = "1"
byteorder = "1" byteorder = "1"

View File

@ -68,7 +68,6 @@ execution_layer = { workspace = true }
sensitive_url = { workspace = true } sensitive_url = { workspace = true }
superstruct = { workspace = true } superstruct = { workspace = true }
hex = { workspace = true } hex = { workspace = true }
exit-future = { workspace = true }
oneshot_broadcast = { path = "../../common/oneshot_broadcast/" } oneshot_broadcast = { path = "../../common/oneshot_broadcast/" }
slog-term = { workspace = true } slog-term = { workspace = true }
slog-async = { workspace = true } slog-async = { workspace = true }

View File

@ -29,7 +29,6 @@ kzg = { workspace = true }
state_processing = { workspace = true } state_processing = { workspace = true }
superstruct = { workspace = true } superstruct = { workspace = true }
lru = { workspace = true } lru = { workspace = true }
exit-future = { workspace = true }
tree_hash = { workspace = true } tree_hash = { workspace = true }
tree_hash_derive = { workspace = true } tree_hash_derive = { workspace = true }
parking_lot = { workspace = true } parking_lot = { workspace = true }

View File

@ -5,6 +5,7 @@ authors = ["Sigma Prime <contact@sigmaprime.io>"]
edition = { workspace = true } edition = { workspace = true }
[dependencies] [dependencies]
async-channel = { workspace = true }
discv5 = { workspace = true } discv5 = { workspace = true }
unsigned-varint = { version = "0.6", features = ["codec"] } unsigned-varint = { version = "0.6", features = ["codec"] }
ssz_types = { workspace = true } ssz_types = { workspace = true }
@ -55,7 +56,6 @@ hex_fmt = "0.3.0"
instant = "0.1.12" instant = "0.1.12"
quick-protobuf = "0.8" quick-protobuf = "0.8"
void = "1.0.2" void = "1.0.2"
async-channel = "1.9.0"
asynchronous-codec = "0.7.0" asynchronous-codec = "0.7.0"
base64 = "0.21.5" base64 = "0.21.5"
libp2p-mplex = "0.41" libp2p-mplex = "0.41"
@ -70,7 +70,6 @@ features = ["identify", "yamux", "noise", "dns", "tcp", "tokio", "plaintext", "s
slog-term = { workspace = true } slog-term = { workspace = true }
slog-async = { workspace = true } slog-async = { workspace = true }
tempfile = { workspace = true } tempfile = { workspace = true }
exit-future = { workspace = true }
quickcheck = { workspace = true } quickcheck = { workspace = true }
quickcheck_macros = { workspace = true } quickcheck_macros = { workspace = true }
async-std = { version = "1.6.3", features = ["unstable"] } async-std = { version = "1.6.3", features = ["unstable"] }

View File

@ -46,7 +46,7 @@ pub struct Libp2pInstance(
LibP2PService<ReqId, E>, LibP2PService<ReqId, E>,
#[allow(dead_code)] #[allow(dead_code)]
// This field is managed for lifetime purposes may not be used directly, hence the `#[allow(dead_code)]` attribute. // This field is managed for lifetime purposes may not be used directly, hence the `#[allow(dead_code)]` attribute.
exit_future::Signal, async_channel::Sender<()>,
); );
impl std::ops::Deref for Libp2pInstance { impl std::ops::Deref for Libp2pInstance {
@ -110,7 +110,7 @@ pub async fn build_libp2p_instance(
let config = build_config(boot_nodes); let config = build_config(boot_nodes);
// launch libp2p service // launch libp2p service
let (signal, exit) = exit_future::signal(); let (signal, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let executor = task_executor::TaskExecutor::new(rt, exit, log.clone(), shutdown_tx); let executor = task_executor::TaskExecutor::new(rt, exit, log.clone(), shutdown_tx);
let libp2p_context = lighthouse_network::Context { let libp2p_context = lighthouse_network::Context {

View File

@ -8,12 +8,12 @@ edition = { workspace = true }
sloggers = { workspace = true } sloggers = { workspace = true }
genesis = { workspace = true } genesis = { workspace = true }
matches = "0.1.8" matches = "0.1.8"
exit-future = { workspace = true }
slog-term = { workspace = true } slog-term = { workspace = true }
slog-async = { workspace = true } slog-async = { workspace = true }
eth2 = { workspace = true } eth2 = { workspace = true }
[dependencies] [dependencies]
async-channel = { workspace = true }
anyhow = { workspace = true } anyhow = { workspace = true }
beacon_chain = { workspace = true } beacon_chain = { workspace = true }
store = { workspace = true } store = { workspace = true }

View File

@ -62,7 +62,7 @@ mod tests {
let runtime = Arc::new(Runtime::new().unwrap()); let runtime = Arc::new(Runtime::new().unwrap());
let (signal, exit) = exit_future::signal(); let (signal, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let executor = task_executor::TaskExecutor::new( let executor = task_executor::TaskExecutor::new(
Arc::downgrade(&runtime), Arc::downgrade(&runtime),
@ -139,7 +139,7 @@ mod tests {
// Build network service. // Build network service.
let (mut network_service, network_globals, _network_senders) = runtime.block_on(async { let (mut network_service, network_globals, _network_senders) = runtime.block_on(async {
let (_, exit) = exit_future::signal(); let (_, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let executor = task_executor::TaskExecutor::new( let executor = task_executor::TaskExecutor::new(
Arc::downgrade(&runtime), Arc::downgrade(&runtime),

View File

@ -5,10 +5,10 @@ authors = ["Sigma Prime <contact@sigmaprime.io>"]
edition = { workspace = true } edition = { workspace = true }
[dependencies] [dependencies]
async-channel = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
slog = { workspace = true } slog = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
exit-future = { workspace = true }
lazy_static = { workspace = true } lazy_static = { workspace = true }
lighthouse_metrics = { workspace = true } lighthouse_metrics = { workspace = true }
sloggers = { workspace = true } sloggers = { workspace = true }

View File

@ -73,7 +73,7 @@ pub struct TaskExecutor {
/// The handle to the runtime on which tasks are spawned /// The handle to the runtime on which tasks are spawned
handle_provider: HandleProvider, handle_provider: HandleProvider,
/// The receiver exit future which on receiving shuts down the task /// The receiver exit future which on receiving shuts down the task
exit: exit_future::Exit, exit: async_channel::Receiver<()>,
/// Sender given to tasks, so that if they encounter a state in which execution cannot /// Sender given to tasks, so that if they encounter a state in which execution cannot
/// continue they can request that everything shuts down. /// continue they can request that everything shuts down.
/// ///
@ -93,7 +93,7 @@ impl TaskExecutor {
/// crate). /// crate).
pub fn new<T: Into<HandleProvider>>( pub fn new<T: Into<HandleProvider>>(
handle: T, handle: T,
exit: exit_future::Exit, exit: async_channel::Receiver<()>,
log: slog::Logger, log: slog::Logger,
signal_tx: Sender<ShutdownReason>, signal_tx: Sender<ShutdownReason>,
) -> Self { ) -> Self {
@ -159,8 +159,8 @@ impl TaskExecutor {
/// Spawn a future on the tokio runtime. /// Spawn a future on the tokio runtime.
/// ///
/// The future is wrapped in an `exit_future::Exit`. The task is cancelled when the corresponding /// The future is wrapped in an `async-channel::Receiver`. The task is cancelled when the corresponding
/// exit_future `Signal` is fired/dropped. /// Sender is dropped.
/// ///
/// The future is monitored via another spawned future to ensure that it doesn't panic. In case /// The future is monitored via another spawned future to ensure that it doesn't panic. In case
/// of a panic, the executor will be shut down via `self.signal_tx`. /// of a panic, the executor will be shut down via `self.signal_tx`.
@ -172,9 +172,9 @@ impl TaskExecutor {
} }
} }
/// Spawn a future on the tokio runtime. This function does not wrap the task in an `exit_future::Exit` /// Spawn a future on the tokio runtime. This function does not wrap the task in an `async-channel::Receiver`
/// like [spawn](#method.spawn). /// like [spawn](#method.spawn).
/// The caller of this function is responsible for wrapping up the task with an `exit_future::Exit` to /// The caller of this function is responsible for wrapping up the task with an `async-channel::Receiver` to
/// ensure that the task gets canceled appropriately. /// ensure that the task gets canceled appropriately.
/// This function generates prometheus metrics on number of tasks and task duration. /// This function generates prometheus metrics on number of tasks and task duration.
/// ///
@ -213,9 +213,9 @@ impl TaskExecutor {
} }
} }
/// Spawn a future on the tokio runtime wrapped in an `exit_future::Exit` returning an optional /// Spawn a future on the tokio runtime wrapped in an `async-channel::Receiver` returning an optional
/// join handle to the future. /// join handle to the future.
/// The task is canceled when the corresponding exit_future `Signal` is fired/dropped. /// The task is canceled when the corresponding async-channel is dropped.
/// ///
/// This function generates prometheus metrics on number of tasks and task duration. /// This function generates prometheus metrics on number of tasks and task duration.
pub fn spawn_handle<R: Send + 'static>( pub fn spawn_handle<R: Send + 'static>(
@ -223,30 +223,29 @@ impl TaskExecutor {
task: impl Future<Output = R> + Send + 'static, task: impl Future<Output = R> + Send + 'static,
name: &'static str, name: &'static str,
) -> Option<tokio::task::JoinHandle<Option<R>>> { ) -> Option<tokio::task::JoinHandle<Option<R>>> {
let exit = self.exit.clone(); let exit = self.exit();
let log = self.log.clone(); let log = self.log.clone();
if let Some(int_gauge) = metrics::get_int_gauge(&metrics::ASYNC_TASKS_COUNT, &[name]) { if let Some(int_gauge) = metrics::get_int_gauge(&metrics::ASYNC_TASKS_COUNT, &[name]) {
// Task is shutdown before it completes if `exit` receives // Task is shutdown before it completes if `exit` receives
let int_gauge_1 = int_gauge.clone(); let int_gauge_1 = int_gauge.clone();
let future = future::select(Box::pin(task), exit).then(move |either| {
let result = match either {
future::Either::Left((value, _)) => {
trace!(log, "Async task completed"; "task" => name);
Some(value)
}
future::Either::Right(_) => {
debug!(log, "Async task shutdown, exit received"; "task" => name);
None
}
};
int_gauge_1.dec();
futures::future::ready(result)
});
int_gauge.inc(); int_gauge.inc();
if let Some(handle) = self.handle() { if let Some(handle) = self.handle() {
Some(handle.spawn(future)) Some(handle.spawn(async move {
futures::pin_mut!(exit);
let result = match future::select(Box::pin(task), exit).await {
future::Either::Left((value, _)) => {
trace!(log, "Async task completed"; "task" => name);
Some(value)
}
future::Either::Right(_) => {
debug!(log, "Async task shutdown, exit received"; "task" => name);
None
}
};
int_gauge_1.dec();
result
}))
} else { } else {
debug!(self.log, "Couldn't spawn task. Runtime shutting down"); debug!(self.log, "Couldn't spawn task. Runtime shutting down");
None None
@ -324,7 +323,7 @@ impl TaskExecutor {
metrics::inc_gauge_vec(&metrics::BLOCK_ON_TASKS_COUNT, &[name]); metrics::inc_gauge_vec(&metrics::BLOCK_ON_TASKS_COUNT, &[name]);
let log = self.log.clone(); let log = self.log.clone();
let handle = self.handle()?; let handle = self.handle()?;
let exit = self.exit.clone(); let exit = self.exit();
debug!( debug!(
log, log,
@ -362,9 +361,13 @@ impl TaskExecutor {
self.handle_provider.handle() self.handle_provider.handle()
} }
/// Returns a copy of the `exit_future::Exit`. /// Returns a future that completes when `async-channel::Sender` is dropped or () is sent,
pub fn exit(&self) -> exit_future::Exit { /// which translates to the exit signal being triggered.
self.exit.clone() pub fn exit(&self) -> impl Future<Output = ()> {
let exit = self.exit.clone();
async move {
let _ = exit.recv().await;
}
} }
/// Get a channel to request shutting down. /// Get a channel to request shutting down.

View File

@ -14,7 +14,7 @@ use tokio::runtime;
/// This struct should never be used in production, only testing. /// This struct should never be used in production, only testing.
pub struct TestRuntime { pub struct TestRuntime {
runtime: Option<Arc<tokio::runtime::Runtime>>, runtime: Option<Arc<tokio::runtime::Runtime>>,
_runtime_shutdown: exit_future::Signal, _runtime_shutdown: async_channel::Sender<()>,
pub task_executor: TaskExecutor, pub task_executor: TaskExecutor,
pub log: Logger, pub log: Logger,
} }
@ -24,7 +24,7 @@ impl Default for TestRuntime {
/// called *outside* any existing runtime, create a new `Runtime` and keep it alive until the /// called *outside* any existing runtime, create a new `Runtime` and keep it alive until the
/// `Self` is dropped. /// `Self` is dropped.
fn default() -> Self { fn default() -> Self {
let (runtime_shutdown, exit) = exit_future::signal(); let (runtime_shutdown, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let log = null_logger().unwrap(); let log = null_logger().unwrap();

View File

@ -5,6 +5,7 @@ authors = ["Paul Hauner <paul@paulhauner.com>"]
edition = { workspace = true } edition = { workspace = true }
[dependencies] [dependencies]
async-channel = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
slog = { workspace = true } slog = { workspace = true }
sloggers = { workspace = true } sloggers = { workspace = true }
@ -17,7 +18,6 @@ slog-term = { workspace = true }
slog-async = { workspace = true } slog-async = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
slog-json = "2.3.0" slog-json = "2.3.0"
exit-future = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
[target.'cfg(not(target_family = "unix"))'.dependencies] [target.'cfg(not(target_family = "unix"))'.dependencies]

View File

@ -343,7 +343,7 @@ impl<E: EthSpec> EnvironmentBuilder<E> {
/// Consumes the builder, returning an `Environment`. /// Consumes the builder, returning an `Environment`.
pub fn build(self) -> Result<Environment<E>, String> { pub fn build(self) -> Result<Environment<E>, String> {
let (signal, exit) = exit_future::signal(); let (signal, exit) = async_channel::bounded(1);
let (signal_tx, signal_rx) = channel(1); let (signal_tx, signal_rx) = channel(1);
Ok(Environment { Ok(Environment {
runtime: self runtime: self
@ -370,8 +370,8 @@ pub struct Environment<E: EthSpec> {
signal_rx: Option<Receiver<ShutdownReason>>, signal_rx: Option<Receiver<ShutdownReason>>,
/// Sender to request shutting down. /// Sender to request shutting down.
signal_tx: Sender<ShutdownReason>, signal_tx: Sender<ShutdownReason>,
signal: Option<exit_future::Signal>, signal: Option<async_channel::Sender<()>>,
exit: exit_future::Exit, exit: async_channel::Receiver<()>,
log: Logger, log: Logger,
sse_logging_components: Option<SSELoggingComponents>, sse_logging_components: Option<SSELoggingComponents>,
eth_spec_instance: E, eth_spec_instance: E,
@ -543,7 +543,7 @@ impl<E: EthSpec> Environment<E> {
/// Fire exit signal which shuts down all spawned services /// Fire exit signal which shuts down all spawned services
pub fn fire_signal(&mut self) { pub fn fire_signal(&mut self) {
if let Some(signal) = self.signal.take() { if let Some(signal) = self.signal.take() {
let _ = signal.fire(); drop(signal);
} }
} }

View File

@ -4,12 +4,12 @@ version = "0.1.0"
edition = { workspace = true } edition = { workspace = true }
[dependencies] [dependencies]
async-channel = { workspace = true }
tempfile = { workspace = true } tempfile = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
task_executor = { workspace = true } task_executor = { workspace = true }
tokio = { workspace = true } tokio = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
exit-future = { workspace = true }
environment = { workspace = true } environment = { workspace = true }
execution_layer = { workspace = true } execution_layer = { workspace = true }
sensitive_url = { workspace = true } sensitive_url = { workspace = true }
@ -24,4 +24,4 @@ fork_choice = { workspace = true }
logging = { workspace = true } logging = { workspace = true }
[features] [features]
portable = ["types/portable"] portable = ["types/portable"]

View File

@ -42,7 +42,7 @@ pub struct TestRig<E, T: EthSpec = MainnetEthSpec> {
ee_a: ExecutionPair<E, T>, ee_a: ExecutionPair<E, T>,
ee_b: ExecutionPair<E, T>, ee_b: ExecutionPair<E, T>,
spec: ChainSpec, spec: ChainSpec,
_runtime_shutdown: exit_future::Signal, _runtime_shutdown: async_channel::Sender<()>,
} }
/// Import a private key into the execution engine and unlock it so that we can /// Import a private key into the execution engine and unlock it so that we can
@ -111,7 +111,7 @@ impl<E: GenericExecutionEngine> TestRig<E> {
.build() .build()
.unwrap(), .unwrap(),
); );
let (runtime_shutdown, exit) = exit_future::signal(); let (runtime_shutdown, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let executor = TaskExecutor::new(Arc::downgrade(&runtime), exit, log.clone(), shutdown_tx); let executor = TaskExecutor::new(Arc::downgrade(&runtime), exit, log.clone(), shutdown_tx);
let mut spec = TEST_FORK.make_genesis_spec(MainnetEthSpec::default_spec()); let mut spec = TEST_FORK.make_genesis_spec(MainnetEthSpec::default_spec());

View File

@ -8,6 +8,7 @@ edition = { workspace = true }
[dependencies] [dependencies]
[dev-dependencies] [dev-dependencies]
async-channel = { workspace = true }
eth2_keystore = { workspace = true } eth2_keystore = { workspace = true }
types = { workspace = true } types = { workspace = true }
tempfile = { workspace = true } tempfile = { workspace = true }
@ -17,7 +18,6 @@ url = { workspace = true }
validator_client = { workspace = true } validator_client = { workspace = true }
slot_clock = { workspace = true } slot_clock = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
exit-future = { workspace = true }
task_executor = { workspace = true } task_executor = { workspace = true }
environment = { workspace = true } environment = { workspace = true }
account_utils = { workspace = true } account_utils = { workspace = true }

View File

@ -307,7 +307,7 @@ mod tests {
validator_store: Arc<ValidatorStore<TestingSlotClock, E>>, validator_store: Arc<ValidatorStore<TestingSlotClock, E>>,
_validator_dir: TempDir, _validator_dir: TempDir,
runtime: Arc<tokio::runtime::Runtime>, runtime: Arc<tokio::runtime::Runtime>,
_runtime_shutdown: exit_future::Signal, _runtime_shutdown: async_channel::Sender<()>,
using_web3signer: bool, using_web3signer: bool,
} }
@ -340,7 +340,7 @@ mod tests {
.build() .build()
.unwrap(), .unwrap(),
); );
let (runtime_shutdown, exit) = exit_future::signal(); let (runtime_shutdown, exit) = async_channel::bounded(1);
let (shutdown_tx, _) = futures::channel::mpsc::channel(1); let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
let executor = let executor =
TaskExecutor::new(Arc::downgrade(&runtime), exit, log.clone(), shutdown_tx); TaskExecutor::new(Arc::downgrade(&runtime), exit, log.clone(), shutdown_tx);

View File

@ -31,7 +31,6 @@ directory = { workspace = true }
lockfile = { workspace = true } lockfile = { workspace = true }
environment = { workspace = true } environment = { workspace = true }
parking_lot = { workspace = true } parking_lot = { workspace = true }
exit-future = { workspace = true }
filesystem = { workspace = true } filesystem = { workspace = true }
hex = { workspace = true } hex = { workspace = true }
deposit_contract = { workspace = true } deposit_contract = { workspace = true }