GNU bug report logs - #19016
24.4.50; tq.el does the wrong thing when enqueuing inside a callback

Previous Next

Package: emacs;

Reported by: Andreas Politz <politza <at> hochschule-trier.de>

Date: Tue, 11 Nov 2014 03:50:02 UTC

Severity: normal

Tags: fixed, patch

Found in version 24.4.50

Fixed in version 27.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 19016 in the body.
You can then email your comments to 19016 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#19016; Package emacs. (Tue, 11 Nov 2014 03:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andreas Politz <politza <at> hochschule-trier.de>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 11 Nov 2014 03:50:02 GMT) Full text and rfc822 format available.

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

From: Andreas Politz <politza <at> hochschule-trier.de>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.4.50; tq.el does the wrong thing when enqueuing inside a callback
Date: Tue, 11 Nov 2014 04:48:31 +0100
[Message part 1 (text/plain, inline)]
tq calls the wrong callback in the some situations.  The function
tq-process-buffer contains the following snippet.

(unwind-protect
    (condition-case nil
        (funcall (tq-queue-head-fn tq)
                 (tq-queue-head-closure tq)
                 answer)
      (error nil))
  (tq-queue-pop tq))

tq-queue-pop removes the top question and sends the next one.  But here
a problem occurs, if the callback function adds another question, sends
it and waits for it's result.  Because this invokes tq-process-buffer
recursively with the first question still at top.  Resulting in the
callback to the first question called a second time, third time ... .

Here is a lisp file which should demonstrate this.

[Message part 2 (application/emacs-lisp, attachment)]
[Message part 3 (text/plain, inline)]
..and a patch

