qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V6 05/13] monitor: avoid use of global *cur_mon


From: Wenchao Xia
Subject: Re: [Qemu-devel] [PATCH V6 05/13] monitor: avoid use of global *cur_mon in readline_completion()
Date: Thu, 18 Jul 2013 09:55:51 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

于 2013-7-18 3:34, Luiz Capitulino 写道:
On Thu, 11 Jul 2013 11:13:41 +0800
Wenchao Xia <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]