diff --git a/ipc/native/src/core/dbinder/include/dbinder_base_invoker_interface.h b/ipc/native/src/core/dbinder/include/dbinder_base_invoker_interface.h index da5a4c768e41fa4d96e56265b104d0ff8d3c5d9f..17b2f632b0c06559b539d3f0e69b36146d8dcd38 100644 --- a/ipc/native/src/core/dbinder/include/dbinder_base_invoker_interface.h +++ b/ipc/native/src/core/dbinder/include/dbinder_base_invoker_interface.h @@ -220,6 +220,7 @@ template std::mutex &DBinderBaseInvoker::GetObjectMutex() template void DBinderBaseInvoker::PrintDBinderTransData(const dbinder_transaction_data *transData) { + ZLOGI(LOG_LABEL, "PrintDBinderTransData Called"); if (transData == nullptr) { ZLOGW(LOG_LABEL, "transData is nullptr"); return; diff --git a/ipc/native/src/core/dbinder/source/dbinder_databus_invoker.cpp b/ipc/native/src/core/dbinder/source/dbinder_databus_invoker.cpp index e4b55c4024242ac56e49443e90afad23ddc6b1b1..a232e6dce6ae98cc965e740002a5588236255e89 100644 --- a/ipc/native/src/core/dbinder/source/dbinder_databus_invoker.cpp +++ b/ipc/native/src/core/dbinder/source/dbinder_databus_invoker.cpp @@ -272,6 +272,7 @@ bool DBinderDatabusInvoker::CreateProcessThread() void DBinderDatabusInvoker::OnRawDataAvailable(int32_t socketId, uint64_t seqNumber, const char *data, uint32_t dataSize) { + ZLOGE(LOG_LABEL, "OnRawDataAvailable Called"); IPCProcessSkeleton *current = IPCProcessSkeleton::GetCurrent(); if (current == nullptr) { ZLOGE(LOG_LABEL, "IPCProcessSkeleton is nullptr"); @@ -309,6 +310,7 @@ void DBinderDatabusInvoker::OnRawDataAvailable(int32_t socketId, uint64_t seqNum */ void DBinderDatabusInvoker::OnMessageAvailable(int32_t socketId, const char *data, ssize_t len) { + ZLOGI(LOG_LABEL, "OnMessageAvailable Called"); if (socketId <= 0 || data == nullptr || len > static_cast(MAX_RAWDATA_SIZE) || len < static_cast(sizeof(dbinder_transaction_data))) { ZLOGE(LOG_LABEL, "wrong inputs, data length:%{public}zd(expected size:%{public}zu) " @@ -1051,6 +1053,7 @@ bool DBinderDatabusInvoker::EnableIPCThreadReclaim(bool enable) uint32_t DBinderDatabusInvoker::HasRawDataPackage(const char *data, ssize_t len) { + ZLOGI(LOG_LABEL, "HasRawDataPackage Called"); const dbinder_transaction_data *tr = reinterpret_cast(data); if ((tr->magic == DBINDER_MAGICWORD) && (tr->cmd == BC_SEND_RAWDATA) && (tr->sizeOfSelf == static_cast(len))) { @@ -1064,7 +1067,13 @@ uint32_t DBinderDatabusInvoker::HasRawDataPackage(const char *data, ssize_t len) uint32_t DBinderDatabusInvoker::HasCompletePackage(const char *data, uint32_t readCursor, ssize_t len) { + ZLOGI(LOG_LABEL, "HasCompletePackage Called"); + const dbinder_transaction_data *tr = reinterpret_cast(data + readCursor); + if (tr == nullptr) { + ZLOGE(LOG_LABEL, "tr is null"); + } + if ((tr->magic == DBINDER_MAGICWORD) && (tr->sizeOfSelf <= SOCKET_MAX_BUFF_SIZE + sizeof(dbinder_transaction_data)) && (readCursor + tr->sizeOfSelf <= static_cast(len)) && CheckTransactionData(tr)) { diff --git a/ipc/native/src/core/framework/source/ipc_process_skeleton.cpp b/ipc/native/src/core/framework/source/ipc_process_skeleton.cpp index fe127021bb09ba82f42b795b992e3aab74937006..24258e81fdb2473374b18028b07b309b43074e21 100644 --- a/ipc/native/src/core/framework/source/ipc_process_skeleton.cpp +++ b/ipc/native/src/core/framework/source/ipc_process_skeleton.cpp @@ -421,6 +421,9 @@ void IPCProcessSkeleton::BlockUntilThreadAvailable() if (numExecuting_ > maxIPCThreadNum) { ZLOGE(LOG_LABEL, "numExecuting_++ is %{public}d", numExecuting_); } + if (threadPool_== nullptr) { + return; + } while (numExecuting_ >= threadPool_->GetMaxThreadNum()) { cv_.wait(lock); } @@ -433,7 +436,9 @@ void IPCProcessSkeleton::LockForNumExecuting() CHECK_INSTANCE_EXIT(exitFlag_); std::lock_guard lockGuard(mutex_); numExecuting_++; - + if (threadPool_== nullptr) { + return; + } if (numExecuting_ == threadPool_->GetMaxThreadNum()) { uint64_t curTime = static_cast(std::chrono::duration_cast( std::chrono::steady_clock::now().time_since_epoch()).count()); @@ -447,7 +452,9 @@ void IPCProcessSkeleton::UnlockForNumExecuting() { CHECK_INSTANCE_EXIT(exitFlag_); std::lock_guard lockGuard(mutex_); - + if (threadPool_== nullptr) { + return; + } if (numExecuting_ == threadPool_->GetMaxThreadNum()) { uint64_t curTime = static_cast(std::chrono::duration_cast( std::chrono::steady_clock::now().time_since_epoch()).count());