Sometimes, when shutting down while a stream is still subscribed to, we see a crash in FAudioDeviceModule::Process when it's calling PullAudioData via an AsyncTask. However, in the callstack I can see that this is called from the TaskQueue.PostDelayedTask lambda further down in the same function.
Pretty sure this is garbage when this is called after the delay. This needs to be protected since it can't be guaranteed that the this pointer is still valid. Maybe pass in a weak pointer or shared pointer?
Sometimes, when shutting down while a stream is still subscribed to, we see a crash in
FAudioDeviceModule::Process
when it's callingPullAudioData
via anAsyncTask
. However, in the callstack I can see that this is called from theTaskQueue.PostDelayedTask
lambda further down in the same function.Pretty sure
this
is garbage when this is called after the delay. This needs to be protected since it can't be guaranteed that thethis
pointer is still valid. Maybe pass in a weak pointer or shared pointer?Maybe related to https://github.com/millicast/millicast-player-unreal-engine-plugin/issues/36