From: Hwankyu Jhun Date: Fri, 18 Mar 2022 00:46:17 +0000 (+0900) Subject: Fix a bug about timed out error X-Git-Tag: submit/tizen_6.0/20220318.015221~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d24466ddfe585a9f189e29b6ea4d85b46ce9648f;p=platform%2Fcore%2Fappfw%2Frpc-port.git Fix a bug about timed out error When the timed out error occurs, the callback function has to be invoked. Change-Id: I9a72edf39d49cf840464ee26e1200024a6accdcd Signed-off-by: Hwankyu Jhun --- diff --git a/src/fdbroker-internal.cc b/src/fdbroker-internal.cc index 0e7b9fb..39099e1 100644 --- a/src/fdbroker-internal.cc +++ b/src/fdbroker-internal.cc @@ -835,6 +835,20 @@ void FdBroker::OnResultReceived(GObject* source_object, GAsyncResult* res, gpointer user_data) { _W("OnResultReceived()"); + auto* ptr = static_cast*>(user_data); + auto broker = ptr->lock(); + if (broker == nullptr) { + _E("broker is nullptr"); + return; + } + + std::lock_guard lock(broker->GetMutex()); + if (broker->cancellable_ == nullptr) { + _E("Invalid context. Fdbroker(%p)", broker.get()); + return; + } + + IEventWatcher* watcher = broker->watcher_; GDBusConnection* conn = reinterpret_cast(source_object); GError* err = nullptr; GDBusMessage* reply = g_dbus_connection_send_message_with_reply_finish(conn, @@ -843,29 +857,18 @@ void FdBroker::OnResultReceived(GObject* source_object, if (err) { if (err->code == G_IO_ERROR_CANCELLED) _E("IO error cancelled"); + else + _E("Error(%s) occurs", err->message); g_error_free(err); } else { _E("g_dbus_connection_send_message_with_reply_finish() is failed"); } + watcher->OnPortDisconnected(); return; } auto reply_ptr = std::unique_ptr( reply, g_object_unref); - auto* ptr = static_cast*>(user_data); - auto broker = ptr->lock(); - if (broker == nullptr) { - _E("broker is nullptr"); - return; - } - - std::lock_guard lock(broker->GetMutex()); - if (broker->cancellable_ == nullptr) { - _E("Invalid context. Fdbroker(%p)", broker.get()); - return; - } - - IEventWatcher* watcher = broker->watcher_; if (g_dbus_message_to_gerror(reply, &err)) { _E("Failed to send message. error(%s)", err->message); g_error_free(err);