GNU bug report logs - #51229
28.0.50; [PATCH] Mitigate Blandyism on thread signals

Previous Next

Package: emacs;

Reported by: dick <dick.r.chiang <at> gmail.com>

Date: Fri, 15 Oct 2021 18:34:02 UTC

Severity: normal

Tags: fixed

Found in version 28.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51229 in the body.
You can then email your comments to 51229 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#51229; Package emacs. (Fri, 15 Oct 2021 18:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to dick <dick.r.chiang <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 15 Oct 2021 18:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: dick <dick.r.chiang <at> gmail.com>
To: bug-gnu-emacs <bug-gnu-emacs <at> gnu.org>
Subject: 28.0.50; [PATCH] Mitigate Blandyism on thread signals
Date: Fri, 15 Oct 2021 14:33:29 -0400
[0001-Blandyism-48.patch (text/x-diff, inline)]
From 092479e1e6f1cdbbb6c97d6b682c64f8cf95f255 Mon Sep 17 00:00:00 2001
From: dickmao <dick.r.chiang <at> gmail.com>
Date: Fri, 15 Oct 2021 14:29:17 -0400
Subject: [PATCH] Blandyism #48

As for most Blandyisms dating back to early 90s, the fastidious
maintenance of the waiting_for_input flag likely yields no
discernible difference at the cost of FUD.

* src/thread.c (post_acquire_global_lock):
Clear thread's "waiting_for_input" flag before signalling.
---
 src/thread.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/thread.c b/src/thread.c
index 714b1cd903..d7dce6cc8e 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -122,6 +122,7 @@ post_acquire_global_lock (struct thread_state *self)
 
       current_thread->error_symbol = Qnil;
       current_thread->error_data = Qnil;
+      clear_waiting_for_input();
       Fsignal (sym, data);
     }
 }
-- 
2.26.2

[Message part 2 (text/plain, inline)]


In Commercial Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10)
 of 2021-10-15 built on dick
Repository revision: 47af7f301d275b93555bba59e560141ca6a7cde4
Repository branch: dev
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.4 LTS

Configured using:
 'configure --prefix=/home/dick/.local --with-tree-sitter
 --enable-dumping-overwrite CC=gcc-10 CFLAGS=-I/home/dick/.local/include/
 LDFLAGS=-L/home/dick/.local/lib
 PKG_CONFIG_PATH=/home/dick/.local/lib/pkgconfig'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
TREE-SITTER LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG
SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  async-bytecomp-package-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  projectile-mode: t
  flx-ido-mode: t
  override-global-mode: t
  global-hl-line-mode: t
  winner-mode: t
  tooltip-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  global-tree-sitter-mode: t
  tree-sitter-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv
/home/dick/.emacs.d/elpa/magit-3.3.0/magit-section-pkg hides /home/dick/.emacs.d/elpa/magit-section-3.3.0/magit-section-pkg
/home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal
/home/dick/.emacs.d/lisp/json hides /home/dick/emacs/lisp/json
/home/dick/.emacs.d/elpa/tree-sitter-0.15.2/tree-sitter hides /home/dick/emacs/lisp/tree-sitter
/home/dick/.emacs.d/elpa/transient-0.3.6/transient hides /home/dick/emacs/lisp/transient
/home/dick/.emacs.d/elpa/hierarchy-20171221.1151/hierarchy hides /home/dick/emacs/lisp/emacs-lisp/hierarchy

Features:
(shadow sort footnote mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum shr kinsoku svg dom gnus-group mm-url gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
gnus-spec gnus-int gnus-range gnus-win emacsbug sendmail benchmark help-fns
radix-tree magit-subtree magit-gitignore magit-ediff ediff ediff-merg
ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util magit-extras
face-remap magit-patch-changelog magit-patch magit-submodule magit-obsolete
magit-popup async-bytecomp async magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff
git-commit log-edit message rmc puny rfc822 mml mml-sec epa epg rfc6068
epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor server magit-mode
transient magit-git magit-section magit-utils crm ag vc-svn find-dired dired-x
dired dired-loaddefs ivy delsel colir ivy-overlay ffap dumb-jump f dash s
misearch multi-isearch vc-git diff-mode vc vc-dispatcher bug-reference cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs tramp-archive tramp-gvfs tramp-cache zeroconf dbus xml tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete
parse-time iso8601 ls-lisp format-spec paredit-ext paredit subed subed-vtt
subed-srt subed-common subed-mpv subed-debug subed-config inf-ruby ruby-mode
smie company pcase haskell-interactive-mode haskell-presentation-mode
haskell-process haskell-session haskell-compile haskell-mode haskell-cabal
haskell-utils haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme rx haskell-align-imports
haskell-complete-module haskell-ghc-support noutline outline flymake-proc
flymake warnings etags fileloop generator xref project dabbrev
haskell-customize hydra lv use-package-ensure solarized-theme
solarized-definitions projectile lisp-mnt mail-parse rfc2231 ibuf-ext ibuffer
ibuffer-loaddefs thingatpt grep compile comint ansi-color gnus nnheader
gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils text-property-search time-date flx-ido flx
google-translate-default-ui google-translate-core-ui facemenu color ido
google-translate-core google-translate-tk google-translate-backend
use-package-bind-key bind-key auto-complete easy-mmode advice popup cus-edit
pp cus-load wid-edit emms-player-mplayer emms-player-simple emms emms-compat
cl-extra help-mode use-package-core derived hl-line winner ring edmacro kmacro
finder-inf json-reformat-autoloads json-snatcher-autoloads sml-mode-autoloads
tornado-template-mode-autoloads info package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tree-sitter tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer
select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese composite
emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple
abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind inotify
lcms2 dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 777475 47654)
 (symbols 48 36941 6)
 (strings 32 153959 13689)
 (string-bytes 1 4931801)
 (vectors 16 83265)
 (vector-slots 8 1755718 27842)
 (floats 8 453 1698)
 (intervals 56 19487 2395)
 (buffers 992 26))

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#51229; Package emacs. (Fri, 15 Oct 2021 19:12:02 GMT) Full text and rfc822 format available.

