adafruit / adafruit/DHT-sensor-library
ESP32: Interrupts do not get re-enabled
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 1.4k
- PR merge metrics
- No merged PRs in 30d
Description
It appears that at least gcc 14.2.1 does not call the class's ~InterruptLock() destructor and hence interrupts don't get re-enabled. I rely on interrupts for other functionality and they stop forever once a DHT read is triggered.
Either keeping interrupts on (my ISR is very short) or disabling (1x) & re-enabling (3x !!) interrupts in the read() function both work as expected.
This might also be the casue of #211.
Contributor guide
Research direction
The report identifies read() and the InterruptLock destructor as the relevant entry points, and references issue #211. Start by reproducing a DHT read with gcc 14.2.1 while another interrupt is active; done means interrupts remain functional after the read, with the behavior verified against the reported compiler setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100