unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: rms@gnu.org
Cc: psainty@orcon.net.nz, hw@adminart.net, emacs-devel@gnu.org,
	emacs-devel-bounces+psainty=orcon.net.nz@gnu.org,
	gazally@runbox.com
Subject: Re: User interaction from multiple threads
Date: Sat, 25 Aug 2018 10:51:47 +0300	[thread overview]
Message-ID: <8336v2994c.fsf@gnu.org> (raw)
In-Reply-To: <E1ftMJs-0006X7-Di@fencepost.gnu.org> (message from Richard Stallman on Fri, 24 Aug 2018 20:20:48 -0400)

> From: Richard Stallman <rms@gnu.org>
> Cc: psainty@orcon.net.nz, hw@adminart.net, gazally@runbox.com,
> 	emacs-devel-bounces+psainty=orcon.net.nz@gnu.org,
> 	emacs-devel@gnu.org
> Date: Fri, 24 Aug 2018 20:20:48 -0400
> 
>   > The idea expressed by several people is that once you start
>   > interacting with some thread's prompt, the other threads are locked
>   > out of interaction, until the interacting thread is done with the
>   > series of prompts that allow it to go on with its business.
> 
> This might be ok if the thread's further prompts arrive in short
> succession.  But what if it runs for 5 minutes and then asks
> for input?  Should other threads be blocked for those 5 minutes?

If that thread runs (i.e. does some Lisp and never calls
wait_reading_process_output), all the other threads will be blocked
anyway, because the global lock is taken by the running thread.

> I think the point of multiple threads is to avoid that.

To some degree.

> Would a thread explicitly seize the terminal and hold it and
> later release it?  Or would asking for input hold the terminal

My conclusion from the discussion is that when a thread asks for
input, it might be too late, because the prompt was already issued.
But maybe we will be able to do something in the redisplay code to
prevent the prompt from showing, in which case the terminal could
indeed be seized when asking for input.  If not, it will have to be
seized just before issuing the prompt.

> until the thread exits?

Not until it exits, until it no longer needs to interact with the
user, for the current transaction (whatever that means).

>   > If that's the first prompt in a series of prompts, we should fix the
>   > prompt to tell what password does it ask for.
> 
> I don't think that is practical to do in all cases.  In some, yes.
> But what if two threads run the same function?  The prompt could be
> identical.

I'd need a practical example to discuss this in more detail.
Theoretically, you are right, but in practice it could be that the
responses are identical (in which case it doesn't matter what thread
asks the question).  Or the prompts will have to be upgraded to speak
for themselves, for example:

  Host for accessing file FOO:
  Password for accessing file FOO:

etc.

>   > And even if we do require each thread to have a name, what guarantees
>   > do we have that the name will be more informative than the prompts
>   > about which you were worried?
> 
> If we tell people, "Give your thread a meaningful name if it is going
> to ask for input", and we explain why, they will mostly do it.
> When they don't, we can fix it.

I'm saying that fixing the prompt itself is a better alternative,
because we will always give the prompt more screen estate than to the
thread ID.  Also, the thread ID is fixed for each thread, whereas we
could add different text to each prompt to make each one more
self-describing.

