Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <ghost@cs.msu.su>
To: Daniel Jacobowitz <drow@false.org>
Cc: Nick Roberts <nickrob@snap.net.nz>,
	 Pedro Alves <pedro@codesourcery.com>,
	 gdb-patches@sourceware.org
Subject: Re: [patch:MI] Observer for thread-changed
Date: Sat, 14 Jun 2008 18:52:00 -0000	[thread overview]
Message-ID: <200806141909.37719.ghost@cs.msu.su> (raw)
In-Reply-To: <20080610132512.GB7986@caradoc.them.org>

On Tuesday 10 June 2008 17:25:12 Daniel Jacobowitz wrote:
> On Tue, Jun 10, 2008 at 10:27:38AM +0400, Vladimir Prus wrote:
> > The question, then, if whether -thread-select should output this notification?
> > Suppose a frontend uses -thread-select to get some data in some thread without
> > making it selected. Then, if a notification is emitted, the frontend has to 
> > take special care not to mark the thread as selected in GUI.
> > 
> > As an aside, this is similar to notifications/signals in GUI libraries -- for
> > example, line edit control often has 'text changed' signal. If this signal is
> > emitted even when the text is changed programmatically, the application 
> > often has to specially prevent signals emitted as result of programmatic change
> > to be handled as if it was the user input.
> > 
> > So, I think that -thread-select *should not* emit thread-changed notification.
> > With the original version of your patch, it would be a one-line change, it's
> > probably a bit harder with the last version.
> 
> One method I use is to ask myself how complicated the documentation
> for something will be.  It's much clearer to say "the notification is
> emitted whenever the active thread changes" than "... unless it
> changed because of -thread-select".

I'm afraid you are oversimplifying -- the "the notification is
emitted whenever the active thread changes" is very nice, but it's very
likely that every frontend author will not realize he has to ignore this
notification from -thread-select. So, the documentation should either say
that the notification is better ignored, or say that is not emitted. Now, what
is better?

I'd like this notification to communicate, from GDB to frontend, that GDB
has encountered a command that indicates explicit user desire to change
the thread he looks at, and that frontend typically should react by making
that thread selected in UI. 

Maybe, the notification should be called something like:

	=thread-selection-request

to indicate this better? Of course, we can also have another notification,
that is emitted each time inferior_ptid changes, but then the notification
should be named

       =inferior-ptid-changed

In other words, I argue for notification to be designed with the view of
what frontend is supposed to do with it, not with what internal detail of
GDB is been reported.


Alternatively, may I suggest we rename this notification? Let me be

   =user-has-explicitly-requested-that-the-current-thread-be-changed

In which case it's apparent 

> Will detecting notifications due to its own commands be that
> complicated for any IDE?

Probably not very complicated, but it's easier if a frontend should
not care about this.

- Volodya





  reply	other threads:[~2008-06-14 15:10 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-09 12:16 Nick Roberts
2008-06-09 13:36 ` Pedro Alves
2008-06-09 13:28   ` Pedro Alves
2008-06-09 15:06   ` Pedro Alves
2008-06-09 14:15     ` Pedro Alves
2008-06-09 23:35   ` Nick Roberts
2008-06-10  1:40     ` Pedro Alves
2008-06-10  2:30       ` Nick Roberts
2008-06-10  3:13         ` Pedro Alves
2008-06-10  6:39           ` Nick Roberts
2009-01-17  0:10             ` [PATCH]:annotations [was Re: [patch:MI] Observer for thread-changed] Nick Roberts
2009-01-17 17:54               ` [PATCH]:annotations Tom Tromey
2008-06-10  8:26         ` [patch:MI] Observer for thread-changed Vladimir Prus
2008-06-10  9:24           ` Nick Roberts
2008-06-10 10:26             ` Vladimir Prus
2008-06-10 17:23           ` Daniel Jacobowitz
2008-06-14 18:52             ` Vladimir Prus [this message]
2008-06-14 19:13               ` Tom Tromey
2008-06-14 19:22                 ` Bob Rossi
2008-06-15  3:20                   ` Nick Roberts
2008-06-14 20:04                 ` Vladimir Prus
2008-06-15 21:51                   ` Tom Tromey
2008-06-14 19:43               ` Daniel Jacobowitz
2008-06-15  0:44                 ` Nick Roberts
2008-06-15 21:03                   ` Vladimir Prus
2008-06-15 22:31                     ` Nick Roberts
2008-06-16 22:28                     ` Daniel Jacobowitz
2008-06-15 17:58                 ` Vladimir Prus
2008-06-10  8:40 ` Vladimir Prus
2008-06-10  9:19   ` Nick Roberts
2008-06-10  9:36     ` Vladimir Prus
2008-06-11  0:08       ` Nick Roberts
2008-06-11  7:46         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200806141909.37719.ghost@cs.msu.su \
    --to=ghost@cs.msu.su \
    --cc=drow@false.org \
    --cc=gdb-patches@sourceware.org \
    --cc=nickrob@snap.net.nz \
    --cc=pedro@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox