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

Improve documentation of ScheduleLambda #33967

Merged
merged 2 commits into from
Jun 18, 2024

Conversation

tcarmelveilleux
Copy link
Contributor

@tcarmelveilleux tcarmelveilleux commented Jun 18, 2024

Problem:

  • SystemLayer::ScheduleLambda is critical to allow correct context updates to data, but it was claimed it had to be executed in Matter context already, which is the opposite of the point of the method.

Fixes #26538

This PR:

  • Improves the documentation of several methods in SystemLayer.h
  • Makes ScheduleLambdaBridge private (not called elsewhere)
  • Adds a static assert to avoid arguments on the lambda

Testing done:

  • All unit tests still pass

Problem:
- SystemLayer::ScheduleLambda is critical to allow correct
  context updates to data, but it was claimed it had to be
  executed in Matter context already, which is the opposite
  of the point of the method.

Fixes project-chip#26538

This PR:
- Improves the documentation of several methods in SystemLayer.h
- Makes ScheduleLambdaBridge private (not called elsewhere)
- Adds a static assert to avoid arguments on the lambda

Testing done:
- All unit tests still pass
Copy link

github-actions bot commented Jun 18, 2024

PR #33967: Size comparison from 8ba371a to 08d5606

Full report (73 builds for cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 8ba371a 08d5606 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 798076 798076 0 0.0
RAM 103088 103088 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 813752 813752 0 0.0
RAM 113568 113568 0 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 803268 803268 0 0.0
RAM 107688 107688 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 756060 756060 0 0.0
RAM 101788 101788 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 741724 741724 0 0.0
RAM 102036 102036 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 605750 605750 0 0.0
RAM 204512 204512 0 0.0
lock CC3235SF_LAUNCHXL FLASH 650770 650770 0 0.0
RAM 204772 204772 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 661673 661673 0 0.0
RAM 74512 74512 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 681517 681517 0 0.0
RAM 77144 77144 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 681517 681517 0 0.0
RAM 77144 77144 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 638453 638453 0 0.0
RAM 69580 69580 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 604137 604137 0 0.0
RAM 70216 70216 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 623773 623773 0 0.0
RAM 72768 72768 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 623773 623773 0 0.0
RAM 72768 72768 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 619641 619641 0 0.0
RAM 73232 73232 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 639357 639357 0 0.0
RAM 75784 75784 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 639357 639357 0 0.0
RAM 75784 75784 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 588213 588213 0 0.0
RAM 67200 67200 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 608073 608073 0 0.0
RAM 69832 69832 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 608073 608073 0 0.0
RAM 69832 69832 0 0.0
efr32 lighting-app BRD4187C FLASH 888232 888224 -8 -0.0
RAM 183424 183424 0 0.0
lock-app BRD4338a FLASH 699848 699848 0 0.0
RAM 242228 242228 0 0.0
window-app BRD4187C FLASH 969748 969748 0 0.0
RAM 167856 167856 0 0.0
esp32 all-clusters-app c3devkit DRAM 88324 88324 0 0.0
FLASH 1468918 1468918 0 0.0
IRAM 75570 75570 0 0.0
m5stack DRAM 114796 114796 0 0.0
FLASH 1538067 1538067 0 0.0
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4568 4568 0 0.0
FLASH 2535024 2535024 0 0.0
RAM 129072 129072 0 0.0
all-clusters-app debug unknown 5344 5344 0 0.0
FLASH 5581550 5581550 0 0.0
RAM 483272 483272 0 0.0
all-clusters-minimal-app debug unknown 5264 5264 0 0.0
FLASH 5054984 5054984 0 0.0
RAM 236824 236824 0 0.0
bridge-app debug unknown 5232 5232 0 0.0
FLASH 4480632 4480632 0 0.0
RAM 216736 216736 0 0.0
chip-tool debug unknown 5744 5744 0 0.0
FLASH 11527527 11527527 0 0.0
RAM 535450 535450 0 0.0
fabric-admin debug unknown 5600 5600 0 0.0
FLASH 11297095 11297095 0 0.0
RAM 529042 529042 0 0.0
fabric-bridge-app debug unknown 5240 5240 0 0.0
FLASH 4350568 4350568 0 0.0
RAM 208784 208784 0 0.0
lighting-app debug+rpc+ui unknown 5880 5880 0 0.0
FLASH 5377746 5377746 0 0.0
RAM 225640 225640 0 0.0
lock-app debug unknown 5184 5184 0 0.0
FLASH 4544296 4544296 0 0.0
RAM 204192 204192 0 0.0
ota-provider-app debug unknown 4552 4552 0 0.0
FLASH 4180008 4180008 0 0.0
RAM 193216 193216 0 0.0
ota-requestor-app debug unknown 4488 4488 0 0.0
FLASH 4305496 4305496 0 0.0
RAM 197872 197872 0 0.0
shell debug unknown 4112 4112 0 0.0
FLASH 2801965 2801965 0 0.0
RAM 154416 154416 0 0.0
tv-app debug unknown 5472 5472 0 0.0
FLASH 5597304 5597304 0 0.0
RAM 345672 345672 0 0.0
tv-casting-app debug unknown 5104 5104 0 0.0
FLASH 9572774 9572774 0 0.0
RAM 352816 352816 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1497580 1497580 0 0.0
RAM 226072 226072 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 876200 876200 0 0.0
RAM 139129 139129 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 949232 949232 0 0.0
RAM 137557 137557 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 822416 822416 0 0.0
RAM 138027 138027 0 0.0
nxp contact k32w0+release FLASH 575604 575604 0 0.0
RAM 70024 70024 0 0.0
k32w1+release FLASH 590736 590736 0 0.0
RAM 74056 74056 0 0.0
light k32w0+release FLASH 609680 609680 0 0.0
RAM 69500 69500 0 0.0
k32w1+release FLASH 674224 674224 0 0.0
RAM 82808 82808 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1613428 1613428 0 0.0
RAM 207132 207132 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1534228 1534228 0 0.0
RAM 204036 204036 0 0.0
light cy8ckit_062s2_43012 FLASH 1461092 1461092 0 0.0
RAM 197316 197316 0 0.0
lock cy8ckit_062s2_43012 FLASH 1462844 1462844 0 0.0
RAM 224380 224380 0 0.0
qpg lighting-app qpg6105+debug FLASH 650576 650576 0 0.0
RAM 104556 104556 0 0.0
lock-app qpg6105+debug FLASH 610700 610700 0 0.0
RAM 99232 99232 0 0.0
stm32 light STM32WB5MM-DK FLASH 472112 472112 0 0.0
RAM 141652 141652 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 625532 625532 0 0.0
RAM 49904 49904 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 602572 602572 0 0.0
RAM 130288 130288 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 770694 770694 0 0.0
RAM 110052 110052 0 0.0
bridge-app tlsr9258a FLASH 668618 668618 0 0.0
RAM 94672 94672 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 627254 627254 0 0.0
RAM 49948 49948 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 713368 713368 0 0.0
RAM 76540 76540 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 558240 558240 0 0.0
RAM 126544 126544 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 793320 793320 0 0.0
RAM 99900 99900 0 0.0
lock-app-dfu tlsr9528a FLASH 660356 660356 0 0.0
RAM 69228 69228 0 0.0
ota-requestor-app tlsr9258a FLASH 687236 687236 0 0.0
RAM 94396 94396 0 0.0
pump-app tlsr9518adk80d FLASH 609474 609474 0 0.0
RAM 56328 56328 0 0.0
pump-controller-app tlsr9518adk80d FLASH 599860 599860 0 0.0
RAM 56128 56128 0 0.0
shell tlsr9518adk80d FLASH 462614 462614 0 0.0
RAM 71852 71852 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 633616 633616 0 0.0
RAM 51576 51576 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 642974 642974 0 0.0
RAM 59764 59764 0 0.0
thermostat tlsr9518adk80d FLASH 618750 618750 0 0.0
RAM 56452 56452 0 0.0
window-covering tlsr9118bdk40d FLASH 464942 464942 0 0.0
RAM 82224 82224 0 0.0
tizen all-clusters-app arm unknown 1548 1548 0 0.0
FLASH 1621556 1621556 0 0.0
RAM 45420 45420 0 0.0
chip-tool-ubsan arm unknown 2360 2360 0 0.0
FLASH 15767058 15767058 0 0.0
RAM 6917600 6917600 0 0.0

@mergify mergify bot merged commit b6e1a48 into project-chip:master Jun 18, 2024
68 checks passed
diogopintodsr pushed a commit to diogopintodsr/connectedhomeip that referenced this pull request Jun 20, 2024
* Improve documentation of ScheduleLambda

Problem:
- SystemLayer::ScheduleLambda is critical to allow correct
  context updates to data, but it was claimed it had to be
  executed in Matter context already, which is the opposite
  of the point of the method.

Fixes project-chip#26538

This PR:
- Improves the documentation of several methods in SystemLayer.h
- Makes ScheduleLambdaBridge private (not called elsewhere)
- Adds a static assert to avoid arguments on the lambda

Testing done:
- All unit tests still pass

* Restyled by clang-format

---------

Co-authored-by: Restyled.io <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Documentation] Correct comments around ScheduleLambda to indicate it is thread safe
4 participants