Patchwork [05/19] Monitor: Drop is_async_return()

login
register
mail settings
Submitter Luiz Capitulino
Date Sept. 30, 2010, 8:56 p.m.
Message ID <1285880180-29724-6-git-send-email-lcapitulino@redhat.com>
Download mbox | patch
Permalink /patch/66259/
State New
Headers show

Comments

Luiz Capitulino - Sept. 30, 2010, 8:56 p.m.
If I understood it correcty, the is_async_return() logic was only
used to prevent QMP from issuing duplicated success responses
for asynchronous handlers.

However, QMP doesn't use do_info() anymore so this is dead logic
and (hopefully) can be safely dropped.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 monitor.c |   25 +------------------------
 1 files changed, 1 insertions(+), 24 deletions(-)

Patch

diff --git a/monitor.c b/monitor.c
index f638017..5b57810 100644
--- a/monitor.c
+++ b/monitor.c
@@ -653,12 +653,6 @@  static int do_info(Monitor *mon, const QDict *qdict, QObject **ret_data)
 
     if (monitor_handler_is_async(cmd)) {
         user_async_info_handler(mon, cmd);
-        /*
-         * Indicate that this command is asynchronous and will not return any
-         * data (not even empty).  Instead, the data will be returned via a
-         * completion callback.
-         */
-        *ret_data = qobject_from_jsonf("{ '__mon_async': 'return' }");
     } else if (monitor_handler_ported(cmd)) {
         QObject *info_data = NULL;
 
@@ -3717,15 +3711,6 @@  void monitor_set_error(Monitor *mon, QError *qerror)
     }
 }
 
-static int is_async_return(const QObject *data)
-{
-    if (data && qobject_type(data) == QTYPE_QDICT) {
-        return qdict_haskey(qobject_to_qdict(data), "__mon_async");
-    }
-
-    return 0;
-}
-
 static void handler_audit(Monitor *mon, const mon_cmd_t *cmd, int ret)
 {
     if (monitor_ctrl_mode(mon)) {
@@ -3784,15 +3769,7 @@  static void monitor_call_handler(Monitor *mon, const mon_cmd_t *cmd,
     ret = cmd->mhandler.cmd_new(mon, params, &data);
     handler_audit(mon, cmd, ret);
 
-    if (is_async_return(data)) {
-        /*
-         * Asynchronous commands have no initial return data but they can
-         * generate errors.  Data is returned via the async completion handler.
-         */
-        if (monitor_ctrl_mode(mon) && monitor_has_error(mon)) {
-            monitor_protocol_emitter(mon, NULL);
-        }
-    } else if (monitor_ctrl_mode(mon)) {
+    if (monitor_ctrl_mode(mon)) {
         /* Monitor Protocol */
         monitor_protocol_emitter(mon, data);
     } else {