The .eil.yml for the encoder component has thread_safe: yes, but the API doesn't appear to be thread-safe in the traditional sense.
Functions like rotary_encoder_enable_acceleration() and rotary_encoder_disable_acceleration() mutate encoder state that is also read by the timer callback, without any synchronization. This has been the case since before the recent refactoring.
Should thread_safe be changed to no, or should synchronization be added to the public API functions? Happy to submit a PR either way.
The
.eil.ymlfor the encoder component hasthread_safe: yes, but the API doesn't appear to be thread-safe in the traditional sense.Functions like
rotary_encoder_enable_acceleration()androtary_encoder_disable_acceleration()mutate encoder state that is also read by the timer callback, without any synchronization. This has been the case since before the recent refactoring.Should
thread_safebe changed tono, or should synchronization be added to the public API functions? Happy to submit a PR either way.