Revision 293d2a00

b/monitor.c
189 189
    int suspend_cnt;
190 190
    bool skip_flush;
191 191
    QString *outbuf;
192
    guint watch;
192 193
    ReadLineState *rs;
193 194
    MonitorControl *mc;
194 195
    CPUState *mon_cpu;
......
263 264
static gboolean monitor_unblocked(GIOChannel *chan, GIOCondition cond,
264 265
                                  void *opaque)
265 266
{
266
    monitor_flush(opaque);
267
    Monitor *mon = opaque;
268

  
269
    mon->watch = 0;
270
    monitor_flush(mon);
267 271
    return FALSE;
268 272
}
269 273

  
......
294 298
            QDECREF(mon->outbuf);
295 299
            mon->outbuf = tmp;
296 300
        }
297
        qemu_chr_fe_add_watch(mon->chr, G_IO_OUT, monitor_unblocked, mon);
301
        if (mon->watch == 0) {
302
            mon->watch = qemu_chr_fe_add_watch(mon->chr, G_IO_OUT,
303
                                               monitor_unblocked, mon);
304
        }
298 305
    }
299 306
}
300 307

  

Also available in: Unified diff