Memory Leak in FlasherController
HamzaHajeir opened this issue · 1 comments
HamzaHajeir commented
Memory leak causes heap to shrink to reset in H4P_FlasherController in using flashPWM.
It appears when combined with h4gm
.
- SONOFF Basic Examples does have this issue, As when losing WiFi or MQTT outreach, They do status blinking using FlasherController.
MCVE :
#include<H4Plugins.h>
H4_USE_PLUGINS(115200,20,false) // Serial baud rate, Q size, SerialCmd autostop
H4P_GPIOManager h4gm;
H4P_FlasherController h4fc;
void h4setup() { // H4 constructor starts Serial
Serial.println("H4P_FlasherController Basic Example v"H4P_VERSION);
pinMode(LED_BUILTIN,OUTPUT); // not required if H4P_GPIOManager used
h4fc.flashPWM(500, 40, LED_BUILTIN, ACTIVE_LOW);
h4.every(2000,
[](){
h4fc.stopLED(LED_BUILTIN);
static int count;
count ++;
if (count % 2 == 0)
h4fc.flashPWM(500, 40, LED_BUILTIN, ACTIVE_LOW);
else
Serial.println("");
Serial.printf("FH=%lu\n",ESP.getFreeHeap());
});
}
Output :
H4 version 0.5.4
H4P Version 0.5.7
H4P_FlasherController Basic Example v0.5.7
FH=43720
FH=43464
FH=43528
FH=43376
FH=43440
FH=43288
FH=43352
FH=42104
FH=42520
FH=42368
FH=42536
FH=42280
FH=41944
FH=41688
FH=41752
FH=41600
FH=41664
FH=41512
FH=41680
FH=41424
FH=41488
FH=41336
FH=41504
FH=41248
FH=41416
FH=41160
FH=41224
FH=41072
FH=41240
FH=40984
FH=41152
FH=40896
FH=41064
FH=40808
FH=40872
FH=40720
HamzaHajeir commented
Certainly has been fixed in 1.0.1.
Target : ESP32
H4P_FlasherController Basic Example v1.0.0
H4P 1.0.0
INIT 5 cmd
INIT 20 gpio
INIT 21 wink
FH=347460
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308
FH=347456
FH=347308