Theoretically, the app is supposed to free the shared pointer of the stream until the stream is fully closed. In this way, there should not be issue from the data callback as the data callback thread is guaranteed to be joined before returning from close. There are some report that there is data callback from older Android after the stream is closed. There can be cases that apps forget to close the stream but free the shared pointer. In that case, it makes sense that Oboe guarantee the stream alive in data callback.
Reactions are currently unavailable
Theoretically, the app is supposed to free the shared pointer of the stream until the stream is fully closed. In this way, there should not be issue from the data callback as the data callback thread is guaranteed to be joined before returning from close. There are some report that there is data callback from older Android after the stream is closed. There can be cases that apps forget to close the stream but free the shared pointer. In that case, it makes sense that Oboe guarantee the stream alive in data callback.