From patchwork Tue Mar 5 17:51:27 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Shah X-Patchwork-Id: 225126 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 15A582C031A for ; Wed, 6 Mar 2013 04:56:54 +1100 (EST) Received: from localhost ([::1]:52351 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCw6e-0000ks-C0 for incoming@patchwork.ozlabs.org; Tue, 05 Mar 2013 12:56:52 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCw4v-00072K-Lg for qemu-devel@nongnu.org; Tue, 05 Mar 2013 12:55:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UCw4p-0008IN-Un for qemu-devel@nongnu.org; Tue, 05 Mar 2013 12:55:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:37444) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCw4p-0008I9-ME for qemu-devel@nongnu.org; Tue, 05 Mar 2013 12:54:59 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r25HswGn022568 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 5 Mar 2013 12:54:58 -0500 Received: from localhost (ovpn-113-84.phx2.redhat.com [10.3.113.84]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r25HstSd010133; Tue, 5 Mar 2013 12:54:57 -0500 From: Amit Shah To: qemu list Date: Tue, 5 Mar 2013 23:21:27 +0530 Message-Id: <3cda0bbcfb94912df8a767983a52bb71a4a3231d.1362505276.git.amit.shah@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: Amit Shah , Anthony Liguori , Anthony Liguori Subject: [Qemu-devel] [PATCH 12/20] qemu-char: remove use of QEMUTimer in favor of glib idle function X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Anthony Liguori qemu-char is now independent of the QEMU main loop. Signed-off-by: Anthony Liguori Signed-off-by: Amit Shah --- include/char/char.h | 2 +- qemu-char.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/include/char/char.h b/include/char/char.h index 09ac401..e8b781c 100644 --- a/include/char/char.h +++ b/include/char/char.h @@ -71,7 +71,7 @@ struct CharDriverState { void (*chr_guest_open)(struct CharDriverState *chr); void (*chr_guest_close)(struct CharDriverState *chr); void *opaque; - QEMUTimer *open_timer; + int idle_tag; char *label; char *filename; int opened; diff --git a/qemu-char.c b/qemu-char.c index 6dba943..2c7c929 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -122,20 +122,18 @@ void qemu_chr_be_event(CharDriverState *s, int event) s->chr_event(s->handler_opaque, event); } -static void qemu_chr_fire_open_event(void *opaque) +static gboolean qemu_chr_generic_open_bh(gpointer opaque) { CharDriverState *s = opaque; qemu_chr_be_event(s, CHR_EVENT_OPENED); - qemu_free_timer(s->open_timer); - s->open_timer = NULL; + s->idle_tag = 0; + return FALSE; } void qemu_chr_generic_open(CharDriverState *s) { - if (s->open_timer == NULL) { - s->open_timer = qemu_new_timer_ms(rt_clock, - qemu_chr_fire_open_event, s); - qemu_mod_timer(s->open_timer, qemu_get_clock_ms(rt_clock) - 1); + if (s->idle_tag == 0) { + s->idle_tag = g_idle_add(qemu_chr_generic_open_bh, s); } }