Eigentlich ist das schlechtes C++, guter Stil wäre es, das in einem Destruktor zu machen. (Google mal nach RAII)

Im Konstruktor von re_decoder registriert er _pulseEx irgendwo in der Library
Code:
gpioSetAlertFuncEx(gpioA, _pulseEx, this);
wobei in _pulseEx
Code:
 mySelf->_pulse(gpio, level, tick);
aufgerufen wird und dort der Callback auftaucht, z.B.
Code:
if (levB) (mycallback)(1);
D.h innerhalb des Librarycodes wird irgendwo der Callback aufgerufen, wahrscheinlich bei jeder Änderung des Pins.

Am Ende des Programms muss der Callback wieder abgeschaltet werden, das macht er in re_cancel()
Code:
gpioSetAlertFuncEx(mygpioA, 0, this);
dort übergibt er einen Nullzeiger als neuen Callback.