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

Lifecycle improvements #47

Open
wants to merge 46 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
13a4d04
add executor interface
Deric-W Dec 29, 2022
8c580c2
refactor Node and create Context
Deric-W Dec 29, 2022
3f53085
improve description of IExtendedDisposable.IsDisposed
Deric-W Dec 29, 2022
51495c2
refactor Publisher
Deric-W Dec 29, 2022
5ce3a79
add IWaitable
Deric-W Dec 29, 2022
a2c32d5
refactor Subscription
Deric-W Dec 29, 2022
40f53d9
refactor Service
Deric-W Dec 29, 2022
7858e3d
fix missing includes in rcl_native_interface.c
Deric-W Dec 29, 2022
d314def
rename MappingValueView -> MappedValueDictionary
Deric-W Dec 30, 2022
c3fbc80
add LockedDictionary
Deric-W Dec 30, 2022
33d3be0
fix service default qos
Deric-W Dec 30, 2022
4a24200
refactor Client
Deric-W Dec 30, 2022
dabf904
add debug assertions
Deric-W Dec 30, 2022
d6b5e72
add calls to `GC.KeepAlive(this)`
Deric-W Dec 31, 2022
83a2a2b
add internal Removal methods to `Node`
Deric-W Jan 4, 2023
0fd008a
refactor `IExecutor` interface
Deric-W Jan 4, 2023
667f68f
update tests and fix C interop
Deric-W Jan 10, 2023
561ec07
update CMakeLists.txt
Deric-W Jan 10, 2023
3a16827
add `IWaitable.Handle`
Deric-W Jan 18, 2023
11c3696
refactor WaitSet
Deric-W Jan 18, 2023
2a42d14
add GuardCondition
Deric-W Mar 7, 2023
bc73ca7
add ManualExecutor
Deric-W Mar 15, 2023
c635d56
doc and tests updates for guard condition behavior
Deric-W Mar 15, 2023
b1594c1
remove redundant `IsDisposed` checks
Deric-W Mar 16, 2023
8adf7e5
improve Context documentation on thread safety
Deric-W Mar 16, 2023
802dc40
schedule rescan when rescanning fails
Deric-W Mar 22, 2023
acb813f
improve Publisher documentation
Deric-W Mar 22, 2023
2f72a51
improve Subscription documentation
Deric-W Mar 22, 2023
4535da3
improve Service documentation
Deric-W Mar 28, 2023
1d6cc1d
improve Client documentation
Deric-W Mar 28, 2023
9bcafbd
improve Node documentation
Deric-W Mar 28, 2023
cd161f0
remove `IWaitable.TryProcessAsync`
Deric-W Mar 28, 2023
1e51b52
add tests for node scheduling rescans
Deric-W Mar 29, 2023
4a4f19b
make `Node.Executor` thread safe
Deric-W Mar 30, 2023
7556027
improve documentation of ManualExecutor
Deric-W Mar 30, 2023
2fbfeae
update examples
Deric-W Mar 30, 2023
89aaf68
simplify WaitSet
Deric-W Mar 31, 2023
c89ea26
add `ManualExecutor.SpinWhile`
Deric-W Apr 28, 2023
f4ce8ae
fix `IClient` summary mentioning subscriptions
Deric-W May 17, 2023
c248106
add copyright notices to new files
Deric-W May 17, 2023
38e0534
update copyright year of modified files
Deric-W May 17, 2023
f062a98
update copyright notice for significantly changed files
Deric-W May 17, 2023
52a331d
dispose guard conditions after invoking `IContext.OnShutdown`
Deric-W Jul 7, 2023
3530611
dispose wait set after invoking `IContext.OnShutdown`
Deric-W Jul 7, 2023
2e5bdd9
Add executor spinning in the background
Deric-W Jul 14, 2023
77bfffd
fix thread starvation in `ManualExecutor.*Wait`
Deric-W Aug 31, 2023
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
5 changes: 5 additions & 0 deletions src/ros2cs/ros2cs_common/interfaces/IExtendedDisposable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ namespace ROS2
/// <description> Use instead of IDisposable </description>
public interface IExtendedDisposable : IDisposable
{
/// <summary> If the object is in a disposed state. </summary>
/// <remarks>
/// Being in a disposed state does not mean that an object has ben disposed successfully.
/// Call <see cref="Dispose"/> to assert that an object has been disposed successfully.
/// </remarks>
bool IsDisposed { get; }
}

Expand Down
13 changes: 11 additions & 2 deletions src/ros2cs/ros2cs_core/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2021 Robotec.ai
# Copyright 2019-2023 Robotec.ai
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -79,6 +79,9 @@ set(CS_INTERFACES
interfaces/IService.cs
interfaces/IPublisher.cs
interfaces/ISubscription.cs
interfaces/IContext.cs
interfaces/IExecutor.cs
interfaces/IWaitable.cs
)

set(CS_NATIVE
Expand All @@ -91,6 +94,9 @@ set(CS_NATIVE

set(CS_UTILS
utils/Utils.cs
utils/LockedDictionary.cs
utils/LockedCollection.cs
utils/MappedValueDictionary.cs
)

set(CS_SOURCES
Expand All @@ -103,9 +109,12 @@ set(CS_SOURCES
Node.cs
Publisher.cs
QualityOfServiceProfile.cs
Ros2cs.cs
Subscription.cs
WaitSet.cs
Context.cs
GuardCondition.cs
executors/ManualExecutor.cs
executors/TaskExecutor.cs
properties/AssemblyInfo.cs
)

Expand Down
Loading