Subject: bug#63311: 30.0.50; [PATCH] smtpmail-send-it split

From: Eli Zaretskii <[email-masked]>
Date: Mon, 06 Nov 2023 21:21:21 +0200

> From: Manuel Giraud <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 06 Nov 2023 18:57:59 +0100
> 
> So just for recap, the idea is to have a command
> ('message-send-asynchronously' as you suggested) that will just be
> wrapper around 'message-send' and creates a thread to send the current
> buffer.  Such a thread could be stored in a list and, by mean of a
> timer, the main-thread would sometimes look if this thread is dead.

Something like that, yes.

> If it is dead and (thread-last-error) returns nil maybe we can conclude
> that everything went well.  But if (thread-last-error) returns a
> message, it could be message from any other Emacs thread: what to do in
> such case?

Display a message about the error.

> Or worse: the thread is dead, (thread-last-error) returns
> nil... but it was cleared from another part of Emacs.

This means it exited successfully.  We could also maintain a data
structure where successfully-exiting threads will leave their success
status together with some id of the message they sent -- unlike a
thread that dies abruptly due to an error, a successful thread can
store the information in the data structure before exiting.