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

Async Execution #421

Closed
wants to merge 52 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
9b9de10
Drafting traits for generic executors
mxgrey Oct 7, 2024
2dba330
Fleshing out interfaces for async execution
mxgrey Oct 7, 2024
f10036d
Beginning to migrate subscriptions to async
mxgrey Oct 8, 2024
b1dda94
Implementing async execution for subscriptions
mxgrey Oct 8, 2024
c31ad7d
Update wait set behavior
mxgrey Oct 9, 2024
cda131d
Reimagining the way wait sets are handled
mxgrey Oct 10, 2024
d28ed70
Finished reworking wait sets -- need to migrate all waitables
mxgrey Oct 10, 2024
abb8367
Finished migrating guard conditions and services
mxgrey Oct 11, 2024
3a851be
Change Waitable from trait to struct
mxgrey Oct 12, 2024
2f91083
Migrate clients to new async implementation
mxgrey Oct 12, 2024
cc5b264
Fleshing out basic executor
mxgrey Oct 13, 2024
06cb0ab
Finished implementing basic executor -- needs testing
mxgrey Oct 13, 2024
40d8746
Add support for waiting on graph events
mxgrey Oct 13, 2024
329cafb
Migrate parameter service tests to new async executor
mxgrey Oct 13, 2024
d15f762
Try async-std timeouts instead of tokio
mxgrey Oct 13, 2024
fe56cc9
Debugging strange client failure to take
mxgrey Oct 13, 2024
8f0f192
Experimenting with only taking from services and clients in the same …
mxgrey Oct 14, 2024
c99f410
Migrate subscription to use shared callback instead of an async task
mxgrey Oct 14, 2024
26b41f8
Remove task modules that are no longer used
mxgrey Oct 14, 2024
500b083
Rename wait module to wait_set
mxgrey Oct 14, 2024
ee15de5
Move the wait_set_runner to the wait_set module
mxgrey Oct 14, 2024
d395f5f
Remove unnecessary debug outputs
mxgrey Oct 14, 2024
5c59592
Big cleanup
mxgrey Oct 14, 2024
0138e33
Update doctests
mxgrey Oct 14, 2024
22d2c84
Remove old comments
mxgrey Oct 14, 2024
29fe10e
Migrate Context, Executor, and Node creation to new API
mxgrey Nov 16, 2024
1b5c187
Update examples
mxgrey Nov 16, 2024
1ec9f10
Fix documentation
mxgrey Nov 19, 2024
0874d8d
Fix formatting
mxgrey Nov 20, 2024
433a348
Migrate to SubscriptionOptions
mxgrey Nov 20, 2024
f12f874
Migrate to PublisherOptions
mxgrey Nov 20, 2024
2c32e20
Migrate to ServiceOptions
mxgrey Nov 20, 2024
6c61c9c
Migrate to ClientOptions
mxgrey Nov 20, 2024
da05361
Enable direct creation of the _Options for all primitive types
mxgrey Nov 20, 2024
bf3d01a
Migrate Node to shared state pattern
mxgrey Nov 20, 2024
bbb5333
Migrate primitives to state pattern
mxgrey Nov 20, 2024
4c2a67b
Fix example formatting
mxgrey Nov 20, 2024
daebaa8
Fix example formatting
mxgrey Nov 20, 2024
2cff0b7
Fix examples
mxgrey Nov 20, 2024
126aaca
Fix docs
mxgrey Nov 20, 2024
012ff2e
Make deadline, liveliness_lease, and lifespan all symmetric
mxgrey Nov 21, 2024
f33e8d5
Add an API to the primitive options builder for avoiding ROS namespac…
mxgrey Nov 21, 2024
98b8ea2
Retrigger CI
mxgrey Nov 21, 2024
6059506
Implicitly cast &str to NodeOptions
mxgrey Nov 23, 2024
259fcb3
Remove debug outputs
mxgrey Nov 23, 2024
e1ceb70
Fix formatting
mxgrey Nov 23, 2024
0918476
Merge with latest main
mxgrey Dec 9, 2024
f1c4716
Merge execution structure PR
mxgrey Dec 9, 2024
2a7ff60
Merge options pattern PR
mxgrey Dec 9, 2024
e86707e
Merge in shared state pattern
mxgrey Dec 9, 2024
1f1d826
Refining merge
mxgrey Dec 9, 2024
6d3f7e4
Update examples
mxgrey Dec 9, 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
Prev Previous commit
Next Next commit
Fix docs
Signed-off-by: Michael X. Grey <greyxmike@gmail.com>
  • Loading branch information
mxgrey committed Nov 20, 2024
commit 126aaca87f0447a03430b20988b1b2ebbfd447ae
2 changes: 1 addition & 1 deletion rclrs/src/client.rs
Original file line number Diff line number Diff line change
@@ -284,7 +284,7 @@ where
/// `ClientOptions` are used by [`Node::create_client`][1] to initialize a
/// [`Client`] for a service.
///
/// [1]: crate::NodeState::create_client
/// [1]: crate::Node::create_client
#[derive(Debug, Clone)]
#[non_exhaustive]
pub struct ClientOptions<'a> {
8 changes: 5 additions & 3 deletions rclrs/src/node.rs
Original file line number Diff line number Diff line change
@@ -199,7 +199,7 @@ impl Node {
unsafe { call_string_getter_with_rcl_node(&rcl_node, getter) }
}

/// Creates a [`Client`][1].
/// Creates a [`Client`].
///
/// Pass in only the service name for the `options` argument to use all default client options:
/// ```
@@ -230,8 +230,10 @@ impl Node {
/// Any quality of service options that you explicitly specify will override
/// the default service options. Any that you do not explicitly specify will
/// remain the default service options. Note that clients are generally
/// expected to use [reliable][2], so it's best not to change the reliability
/// expected to use [reliable][1], so it's best not to change the reliability
/// setting unless you know what you are doing.
///
/// [1]: crate::QoSReliabilityPolicy::Reliable
pub fn create_client<'a, T>(
&self,
options: impl Into<ClientOptions<'a>>,
@@ -389,7 +391,7 @@ impl Node {
Ok(service)
}

/// Creates a [`Subscription`][1].
/// Creates a [`Subscription`].
///
///
/// Pass in only the topic name for the `options` argument to use all default subscription options:
2 changes: 1 addition & 1 deletion rclrs/src/publisher.rs
Original file line number Diff line number Diff line change
@@ -234,7 +234,7 @@ where
/// `PublisherOptions` are used by [`Node::create_publisher`][1] to initialize
/// a [`Publisher`].
///
/// [1]: crate::NodeState::create_publisher
/// [1]: crate::Node::create_publisher
#[derive(Debug, Clone)]
#[non_exhaustive]
pub struct PublisherOptions<'a> {
4 changes: 3 additions & 1 deletion rclrs/src/subscription.rs
Original file line number Diff line number Diff line change
@@ -263,8 +263,10 @@ where
}
}

/// `SubscriptionOptions` are used by [`Node::create_subscription`] to initialize
/// `SubscriptionOptions` are used by [`Node::create_subscription`][1] to initialize
/// a [`Subscription`].
///
/// [1]: crate::Node::create_subscription
#[derive(Debug, Clone)]
#[non_exhaustive]
pub struct SubscriptionOptions<'a> {
Loading