Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tokio Porting #566

Merged
merged 120 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
788d250
Tokio porting in zenoh-link
YuanYuYuan Oct 6, 2023
64a87c2
Porting further for transport
YuanYuYuan Oct 11, 2023
4e1891a
Work around mixed runtime problem in async drop
YuanYuYuan Oct 11, 2023
219ea9b
No need to await for tcp addresses anymore
YuanYuYuan Oct 11, 2023
dc1a096
Use tokio runtime for the TX worker
YuanYuYuan Oct 12, 2023
8795b31
Replace all underlying runtime to tokio
YuanYuYuan Oct 18, 2023
fdbf103
Tidy codes
YuanYuYuan Oct 18, 2023
673fd93
Add WIP lowlatency
YuanYuYuan Oct 19, 2023
ea15fc4
Finished the porting of pipelien. Note the usage of spawn_blocking
YuanYuYuan Oct 24, 2023
a485b92
Tokio porting on unixpipe
YuanYuYuan Nov 6, 2023
15d3d16
Use async_global_executor::block_on
YuanYuYuan Nov 7, 2023
ec0923e
work around the potential blocking task in unixpipe
YuanYuYuan Nov 8, 2023
c65936e
Replace Async<File>
YuanYuYuan Nov 10, 2023
48d5655
Replace Async<File> by AsyncFd<File>
YuanYuYuan Nov 12, 2023
15b32e1
Fix the runtime problem while dropping
YuanYuYuan Nov 20, 2023
05f1d96
Use ZRuntime. Note that low_latency_transport doesn't work
YuanYuYuan Nov 22, 2023
a617473
Test with dashmap. There seems to be a deadlock while P2P scouting
YuanYuYuan Nov 24, 2023
86d560a
1. Remove unneccessary async to solve block_on
YuanYuYuan Nov 24, 2023
5aa631e
Address block_on issues in unixpipe and low-latency transport
YuanYuYuan Dec 1, 2023
d8e1c48
Fix bug
YuanYuYuan Dec 1, 2023
e77c013
Use deref to call ZRuntime and tidy up unused imports
YuanYuYuan Dec 4, 2023
117b8c1
Try with interval
YuanYuYuan Dec 4, 2023
a50f7fb
Use TX runtime only
YuanYuYuan Dec 4, 2023
3009aa9
Ignore files starting with underscore
YuanYuYuan Dec 6, 2023
afce57e
Use all ZRuntimes
YuanYuYuan Dec 6, 2023
47f7570
Fix the busy loop in unixpipe
YuanYuYuan Dec 13, 2023
1833b63
Unifty the ztimeout macro and remove the zasync_executor_init
YuanYuYuan Dec 13, 2023
dbb9c9a
Port zenoh/tests to tokio
YuanYuYuan Dec 13, 2023
7016241
Fix the nested block_on issue
YuanYuYuan Dec 13, 2023
d84da6c
Remove trailing whitespaces
YuanYuYuan Dec 13, 2023
d852b45
Fix the tests in io/zenoh-transport
YuanYuYuan Dec 14, 2023
03d7269
Remove async-std in zenoh/zenoh
YuanYuYuan Dec 14, 2023
93c941f
Remove async-std in zenohd
YuanYuYuan Dec 14, 2023
6b3ef9e
WIP on tests of I/O
YuanYuYuan Dec 18, 2023
036b1f5
Pass all tests in io and zenoh
YuanYuYuan Dec 28, 2023
67ac4bf
cargo fmt
YuanYuYuan Dec 28, 2023
cd60d74
remove unused dashmap
YuanYuYuan Dec 28, 2023
51012de
Finish the porting on examples
YuanYuYuan Jan 3, 2024
ef54fef
Make from_config async again
YuanYuYuan Jan 3, 2024
beb461a
Use tokio::net::lookup_host to convert the address to socket addresse…
YuanYuYuan Jan 3, 2024
878f60e
Porting on zenoh-link-ws
YuanYuYuan Jan 3, 2024
e0206e4
Cargo fmt
YuanYuYuan Jan 3, 2024
c370c30
Remove commented lines
YuanYuYuan Jan 4, 2024
2550c0d
Tokio porting on serial
YuanYuYuan Jan 4, 2024
fe65a42
Tidy up
YuanYuYuan Jan 4, 2024
7d6beb7
Add a throughput quick test script
YuanYuYuan Jan 4, 2024
5bfdaa5
Tokio porting on udp
YuanYuYuan Jan 4, 2024
5072bb3
Update Cargo.lock
YuanYuYuan Jan 4, 2024
cf884af
Correct the comment
YuanYuYuan Jan 4, 2024
8955c8d
Correctly return the result
YuanYuYuan Jan 5, 2024
35a8e53
Porting on zenoh-link-unixsocket_stream
YuanYuYuan Jan 5, 2024
b542ffb
Correct the feature flag of tokio-util
YuanYuYuan Jan 10, 2024
2f69aab
Port link-tls to tokio and bump workspace rustls to 0.22.2
YuanYuYuan Jan 10, 2024
c77a04b
Port link-quic to tokio
YuanYuYuan Jan 10, 2024
bde47eb
Turn get_listeners and get_locators into async calls. Use AsyncMutex …
YuanYuYuan Jan 22, 2024
8cb14c4
Tidy up ZRuntimes
YuanYuYuan Jan 22, 2024
afc91b3
Tokio porting on zenoh-plugin-storage-manager
YuanYuYuan Jan 22, 2024
e3a0ec5
Refine ZRuntime
YuanYuYuan Jan 22, 2024
fbdb2d7
Enable the std feature of zenoh-result to convert std::io::Result
YuanYuYuan Jan 22, 2024
62c02b7
Tokio porting on zenoh-sync
YuanYuYuan Jan 22, 2024
8b275b9
tokio porting on object_pool
YuanYuYuan Jan 22, 2024
68d7cbf
tokio porting on plugins
YuanYuYuan Jan 22, 2024
6b4770b
tokio porting on zenoh-ext
YuanYuYuan Jan 22, 2024
b80d6d0
Upgrade a few dependencies
YuanYuYuan Jan 22, 2024
dbb39b5
Tokio porting on doc
YuanYuYuan Jan 22, 2024
c56a38b
Add the missing io trait
YuanYuYuan Jan 22, 2024
cad506c
Skip those troublesome tests
YuanYuYuan Jan 22, 2024
a9aa656
Remove the unneeded ASYNC_STD_THREAD_COUNT
YuanYuYuan Jan 22, 2024
e35393d
Cargo fmt
YuanYuYuan Jan 22, 2024
92ca911
Use the environmental variable to configure ZRuntime
YuanYuYuan Jan 22, 2024
1fea11d
Cargo fmt
YuanYuYuan Jan 22, 2024
80e94e4
Tidy up tokio features
YuanYuYuan Jan 22, 2024
c934201
Add the std feature used in zenoh-result
YuanYuYuan Jan 25, 2024
f1b2571
Fix matching_status_* failures
YuanYuYuan Jan 25, 2024
52677ad
Speed up routing test and work around the failure of three_node_combi…
YuanYuYuan Jan 25, 2024
2e8b1b9
Halve the chunk size
YuanYuYuan Jan 25, 2024
08412a3
Cargo clippy
YuanYuYuan Jan 25, 2024
d0af037
Prevent the race condition
YuanYuYuan Jan 25, 2024
35cd0d8
Turn three_node_combination into a sequential test
YuanYuYuan Jan 26, 2024
2fb6303
Introduce CancellationToken to terminate anyway
YuanYuYuan Jan 26, 2024
8f21e52
It turns out to be the large size payload fail the test.
YuanYuYuan Jan 26, 2024
5ea6ebd
Fix deadlock by reintroducing five ZRuntimes
YuanYuYuan Jan 30, 2024
80eeda0
Revert the tokio-porting on plugins since it cause a deadlock in rout…
YuanYuYuan Jan 30, 2024
6532eb2
Adjust the ZRuntime properly to fix the deadlock in routing test
YuanYuYuan Jan 30, 2024
6051a21
Align plugins to the main as we would skip them in tokio porting
YuanYuYuan Jan 30, 2024
cffc166
Apply Luca's patch of object_pool to make it sync only
YuanYuYuan Jan 30, 2024
4eb792a
Fix bug in matching
YuanYuYuan Jan 30, 2024
7869d4e
Cargo clippy
YuanYuYuan Jan 30, 2024
2d27f89
Add back TimedEvent to be compatible with plugins
YuanYuYuan Jan 30, 2024
6b25df1
Fix tests
YuanYuYuan Jan 30, 2024
99a6ab4
Quickfix for plugins
YuanYuYuan Jan 30, 2024
3a98ada
Rename token name
YuanYuYuan Feb 1, 2024
1f0947a
Remove the unused Signal
YuanYuYuan Feb 1, 2024
7d7db2f
Introduce TaskTracker and CancellationToken into zenoh-link-tcp
YuanYuYuan Feb 1, 2024
fe8c4bf
Let's use ZRuntime::Reception to handle accept_task
YuanYuYuan Feb 1, 2024
bb871e2
Refine the testing scripts
YuanYuYuan Feb 2, 2024
86fdeb2
Let CI decide the minimal number of ZRuntime threads
YuanYuYuan Feb 2, 2024
1f25ea4
Make it easier to pass the test
YuanYuYuan Feb 2, 2024
a73bf79
Revert "Let CI decide the minimal number of ZRuntime threads" since this
YuanYuYuan Feb 2, 2024
a5abc53
Cargo fmt & clippy
YuanYuYuan Feb 2, 2024
c2faa7f
Make cargo nextest more resilient
YuanYuYuan Feb 5, 2024
a3dbcec
Cargo fmt & clippy & doc test
YuanYuYuan Feb 15, 2024
90ce0bc
Add the missing Windows snippet
YuanYuYuan Feb 15, 2024
1756d23
Fix after rebase
YuanYuYuan Feb 27, 2024
e409ab3
Remove the unneeded async-std
YuanYuYuan Feb 27, 2024
06f69f0
Rename ZRuntime::Reception to ZRuntime::Acceptor
YuanYuYuan Feb 27, 2024
eccf347
Refine the PR
YuanYuYuan Feb 27, 2024
9e08926
Use tokio::time and slow down the message rate to 500 Hz in the downs…
YuanYuYuan Mar 1, 2024
c65934e
Fix tokio::time and use tokio socket bind_device
YuanYuYuan Mar 1, 2024
c2cc87c
Fix cargo clippy
YuanYuYuan Mar 1, 2024
8624428
Cargo fmt
YuanYuYuan Mar 1, 2024
6591e75
Add the warning of 2ms resolution issue of tokio
YuanYuYuan Mar 1, 2024
c3d710b
Address the unused variables
YuanYuYuan Mar 1, 2024
609da62
Correct the error types
YuanYuYuan Mar 1, 2024
a012ea2
Address the platform compiling issue
YuanYuYuan Mar 1, 2024
483cd93
Use warning while binding the interface
YuanYuYuan Mar 1, 2024
20310ee
Fix cargo clippy
YuanYuYuan Mar 1, 2024
4774c67
Use JoinHandle to manage the listening task
YuanYuYuan Mar 4, 2024
15f11b9
Refine the TODO comments
YuanYuYuan Mar 4, 2024
d576751
Merge branch 'tokio-porting' into PR/tokio-porting
Mallets Mar 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,23 +90,17 @@ jobs:

- name: Run tests
run: cargo nextest run --exclude zenoh-examples --exclude zenoh-plugin-example --workspace
env:
ASYNC_STD_THREAD_COUNT: 4

- name: Run tests with SHM
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cargo nextest run -F shared-memory -F transport_unixpipe -p zenoh-transport
env:
ASYNC_STD_THREAD_COUNT: 4

- name: Check for feature leaks
if: ${{ matrix.os == 'ubuntu-latest' }}
run: cargo nextest run -p zenohd --no-default-features

- name: Run doctests
run: cargo test --doc
env:
ASYNC_STD_THREAD_COUNT: 4

# NOTE: In GitHub repository settings, the "Require status checks to pass
# before merging" branch protection rule ensures that commits are only merged
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,11 @@ jobs:
run: cargo nextest run --release --features=${{ github.event.inputs.features}} --verbose
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
ASYNC_STD_THREAD_COUNT: 4

- name: Run doctests
run: cargo test --release --features=${{ github.event.inputs.features}} --doc
env:
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
ASYNC_STD_THREAD_COUNT: 4

doc:
name: Doc generation
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@

.vscode

cargo-timing*.html
cargo-timing*.html
Loading