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

Rebase Tokio Porting #830

Merged
merged 4 commits into from
Mar 14, 2024
Merged

Conversation

YuanYuYuan
Copy link
Contributor

No description provided.

YuanYuYuan and others added 3 commits March 14, 2024 20:07
* Tokio porting in zenoh-link

* Porting further for transport

* Work around mixed runtime problem in async drop

* No need to await for tcp addresses anymore

* Use tokio runtime for the TX worker

* Replace all underlying runtime to tokio

* Tidy codes

* Add WIP lowlatency

* Finished the porting of pipelien. Note the usage of spawn_blocking

* Tokio porting on unixpipe

* Use async_global_executor::block_on

* work around the potential blocking task in unixpipe

* Replace Async<File>

* Replace Async<File> by AsyncFd<File>

* Fix the runtime problem while dropping

* Use ZRuntime. Note that low_latency_transport doesn't work

* Test with dashmap. There seems to be a deadlock while P2P scouting

* 1. Remove unneccessary async to solve block_on
2. Set non-blocking in UDP socket to use tokio UdpSocket

* Address block_on issues in unixpipe and low-latency transport

* Fix bug

* Use deref to call ZRuntime and tidy up unused imports

* Try with interval

* Use TX runtime only

* Ignore files starting with underscore

* Use all ZRuntimes

* Fix the busy loop in unixpipe

* Unifty the ztimeout macro and remove the zasync_executor_init

* Port zenoh/tests to tokio

* Fix the nested block_on issue

* Remove trailing whitespaces

* Fix the tests in io/zenoh-transport

* Remove async-std in zenoh/zenoh

* Remove async-std in zenohd

* WIP on tests of I/O

* Pass all tests in io and zenoh

* cargo fmt

* remove unused dashmap

* Finish the porting on examples

* Make from_config async again

* Use tokio::net::lookup_host to convert the address to socket addresses asynchronously

* Porting on zenoh-link-ws

* Cargo fmt

* Remove commented lines

* Tokio porting on serial

* Tidy up

* Add a throughput quick test script

* Tokio porting on udp

* Update Cargo.lock

* Correct the comment

* Correctly return the result

* Porting on zenoh-link-unixsocket_stream

* Correct the feature flag of tokio-util

* Port link-tls to tokio and bump workspace rustls to 0.22.2

* Port link-quic to tokio

* Turn get_listeners and get_locators into async calls. Use AsyncMutex and AsyncRwLock explicitly

* Tidy up ZRuntimes

* Tokio porting on zenoh-plugin-storage-manager

* Refine ZRuntime

* Enable the std feature of zenoh-result to convert std::io::Result

* Tokio porting on zenoh-sync

* tokio porting on object_pool

* tokio porting on plugins

* tokio porting on zenoh-ext

* Upgrade a few dependencies

* Tokio porting on doc

* Add the missing io trait

* Skip those troublesome tests

* Remove the unneeded ASYNC_STD_THREAD_COUNT

* Cargo fmt

* Use the environmental variable to configure ZRuntime

* Cargo fmt

* Tidy up tokio features

* Add the std feature used in zenoh-result

* Fix matching_status_* failures

* Speed up routing test and work around the failure of three_node_combination test

* Halve the chunk size

* Cargo clippy

* Prevent the race condition

* Turn three_node_combination into a sequential test

* Introduce CancellationToken to terminate anyway

* It turns out to be the large size payload fail the test.

* Fix deadlock by reintroducing five ZRuntimes

* Revert the tokio-porting on plugins since it cause a deadlock in routing test

* Adjust the ZRuntime properly to fix the deadlock in routing test

* Align plugins to the main as we would skip them in tokio porting

* Apply Luca's patch of object_pool to make it sync only

* Fix bug in matching

* Cargo clippy

* Add back TimedEvent to be compatible with plugins

* Fix tests

* Quickfix for plugins

* Rename token name

* Remove the unused Signal

* Introduce TaskTracker and CancellationToken into zenoh-link-tcp

* Let's use ZRuntime::Reception to handle accept_task

* Refine the testing scripts

* Let CI decide the minimal number of ZRuntime threads

* Make it easier to pass the test

* Revert "Let CI decide the minimal number of ZRuntime threads" since this
fail

This reverts commit de5c757.

* Cargo fmt & clippy

* Make cargo nextest more resilient

* Cargo fmt & clippy & doc test

* Add the missing Windows snippet

* Fix after rebase

* Remove the unneeded async-std

* Rename ZRuntime::Reception to ZRuntime::Acceptor

* Refine the PR

* Use tokio::time and slow down the message rate to 500 Hz in the downsampler test

* Fix tokio::time and use tokio socket bind_device

* Fix cargo clippy

* Cargo fmt

* Add the warning of 2ms resolution issue of tokio

* Address the unused variables

* Correct the error types

* Address the platform compiling issue

* Use warning while binding the interface

* Fix cargo clippy

* Use JoinHandle to manage the listening task

* Refine the TODO comments

---------

Co-authored-by: Luca Cominardi <luca.cominardi@gmail.com>
)

* Put the spawning task on ZRuntime::TX

* Fix the bug of an async runtime demanded by UdpSocket::from_std
@eclipse-zenoh-bot
Copy link

@YuanYuYuan If this pull request contains a bugfix or a new feature, then please consider using Closes #ISSUE-NUMBER syntax to link it to an issue.

@imstevenpmwork
Copy link
Contributor

@YuanYuYuan Can you link this PR to its relevant issue? If there's no yet, then you can create one with the release tag if this is meant to be included in the next release. Make sure also to add the proper timelines :D

@YuanYuYuan
Copy link
Contributor Author

@YuanYuYuan Can you link this PR to its relevant issue? If there's no yet, then you can create one with the release tag if this is meant to be included in the next release. Make sure also to add the proper timelines :D

Don't worry. It's going to be merged recently.

@Mallets Mallets merged commit f36b228 into eclipse-zenoh:main Mar 14, 2024
8 checks passed
@YuanYuYuan YuanYuYuan mentioned this pull request Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

4 participants