On Thu, 18 Jul 2013 09:55:51 +0800 Wenchao Xia <xiaw...@linux.vnet.ibm.com> wrote:
> δΊ 2013-7-18 3:34, Luiz Capitulino ει: > > On Thu, 11 Jul 2013 11:13:41 +0800 > > Wenchao Xia <xiaw...@linux.vnet.ibm.com> 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: > ..... > " > ? I think you have to just describe what this commit does.