But in general, I see no significant difference between these two
alternatives, because they both add some text to the prompt.



  reply	other threads:[~2018-08-25  7:51 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-14 15:12 User interaction from multiple threads Eli Zaretskii
2018-08-14 16:42 ` Michael Welsh Duggan
2018-08-15  8:02   ` Michael Albinus
2018-08-16 14:25   ` Eli Zaretskii
2018-08-17  2:59     ` Michael Welsh Duggan
2018-08-17  8:56       ` Eli Zaretskii
2018-08-15  8:06 ` martin rudalics
2018-08-15  8:22   ` Michael Albinus
2018-08-15  9:08     ` martin rudalics
2018-08-15 10:30       ` Michael Albinus
2018-08-15 12:27         ` martin rudalics
2018-08-15 12:59           ` Michael Albinus
2018-08-15 16:27             ` Elias Mårtenson
2018-08-15 18:04               ` Michael Albinus
2018-08-17  4:26                 ` Elias Mårtenson
2018-08-17  4:32                   ` Elias Mårtenson
2018-08-17  7:33                   ` Michael Albinus
2018-08-17  7:48                     ` Elias Mårtenson
2018-08-17  8:11                       ` Michael Albinus
2018-08-17  9:02                       ` Eli Zaretskii
2018-08-15 16:55           ` Eli Zaretskii
2018-08-16 12:21             ` martin rudalics
2018-08-16 13:46               ` Eli Zaretskii
2018-08-17  7:24                 ` martin rudalics
2018-08-17  7:48                   ` Eli Zaretskii
2018-08-17  8:34                     ` martin rudalics
2018-08-17  8:52                       ` Eric Abrahamsen
2018-08-17  9:06                       ` Michael Albinus
2018-08-17  9:12                       ` Eli Zaretskii
2018-08-18  8:31                         ` martin rudalics
2018-08-18  9:32                           ` Eli Zaretskii
2018-08-19  9:17                             ` martin rudalics
2018-08-15 16:47   ` Eli Zaretskii
2018-08-16 12:20     ` martin rudalics
2018-08-16 13:45       ` Eli Zaretskii
2018-08-16 15:19         ` Michael Albinus
2018-08-20 14:36     ` Gemini Lasswell
2018-08-20 15:06       ` Eli Zaretskii
2018-08-19 23:08 ` Gemini Lasswell
2018-08-20  1:18   ` Phil Sainty
2018-08-20 14:15     ` Gemini Lasswell
2018-08-20 17:07       ` Eli Zaretskii
2018-08-29 17:36         ` John Shahid
2018-08-30  0:18           ` Phil Sainty
2018-08-30  2:34             ` John Shahid
2018-08-30 13:10               ` Eli Zaretskii
2018-08-30 16:08                 ` John Shahid
2018-08-30 17:38                   ` Eli Zaretskii
2018-08-30 20:15                     ` John Shahid
2018-08-31 18:06                       ` Eli Zaretskii
2018-08-31 21:37                       ` Gemini Lasswell
2018-09-01  7:00                         ` Eli Zaretskii
2018-08-20 17:03   ` Eli Zaretskii
2018-08-20 22:38     ` Phil Sainty
2018-08-21 15:09       ` Eli Zaretskii
2018-08-22  4:05         ` Richard Stallman
2018-08-22 14:28           ` Eli Zaretskii
2018-08-22 15:48             ` hw
2018-08-22 17:33               ` Eli Zaretskii
2018-08-22 19:34                 ` hw
2018-08-22 23:58               ` Richard Stallman
2018-08-23  0:22                 ` John Wiegley
2018-08-24  1:59                   ` Richard Stallman
2018-08-23 14:08                 ` Eli Zaretskii
2018-08-23 22:34                   ` Phil Sainty
2018-08-24  8:51                     ` Eli Zaretskii
2018-08-24 12:59                       ` Phil Sainty
2018-08-25  0:21                       ` Richard Stallman
2018-08-25  0:16                     ` Richard Stallman
2018-08-24  2:00                   ` Richard Stallman
2018-08-24  3:57                     ` Elias Mårtenson
2018-08-24  9:20                     ` Eli Zaretskii
2018-08-24 11:44                       ` Michael Albinus
2018-08-24 15:41                         ` Elias Mårtenson
2018-08-25 11:58                           ` Michael Albinus
2018-08-27 10:53                             ` Elias Mårtenson
2018-08-25  0:20                       ` Richard Stallman
2018-08-25  7:51                         ` Eli Zaretskii [this message]
2018-08-25 10:32                           ` Phil Sainty
2018-08-25 19:11                           ` Richard Stallman
2018-08-25 19:51                             ` Eli Zaretskii
2018-08-26 12:52                               ` hw
2018-08-26 14:43                                 ` Eli Zaretskii
2018-08-27  4:33                                   ` hw
2018-08-27  7:32                                     ` Michael Albinus
2018-08-27 14:35                                       ` hw
2018-08-27 15:29                                         ` Eli Zaretskii
2018-08-27 18:43                                           ` hw
2018-08-28  5:39                                             ` Eli Zaretskii
2018-08-28 20:47                                               ` hw
2018-08-27 15:06                                     ` Eli Zaretskii
2018-08-27 19:46                                       ` hw
2018-08-28  5:38                                         ` Eli Zaretskii
2018-08-28 13:05                                           ` Phil Sainty
2018-08-28 16:50                                             ` Eli Zaretskii
2018-08-28 22:05                                           ` hw
2018-08-29 15:20                                             ` Eli Zaretskii
2018-08-29 20:00                                               ` hw
2018-08-30 13:48                                                 ` Eli Zaretskii
2018-09-01 17:32                                                   ` hw
2018-09-01 18:55                                                     ` Eli Zaretskii
2018-09-02 16:37                                                       ` hw
2018-09-02 17:20                                                         ` Eli Zaretskii
2018-09-01 22:30                                                     ` Drew Adams
2018-09-02 16:43                                                       ` hw
2018-08-30  1:16                                   ` Uday S Reddy
2018-08-30 13:05                                     ` Eli Zaretskii
2018-08-30 21:12                                       ` Uday Reddy
2018-08-31 18:17                                         ` Eli Zaretskii
2018-09-01 17:33                                     ` hw
2018-08-26 20:43                               ` Richard Stallman
2018-08-22 16:24           ` Tom Tromey
2018-08-22 17:40             ` Eli Zaretskii
2018-08-25 16:16               ` Tom Tromey
2018-08-22  7:18         ` martin rudalics
2018-08-22 14:32           ` Eli Zaretskii
2018-08-21 16:17     ` Gemini Lasswell
2018-08-30  0:21 ` Uday Reddy
2018-08-30 13:01   ` 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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=8336v2994c.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel-bounces+psainty=orcon.net.nz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gazally@runbox.com \
    --cc=hw@adminart.net \
    --cc=psainty@orcon.net.nz \
    --cc=rms@gnu.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).