add source manager release mutex

Signed-off-by: liqiao49 <liqiao49@huawei.com>
This commit is contained in:
liqiao49
2023-07-15 11:17:52 +08:00
parent 15a93c6460
commit 9cffd900f1
2 changed files with 7 additions and 4 deletions
@@ -18,8 +18,9 @@
#include "i_distributed_source_input.h"
#include <iostream>
#include <atomic>
#include <iostream>
#include <mutex>
#include "iremote_stub.h"
@@ -59,7 +60,8 @@ private:
int32_t HandleUnregisterSimulationEventListener(MessageParcel &data, MessageParcel &reply);
DISALLOW_COPY_AND_MOVE(DistributedInputSourceStub);
private:
std::atomic<bool> sourceInitFlag_ {false};
std::atomic<bool> sourceManagerInitFlag_ {false};
std::mutex sourceManagerReleaseMutex_;
};
} // namespace DistributedInput
} // namespace DistributedHardware
@@ -31,7 +31,7 @@ DistributedInputSourceStub::~DistributedInputSourceStub()
int32_t DistributedInputSourceStub::HandleInitDistributedHardware(MessageParcel &reply)
{
if (sourceInitFlag_.load()) {
if (sourceManagerInitFlag_.load()) {
DHLOGE("DistributedInputSourceStub already init.");
return DH_SUCCESS;
}
@@ -40,12 +40,13 @@ int32_t DistributedInputSourceStub::HandleInitDistributedHardware(MessageParcel
DHLOGE("DistributedInputSourceStub Init write ret failed");
return ERR_DH_INPUT_IPC_WRITE_TOKEN_VALID_FAIL;
}
sourceInitFlag_.store(true);
sourceManagerInitFlag_.store(true);
return DH_SUCCESS;
}
int32_t DistributedInputSourceStub::HandleReleaseDistributedHardware(MessageParcel &reply)
{
std::unique_lock<std::mutex> lock(sourceManagerReleaseMutex_);
int32_t ret = Release();
if (!reply.WriteInt32(ret)) {
DHLOGE("DistributedInputSourceStub release write ret failed");