mirror of
https://github.com/openharmony/distributedhardware_distributed_input.git
synced 2026-07-19 17:43:35 -04:00
add source manager release mutex
Signed-off-by: liqiao49 <liqiao49@huawei.com>
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user