In the error trace, it seems that the sensor-capturing activity is still going on:
5# RecFusion::Sensor::isOpen in RecFusionSDK
6# ImFusion::Stream::updateListenersData in ImFusionStream
So, my hypothesis is that SensorManager
deletes Sensor
objects with underlying data, but the streaming/capturing threads are not aware, and thus, the Sensor::isOpen
throws an error (cannot work on invalid memory?).
To test it, before calling delete m_sensorManager;
, make sure you call Sensor::stop()
followed by Sensor::close()
for each opened sensor (to make sure each sensor is closed correctly). In fact, I have encountered (maybe) a slightly connected issue here: Potential error in the RecFusion SDK 2.2.0 while closing many sensors