Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cd8df2d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "audiohal: Enforce flush of hwbinder commands queue after cleaning client refs"

parents c61a1f29 23feba25
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@


#include <android/hardware/audio/2.0/IPrimaryDevice.h>
#include <android/hardware/audio/2.0/IPrimaryDevice.h>
#include <cutils/native_handle.h>
#include <cutils/native_handle.h>
#include <hwbinder/IPCThreadState.h>
#include <utils/Log.h>
#include <utils/Log.h>


#include "DeviceHalHidl.h"
#include "DeviceHalHidl.h"
@@ -101,6 +102,10 @@ DeviceHalHidl::DeviceHalHidl(const sp<IDevice>& device)
}
}


DeviceHalHidl::~DeviceHalHidl() {
DeviceHalHidl::~DeviceHalHidl() {
    if (mDevice != 0) {
        mDevice.clear();
        hardware::IPCThreadState::self()->flushCommands();
    }
}
}


status_t DeviceHalHidl::getSupportedDevices(uint32_t*) {
status_t DeviceHalHidl::getSupportedDevices(uint32_t*) {
+6 −1
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
#define LOG_TAG "EffectHalHidl"
#define LOG_TAG "EffectHalHidl"
//#define LOG_NDEBUG 0
//#define LOG_NDEBUG 0


#include <hwbinder/IPCThreadState.h>
#include <media/EffectsFactoryApi.h>
#include <media/EffectsFactoryApi.h>
#include <utils/Log.h>
#include <utils/Log.h>


@@ -44,7 +45,11 @@ EffectHalHidl::EffectHalHidl(const sp<IEffect>& effect, uint64_t effectId)
}
}


EffectHalHidl::~EffectHalHidl() {
EffectHalHidl::~EffectHalHidl() {
    if (mEffect != 0) {
        close();
        close();
        mEffect.clear();
        hardware::IPCThreadState::self()->flushCommands();
    }
}
}


// static
// static
+5 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@
//#define LOG_NDEBUG 0
//#define LOG_NDEBUG 0


#include <android/hardware/audio/2.0/IStreamOutCallback.h>
#include <android/hardware/audio/2.0/IStreamOutCallback.h>
#include <hwbinder/IPCThreadState.h>
#include <mediautils/SchedulingPolicyService.h>
#include <mediautils/SchedulingPolicyService.h>
#include <utils/Log.h>
#include <utils/Log.h>


@@ -263,8 +264,10 @@ StreamOutHalHidl::~StreamOutHalHidl() {
            processReturn("clearCallback", mStream->clearCallback());
            processReturn("clearCallback", mStream->clearCallback());
        }
        }
        processReturn("close", mStream->close());
        processReturn("close", mStream->close());
        mStream.clear();
    }
    }
    mCallback.clear();
    mCallback.clear();
    hardware::IPCThreadState::self()->flushCommands();
    if (mEfGroup) {
    if (mEfGroup) {
        EventFlag::deleteEventFlag(&mEfGroup);
        EventFlag::deleteEventFlag(&mEfGroup);
    }
    }
@@ -538,6 +541,8 @@ StreamInHalHidl::StreamInHalHidl(const sp<IStreamIn>& stream)
StreamInHalHidl::~StreamInHalHidl() {
StreamInHalHidl::~StreamInHalHidl() {
    if (mStream != 0) {
    if (mStream != 0) {
        processReturn("close", mStream->close());
        processReturn("close", mStream->close());
        mStream.clear();
        hardware::IPCThreadState::self()->flushCommands();
    }
    }
    if (mEfGroup) {
    if (mEfGroup) {
        EventFlag::deleteEventFlag(&mEfGroup);
        EventFlag::deleteEventFlag(&mEfGroup);