[Message part 4 (text/x-diff, inline)]
=== modified file 'lisp/emacs-lisp/tq.el'
*** lisp/emacs-lisp/tq.el	2014-02-10 01:34:22 +0000
--- lisp/emacs-lisp/tq.el	2014-11-11 03:39:31 +0000
***************
*** 153,167 ****
  		     (buffer-name buf)))
  	  (goto-char (point-min))
  	  (if (re-search-forward (tq-queue-head-regexp tq) nil t)
! 	      (let ((answer (buffer-substring (point-min) (point))))
  		(delete-region (point-min) (point))
! 		(unwind-protect
! 		    (condition-case nil
! 			(funcall (tq-queue-head-fn tq)
! 				 (tq-queue-head-closure tq)
! 				 answer)
! 		      (error nil))
! 		  (tq-queue-pop tq))
  		(tq-process-buffer tq))))))))
  
  (provide 'tq)
--- 153,167 ----
  		     (buffer-name buf)))
  	  (goto-char (point-min))
  	  (if (re-search-forward (tq-queue-head-regexp tq) nil t)
! 	      (let ((answer (buffer-substring (point-min) (point)))
!                     (fn (tq-queue-head-fn tq))
!                     (closure (tq-queue-head-closure tq)))
  		(delete-region (point-min) (point))
! 		(tq-queue-pop tq)
!                 (condition-case err
!                     (funcall fn closure answer)
!                   (error (message "Error while processing tq callback: %s"
!                                   (error-message-string err))))
  		(tq-process-buffer tq))))))))
  
  (provide 'tq)

[Message part 5 (text/plain, inline)]
(Also adds messaging for errors in the callback, which should not get
unnoticed.)

A. Politz





In GNU Emacs 24.4.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
 of 2014-11-01 on luca
Repository revision: 114441 politza <at> fh-trier.de-20140823093555-j5hxuaxih7d5vvxr
Windowing system distributor `The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux 7.7 (wheezy)

Configured using:
 `configure -C'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LC_MESSAGES: C
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  ewm-mode-line-mode: t
  ewm-mode: t
  ewm-compat-mode: t
  ewm-compat-calendar-mode: t
  ewm-compat-calc-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-decoration-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-stickyfunc-mode: t
  semantic-mode: t
  desktop-save-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-ede-mode: t
  ede-minor-mode: t
  mimo-mode: t
  pc-completion-mode: t
  ispell-track-input-method: t
  doc-view-tidy-cache-mode: t
  recentf-mode: t
  show-paren-mode: t
  window-numbering-mode: t
  shell-dirtrack-mode: t
  scroll-other-window-mode: t
  savehist-mode: t
  eldoc-in-minibuffer-mode: t
  ekey-mode: t
  winner-mode: t
  eldoc-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent input:
SPC SPC SPC SPC SPC SPC C-M-x g C-n C-n C-n M-m C-M-f 
C-x C-e C-e q M-1 C-M-b M-f C-j M-f C-M-f C-M-f C-M-f 
C-M-f C-M-f C-j C-p M-^ C-n C-e C-M-\ C-c l C-d C-M-\ 
C-c l C-M-a C-M-a C-M-a C-M-a C-l C-x b <return> C-v 
C-v C-s i m a g e - s i z e C-s C-s C-s M-m C-l C-M-SPC 
C-M-SPC M-; C-c l M-2 C-x 1 C-x 3 C-x b <return> C-x 
+ C-x b m e s <return> M-v M-v C-r e r r o r C-r C-g 
C-x b C-s C-s <return> C-l C-l C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-, 
f c o n d i <tab> - <tab> M-h M-h w i t h - e r <return> 
M-< C-v <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p M-m C-M-SPC M-w M-x r e p o r t - e m <tab> b u 
g <return>

Recent messages:
Preloaded Page <39>
Preloaded Page <40>
Preloaded Page <41>
Quit
Type "q" in help window to restore its previous buffer.
Mark set
End of buffer [13 times]
Mark set
Starting new Ispell process aspell with en dictionary...
Checking spelling of ENQUEUING... [2 times]

Load-path shadows:
/home/politza/.emacs.d/plugins/s hides /home/politza/.emacs.d/elpa/s-20140714.707/s
/home/politza/.emacs.d/plugins/tblc hides /home/politza/.emacs.d/plugins/tblc/tblc
/home/politza/.emacs.d/plugins/haskell-mode/haskell-cabal hides /home/politza/.emacs.d/plugins/haskell/haskell-cabal
/home/politza/.emacs.d/plugins/haskell-mode/haskell-decl-scan hides /home/politza/.emacs.d/plugins/haskell/haskell-decl-scan
/home/politza/.emacs.d/plugins/haskell-mode/haskell-doc hides /home/politza/.emacs.d/plugins/haskell/haskell-doc
/home/politza/.emacs.d/plugins/haskell-mode/ghc-core hides /home/politza/.emacs.d/plugins/haskell/ghc-core
/home/politza/.emacs.d/plugins/haskell-mode/haskell-mode hides /home/politza/.emacs.d/plugins/haskell/haskell-mode
/home/politza/.emacs.d/plugins/haskell-mode/haskell-c hides /home/politza/.emacs.d/plugins/haskell/haskell-c
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indentation hides /home/politza/.emacs.d/plugins/haskell/haskell-indentation
/home/politza/.emacs.d/plugins/haskell-mode/haskell-site-file hides /home/politza/.emacs.d/plugins/haskell/haskell-site-file
/home/politza/.emacs.d/plugins/haskell-mode/haskell-ghci hides /home/politza/.emacs.d/plugins/haskell/haskell-ghci
/home/politza/.emacs.d/plugins/haskell-mode/inf-haskell hides /home/politza/.emacs.d/plugins/haskell/inf-haskell
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indent hides /home/politza/.emacs.d/plugins/haskell/haskell-indent
/home/politza/.emacs.d/plugins/haskell-mode/haskell-hugs hides /home/politza/.emacs.d/plugins/haskell/haskell-hugs
/home/politza/.emacs.d/plugins/haskell-mode/haskell-font-lock hides /home/politza/.emacs.d/plugins/haskell/haskell-font-lock
/home/politza/.emacs.d/plugins/haskell-mode/haskell-simple-indent hides /home/politza/.emacs.d/plugins/haskell/haskell-simple-indent
/home/politza/.emacs.d/plugins/saveplace hides /home/politza/src/emacs/override-redirect/lisp/saveplace
/home/politza/.emacs.d/plugins/imenu hides /home/politza/src/emacs/override-redirect/lisp/imenu
/home/politza/.emacs.d/plugins/term hides /home/politza/src/emacs/override-redirect/lisp/term
/home/politza/src/emacs/override-redirect/lisp/textmodes/flyspell hides /usr/share/emacs/site-lisp/dictionaries-common/flyspell
/home/politza/src/emacs/override-redirect/lisp/textmodes/ispell hides /usr/share/emacs/site-lisp/dictionaries-common/ispell
/home/politza/.emacs.d/plugins/boxquote hides /usr/share/emacs/site-lisp/emacs-goodies-el/boxquote
/home/politza/.emacs.d/plugins/bm hides /usr/share/emacs/site-lisp/emacs-goodies-el/bm
/home/politza/.emacs.d/plugins/eproject/eproject-extras hides /usr/share/emacs/site-lisp/emacs-goodies-el/eproject-extras
/home/politza/.emacs.d/plugins/matlab/matlab hides /usr/share/emacs/site-lisp/emacs-goodies-el/matlab
/home/politza/.emacs.d/plugins/eproject/eproject hides /usr/share/emacs/site-lisp/emacs-goodies-el/eproject
/home/politza/src/emacs/override-redirect/lisp/net/sasl-cram hides /usr/share/emacs/site-lisp/flim/sasl-cram
/home/politza/src/emacs/override-redirect/lisp/net/ntlm hides /usr/share/emacs/site-lisp/flim/ntlm
/home/politza/src/emacs/override-redirect/lisp/hex-util hides /usr/share/emacs/site-lisp/flim/hex-util
/home/politza/src/emacs/override-redirect/lisp/net/sasl hides /usr/share/emacs/site-lisp/flim/sasl
/home/politza/src/emacs/override-redirect/lisp/net/sasl-digest hides /usr/share/emacs/site-lisp/flim/sasl-digest
/home/politza/src/emacs/override-redirect/lisp/net/sasl-ntlm hides /usr/share/emacs/site-lisp/flim/sasl-ntlm
/home/politza/src/emacs/override-redirect/lisp/net/hmac-def hides /usr/share/emacs/site-lisp/flim/hmac-def
/home/politza/src/emacs/override-redirect/lisp/net/hmac-md5 hides /usr/share/emacs/site-lisp/flim/hmac-md5
/home/politza/src/emacs/override-redirect/lisp/md4 hides /usr/share/emacs/site-lisp/flim/md4
/home/politza/.emacs.d/plugins/haskell-mode/haskell-cabal hides /usr/share/emacs/site-lisp/haskell-mode/haskell-cabal
/home/politza/.emacs.d/plugins/haskell-mode/haskell-doc hides /usr/share/emacs/site-lisp/haskell-mode/haskell-doc
/home/politza/.emacs.d/plugins/haskell-mode/ghc-core hides /usr/share/emacs/site-lisp/haskell-mode/ghc-core
/home/politza/.emacs.d/plugins/haskell-mode/haskell-mode hides /usr/share/emacs/site-lisp/haskell-mode/haskell-mode
/home/politza/.emacs.d/plugins/haskell-mode/haskell-c hides /usr/share/emacs/site-lisp/haskell-mode/haskell-c
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indentation hides /usr/share/emacs/site-lisp/haskell-mode/haskell-indentation
/home/politza/.emacs.d/plugins/haskell-mode/haskell-site-file hides /usr/share/emacs/site-lisp/haskell-mode/haskell-site-file
/home/politza/.emacs.d/plugins/haskell-mode/haskell-ghci hides /usr/share/emacs/site-lisp/haskell-mode/haskell-ghci
/home/politza/.emacs.d/plugins/haskell-mode/inf-haskell hides /usr/share/emacs/site-lisp/haskell-mode/inf-haskell
/home/politza/.emacs.d/plugins/haskell-mode/haskell-hugs hides /usr/share/emacs/site-lisp/haskell-mode/haskell-hugs
/home/politza/.emacs.d/plugins/haskell-mode/haskell-font-lock hides /usr/share/emacs/site-lisp/haskell-mode/haskell-font-lock
/home/politza/.emacs.d/plugins/haskell-mode/haskell-simple-indent hides /usr/share/emacs/site-lisp/haskell-mode/haskell-simple-indent
/home/politza/.emacs.d/plugins/haskell-mode/haskell-decl-scan hides /usr/share/emacs/site-lisp/haskell-mode/haskell-decl-scan
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indent hides /usr/share/emacs/site-lisp/haskell-mode/haskell-indent
/home/politza/src/emacs/override-redirect/lisp/textmodes/remember hides /usr/share/emacs/site-lisp/remember-el/remember
/home/politza/src/emacs/override-redirect/lisp/timezone hides /usr/share/emacs/site-lisp/apel/attic/timezone
/home/politza/src/emacs/override-redirect/lisp/env hides /usr/share/emacs/site-lisp/apel/attic/env
/home/politza/src/emacs/override-redirect/lisp/gnus/mailcap hides /usr/share/emacs/site-lisp/flim/attic/mailcap
/home/politza/src/emacs/override-redirect/lisp/mail/smtpmail hides /usr/share/emacs/site-lisp/flim/attic/smtpmail
/home/politza/src/emacs/override-redirect/lisp/calendar/timeclock hides /usr/share/emacs/site-lisp/planner-el/contrib/timeclock
/home/politza/src/emacs/override-redirect/lisp/mail/rfc2368 hides /usr/share/emacs/site-lisp/w3m/attic/rfc2368

Features:
(shadow sort gnus-cite bbdb-message quail mail-extr nnir nndraft nnmh
utf-7 gnutls network-stream starttls nnmbox nnfolder bbdb-gnus nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache
gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime smime dig
ispell emacsbug sendmail eieio-opt debug whitespace diff-mode vc
misearch multi-isearch pdf-view pdf-tools pdf-sync pdf-outline pdf-occur
pdf-links pdf-isearch pdf-history pdf-cache pdf-annot pdf-misc imenu
pdf-render pdf-util dired-aux pdf-info tq holidays hol-loaddefs
diary-lib diary-loaddefs ewm ewm-compat ewm-conf ewm-frame ewm-util
ewm-window semantic/bovine/make semantic/decorate/include
semantic/bovine/make-by ede/project-am ede/autoconf-edit autoconf
autoconf-mode ede/makefile-edit ede/make make-mode semantic/tag-file
ede/dired gnus-dired dired-eshell vc-dispatcher vc-svn vc-git ede/emacs
vc-bzr tempo url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap xml-parse doxymacs
semantic/db-file data-debug cedet-files cl-font-lock
emacs-customizations hypermedia-customizations eww-customizations
nogroup-customizations wp-customizations view-customizations
tex-customizations reftex-customizations
reftex-miscellaneous-configurations-customizations
reftex-label-support-customizations
reftex-referencing-labels-customizations
reftex-defining-label-environments-customizations reftex reftex-vars
AUCTeX-customizations preview-customizations
preview-latex-customizations preview-appearance-customizations
font-latex-customizations TeX-parse-customizations
TeX-file-customizations TeX-command-customizations
TeX-view-customizations LaTeX-customizations LaTeX-macro-customizations
LaTeX-math-customizations LaTeX-environment-customizations
LaTeX-indentation-customizations latex tex-style tex dbus xml
table-customizations table-hooks-customizations outlines-customizations
programming-customizations rnc-customizations tools-customizations
doxymacs-customizations eclim-customizations
eclim-problems-customizations vc-customizations log-edit-customizations
semantic-customizations pulse-customizations
semantic-imenu-customizations semantic/db-mode semantic/decorate/mode
semantic/decorate pulse lib-string makefile-customizations
etags-customizations ediff-customizations diff-customizations
diff-mode-customizations languages-customizations axiom-customizations
elpy-customizations matlab-customizations sh-customizations
python-customizations nxml-customizations relax-ng-customizations
haskell-customizations c-customizations semantic/bovine/c hideif
semantic/bovine/c-by semantic/lex-spp semantic/idle semantic/bovine/gcc
semantic/dep semantic/bovine semantic/analyze/refs semantic/db-find
semantic/db-ref semantic/analyze semantic/sort semantic/scope
semantic/analyze/fcn semantic/db semantic/ctxt semantic/format
semantic/tag-ls semantic/find asm-customizations
multimedia-customizations image-customizations pcase help-customizations
ekey-customizations info-lookup-customizations info-customizations
customize-customizations custom-buffer-customizations
apropos-customizations files-customizations uniquify-customizations
sunrise-customizations recentf-customizations lib-files
find-file-customizations ff-customizations backup-customizations
faces-customizations highlight-symbol-customizations
font-lock-customizations hi-lock-customizations facemenu-customizations
external-customizations server-customizations processes-customizations
shell-customizations proced-customizations gud-customizations
tooltip-customizations gud grep-customizations
compilation-customizations next-error-customizations
comint-customizations tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local
SQL-customizations man-customizations environment-customizations
xterm-customizations windows-customizations winner-customizations
minibuffer-customizations savehist-customizations menu-customizations
keyboard-customizations chistory-customizations
initialization-customizations frames-customizations
ediff-window-customizations desktop-customizations desktop frameset
dired-customizations dired-x-customizations dired-x
dired-details-customizations editing-customizations bm-customizations
yasnippet-customizations php-auto-yasnippets php-mode etags flymake
cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs add-log yasnippet help-mode
paragraphs-customizations matching-customizations
paren-matching-customizations paren-showing-customizations
isearch-customizations bookmark-customizations killing-customizations
indent-customizations fill-customizations filladapt-customizations
filladapt comment-customizations align-customizations
emulations-customizations electricity-customizations
editing-basics-customizations development-customizations
lisp-customizations re-builder-customizations
inferior-lisp-customizations ielm-customizations
find-function-customizations ert-customizations edebug-customizations
bytecomp-customizations advice-customizations internal-customizations
alloc-customizations extensions-customizations widgets-customizations
eldoc-customizations eldoc-eval-customizations ede-customizations
ede/cpp-root ede/speedbar ede/files ede ede/base ede/auto ede/source
eieio-base eieio-speedbar speedbar sb-image ezimage dframe eieio-custom
cedet cust-print-customizations data-customizations
save-place-customizations convenience-customizations
register-customizations eproject-customizations mimo-customizations mimo
diminish-customizations diminish iedit-customizations
imenu-tree-customizations tags-tree-customizations
company-customizations workgroups-customizations
window-numbering-customizations pabbrev-customizations
kmacro-customizations imenu-customizations ibuffer-customizations
ibuf-macs hl-line-customizations hippie-expand-customizations
file-cache-customizations ffap-customizations completion-customizations
pc-completion-customizations jedi-customizations jedi auto-complete
popup epc ctable concurrent deferred iswitchb-customizations
auto-complete-customizations pc switch-focus color hl-line
browse-kill-ring-customizations auto-revert-customizations
auto-insert-customizations autoinsert Buffer-menu-customizations
comm-customizations tramp-customizations browse-url-customizations
url-handlers applications-customizations mediawiki-customizations
w3m-customizations package-customizations mail-customizations
bbdb-customizations bbdb-sendmail-customizations bbdb-mua-customizations
bbdb-mua bbdb-com crm bbdb smtpmail-customizations shr-customizations
sendmail-customizations mime-display-customizations gnus-customizations
nnmail-customizations nnmail-split-customizations
mail-source-customizations gnus-summary-customizations
gnus-thread-customizations gnus-summary-various-customizations
gnus-summary-sort-customizations gnus-summary-marks-customizations
gnus-summary-maneuvering-customizations
gnus-summary-format-customizations parse-time-rfc2822
gnus-summary-exit-customizations gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud gnus-spec gnus-win gnus-start-customizations
gnus-server-customizations gnus-message-customizations
message-customizations message-various-customizations
message-sending-customizations message-buffers-customizations
gnus-group-customizations gnus-group-visual-customizations
gnus-nnimap-format nnimap nnmail gnus-int gnus-range mail-source message
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader parse-time
tls utf7 netrc nnoo gnus gnus-ems nnheader mail-utils
gnus-group-various-customizations gnus-group-select-customizations
gnus-files-customizations gnus-newsrc-customizations
gnus-exit-customizations gnus-article-customizations
gnus-article-various-customizations gnus-article-hiding-customizations
ispell-customizations eshell-customizations eshell-module-customizations
eshell-smart-customizations eshell-hist-customizations
eshell-mode-customizations edebug doc-view-customizations
pdf-tools-customizations pdf-sync-customizations
pdf-annot-customizations pdf-isearch-customizations warnings
doc-view-tidy-cache calendar-customizations org-customizations
org-structure-customizations org-plain-lists-customizations
org-edit-structure-customizations org-startup-customizations
org-link-customizations org-latex-customizations
org-appearance-customizations holidays-customizations
diary-customizations calculator-customizations calc-customizations
server recentf tree-widget .autoload paren window-numbering w3m
browse-url doc-view jka-compr image-mode timezone w3m-hist w3m-fb
bookmark-w3m w3m-ems mule-util w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util tramp tramp-compat tramp-loaddefs trampver shell
track-last-window scroll-other-window saveplace savehist pabbrev org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle
org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs lib-edit hsqldb sql view lib-window lib-isearch lib-buffer
reveal iswitchb info-look ibuffer hippie-exp grep compile filecache
edit-minibuffer eldoc-eval pcomplete esh-var esh-io esh-cmd esh-opt
esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
ekey assoc dired-details+ dired dired-details cool-prefix-bindings
winner edmacro kmacro lib-basic lib-lispext lib-kbd comint-history
comint ansi-color ring browse-kill-ring cl-macs advice derived anticus
apropos ffap thingatpt url-parse auth-source eieio byte-opt bytecomp
byte-compile cconv eieio-core gnus-util mm-util mail-prsvr
password-cache url-vars eldoc help-fns cus-edit cus-start cus-load
wid-edit cl gv cl-loaddefs cl-lib bbdb-loaddefs info easymenu tex-site
cl-format-autoloads package time-date tooltip electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 1176885 84587)
 (symbols 48 64749 18)
 (miscs 40 8041 1491)
 (strings 32 235828 76125)
 (string-bytes 1 21626586)
 (vectors 16 86945)
 (vector-slots 8 1785625 101651)
 (floats 8 844 607)
 (intervals 56 32632 125)
 (buffers 976 73)
 (heap 1024 102900 52809))

