From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzdSU-0004Yk-IX for qemu-devel@nongnu.org; Wed, 17 Jul 2013 21:56:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UzdST-0003pj-8d for qemu-devel@nongnu.org; Wed, 17 Jul 2013 21:56:42 -0400 Received: from e28smtp08.in.ibm.com ([122.248.162.8]:45404) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UzdSS-0003pT-NP for qemu-devel@nongnu.org; Wed, 17 Jul 2013 21:56:41 -0400 Received: from /spool/local by e28smtp08.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 18 Jul 2013 07:17:01 +0530 Received: from d28relay01.in.ibm.com (d28relay01.in.ibm.com [9.184.220.58]) by d28dlp03.in.ibm.com (Postfix) with ESMTP id 09F5C1258043 for ; Thu, 18 Jul 2013 07:25:55 +0530 (IST) Received: from d28av03.in.ibm.com (d28av03.in.ibm.com [9.184.220.65]) by d28relay01.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r6I1vJLM23461972 for ; Thu, 18 Jul 2013 07:27:19 +0530 Received: from d28av03.in.ibm.com (loopback [127.0.0.1]) by d28av03.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r6I1uYMP013611 for ; Thu, 18 Jul 2013 11:56:34 +1000 Message-ID: <51E74B27.10000@linux.vnet.ibm.com> Date: Thu, 18 Jul 2013 09:55:51 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1373512429-17865-1-git-send-email-xiawenc@linux.vnet.ibm.com> <1373512429-17865-6-git-send-email-xiawenc@linux.vnet.ibm.com> <20130717153451.1e2a2639@redhat.com> In-Reply-To: <20130717153451.1e2a2639@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH V6 05/13] monitor: avoid use of global *cur_mon in readline_completion() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: pbonzini@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com 于 2013-7-18 3:34, Luiz Capitulino 写道: > On Thu, 11 Jul 2013 11:13:41 +0800 > Wenchao Xia wrote: > >> Now all completion functions do not use *cur_mon any more, instead >> they use rs->mon. In short, structure ReadLineState decide where >> the complete action would be taken now. >> >> Tested with the case that qemu have two telnet monitors, auto >> completion function works normal. >> >> Take a better look at monitor_init(), it calls readline_init() which >> initialize mon->rs, result is mon->rs->mon == mon. Then it calls >> qemu_chr_add_handlers(), which make monitor_read() function >> take *mon as its opaque. Later, when user input, monitor_read() >> is called, where cur_mon is set to *mon by "cur_mon = opaque". >> If qemu's monitors run in one thread, then later in >> readline_handle_byte() and readline_comletion(), cur_mon is actually >> equal to rs->mon, in another word it points to the actuall monitor >> instance, so it is safe to replace *cur_mon in those functions. > > I find this paragraph a bit confusing and not exactly related to > this patch. I know I asked you to explain why dropping cur_mon usage > shouldn't brake things, but looks like you don't have a good place > to have that info. > >> How about refine the message as: "Now usage of cur_mon is dropped in readline_completion(), it is safe because: ..... " ? -- Best Regards Wenchao Xia