Message #8 received at 51229 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: dick <dick.r.chiang <at> gmail.com>
Cc: 51229 <at> debbugs.gnu.org
Subject: Re: bug#51229: 28.0.50; [PATCH] Mitigate Blandyism on thread signals
Date: Fri, 15 Oct 2021 22:11:32 +0300
> From: dick <dick.r.chiang <at> gmail.com>
> Date: Fri, 15 Oct 2021 14:33:29 -0400
> 
> From: dickmao <dick.r.chiang <at> gmail.com>
> Date: Fri, 15 Oct 2021 14:29:17 -0400
> Subject: [PATCH] Blandyism #48
> 
> As for most Blandyisms dating back to early 90s, the fastidious
> maintenance of the waiting_for_input flag likely yields no
> discernible difference at the cost of FUD.
> 
> * src/thread.c (post_acquire_global_lock):
> Clear thread's "waiting_for_input" flag before signalling.
> ---
>  src/thread.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/thread.c b/src/thread.c
> index 714b1cd903..d7dce6cc8e 100644
> --- a/src/thread.c
> +++ b/src/thread.c
> @@ -122,6 +122,7 @@ post_acquire_global_lock (struct thread_state *self)
>  
>        current_thread->error_symbol = Qnil;
>        current_thread->error_data = Qnil;
> +      clear_waiting_for_input();
>        Fsignal (sym, data);
>      }

That's a non-starter, not unless you explain why this is not needed
for threads, because it attempts to artificially remove a restriction
without any analysis or rationale.  Why is a non-main thread waiting
for input different from the main thread waiting for input?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#51229; Package emacs. (Sat, 16 Oct 2021 11:53:02 GMT) Full text and rfc822 format available.

Message #11 received at 51229 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: dick.r.chiang <at> gmail.com
Cc: 51229 <at> debbugs.gnu.org
Subject: Re: bug#51229: 28.0.50; [PATCH] Mitigate Blandyism on thread signals
Date: Sat, 16 Oct 2021 14:52:21 +0300
> Date: Fri, 15 Oct 2021 22:11:32 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 51229 <at> debbugs.gnu.org
> 
> > diff --git a/src/thread.c b/src/thread.c
> > index 714b1cd903..d7dce6cc8e 100644
> > --- a/src/thread.c
> > +++ b/src/thread.c
> > @@ -122,6 +122,7 @@ post_acquire_global_lock (struct thread_state *self)
> >  
> >        current_thread->error_symbol = Qnil;
> >        current_thread->error_data = Qnil;
> > +      clear_waiting_for_input();
> >        Fsignal (sym, data);
> >      }
> 
> That's a non-starter, not unless you explain why this is not needed
> for threads, because it attempts to artificially remove a restriction
> without any analysis or rationale.  Why is a non-main thread waiting
> for input different from the main thread waiting for input?

I've installed a fix on the emacs-28 branch, please test.




Removed tag(s) patch. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 17 Oct 2021 01:15:01 GMT) Full text and rfc822 format available.

Added tag(s) fixed. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 17 Oct 2021 01:15:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#51229; Package emacs. (Mon, 12 Sep 2022 12:38:02 GMT) Full text and rfc822 format available.

Message #18 received at 51229 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 51229 <at> debbugs.gnu.org, dick.r.chiang <at> gmail.com
Subject: Re: bug#51229: 28.0.50; [PATCH] Mitigate Blandyism on thread signals
Date: Mon, 12 Sep 2022 14:36:53 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

> I've installed a fix on the emacs-28 branch, please test.

This was almost a year ago, so I'm assuming from Dick's silence that the
fix worked, and I'm closing this bug report.

If this is a mistake, please respond to the debbugs address and we'll
reopen.




bug marked as fixed in version 28.1, send any further explanations to 51229 <at> debbugs.gnu.org and dick <dick.r.chiang <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Mon, 12 Sep 2022 12:38:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 11 Oct 2022 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 197 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.