Added tag(s) patch. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 03 Aug 2019 14:31:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#19016; Package emacs. (Sat, 03 Aug 2019 14:34:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Andreas Politz <politza <at> hochschule-trier.de>
Cc: 19016 <at> debbugs.gnu.org
Subject: Re: bug#19016: 24.4.50; tq.el does the wrong thing when enqueuing
 inside a callback
Date: Sat, 03 Aug 2019 16:33:54 +0200
Andreas Politz <politza <at> hochschule-trier.de> writes:

> tq-queue-pop removes the top question and sends the next one.  But here
> a problem occurs, if the callback function adds another question, sends
> it and waits for it's result.  Because this invokes tq-process-buffer
> recursively with the first question still at top.  Resulting in the
> callback to the first question called a second time, third time ... .
>
> Here is a lisp file which should demonstrate this.
>
>
> ..and a patch

Makes sense to me.  I've now applied this to Emacs 27.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) fixed. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 03 Aug 2019 14:35:01 GMT) Full text and rfc822 format available.

bug marked as fixed in version 27.1, send any further explanations to 19016 <at> debbugs.gnu.org and Andreas Politz <politza <at> hochschule-trier.de> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 03 Aug 2019 14:35: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. (Sun, 01 Sep 2019 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 291 days ago.

Previous Next


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