g_idle_add([](gpointer data) -> gboolean {
int req_id = GPOINTER_TO_INT(data);
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto item = broker->FindPendingItem(req_id);
if (item == nullptr)
return G_SOURCE_REMOVE;
void AppControlBroker::AppControlResultBroker(int req_id, int result,
void* user_data) {
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto request_context = broker->FindRequestContext(req_id);
if (request_context == nullptr) {
_E("Invalid request");
void AppControlBroker::AppControlResultCb(int req_id, int result,
void* user_data) {
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto item = broker->FindPendingItem(req_id);
if (item != nullptr) {
item->SetResultInfo(std::make_shared<ResultInfo>(result, user_data));
void AppControlBroker::AppControlReplyBroker(bundle* b, int req_id,
aul_svc_result_val result, void* user_data) {
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto request_context = broker->FindRequestContext(req_id);
if (request_context == nullptr)
return;
void AppControlBroker::AppControlReplyCb(bundle* b, int req_id,
aul_svc_result_val result, void* user_data) {
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto item = broker->FindPendingItem(req_id);
if (item != nullptr) {
item->SetReplyInfo(std::make_shared<ReplyInfo>(
[](int launched_pid, void* data) {
int req_id = GPOINTER_TO_INT(data);
auto* broker = AppControlBroker::GetInst();
+ std::lock_guard<std::recursive_mutex> lock(broker->GetRecMutex());
auto request_context = broker->FindRequestContext(req_id);
if (request_context == nullptr)
return;
void AppControlBroker::SendLaunchRequest(AppControl* app_control,
std::shared_ptr<RequestContext> context) {
+ std::lock_guard<std::recursive_mutex> lock(GetRecMutex());
int ret = CheckAppControl(app_control);
if (ret != APP_CONTROL_ERROR_NONE)
THROW(ret);
void AppControlBroker::SendLaunchRequest(AppControl* app_control,
AppControl** reply, app_control_result_e* result) {
+ std::lock_guard<std::recursive_mutex> lock(GetRecMutex());
int ret = CheckAppControl(app_control);
if (ret != APP_CONTROL_ERROR_NONE)
THROW(ret);
void AppControlBroker::SendResumeRequest(AppControl* app_control,
std::shared_ptr<RequestContext> context) {
+ std::lock_guard<std::recursive_mutex> lock(GetRecMutex());
try {
std::string app_id = app_control->GetAppId();
} catch (Exception& e) {