b08d14dd | 05-Nov-2024 |
Patrick Williams <patrick@stwcx.xyz> |
sdbus++: events: unpack an event from JSON
Generate code necessary to unpack a generated event from its JSON representation.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7a28617f
sdbus++: events: unpack an event from JSON
Generate code necessary to unpack a generated event from its JSON representation.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7a28617f3f0374968609328a44587b655a9141c1
show more ...
|
578b9733 | 11-Oct-2024 |
Patrick Williams <patrick@stwcx.xyz> |
bus: add error handling for bus-open calls
sd-bus can return ENOMEDIUM in some cases for bus-open calls, so we need to detect this condition rather than blindly ignoring the return value. Add appro
bus: add error handling for bus-open calls
sd-bus can return ENOMEDIUM in some cases for bus-open calls, so we need to detect this condition rather than blindly ignoring the return value. Add appropriate error handling.
Tested: ``` $ sudo builddir/example/calculator-server Password: terminate called after throwing an instance of 'sdbusplus::exception::SdBusError' what(): sdbusplus::bus::bus sdbusplus::bus::new_default(): System.Error.ENOMEDIUM: No medium found zsh: IOT instruction sudo builddir/example/calculator-server ```
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7b82a9e182f21a1cbbb80fc3dbfeaaa0174a369d
show more ...
|
fc0bb996 | 11-Oct-2024 |
Patrick Williams <patrick@stwcx.xyz> |
bus: un-inline functions
Due to additional upstream error results, the bus creation functions need better error handling. This will result in larger functions that are no longer a direct sd-bus cal
bus: un-inline functions
Due to additional upstream error results, the bus creation functions need better error handling. This will result in larger functions that are no longer a direct sd-bus call and probably shouldn't be inlined. Move the functions to the `bus.cpp` file.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: If141ef74a62fd04b3bbf58b0720da2a9410481a7
show more ...
|
a4bfefde | 24-Sep-2024 |
Patrick Williams <patrick@stwcx.xyz> |
exception: move sd_bus_error_set calls to exception
In the future, generated exceptions will need to fill the sd_error with something other than the "description" in order to pass more metadata. Mo
exception: move sd_bus_error_set calls to exception
In the future, generated exceptions will need to fill the sd_error with something other than the "description" in order to pass more metadata. Move the sd_bus_error_set calls to exception as a virtual function so this can be accomplished.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I6e6947e4977701a8e7e27fef119bd35e837d866b
show more ...
|
8d40adad | 22-Aug-2024 |
Igor Kononenko <i.kononenko.e@gmail.com> |
transaction: fix -Wconversion c++ warning
Building sdbusplus by meson subproject as a part of external project contains compile warning which can be interpreted as compile error (if external project
transaction: fix -Wconversion c++ warning
Building sdbusplus by meson subproject as a part of external project contains compile warning which can be interpreted as compile error (if external project defines both `-Werror` and `-Wconversion`)
Changing the `Transaction::time` property type to the appropriate `std::time_t` will solve the issue.
Change-Id: I9ab42472ff361aab9487c73d7804531151986e4c Signed-off-by: Igor Kononenko <i.kononenko.e@gmail.com>
show more ...
|
06f265f6 | 16-Aug-2024 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda forma
clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we need to reformat the code with the latest version. The way clang-18 handles lambda formatting also changed, so we have made changes to the organization default style format to better handle lambda formatting.
See I5e08687e696dd240402a2780158664b7113def0e for updated style. See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.
Change-Id: I4f63258febea27dae710c252033b9151e02be7e8 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
e0698be8 | 14-Jun-2024 |
Patrick Williams <patrick@stwcx.xyz> |
object_path: fix potential buffer overrun
The `filename` function attempted to look at the first character of a substring, which could have been empty. This was noticed by UBSAN in GCC 13.2.
Signe
object_path: fix potential buffer overrun
The `filename` function attempted to look at the first character of a substring, which could have been empty. This was noticed by UBSAN in GCC 13.2.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7397861b6b19ef86d1c5c01dc1007a8804d08ab6
show more ...
|
e8e6631b | 01-Dec-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: context: use transfer instead of schedule
Later revisions of the stdexec proposal added a `transfer` method that allows us to reduce 1 co_await.
Signed-off-by: Patrick Williams <patrick@stwc
async: context: use transfer instead of schedule
Later revisions of the stdexec proposal added a `transfer` method that allows us to reduce 1 co_await.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: If43877a85254b5572cc2a3a1cacdf6b580870b5a
show more ...
|
bbc181e3 | 16-Nov-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: context: clean up TODO
The latest version of stdexec cleans up an issue we were seeing that was marked with a TODO. Switch from a complicated task structure back to the simple `task<>`.
Sig
async: context: clean up TODO
The latest version of stdexec cleans up an issue we were seeing that was marked with a TODO. Switch from a complicated task structure back to the simple `task<>`.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ibe2a73b1e7d172f829308a12c88749db43354e83
show more ...
|
6db88387 | 20-Oct-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-17 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I1d7d35c8035993df4c164bfb055d3be476d3ea84 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
1ee60d6d | 18-Aug-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: context: add implicit conversion to bus_t
Many existing sdbusplus library calls expect a `bus_t`. Add an implicit conversion to `bus_t&` so that a `context_t&` can be passed into any functio
async: context: add implicit conversion to bus_t
Many existing sdbusplus library calls expect a `bus_t`. Add an implicit conversion to `bus_t&` so that a `context_t&` can be passed into any function that formerly accepted a `bus_t&`.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I791bf88d86ba5761a4d2fa9bf811b6e794b097af
show more ...
|
4a9e4221 | 18-Aug-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: add context_ref class for CRTP patterns
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I6364f6f5a654ec0c628112637014ae2daed5d740 |
70bcf14c | 26-Jul-2023 |
Patrick Williams <patrick@stwcx.xyz> |
exception: add string r-value constructor
If we are building a string as part of throwing this exception type, it is more efficient to move the string rather than getting the `c_str()` and doing ano
exception: add string r-value constructor
If we are building a string as part of throwing this exception type, it is more efficient to move the string rather than getting the `c_str()` and doing another allocation inside the class.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ibec1c550f82208d5dde6dfef1626f907b7d2ad50
show more ...
|
9d8ba947 | 13-Jul-2023 |
William A. Kennington III <wak@google.com> |
bus: Consistently leverage mock
We have some project generating matches that are using the mock. Previously, we never checked the return value of this function and it allowed our match creations to
bus: Consistently leverage mock
We have some project generating matches that are using the mock. Previously, we never checked the return value of this function and it allowed our match creations to silently fail. With error checking added, this was breaking unit tests.
This change makes sure that all users of slot generating functions have their calls properly mocked.
Change-Id: I5dab3e3ae73e8516db21c928fc39bc00d4218c82 Signed-off-by: William A. Kennington III <wak@google.com>
show more ...
|
fc73b395 | 07-Sep-2022 |
Willam A. Kennington III <wak@google.com> |
bus/match: Compile all code into library
The match code is not templated or declared inline, so it should be explicitly compiled into objects.
Change-Id: I56e7f2898c50e0b21b7d72d3347d7b7010d85739 S
bus/match: Compile all code into library
The match code is not templated or declared inline, so it should be explicitly compiled into objects.
Change-Id: I56e7f2898c50e0b21b7d72d3347d7b7010d85739 Signed-off-by: Willam A. Kennington III <wak@google.com>
show more ...
|
9c6ec9b3 | 23-Jun-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: add is_sender type-aliases
The latest version of stdexec requires all sender types to include a type alias `is_sender` (which their examples all set to `void`) or else a unique overload of a
async: add is_sender type-aliases
The latest version of stdexec requires all sender types to include a type alias `is_sender` (which their examples all set to `void`) or else a unique overload of a stdexec template. Add the type alias to all of our defined sender types.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I2229905703b0f9c360d0fa5f1ba6acffd1f22a02
show more ...
|
5d16a8ed | 25-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: context: remove pending_exception handling
With the move from scope to exec::async_scope there is no possibility for pending-exceptions so clean up all the associated code.
Signed-off-by: Pa
async: context: remove pending_exception handling
With the move from scope to exec::async_scope there is no possibility for pending-exceptions so clean up all the associated code.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I6f110d0641b9ba566e480f8e43eb90976e2b3c93
show more ...
|
97c31c82 | 25-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: switch to stdexec async_scope
Use the `async_scope` implementation from stdexec instead of the custom `scope` class here, which greatly reduces our own code and also aligns better with the C+
async: switch to stdexec async_scope
Use the `async_scope` implementation from stdexec instead of the custom `scope` class here, which greatly reduces our own code and also aligns better with the C++ STL direction. The major changes are around exception paths:
- Spawned tasks which end with an exception will now std::terminate, so any task expected to throw should have an `upon_error` chain.
- Spawned tasks which are stopped will be no longer throw an `UnexpectedStop` exception, so they should be chained with an `upon_stopped` if this is important.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I4e0c85712652efa5b296b898dcc2b0026ba4c625
show more ...
|
d2149044 | 10-May-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I5daa012bf76924eb7a7d22ed31b6b77ad2f723df Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
5c50fc66 | 05-Apr-2023 |
Patrick Williams <patrick@stwcx.xyz> |
event: prevent potential deadlock
In the `obtain_lock<true>()` path there is a race in which another thread can run after the `run_condition.signal()` call before the mutex lock call is executed. T
event: prevent potential deadlock
In the `obtain_lock<true>()` path there is a race in which another thread can run after the `run_condition.signal()` call before the mutex lock call is executed. This other thread could run a significant amount of code, including coming around to be back in the `run_one` path.
To prevent this behavior, add a stage to the lock so that there is an ordering such that the signalling thread is ensured to get the primary lock before the signalled thread.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia464a95ed55246a67ed87601275a6e1fa8b16ba3
show more ...
|
91cb97b5 | 05-Apr-2023 |
Patrick Williams <patrick@stwcx.xyz> |
async: change namespace for sync_wait
Upstream stdexec moved the sync_wait from the `stdexec::this_thread` namespace directly into `stdexec`.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Cha
async: change namespace for sync_wait
Upstream stdexec moved the sync_wait from the `stdexec::this_thread` namespace directly into `stdexec`.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I9a28b4c5920d0f9892ba466d919fd29f2397f64a
show more ...
|
29c4d435 | 01-Feb-2023 |
Patrick Williams <patrick@stwcx.xyz> |
event: add unistd header
The file uses `write` which is defined in `unistd.h`. Add it to give more coverage to various compiler and stdlib versions.
Signed-off-by: Patrick Williams <patrick@stwcx.
event: add unistd header
The file uses `write` which is defined in `unistd.h`. Add it to give more coverage to various compiler and stdlib versions.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Icbef43f3b6b89f0ff3cdfb84ad5fa1c695562dbb
show more ...
|
571a2140 | 05-Jan-2023 |
Ed Tanous <edtanous@google.com> |
Silence sign-conversion warning
In this case, we're loading an int into a char. Given that we're building a hex string, this is intended, and can never overflow, but this conversion causes a warnin
Silence sign-conversion warning
In this case, we're loading an int into a char. Given that we're building a hex string, this is intended, and can never overflow, but this conversion causes a warning about implicit conversions.
Make the conversion explicit by wrapping in a static_cast.
Change-Id: I4c103afcaad2943f339413e1ecdd934677805dad Signed-off-by: Ed Tanous <edtanous@google.com>
show more ...
|
ed4a5a64 | 05-Jan-2023 |
Ed Tanous <edtanous@google.com> |
Fix variable shadow warnings in sdbusplus
-Wshadow is useful for subprojects to enable, because it can find bugs in common variable names (err, r, i, etc). With these changes, projects can now buil
Fix variable shadow warnings in sdbusplus
-Wshadow is useful for subprojects to enable, because it can find bugs in common variable names (err, r, i, etc). With these changes, projects can now build sdbusplus with -Wshadow enabled.
The changes fall into a couple buckets. The first is for constructor variables that match the member variable name. In these cases, "_in" is appended to the end of the constructor variable name.
The second is a case where the variable "r" was used for return codes twice. One instance is changed to "ret".
With these changes, projects can compile with -Wshadow enabled without warnings.
Change-Id: Ia33a6f8306473c616f6278bb848460167e5463ef Signed-off-by: Ed Tanous <edtanous@google.com>
show more ...
|
5e7ef083 | 05-Jan-2023 |
Patrick Williams <patrick@stwcx.xyz> |
stdexec: update to later commit
The upstream code has done some namespace changes. Point to a commit in that timeframe and fix up the local usages in order to compile successfully.
Signed-off-by:
stdexec: update to later commit
The upstream code has done some namespace changes. Point to a commit in that timeframe and fix up the local usages in order to compile successfully.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5a21ccd0774ee5cd22d45c9a425e43560734a571
show more ...
|