Avoid false template-render stall timeouts under concurrent generation (#1724)

- Share idle-watchdog progress across in-flight renders and verify expiry against last activity, so large Matter templates like Accessors.cpp are
not killed while sibling renders are still making progress. Also raise the idle window to 2 minutes for safety

- Harden template-render watchdog after review feedback
- Throttle the render-progress broadcast so the per-helper-call path is a single clock read instead of a loop over every in-flight watchdog, which measured 3135ms of pure overhead for 2M helper calls at 300 concurrent renders and 61ms after. Let reset() take a pre-computed timestamp, and recover in expire() when that timestamp is not from performance.now() rather than muting or spuriously triggering the watchdog. Guard the active-watchdog set against a null entry.
- JIRA: ZAPP-1730
3 files changed
tree: 03a9f12d10a9d619c7ea3938865d147ebe4d2014
  1. .github/
  2. .husky/
  3. cypress/
  4. docs/
  5. public/
  6. resource-build/
  7. src/
  8. src-electron/
  9. src-script/
  10. src-shared/
  11. test/
  12. zcl-builtin/
  13. .editorconfig
  14. .eslintignore
  15. .eslintrc.js
  16. .gitignore
  17. .gitmodules
  18. .postcssrc.js
  19. .prettierrc
  20. .stylintrc
  21. apack.json
  22. babel.config.js
  23. cypress.config.js
  24. Jenkinsfile
  25. jest.config.js
  26. jsconfig.json
  27. LICENSE.txt
  28. package-lock.json
  29. package.json
  30. quasar.conf.js
  31. quasar.extensions.json
  32. quasar.testing.json
  33. README.md
  34. sonar-project.properties
  35. tsconfig.json
  36. zap-schema.dot
  37. zap-schema.svg
README.md

ZCL Advanced Platform

ZCL Advanced Platform

Build and release packages Zigbee code regeneration Matter code regeneration

What is ZAP?

ZAP is a generic generation engine and user interface for applications and libraries based on Zigbee Cluster Library, the specification developed by the Connectivity Standards Alliance.

ZAP allows you to perform the following:

  • perform SDK-specific customized generation of all global artifacts (constants, types, IDs, etc) based on the ZCL specification
  • provide UI for the end-user to select specific application configuration (clusters, attributes, commands, etc.)
  • perform SDK-specific customized generation of all user selected configuration artifacts (application configuration, endpoint configuration, etc) based on ZCL specification and customer-provided application configuration.

ZAP is a generic templating engine. Examples are provided for how to generate artifacts for the C language environment, but one could easily add new templates for other language environments, such as C++, java, node.js, python or any other.

Quick setup

Refer to Setup Instructions

Source code

Refer to development instructions for more details.

License

This software is licensed under Apache 2.0 license.

Usage Documentation

Detailed Developer Documentation