Skip to content

Version 0.4.0

Compare
Choose a tag to compare
@samkearney samkearney released this 22 Feb 16:29
· 85 commits to main since this release

Added

  • etcpal_queue_receive_from_isr() and etcpal::Queue::ReceiveFromIsr()
  • New platform abstraction feature: recursive mutexes (etcpal/recursive_mutex.h)
  • New platform abstraction feature: event groups (etcpal/event_group.h)
  • etcpal_netint_is_up()
  • Native thread handle functionality:
    • etcpal_thread_os_handle_t
    • etcpal_thread_get_os_handle()
    • etcpal_thread_get_current_os_handle()
  • New C++ feature: Strongly typed opaque IDs (etcpal/cpp/opaque_id.h)
  • etcpal/queue implementation expanded to work on Windows and Linux as well as FreeRTOS.

Changed

  • Separated etcpal/lock.h into more specific headers: etcpal/mutex.h, etcpal/signal.h, etcpal/sem.h
    and etcpal/rwlock.h
  • Stack size parameters for EtcPal threads are always in bytes, and are translated for the
    underlying thread API if necessary.
  • etcpal::Thread value constructor now throws std::system_error on failure instead of etcpal::Error
  • EtcPal thread names are now honored on macOS and Linux
  • Enum constant names changed in etcpal::LogDispatchPolicy, IpAddrType, UuidVersion due to linting
    rules.

Fixed

  • Fixed a potential memory leak when enumerating network interfaces on Windows.