Merge "SoundPool: Fix StreamManager JavaThread shutdown" into rvc-dev am: e68ae63ead
Change-Id: I89b923ecde0ad171a3fa57e0c05621ded76080e6
This commit is contained in:
@@ -52,6 +52,12 @@ public:
|
||||
|
||||
JavaThread(JavaThread &&) = delete; // uses "this" ptr, not moveable.
|
||||
|
||||
~JavaThread() {
|
||||
join(); // manually block until the future is ready as std::future
|
||||
// destructor doesn't block unless it comes from std::async
|
||||
// and it is the last reference to shared state.
|
||||
}
|
||||
|
||||
void join() const {
|
||||
mFuture.wait();
|
||||
}
|
||||
@@ -64,8 +70,9 @@ private:
|
||||
static int staticFunction(void *data) {
|
||||
JavaThread *jt = static_cast<JavaThread *>(data);
|
||||
jt->mF();
|
||||
jt->mIsClosed = true;
|
||||
jt->mPromise.set_value();
|
||||
jt->mIsClosed = true; // publicly inform that we are closed
|
||||
// after we have accessed all variables.
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user