audioflinger: fix crash when starting offload thread
Passing a sp to parent thread to AsyncCallbackThread() constructor
causes a strong reference to be acquired on the OffloadThread inside
its constructor which causes an early launch of the thread loop
with unpredictable consequences.
Pass a wp to parent thread instead.
Also move the creation of the AsyncCallbackThread to
readOutputParameters() where mUseAsyncWrite is initialized which
makes more sense.
Also change the type of AsyncCallbackThread parent thread to PlaybackThread
instead of OffloadThread to allow a broder use of non blocking write which
in theory is not limited to audio offload use case.
Bug: 8174034.
Change-Id: I4b093b022030cd4f5eb8b8e477333e91098a6549
2 files changed