Subject: bug#16519: 24.3.50; gfile notifications not received in batch mode

From: Michael Albinus <[email-masked]>
Date: Wed, 22 Jan 2014 10:50:06 +0100

File notifications via gfilenotify are not received in batch
mode. Likely, the following actions must be taken (quoting Jan Djärv):

  So just switching to xg_select will not do.  You have to explicitly
  check if in batch mode, then check if GLib has file descriptors we
  don't know about, and then call xg_select in the main thread.

In GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.20)
 of 2014-01-22 on detlef
Repository revision: 116098 [email-masked]
System Description:	Ubuntu 13.10

Configured using:
 `configure --with-file-notification=inotify'

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

Major mode: Group

Minor modes in effect:
  gnus-undo-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  iswitchb-mode: t
  icomplete-mode: t
  show-paren-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC [ > 1 ; 3 2 0 1 ; 0 c ESC O Q ESC x r e p o r t 
TAB RET

Recent messages:
Reading active file via nnml...
Reading incoming mail from pop...
pop3 retrieved 0KB (0%) [7 times]
pop3 retrieved 4KB (100%) [5 times]
compressing 14147.gz...done
Wrote /home/albinus/Mail/default/14147.gz
nnml: Reading incoming mail (1 new)...done
Reading active file via nnml...done
Reading active file via nndraft...done
Checking new news...done

Load-path shadows:
/home/albinus/src/elpa/packages/debbugs/debbugs-gnu hides /home/albinus/.emacs.d/elpa/debbugs-0.4/debbugs-gnu
/home/albinus/src/elpa/packages/debbugs/debbugs hides /home/albinus/.emacs.d/elpa/debbugs-0.4/debbugs
/home/albinus/src/elpa/packages/debbugs/debbugs-autoloads hides /home/albinus/.emacs.d/elpa/debbugs-0.4/debbugs-autoloads
/home/albinus/src/elpa/packages/debbugs/debbugs-pkg hides /home/albinus/.emacs.d/elpa/debbugs-0.4/debbugs-pkg
~/src/org-mode/lisp/ob-python hides /home/albinus/src/emacs/lisp/org/ob-python
~/src/org-mode/lisp/ob-scala hides /home/albinus/src/emacs/lisp/org/ob-scala
~/src/org-mode/lisp/ob-ref hides /home/albinus/src/emacs/lisp/org/ob-ref
~/src/org-mode/lisp/org-gnus hides /home/albinus/src/emacs/lisp/org/org-gnus
~/src/org-mode/lisp/ob-java hides /home/albinus/src/emacs/lisp/org/ob-java
~/src/org-mode/lisp/ob-css hides /home/albinus/src/emacs/lisp/org/ob-css
~/src/org-mode/lisp/org-bibtex hides /home/albinus/src/emacs/lisp/org/org-bibtex
~/src/org-mode/lisp/ob-ledger hides /home/albinus/src/emacs/lisp/org/ob-ledger
~/src/org-mode/lisp/ob-ruby hides /home/albinus/src/emacs/lisp/org/ob-ruby
~/src/org-mode/lisp/org-irc hides /home/albinus/src/emacs/lisp/org/org-irc
~/src/org-mode/lisp/ob-plantuml hides /home/albinus/src/emacs/lisp/org/ob-plantuml
~/src/org-mode/lisp/org-entities hides /home/albinus/src/emacs/lisp/org/org-entities
~/src/org-mode/lisp/org-agenda hides /home/albinus/src/emacs/lisp/org/org-agenda
~/src/org-mode/lisp/ox-html hides /home/albinus/src/emacs/lisp/org/ox-html
~/src/org-mode/lisp/ob-core hides /home/albinus/src/emacs/lisp/org/ob-core
~/src/org-mode/lisp/ox-md hides /home/albinus/src/emacs/lisp/org/ox-md
~/src/org-mode/lisp/ox hides /home/albinus/src/emacs/lisp/org/ox
~/src/org-mode/lisp/ob-sqlite hides /home/albinus/src/emacs/lisp/org/ob-sqlite
~/src/org-mode/lisp/org-compat hides /home/albinus/src/emacs/lisp/org/org-compat
~/src/org-mode/lisp/ob-gnuplot hides /home/albinus/src/emacs/lisp/org/ob-gnuplot
~/src/org-mode/lisp/ox-beamer hides /home/albinus/src/emacs/lisp/org/ox-beamer
~/src/org-mode/lisp/ob-exp hides /home/albinus/src/emacs/lisp/org/ob-exp
~/src/org-mode/lisp/ob-C hides /home/albinus/src/emacs/lisp/org/ob-C
~/src/org-mode/lisp/ob-awk hides /home/albinus/src/emacs/lisp/org/ob-awk
~/src/org-mode/lisp/ob-matlab hides /home/albinus/src/emacs/lisp/org/ob-matlab
~/src/org-mode/lisp/ox-org hides /home/albinus/src/emacs/lisp/org/ox-org
~/src/org-mode/lisp/org-archive hides /home/albinus/src/emacs/lisp/org/org-archive
~/src/org-mode/lisp/org-plot hides /home/albinus/src/emacs/lisp/org/org-plot
~/src/org-mode/lisp/org-install hides /home/albinus/src/emacs/lisp/org/org-install
~/src/org-mode/lisp/ob-octave hides /home/albinus/src/emacs/lisp/org/ob-octave
~/src/org-mode/lisp/ob-calc hides /home/albinus/src/emacs/lisp/org/ob-calc
~/src/org-mode/lisp/org-bbdb hides /home/albinus/src/emacs/lisp/org/org-bbdb
~/src/org-mode/lisp/ob-lilypond hides /home/albinus/src/emacs/lisp/org/ob-lilypond
~/src/org-mode/lisp/ox-odt hides /home/albinus/src/emacs/lisp/org/ox-odt
~/src/org-mode/lisp/ob-sass hides /home/albinus/src/emacs/lisp/org/ob-sass
~/src/org-mode/lisp/ob-lisp hides /home/albinus/src/emacs/lisp/org/ob-lisp
~/src/org-mode/lisp/org-indent hides /home/albinus/src/emacs/lisp/org/org-indent
~/src/org-mode/lisp/org-mouse hides /home/albinus/src/emacs/lisp/org/org-mouse
~/src/org-mode/lisp/org-macs hides /home/albinus/src/emacs/lisp/org/org-macs
~/src/org-mode/lisp/org-timer hides /home/albinus/src/emacs/lisp/org/org-timer
~/src/org-mode/lisp/org-pcomplete hides /home/albinus/src/emacs/lisp/org/org-pcomplete
~/src/org-mode/lisp/org-inlinetask hides /home/albinus/src/emacs/lisp/org/org-inlinetask
~/src/org-mode/lisp/ob-comint hides /home/albinus/src/emacs/lisp/org/ob-comint
~/src/org-mode/lisp/ob-org hides /home/albinus/src/emacs/lisp/org/ob-org
~/src/org-mode/lisp/ob-keys hides /home/albinus/src/emacs/lisp/org/ob-keys
~/src/org-mode/lisp/org-src hides /home/albinus/src/emacs/lisp/org/org-src
~/src/org-mode/lisp/org-ctags hides /home/albinus/src/emacs/lisp/org/org-ctags
~/src/org-mode/lisp/ob-clojure hides /home/albinus/src/emacs/lisp/org/ob-clojure
~/src/org-mode/lisp/ob-ocaml hides /home/albinus/src/emacs/lisp/org/ob-ocaml
~/src/org-mode/lisp/org-mobile hides /home/albinus/src/emacs/lisp/org/org-mobile
~/src/org-mode/lisp/ob-tangle hides /home/albinus/src/emacs/lisp/org/ob-tangle
~/src/org-mode/lisp/ob-asymptote hides /home/albinus/src/emacs/lisp/org/ob-asymptote
~/src/org-mode/lisp/ob-table hides /home/albinus/src/emacs/lisp/org/ob-table
~/src/org-mode/lisp/ob-makefile hides /home/albinus/src/emacs/lisp/org/ob-makefile
~/src/org-mode/lisp/ox-publish hides /home/albinus/src/emacs/lisp/org/ox-publish
~/src/org-mode/lisp/org-macro hides /home/albinus/src/emacs/lisp/org/org-macro
~/src/org-mode/lisp/ob-maxima hides /home/albinus/src/emacs/lisp/org/ob-maxima
~/src/org-mode/lisp/ox-man hides /home/albinus/src/emacs/lisp/org/ox-man
~/src/org-mode/lisp/ox-latex hides /home/albinus/src/emacs/lisp/org/ox-latex
~/src/org-mode/lisp/org-table hides /home/albinus/src/emacs/lisp/org/org-table
~/src/org-mode/lisp/org-colview hides /home/albinus/src/emacs/lisp/org/org-colview
~/src/org-mode/lisp/ob-haskell hides /home/albinus/src/emacs/lisp/org/ob-haskell
~/src/org-mode/lisp/org-version hides /home/albinus/src/emacs/lisp/org/org-version
~/src/org-mode/lisp/ox-texinfo hides /home/albinus/src/emacs/lisp/org/ox-texinfo
~/src/org-mode/lisp/ob-dot hides /home/albinus/src/emacs/lisp/org/ob-dot
~/src/org-mode/lisp/ob-lob hides /home/albinus/src/emacs/lisp/org/ob-lob
~/src/org-mode/lisp/ob-mscgen hides /home/albinus/src/emacs/lisp/org/ob-mscgen
~/src/org-mode/lisp/ob-js hides /home/albinus/src/emacs/lisp/org/ob-js
~/src/org-mode/lisp/ob-eval hides /home/albinus/src/emacs/lisp/org/ob-eval
~/src/org-mode/lisp/org-eshell hides /home/albinus/src/emacs/lisp/org/org-eshell
~/src/org-mode/lisp/org-feed hides /home/albinus/src/emacs/lisp/org/org-feed
~/src/org-mode/lisp/ob-R hides /home/albinus/src/emacs/lisp/org/ob-R
~/src/org-mode/lisp/org-crypt hides /home/albinus/src/emacs/lisp/org/org-crypt
~/src/org-mode/lisp/org-footnote hides /home/albinus/src/emacs/lisp/org/org-footnote
~/src/org-mode/lisp/ox-ascii hides /home/albinus/src/emacs/lisp/org/ox-ascii
~/src/org-mode/lisp/ob-screen hides /home/albinus/src/emacs/lisp/org/ob-screen
~/src/org-mode/lisp/org-w3m hides /home/albinus/src/emacs/lisp/org/org-w3m
~/src/org-mode/lisp/org-mhe hides /home/albinus/src/emacs/lisp/org/org-mhe
~/src/org-mode/lisp/org-attach hides /home/albinus/src/emacs/lisp/org/org-attach
~/src/org-mode/lisp/org-habit hides /home/albinus/src/emacs/lisp/org/org-habit
~/src/org-mode/lisp/ob hides /home/albinus/src/emacs/lisp/org/ob
~/src/org-mode/lisp/org-clock hides /home/albinus/src/emacs/lisp/org/org-clock
~/src/org-mode/lisp/org-list hides /home/albinus/src/emacs/lisp/org/org-list
~/src/org-mode/lisp/ob-perl hides /home/albinus/src/emacs/lisp/org/ob-perl
~/src/org-mode/lisp/ob-fortran hides /home/albinus/src/emacs/lisp/org/ob-fortran
~/src/org-mode/lisp/org-protocol hides /home/albinus/src/emacs/lisp/org/org-protocol
~/src/org-mode/lisp/ox-icalendar hides /home/albinus/src/emacs/lisp/org/ox-icalendar
~/src/org-mode/lisp/org-info hides /home/albinus/src/emacs/lisp/org/org-info
~/src/org-mode/lisp/org-docview hides /home/albinus/src/emacs/lisp/org/org-docview
~/src/org-mode/lisp/org-id hides /home/albinus/src/emacs/lisp/org/org-id
~/src/org-mode/lisp/org-faces hides /home/albinus/src/emacs/lisp/org/org-faces
~/src/org-mode/lisp/ob-emacs-lisp hides /home/albinus/src/emacs/lisp/org/ob-emacs-lisp
~/src/org-mode/lisp/org hides /home/albinus/src/emacs/lisp/org/org
~/src/org-mode/lisp/org-rmail hides /home/albinus/src/emacs/lisp/org/org-rmail
~/src/org-mode/lisp/ob-shen hides /home/albinus/src/emacs/lisp/org/ob-shen
~/src/org-mode/lisp/org-capture hides /home/albinus/src/emacs/lisp/org/org-capture
~/src/org-mode/lisp/org-element hides /home/albinus/src/emacs/lisp/org/org-element
~/src/org-mode/lisp/ob-ditaa hides /home/albinus/src/emacs/lisp/org/ob-ditaa
~/src/org-mode/lisp/ob-latex hides /home/albinus/src/emacs/lisp/org/ob-latex
~/src/org-mode/lisp/ob-io hides /home/albinus/src/emacs/lisp/org/ob-io
~/src/org-mode/lisp/org-datetree hides /home/albinus/src/emacs/lisp/org/org-datetree
~/src/org-mode/lisp/ob-picolisp hides /home/albinus/src/emacs/lisp/org/ob-picolisp
~/src/org-mode/lisp/ob-sql hides /home/albinus/src/emacs/lisp/org/ob-sql
~/src/org-mode/lisp/ob-scheme hides /home/albinus/src/emacs/lisp/org/ob-scheme
~/src/org-mode/lisp/org-loaddefs hides /home/albinus/src/emacs/lisp/org/org-loaddefs
~/src/tramp/lisp/tramp-smb hides /home/albinus/src/emacs/lisp/net/tramp-smb
~/src/tramp/lisp/tramp-uu hides /home/albinus/src/emacs/lisp/net/tramp-uu
~/src/tramp/lisp/tramp-adb hides /home/albinus/src/emacs/lisp/net/tramp-adb
~/src/tramp/lisp/tramp-cmds hides /home/albinus/src/emacs/lisp/net/tramp-cmds
~/src/tramp/lisp/tramp-cache hides /home/albinus/src/emacs/lisp/net/tramp-cache
~/src/tramp/lisp/trampver hides /home/albinus/src/emacs/lisp/net/trampver
~/src/tramp/lisp/tramp-ftp hides /home/albinus/src/emacs/lisp/net/tramp-ftp
~/src/tramp/lisp/tramp-sh hides /home/albinus/src/emacs/lisp/net/tramp-sh
~/src/tramp/lisp/tramp hides /home/albinus/src/emacs/lisp/net/tramp
~/src/tramp/lisp/tramp-loaddefs hides /home/albinus/src/emacs/lisp/net/tramp-loaddefs
~/lisp/dbus hides /home/albinus/src/emacs/lisp/net/dbus
~/lisp/soap-client hides /home/albinus/src/emacs/lisp/net/soap-client
~/src/tramp/lisp/tramp-gw hides /home/albinus/src/emacs/lisp/net/tramp-gw
~/src/tramp/lisp/tramp-gvfs hides /home/albinus/src/emacs/lisp/net/tramp-gvfs
~/src/tramp/lisp/tramp-compat hides /home/albinus/src/emacs/lisp/net/tramp-compat

Features:
(shadow sort mail-extr warnings emacsbug pop3 utf-7 nndraft nnmh nnimap
parse-time utf7 nnml netrc gnutls network-stream starttls tls gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu
mml2015 epg-config mm-view mml-smime smime dig mailcap gnus-cache
gnus-sum nnnil smtpmail sendmail gnus-demon nntp gnus-group gnus-undo
nnmail mail-source nnoo gnus-start gnus-spec gnus-int gnus-range message
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader mail-utils wid-edit xterm cperl-mode debbugs-autoloads
info easymenu magit-autoloads zeitgeist-autoloads package time tramp
tramp-compat auth-source eieio byte-opt bytecomp byte-compile cconv
eieio-core gnus-util mm-util mail-prsvr password-cache tramp-loaddefs
cl-macs gv trampver shell pcomplete comint ansi-color ring format-spec
advice help-fns cl cl-loaddefs cl-lib autorevert filenotify iswitchb
jka-compr icomplete time-date paren ps-print ps-def lpr vc vc-dispatcher
dired 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 inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)