mirror of
https://github.com/openharmony/distributedhardware_distributed_input.git
synced 2026-07-19 17:43:35 -04:00
!121 修改dinput进程crash后,概率无法拉起问题
Merge pull request !121 from zhangchuang/master
This commit is contained in:
@@ -414,17 +414,14 @@ void InputHub::GetDeviceHandler()
|
||||
continue;
|
||||
}
|
||||
|
||||
Device* device = GetDeviceByFdLocked(eventItem.data.fd);
|
||||
if (!device) {
|
||||
DHLOGE(
|
||||
"Received unexpected epoll event 0x%08x for unknown fd %d.",
|
||||
eventItem.events, eventItem.data.fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (eventItem.events & EPOLLHUP) {
|
||||
DHLOGI("Removing device %s due to epoll hang-up event.",
|
||||
device->identifier.name.c_str());
|
||||
Device* device = GetDeviceByFdLocked(eventItem.data.fd);
|
||||
if (!device) {
|
||||
DHLOGE("Received unexpected epoll event 0x%08x for unknown fd %d.",
|
||||
eventItem.events, eventItem.data.fd);
|
||||
continue;
|
||||
}
|
||||
DHLOGI("Removing device %s due to epoll hang-up event.", device->identifier.name.c_str());
|
||||
deviceChanged_ = true;
|
||||
CloseDeviceLocked(*device);
|
||||
}
|
||||
|
||||
@@ -651,7 +651,7 @@ int32_t DistributedInputSourceTransport::LatencyCount(const std::string &deviceI
|
||||
return ERR_DH_INPUT_SERVER_SOURCE_TRANSPORT_LATENCY_FAIL;
|
||||
}
|
||||
|
||||
DHLOGI("LatencyCount deviceId:%s, sessionId: %d, smsg:%s.",
|
||||
DHLOGD("LatencyCount deviceId:%s, sessionId: %d, smsg:%s.",
|
||||
GetAnonyString(deviceId).c_str(), sessionId, SetAnonyId(smsg).c_str());
|
||||
return DH_SUCCESS;
|
||||
}
|
||||
@@ -1102,7 +1102,14 @@ void DistributedInputSourceTransport::CalculateLatency(int32_t sessionId, const
|
||||
return;
|
||||
}
|
||||
|
||||
deltaTime_ = GetCurrentTimeUs() - sendTime_;
|
||||
uint64_t curTimeUs = GetCurrentTimeUs();
|
||||
if (curTimeUs <= sendTime_) {
|
||||
DHLOGE("Latency time error, currtime is before than send time, curTime: %llu us, sendTime: %llu us",
|
||||
curTimeUs, sendTime_);
|
||||
return;
|
||||
}
|
||||
|
||||
deltaTime_ = curTimeUs - sendTime_;
|
||||
deltaTimeAll_ += deltaTime_;
|
||||
recvNum_ += 1;
|
||||
eachLatencyDetails_ += (std::to_string(deltaTime_) + DINPUT_SPLIT_COMMA);
|
||||
|
||||
@@ -42,32 +42,31 @@ DistributedInputSinkHandler::~DistributedInputSinkHandler()
|
||||
|
||||
int32_t DistributedInputSinkHandler::InitSink(const std::string ¶ms)
|
||||
{
|
||||
DHLOGD("InitSource");
|
||||
DHLOGI("DistributedInputSinkHandler InitSink begin");
|
||||
std::unique_lock<std::mutex> lock(proxyMutex_);
|
||||
if (!DInputSAManager::GetInstance().HasDInputSinkProxy()) {
|
||||
sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
|
||||
if (!samgr) {
|
||||
DHLOGE("Failed to get system ability mgr.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SINK_SA_FAIL;
|
||||
}
|
||||
sptr<LoadDInputSinkCallback> loadCallback(new LoadDInputSinkCallback(params));
|
||||
HisyseventUtil::GetInstance().SysEventWriteBehavior(DINPUT_INIT,
|
||||
"dinput sink LoadSystemAbility call");
|
||||
int32_t ret = samgr->LoadSystemAbility(DISTRIBUTED_HARDWARE_INPUT_SINK_SA_ID, loadCallback);
|
||||
if (ret != ERR_OK) {
|
||||
DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d",
|
||||
DISTRIBUTED_HARDWARE_INPUT_SINK_SA_ID, ret);
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SINK_SA_FAIL;
|
||||
}
|
||||
sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
|
||||
if (!samgr) {
|
||||
DHLOGE("Failed to get system ability mgr.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SINK_SA_FAIL;
|
||||
}
|
||||
sptr<LoadDInputSinkCallback> loadCallback(new LoadDInputSinkCallback(params));
|
||||
HisyseventUtil::GetInstance().SysEventWriteBehavior(DINPUT_INIT,
|
||||
"dinput sink LoadSystemAbility call");
|
||||
int32_t ret = samgr->LoadSystemAbility(DISTRIBUTED_HARDWARE_INPUT_SINK_SA_ID, loadCallback);
|
||||
if (ret != ERR_OK) {
|
||||
DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d",
|
||||
DISTRIBUTED_HARDWARE_INPUT_SINK_SA_ID, ret);
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SINK_SA_FAIL;
|
||||
}
|
||||
|
||||
auto waitStatus = proxyConVar_.wait_for(lock, std::chrono::milliseconds(INPUT_LOAD_SA_TIMEOUT_MS),
|
||||
[this]() { return (DInputSAManager::GetInstance().HasDInputSinkProxy()); });
|
||||
if (!waitStatus) {
|
||||
DHLOGE("dinput load sa timeout.");
|
||||
DHLOGE("dinput load sink sa timeout.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SINK_SA_FAIL;
|
||||
}
|
||||
|
||||
DHLOGI("DistributedInputSinkHandler InitSink end");
|
||||
return DH_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,32 +41,31 @@ DistributedInputSourceHandler::DistributedInputSourceHandler()
|
||||
|
||||
int32_t DistributedInputSourceHandler::InitSource(const std::string ¶ms)
|
||||
{
|
||||
DHLOGD("InitSource");
|
||||
DHLOGI("DistributedInputSourceHandler InitSource begin");
|
||||
std::unique_lock<std::mutex> lock(proxyMutex_);
|
||||
if (!DInputSAManager::GetInstance().HasDInputSourceProxy()) {
|
||||
sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
|
||||
if (!samgr) {
|
||||
DHLOGE("Failed to get system ability mgr.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SOURCE_SA_FAIL;
|
||||
}
|
||||
sptr<LoadDInputSourceCallback> loadCallback(new LoadDInputSourceCallback(params));
|
||||
HisyseventUtil::GetInstance().SysEventWriteBehavior(DINPUT_INIT,
|
||||
"dinput init source sa start.");
|
||||
int32_t ret = samgr->LoadSystemAbility(DISTRIBUTED_HARDWARE_INPUT_SOURCE_SA_ID, loadCallback);
|
||||
if (ret != ERR_OK) {
|
||||
DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d",
|
||||
DISTRIBUTED_HARDWARE_INPUT_SOURCE_SA_ID, ret);
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SOURCE_SA_FAIL;
|
||||
}
|
||||
sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
|
||||
if (!samgr) {
|
||||
DHLOGE("Failed to get system ability mgr.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SOURCE_SA_FAIL;
|
||||
}
|
||||
sptr<LoadDInputSourceCallback> loadCallback(new LoadDInputSourceCallback(params));
|
||||
HisyseventUtil::GetInstance().SysEventWriteBehavior(DINPUT_INIT,
|
||||
"dinput init source sa start.");
|
||||
int32_t ret = samgr->LoadSystemAbility(DISTRIBUTED_HARDWARE_INPUT_SOURCE_SA_ID, loadCallback);
|
||||
if (ret != ERR_OK) {
|
||||
DHLOGE("Failed to Load systemAbility, systemAbilityId:%d, ret code:%d",
|
||||
DISTRIBUTED_HARDWARE_INPUT_SOURCE_SA_ID, ret);
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SOURCE_SA_FAIL;
|
||||
}
|
||||
|
||||
auto waitStatus = proxyConVar_.wait_for(lock, std::chrono::milliseconds(INPUT_LOAD_SA_TIMEOUT_MS),
|
||||
[this]() { return (DInputSAManager::GetInstance().HasDInputSourceProxy()); });
|
||||
if (!waitStatus) {
|
||||
DHLOGE("dinput load sa timeout.");
|
||||
DHLOGE("dinput load source sa timeout.");
|
||||
return ERR_DH_INPUT_SINK_HANDLER_INIT_SOURCE_SA_FAIL;
|
||||
}
|
||||
|
||||
DHLOGI("DistributedInputSourceHandler InitSource end");
|
||||
return DH_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user