1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-27 15:52:00 -08:00
emacs/src
Fabrice Popineau 326fff41fa Improve w32notify notifications
* src/w32notify.c (DIRWATCH_BUFFER_SIZE): New macro.
(struct notification): 'terminate' is now a HANDLE.
(send_notifications): Argument is now a pointer to a
notification.  Don't loop waiting for the notification to be
acknowledged by the main thread; instead, just add the
notification to the linked list of notifications waiting to be
acknowledged.
(watch_end): Don't close the directory handle.
(watch_completion): Allocate a new notification structure to be
added to the notifications set.  Call ReadDirectoryChangesW
immediately after adding the new notification, and before sending
a message to the main thread about them.
(watch_worker): Don't loop calling ReadDirectoryChangesW; instead,
call it just once -- it will be called again in watch_completion.
Loop waiting for the main thread's indication to terminate.
(start_watching): Create the event to be used to indicate to the
worker thread that its should terminate.
(remove_watch): Indicate to the worker thread that it should
terminate.
* src/w32term.c (queue_notifications): Loop over all the
notifications in the linked list, processing all of them in one
go.
* src/w32inevt.c (handle_file_notifications): Loop over all the
notifications in the linked list.
* src/w32xfns.c (init_crit): Initialize the linked list of file
notifications.
(delete_crit): Free the linked list of file notifications,
including any unprocessed notifications left in it.
* src/w32term.h (struct notifications_se): New struct.

* test/lisp/filenotify-tests.el (file-notify-test02-events)
(file-notify-test05-dir-validity): Add read-event calls to
facilitate event recognition by the main thread in batch mode.
2016-03-19 14:44:53 +02:00
..
bitmaps
.dbxinit
.gdbinit Update copyright year to 2016 2016-01-01 01:34:24 -08:00
alloc.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
atimer.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
atimer.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
bidi.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
blockinput.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
buffer.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
buffer.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
bytecode.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
callint.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
callproc.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
casefiddle.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
casetab.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
category.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
category.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ccl.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
ccl.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ChangeLog.1 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.2 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.3 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.4 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.5 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.6 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.7 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.8 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.9 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.10 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.11 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.12 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
ChangeLog.13 Update copyright year to 2016 2016-01-01 01:34:24 -08:00
character.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
character.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
charset.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
charset.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
chartab.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
cm.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
cm.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
cmds.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
coding.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
coding.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
commands.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
composite.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
composite.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
conf_post.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
COPYING
cygw32.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
cygw32.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
data.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dbusbind.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
decompress.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
deps.mk Update copyright year to 2016 2016-01-01 01:34:24 -08:00
dired.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
dispextern.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dispnew.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
disptab.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
doc.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
doprnt.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dosfns.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dosfns.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dynlib.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
dynlib.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
editfns.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
emacs-icon.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
emacs-module.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
emacs-module.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
emacs.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
emacsgtkfixed.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
emacsgtkfixed.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
epaths.in Update copyright year to 2016 2016-01-01 01:34:24 -08:00
eval.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
fileio.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
filelock.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
firstfile.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
floatfns.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
fns.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
font.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
font.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
fontset.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
fontset.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
frame.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
frame.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
fringe.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftcrfont.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftfont.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftfont.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ftxfont.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
getpagesize.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
gfilenotify.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
gmalloc.c Omit valloc decl if redundant 2016-02-09 15:25:58 -08:00
gnutls.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
gnutls.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
gtkutil.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
gtkutil.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
image.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
indent.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
indent.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
inotify.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
insdel.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
intervals.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
intervals.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
keyboard.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
keyboard.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
keymap.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
keymap.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
kqueue.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
lastfile.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
lisp.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
lread.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
macfont.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
macfont.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
macros.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
macros.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
macuvs.h
Makefile.in Deterministic build improvements 2016-03-02 10:24:11 -08:00
marker.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
menu.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
menu.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
minibuf.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
msdos.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
msdos.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsfns.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsfont.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsgui.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsimage.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsmenu.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsselect.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsterm.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
nsterm.m Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
print.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
process.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
process.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
profiler.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
puresize.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
ralloc.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
README Update copyright year to 2016 2016-01-01 01:34:24 -08:00
regex.c --enable-gcc-warnings now uses -Wjump-misses-init 2016-02-26 08:23:26 -08:00
regex.h Update copyright year to 2016 2016-01-01 01:34:24 -08:00
region-cache.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
region-cache.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
scroll.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
search.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
sheap.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
sheap.h Double static heap size. 2016-02-01 08:50:10 -08:00
sound.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
syntax.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
syntax.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
sysdep.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
sysselect.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
syssignal.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
sysstdio.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
systime.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
systty.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
syswait.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
term.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
termcap.c Update copyright year to 2016 2016-01-01 01:34:24 -08:00
termchar.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
termhooks.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
terminal.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
terminfo.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
termopts.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
textprop.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
tparam.c Update copyright year to 2016 2016-01-01 01:34:24 -08:00
tparam.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
undo.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
unexaix.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
unexcoff.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
unexcw.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
unexec.h Make src headers idempotent and standalone 2015-10-16 14:56:11 -07:00
unexelf.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
unexhp9k800.c
unexmacosx.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
unexsol.c Include-file cleanup for src directory 2015-10-20 18:35:53 -07:00
unexw32.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
vm-limit.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
w16select.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
w32.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32common.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32console.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
w32fns.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
w32font.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32font.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32gui.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32heap.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32heap.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32inevt.c Improve w32notify notifications 2016-03-19 14:44:53 +02:00
w32inevt.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32menu.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32notify.c Improve w32notify notifications 2016-03-19 14:44:53 +02:00
w32proc.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32reg.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32select.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32select.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32term.c Improve w32notify notifications 2016-03-19 14:44:53 +02:00
w32term.h Improve w32notify notifications 2016-03-19 14:44:53 +02:00
w32uniscribe.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
w32xfns.c Improve w32notify notifications 2016-03-19 14:44:53 +02:00
widget.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
widget.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
widgetprv.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
window.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
window.h Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
xdisp.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
xfaces.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xfns.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
xfont.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xftfont.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xgselect.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xgselect.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xmenu.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xml.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xrdb.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xselect.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xsettings.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xsettings.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xsmfns.c Merge from origin/emacs-25 2016-03-11 13:33:32 -08:00
xterm.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xterm.h Don't use XRANDR 1.3 extensions if the server doesn't support them. 2016-03-10 14:28:54 -05:00
xwidget.c Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00
xwidget.h Rework C source files to avoid ^( 2016-03-10 07:59:19 -08:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.