Skip to content

Implement teardown contract for ESPLogger#2

Merged
zekageri merged 1 commit intomainfrom
feature/esp-logger/teardown/teardown-contract-esp-logger
Feb 24, 2026
Merged

Implement teardown contract for ESPLogger#2
zekageri merged 1 commit intomainfrom
feature/esp-logger/teardown/teardown-contract-esp-logger

Conversation

@zekageri
Copy link
Collaborator

Summary

  • harden ESPLogger::deinit() so teardown is safe and idempotent, including callback and buffer reset plus teardown-time flush
  • fix init failure cleanup when sync task creation fails to avoid mutex lifetime misuse
  • skip sync staging work when no sync callback is registered
  • add lifecycle tests for pre-init deinit, double deinit, re-init, callback teardown behavior, and destructor-driven teardown
  • document explicit deinit usage in README and examples

Validation

  • g++ -std=c++17 -I./src -I./test -I./test/stubs ./src/esp_logger/logger.cpp ./test/logger_test_stubs.cpp ./test/logger_tests.cpp -o /tmp/logger_tests && /tmp/logger_tests
  • cmake -S . -B build && cmake --build build && ctest --test-dir build --output-on-failure (fails in this environment: cmake not installed)

@zekageri zekageri merged commit 2609394 into main Feb 24, 2026
9 checks passed
@zekageri zekageri deleted the feature/esp-logger/teardown/teardown-contract-esp-logger branch February 26, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant