core/ovs: for now drop cancellable from ovsdbmethod call again

Currently the cancellable is not yet used. Drop it again.

However, I think the code might be useful, so I hope to revert
this commit afterwards to use it.
This commit is contained in:
Thomas Haller 2020-11-13 22:42:32 +01:00
parent 7055539c9f
commit 3a0347e821
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -100,11 +100,8 @@ typedef struct {
guint64 call_id;
OvsdbCommand command;
OvsdbMethodCallback callback;
GCancellable * cancellable;
gpointer user_data;
OvsdbMethodPayload payload;
gulong cancellable_id;
guint timeout_id;
} OvsdbMethodCall;
/*****************************************************************************/
@ -254,9 +251,6 @@ _call_complete(OvsdbMethodCall *call, json_t *response, GError *error)
c_list_unlink_stale(&call->calls_lst);
nm_clear_g_signal_handler(call->cancellable, &call->cancellable_id);
g_clear_object(&call->cancellable);
if (call->callback)
call->callback(call->self, response, error, call->user_data);
@ -355,49 +349,6 @@ _signal_emit_interface_failed(NMOvsdb * self,
/*****************************************************************************/
static gboolean
_method_call_cancelled_on_idle_cb(gpointer user_data)
{
OvsdbMethodCall *call = user_data;
gs_unref_object NMOvsdb *self = call->self;
gs_free_error GError *error = NULL;
call->timeout_id = 0;
_LOGT_call(call, "cancelled (run on idle)");
nm_utils_error_set_cancelled(&error, FALSE, "NMOvsdb");
_call_complete(call, NULL, error);
return G_SOURCE_REMOVE;
}
static void
_method_call_cancelled_cb(gpointer user_data)
{
OvsdbMethodCall *call = user_data;
NMOvsdb * self = call->self;
gs_free_error GError *error = NULL;
nm_assert(NM_IS_OVSDB(self));
if (call->cancellable_id == 0) {
/* We are invoked synchronously by g_cancellable_connection().
* Let's consistently emit the completion callback asynchronously,
* hence schedule it on an idle handler. */
c_list_unlink(&call->calls_lst);
g_object_ref(self);
nm_clear_g_source(&call->timeout_id);
_LOGT_call(call, "cancelled (schedule on idle)");
call->timeout_id = g_idle_add(_method_call_cancelled_on_idle_cb, call);
return;
}
_LOGT_call(call, "cancelled");
nm_utils_error_set_cancelled(&error, FALSE, "NMOvsdb");
_call_complete(call, NULL, error);
ovsdb_next_command(self);
}
/**
* ovsdb_call_method:
*
@ -408,7 +359,6 @@ static void
ovsdb_call_method(NMOvsdb * self,
OvsdbMethodCallback callback,
gpointer user_data,
GCancellable * cancellable,
gboolean add_first,
OvsdbCommand command,
const OvsdbMethodPayload *payload)
@ -421,12 +371,11 @@ ovsdb_call_method(NMOvsdb * self,
call = g_slice_new(OvsdbMethodCall);
*call = (OvsdbMethodCall){
.self = self,
.call_id = CALL_ID_UNSPEC,
.command = command,
.callback = callback,
.user_data = user_data,
.cancellable = nm_g_object_ref(cancellable),
.self = self,
.call_id = CALL_ID_UNSPEC,
.command = command,
.callback = callback,
.user_data = user_data,
};
if (add_first)
@ -490,19 +439,6 @@ ovsdb_call_method(NMOvsdb * self,
break;
}
if (call->cancellable) {
gulong id;
id = g_cancellable_connect(call->cancellable,
G_CALLBACK(_method_call_cancelled_cb),
call,
NULL);
if (id == 0)
return;
call->cancellable_id = id;
}
ovsdb_next_command(self);
}
@ -2374,7 +2310,6 @@ ovsdb_try_connect(NMOvsdb *self)
ovsdb_call_method(self,
_monitor_bridges_cb,
NULL,
NULL,
TRUE,
OVSDB_MONITOR,
OVSDB_METHOD_PAYLOAD_MONITOR());
@ -2445,7 +2380,6 @@ nm_ovsdb_add_interface(NMOvsdb * self,
ovsdb_call_method(self,
_transact_cb,
ovsdb_call_new(callback, user_data),
NULL,
FALSE,
OVSDB_ADD_INTERFACE,
OVSDB_METHOD_PAYLOAD_ADD_INTERFACE(bridge,
@ -2464,7 +2398,6 @@ nm_ovsdb_del_interface(NMOvsdb * self,
ovsdb_call_method(self,
_transact_cb,
ovsdb_call_new(callback, user_data),
NULL,
FALSE,
OVSDB_DEL_INTERFACE,
OVSDB_METHOD_PAYLOAD_DEL_INTERFACE(ifname));
@ -2480,7 +2413,6 @@ nm_ovsdb_set_interface_mtu(NMOvsdb * self,
ovsdb_call_method(self,
_transact_cb,
ovsdb_call_new(callback, user_data),
NULL,
FALSE,
OVSDB_SET_INTERFACE_MTU,
OVSDB_METHOD_PAYLOAD_SET_INTERFACE_MTU(ifname, mtu));
@ -2505,7 +2437,6 @@ nm_ovsdb_set_external_ids(NMOvsdb * self,
: NULL;
ovsdb_call_method(self,
NULL,
NULL,
NULL,
FALSE,