GNU bug report logs - #12829
24.3.50; emacs_abort () called from w32proc.c:1128

Previous Next

Package: emacs;

Reported by: Stephen Powell <stephen_powell <at> optusnet.com.au>

Date: Wed, 7 Nov 2012 23:48:02 UTC

Severity: normal

Found in version 24.3.50

Done: Eli Zaretskii <eliz <at> gnu.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 12829 in the body.
You can then email your comments to 12829 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#12829; Package emacs. (Wed, 07 Nov 2012 23:48:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stephen Powell <stephen_powell <at> optusnet.com.au>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 07 Nov 2012 23:48:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Wed, 07 Nov 2012 23:47:27 +0000
While reading mail in gnus I got an emacs abort.  The gdb session is
stull live.

(gdb) bt full

#0  0x762a321a in KERNELBASE!DeleteAce () from C:\Windows\syswow64\KernelBa=
se.dll
No symbol table info available.
#1  0x010edcba in emacs_abort () at w32fns.c:7739
        button =3D 6
#2  0x010229c9 in sys_wait (status=3D0x88f264) at w32proc.c:1128
        active =3D 0
        retval =3D 256
        nh =3D 0
        pid =3D 3744
        cp =3D 0x144ab28
        cps =3D {0x144ab28, 0x88f1a8, 0x960000, 0x77c871d5 <ntdll!AlpcMaxAl=
lowedMessageLength+36229>, 0x19ebf3, 0xfffffffe, 0x77c4389a <ntdll!RtlRelea=
sePebLock+937>, 0x77c43492 <ntdll!LdrLoadAlternateResourceModuleEx+1317>, 0=
xa0c510, 0xa0c518, 0x9, 0x88f1e4, 0xa0c518, 0x4, 0x88f210, 0x762a161b <Wait=
ForMultipleObjectsEx+306>, 0x960000, 0x0, 0x762a1654 <WaitForMultipleObject=
sEx+363>, 0xd5339ce7, 0x9, 0xa0ca00, 0xa0c9e0, 0x24, 0x1, 0x0, 0x0, 0x0, 0x=
0, 0x0, 0x0, 0x0}
        wait_hnd =3D {0x0, 0x960138, 0x77ce1704 <ntdll!RtlDisableThreadProf=
iling+49>, 0x7752d2a7, 0x960000, 0x960000, 0x0, 0x960000, 0x0, 0x101f200 <p=
rocess_status_retrieved+20>, 0x88f0d0, 0x19ebd3, 0x88f1e8, 0x77c871d5 <ntdl=
l!AlpcMaxAllowedMessageLength+36229>, 0x19f333, 0xfffffffe, 0x77ce1704 <ntd=
ll!RtlDisableThreadProfiling+49>, 0x77c9ab9a <ntdll!AlpcMaxAllowedMessageLe=
ngth+116554>, 0x960000, 0x50000063, 0x77c4389a <ntdll!RtlReleasePebLock+937=
>, 0x7752d25b, 0x0, 0x960000, 0xa0c9e0, 0x0, 0x100f1c0 <unbind_to+353>, 0x0=
, 0x1000000, 0xa0c510, 0x0, 0x0}
#3  0x0101f203 in process_status_retrieved (desired=3D5412, have=3D-1, stat=
us=3D0x88f264) at process.c:6274
No locals.
#4  0x0101f2c6 in record_child_status_change (pid=3D-1, w=3D256) at process=
.c:6344
        deleted_pid =3D 5412
        all_pids_are_fixnums =3D false
        xpid =3D 21648
        record_at_most_one_child =3D true
        tail =3D 91890086
#5  0x0101f565 in handle_child_signal (sig=3D18) at process.c:6417
No locals.
#6  0x010e0d88 in deliver_process_signal (sig=3D18, handler=3D0x101f54b <ha=
ndle_child_signal>) at sysdep.c:1580
        old_errno =3D 0
        on_main_thread =3D true
#7  0x0101f580 in deliver_child_signal (sig=3D18) at process.c:6423
No locals.
#8  0x01023c25 in sys_select (nfds=3D7, rfds=3D0x88f6b4, wfds=3D0x0, efds=
=3D0x0, timeout=3D0x88f6a4, ignored=3D0x0) at w32proc.c:1991
        orfds =3D {
          bits =3D {121, 0}
        }
        timeout_ms =3D 347
        start_time =3D 5965431
        i =3D 7
        nh =3D 6
        nc =3D 2
        nr =3D 1
        active =3D 6
        cp =3D 0x144ab28
        cps =3D {0x144ab28, 0x144aa78, 0x6f1, 0x31975000, 0x0, 0x14aeccc0, =
0x0, 0x3627ba0 <__register_frame_info+56785824>, 0x7, 0x1, 0x88f5f8, 0x102f=
1f7 <gobble_input+294>, 0x3620440 <__register_frame_info+56755264>, 0x88f5b=
4, 0x24, 0x16, 0xa037a00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55=
9aee5, 0x0, 0x0, 0x0, 0x0, 0x0}
        wait_hnd =3D {0x1e8, 0x1e4, 0x340, 0x3914, 0x56a0, 0x5718, 0x5728, =
0x3934, 0x7, 0x1, 0x88f458, 0x11d8919 <get_next_msg+550>, 0x144df80, 0xa0c5=
18, 0x30, 0x0, 0x606f6a0, 0x88f44c, 0x88f458, 0x102f60f <unblock_input+22>,=
 0x0, 0xd6beda33, 0x88f478, 0x0, 0x708, 0x0, 0x88f598, 0x11c3423 <w32_read_=
socket+5933>, 0x88f4f8, 0x0, 0xa7, 0x1040001 <choose_write_coding_system+49=
2>, 0x18, 0x330f81a <__register_frame_info+53540890>, 0x88f4a8, 0x0, 0x0, 0=
x0, 0x708, 0x0, 0x0, 0x88f510, 0x88f4d8, 0x102b51a <decode_timer+156>, 0x6f=
1, 0x31975000, 0xf5fc8600, 0x75c07193 <msvcrt!_itoa_s+1347>, 0xd6bedaa3, 0x=
0, 0x88f5c4, 0x7, 0x88f5c4, 0xd6bedab3, 0x88f4f8, 0x10584ce <gettimeofday+1=
7>, 0x708, 0x0, 0x88f518, 0x10acc6f <decode_time_components+543>, 0x708, 0x=
0, 0xa7, 0x1040001 <choose_write_coding_system+492>, 0x18, 0x330f81a <__reg=
ister_frame_info+53540890>, 0x88f528, 0x0, 0x0, 0x0, 0x708, 0x0, 0x0, 0x88f=
590, 0x88f558, 0x102b51a <decode_timer+156>, 0x6f1, 0x31975000, 0xf5fc8600,=
 0x31975000, 0x16, 0x6f1, 0x88f558, 0x10dffbc <EMACS_TIME_LT+38>, 0x0, 0x14=
aeccc0, 0x6f1, 0x31975000, 0x7, 0x1, 0x88f5e8, 0x102b85d <timer_check_2+828=
>, 0x0, 0x14aeccc0, 0x6f1, 0x144dee0}
        fdindex =3D {-1, 0, 3, 4, 5, 6, 10536216, 10536208, 16777216, 89750=
96, 2009737722, 8975208, 2009625045, 1697843, -2, 2009560091, 4, 9830400, 1=
342179425, 10536216, 8975356, 2009995313, 2001916123, 1975546259, -69213465=
3, 0, 8975460, 7, 8975460, -1245137027, 1975617770, -1245137027, 3148641, 1=
0000000, 0, 7, 64, 1975617787, 216613415, -1962461315, 30260544, 0, 8975056=
, 9830400, 8975368, 2009625045, 1698803, -2, 2009348250, 2009347218, 105362=
08, 10536216, 1, 64, 0, 1975546259, -692134525, 0, 8975588, 7, 8975588, -12=
45137027, 1975617770, -1245137027}
#9  0x0101cb6d in wait_reading_process_output (time_limit=3D28, nsecs=3D0, =
read_kbd=3D-1, do_display=3Dtrue, wait_for_cell=3D53540890, wait_proc=3D0x0=
, just_wait_proc=3D0) at process.c:4619
        timeout_reduced_for_timers =3D 1
        channel =3D 7
        nfds =3D 1
        Available =3D {
          bits =3D {64, 0}
        }
        Writeok =3D {
          bits =3D {0, 0}
        }
        check_write =3D 0
        check_delay =3D 2
        no_avail =3D 0
        xerrno =3D 0
        proc =3D 89392373
        timeout =3D {
          tv_sec =3D 0,=20
          tv_nsec =3D 347000000
        }
        end_time =3D {
          tv_sec =3D 1352331322,=20
          tv_nsec =3D 999000000
        }
        wait_channel =3D -1
        got_some_input =3D 1
        count =3D 2
#10 0x010a7636 in sit_for (timeout=3D112, reading=3Dtrue, display_option=3D=
1) at dispnew.c:5959
        sec =3D 28
        nsec =3D 0
        do_display =3D true
#11 0x01028d00 in read_char (commandflag=3D1, nmaps=3D8, maps=3D0x88f960, p=
rev_event=3D53540890, used_mouse_menu=3D0x88fa53, end_time=3D0x0) at keyboa=
rd.c:2668
        tem0 =3D 53540890
        timeout =3D 28
        delay_level =3D 4
        buffer_size =3D 1
        c =3D 53540890
        jmpcount =3D 2
        local_getcjmp =3D {8976632, 0, 0, 0, 8976268, 16943134, 8978372, 0,=
 0, 0, 0, 0, 0, 0, 0, 0}
        save_jump =3D {0 <repeats 16 times>}
        tem =3D 0
        save =3D 0
        previous_echo_area_message =3D 53540890
        also_record =3D 53540890
        reread =3D false
        gcpro1 =3D {
          next =3D 0x88f800,=20
          var =3D 0x3316762 <__register_frame_info+53569378>,=20
          nvars =3D 8976376
        }
        gcpro2 =3D {
          next =3D 0x332f81a <__register_frame_info+53671962>,=20
          var =3D 0x330f81a <__register_frame_info+53540890>,=20
          nvars =3D 53540890
        }
        polling_stopped_here =3D false
        orig_kboard =3D 0x3312580 <__register_frame_info+53552512>
#12 0x01032d8d in read_key_sequence (keybuf=3D0x88fbd0, bufsize=3D30, promp=
t=3D53540890, dont_downcase_last=3Dfalse, can_return_switch_frame=3Dtrue, f=
ix_current_buffer=3Dtrue) at keyboard.c:9223
        interrupted_kboard =3D 0x3312580 <__register_frame_info+53552512>
        interrupted_frame =3D 0x3627ba0 <__register_frame_info+56785824>
        key =3D 53540890
        used_mouse_menu =3D false
        echo_local_start =3D 0
        last_real_key_start =3D 0
        keys_local_start =3D 0
        local_first_binding =3D 0
        from_string =3D 53540890
        count =3D 2
        t =3D 0
        echo_start =3D 0
        keys_start =3D 0
        nmaps =3D 8
        nmaps_allocated =3D 8
        defs =3D 0x88f920
        submaps =3D 0x88f960
        orig_local_map =3D 81051542
        orig_keymap =3D 53540890
        localized_local_map =3D 0
        first_binding =3D 0
        first_unbound =3D 31
        mock_input =3D 0
        fkey =3D {
          parent =3D 56682582,=20
          map =3D 56682582,=20
          start =3D 0,=20
          end =3D 0
        }
        keytran =3D {
          parent =3D 53530310,=20
          map =3D 53530310,=20
          start =3D 0,=20
          end =3D 0
        }
        indec =3D {
          parent =3D 56682590,=20
          map =3D 56682590,=20
          start =3D 0,=20
          end =3D 0
        }
        shift_translated =3D false
        delayed_switch_frame =3D 53540890
        original_uppercase =3D 53644986
        original_uppercase_position =3D -1
        dummyflag =3D false
        starting_buffer =3D 0x5bb9000
        fake_prefixed_keys =3D 53540890
        gcpro1 =3D {
          next =3D 0x88faa8,=20
          var =3D 0x100572b <set_internal+945>,=20
          nvars =3D 20976012
        }
#13 0x01026b8b in command_loop_1 () at keyboard.c:1458
        cmd =3D 87713202
        keybuf =3D {440, 196, 432, 16839104, 53643434, 53540890, 20976092, =
53566976, 8977624, 8977628, 0, 53643434, 53540890, 0, 0, 16838655, 53643434=
, 53540890, 55233262, 19204973, 0, 53540890, 0, 53540890, 0, 0, 8977512, 16=
829676, 2, 55233262}
        i =3D 1
        prev_modiff =3D 15
        prev_buffer =3D 0x5b54c00
        already_adjusted =3D false
#14 0x0100bb6e in internal_condition_case (bfun=3D0x1026828 <command_loop_1=
>, handlers=3D53591450, hfun=3D0x10261f7 <cmd_error>) at eval.c:1288
        val =3D 55233262
        c =3D {
          tag =3D 53540890,=20
          val =3D 53540890,=20
          next =3D 0x88fd74,=20
          gcpro =3D 0x0,=20
          jmp =3D {8977720, 2130567168, 0, 0, 8977548, 16825115, 8978372, 0=
, 2, 2, 1975561736, 8977624, 8977704, 8977768, 1975570187, 8977704},=20
          backlist =3D 0x0,=20
          handlerlist =3D 0x0,=20
          lisp_eval_depth =3D 0,=20
          pdlcount =3D 2,=20
          poll_suppress_count =3D 0,=20
          interrupt_input_blocked =3D 0,=20
          byte_stack =3D 0x0
        }
        h =3D {
          handler =3D 53591450,=20
          var =3D 53540890,=20
          chosen_clause =3D 8977688,=20
          tag =3D 0x88fcc0,=20
          next =3D 0x0
        }
#15 0x010265a0 in command_loop_2 (ignore=3D53540890) at keyboard.c:1167
        val =3D 2130567168
#16 0x0100b6e5 in internal_catch (tag=3D53581306, func=3D0x102657c <command=
_loop_2>, arg=3D53540890) at eval.c:1059
        c =3D {
          tag =3D 53581306,=20
          val =3D 53540890,=20
          next =3D 0x0,=20
          gcpro =3D 0x0,=20
          jmp =3D {8977896, 2130567168, 0, 0, 8977756, 16824022, 8978372, 0=
, 53540890, 53566976, 11934152, 11929568, 2130567168, 8977896, 16798209, 21=
265788},=20
          backlist =3D 0x0,=20
          handlerlist =3D 0x0,=20
          lisp_eval_depth =3D 0,=20
          pdlcount =3D 2,=20
          poll_suppress_count =3D 0,=20
          interrupt_input_blocked =3D 0,=20
          byte_stack =3D 0x0
        }
#17 0x01026558 in command_loop () at keyboard.c:1146
No locals.
#18 0x01025e3c in recursive_edit_1 () at keyboard.c:778
        count =3D 1
        val =3D 1975493698
#19 0x01025f8d in Frecursive_edit () at keyboard.c:842
        count =3D 0
        buffer =3D 53540890
#20 0x01002827 in main (argc=3D2, argv=3D0xb62f10) at emacs.c:1564
        dummy =3D 8978152
        stack_bottom_variable =3D 0 '\000'
        do_initial_setlocale =3D true
        dumping =3D false
        skip_args =3D 0
        no_loadup =3D false
        junk =3D 0x0
        dname_arg =3D 0x0
        ch_to_dir =3D 0x0

(gdb) xbacktrace


In GNU Emacs 24.3.50.1 (i386-mingw-nt6.1.7601)
 of 2012-11-07 on 88RCB2S
Bzr revision: 104356 stevep <at> 127.0.0.1-20121107153831-o03lxl5sex5hbgre
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --with-gcc (4.7)'

Important settings:
  value of $LC_ALL: en_AU.UTF8
  value of $LANG: en_AU.UTF8
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

Major mode: Org

Minor modes in effect:
  flyspell-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  semantic-mode: t
  minibuffer-depth-indicate-mode: t
  show-paren-mode: t
  ido-everywhere: t
  global-whitespace-mode: t
  global-ede-mode: t
  ede-minor-mode: t
  display-time-mode: t
  cua-mode: t
  auto-insert-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: org-auto-fill-function
  transient-mark-mode: t

Recent input:
<help-echo> M-x e m a c s SPC r e p o r t <tab> <backspace>=20
<backspace> <backspace> <backspace> <backspace> <backspace>=20
<backspace> <backspace> <backspace> <backspace> <backspace>=20
<backspace> <backspace> <backspace> r e p o r t SPC=20
e m <tab> b <tab> <return>

Recent messages:
Loading whitespace...done
Loading gnus...done
Loading ido...done
Loading avoid...done
Loading paren...done
Loading vc-git...done
Loading c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/.customize...done
End of=20
Starting new Ispell process [c:/cygwin/bin/aspell.exe::default] ...
delete-backward-char: Text is read-only [2 times]

Load-path shadows:
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-xoxo hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-xoxo
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-wl hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-wl
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-w3m hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-w3m
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-vm hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-vm
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-version hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-ver=
sion
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-timer hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-timer
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-taskjuggler hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org=
-taskjuggler
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-table hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-table
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-src hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-src
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-special-blocks hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/=
org-special-blocks
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-rmail hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-rmail
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-remember hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-re=
member
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-publish hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-pub=
lish
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-protocol hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-pr=
otocol
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-plot hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-plot
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-pcomplete hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-p=
complete
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-odt hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-odt
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mouse hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-mouse
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mobile hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-mobi=
le
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mks hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-mks
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mhe hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-mhe
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mew hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-mew
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-macs hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-macs
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-mac-message hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org=
-mac-message
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-lparse hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-lpar=
se
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-loaddefs hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-lo=
addefs
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-list hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-list
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-latex hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-latex
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-jsinfo hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-jsin=
fo
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-irc hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-irc
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-install hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-ins=
tall
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-inlinetask hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-=
inlinetask
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-info hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-info
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-indent hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-inde=
nt
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-id hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-id
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-icalendar hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-i=
calendar
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-html hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-html
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-habit hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-habit
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-gnus hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-gnus
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-freemind hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-fr=
eemind
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-footnote hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-fo=
otnote
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-feed hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-feed
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-faces hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-faces
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-exp hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-exp
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-exp-blocks hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-=
exp-blocks
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-eshell hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-eshe=
ll
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-entities hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-en=
tities
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-element hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-ele=
ment
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-docview hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-doc=
view
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-docbook hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-doc=
book
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-datetree hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-da=
tetree
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-ctags hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-ctags
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-crypt hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-crypt
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-compat hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-comp=
at
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-colview hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-col=
view
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-clock hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-clock
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-capture hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-cap=
ture
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-bibtex hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-bibt=
ex
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-beamer hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-beam=
er
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-bbdb hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-bbdb
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-attach hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-atta=
ch
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-ascii hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-ascii
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-archive hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-arc=
hive
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/org-agenda hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/org-agen=
da
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-tangle hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-tangle
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-table hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-table
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-sqlite hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-sqlite
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-sql hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-sql
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-shen hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-shen
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-sh hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-sh
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-screen hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-screen
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-scheme hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-scheme
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-scala hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-scala
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-sass hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-sass
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-ruby hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-ruby
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-ref hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-ref
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-R hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-R
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-python hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-python
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-plantuml hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-plan=
tuml
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-picolisp hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-pico=
lisp
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-perl hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-perl
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-org hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-org
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-octave hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-octave
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-ocaml hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-ocaml
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-mscgen hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-mscgen
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-maxima hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-maxima
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-matlab hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-matlab
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-lob hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-lob
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-lisp hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-lisp
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-lilypond hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-lily=
pond
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-ledger hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-ledger
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-latex hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-latex
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-keys hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-keys
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-js hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-js
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-java hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-java
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-io hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-io
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-haskell hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-haske=
ll
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-gnuplot hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-gnupl=
ot
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-fortran hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-fortr=
an
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-exp hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-exp
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-eval hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-eval
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-emacs-lisp hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-em=
acs-lisp
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-dot hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-dot
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-ditaa hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-ditaa
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-css hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-css
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-comint hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-comint
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-clojure hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-cloju=
re
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-calc hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-calc
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-C hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-C
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-awk hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-awk
c:/Users/stevep/AppData/Roaming/cygwin/.emacs.d/elpa/org-plus-contrib-20121=
029/ob-asymptote hides c:/mirror/bzr.sv.gnu.org/emacs/MinGW/lisp/org/ob-asy=
mptote
c:/gnu/share/emacs/site-lisp/el-get/.dir-locals hides c:/mirror/bzr.sv.gnu.=
org/emacs/MinGW/lisp/gnus/.dir-locals

Features:
(shadow sort mail-extr gnus-msg gnus-art mm-uu mml2015 epg-config
mm-view mml-smime smime password-cache mailcap emacsbug sendmail
thingatpt flyspell ispell org-wl org-w3m org-vm org-rmail org-mhe
org-mew org-irc org-jsinfo org-infojs org-html org-exp ob-exp
org-exp-blocks org-agenda org-info org-gnus org-docview org-bibtex
bibtex org-bbdb org derived ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-keys org-pcomplete pcomplete org-list org-faces
org-entities noutline outline easy-mmode org-version ob-emacs-lisp
ob-comint comint ansi-color ring ob org-compat org-macs ob-eval
org-loaddefs find-func cal-menu calendar cal-loaddefs gnus-sum nnoo
gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int
gnus-range message format-spec rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus-win undo-tree diff tempbuf w3m browse-url
doc-view jka-compr image-mode timezone w3m-hist w3m-fb bookmark-w3m
w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util w3m-load
semantic/db-mode semantic/db semantic/idle semantic/format
semantic/tag-ls semantic/find semantic/ctxt semantic/util-modes
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
hamster-mode rexx-mode generic-x ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff boxquote rect
auctex-autoloads tex-site back-button-autoloads
browse-kill-ring-autoloads crontab-mode-autoloads edit-list-autoloads
guru-mode-autoloads httpcode-autoloads ido-ubiquitous-autoloads
log4j-mode-autoloads markdown-mode+-autoloads markdown-mode-autoloads
memory-usage-autoloads nav-flash-autoloads num3-mode-autoloads
org-plus-contrib-autoloads info powershell-autoloads
powershell-mode-autoloads rw-language-and-country-codes-autoloads
s-autoloads smartrep-autoloads tea-time-autoloads ucs-utils-autoloads
persistent-soft-autoloads list-utils-autoloads cl-macs cl cl-lib
pcache-autoloads finder-inf undo-tree-autoloads package skeleton view
wdired DiredSortBySizeAndExtension dired-aux dired-x dired edmacro
kmacro windmove dig net-utils proced mb-depth server vc-git ede/cpp-root
ede/emacs midnight saveplace uniquify warnings advice help-fns
advice-preload paren avoid ido gnus gnus-ems nnheader gnus-util
mail-utils mm-util mail-prsvr whitespace ede/speedbar ede/files ede
loaddefs ede/base gv ede/auto ede/source eieio-base eieio-speedbar
speedbar sb-image ezimage dframe easymenu eieio-custom wid-edit eieio
byte-opt bytecomp byte-compile cconv cedet time cua-base autoinsert
cus-start cus-load time-date tooltip ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-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 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 w32 multi-tty
emacs)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Thu, 08 Nov 2012 03:48:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Thu, 08 Nov 2012 05:46:49 +0200
> Date: Wed, 07 Nov 2012 23:47:27 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> 
> While reading mail in gnus I got an emacs abort.  The gdb session is
> stull live.
> 
> (gdb) bt full
> 
> #0  0x762a321a in KERNELBASE!DeleteAce () from C:\Windows\syswow64\KernelBa=
> se.dll
> No symbol table info available.
> #1  0x010edcba in emacs_abort () at w32fns.c:7739
>         button = 6
> #2  0x010229c9 in sys_wait (status=0x88f264) at w32proc.c:1128
>         active = 0
>         retval = 256
>         nh = 0
>         pid = 3744
>         cp = 0x144ab28

Can you show the values of dead_child's members?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Thu, 08 Nov 2012 15:49:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Thu, 08 Nov 2012 15:48:54 +0000
(gdb) p *dead_child
$2 = {
  fd = 6,
  pid = 3744,
  char_avail = 0x5718,
  char_consumed = 0x571c,
  thrd = 0x5720,
  hwnd = 0x0,
  procinfo = {
    hProcess = 0x0,
    hThread = 0x0,
    dwProcessId = 3744,
    dwThreadId = 3964
  },
  status = 2,
  chr = 42 '*',
  ovl_read = {
    Internal = 0,
    InternalHigh = 0,
    {
      {
        Offset = 0,
        OffsetHigh = 0
      },
      Pointer = 0x0
    },
    hEvent = 0x0
  },
  ovl_write = {
    Internal = 0,
    InternalHigh = 0,
    {
      {
        Offset = 0,
        OffsetHigh = 0
      },
      Pointer = 0x0
    },
    hEvent = 0x0
  }
}




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Fri, 09 Nov 2012 09:42:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Fri, 09 Nov 2012 11:41:33 +0200
> Date: Thu, 08 Nov 2012 15:48:54 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> 
> (gdb) p *dead_child
> $2 = {
>   fd = 6,
>   pid = 3744,
>   char_avail = 0x5718,
>   char_consumed = 0x571c,
>   thrd = 0x5720,
>   hwnd = 0x0,
>   procinfo = {
>     hProcess = 0x0,
>     hThread = 0x0,
>     dwProcessId = 3744,
>     dwThreadId = 3964
>   },
>   status = 2,

It looks like Emacs was trying to reap a wrong process.  dead_child
says its PID is 3744, but record_child_status_change, up above it in
the call stack, thinks its PID was 5412:

> #4  0x0101f2c6 in record_child_status_change (pid=-1, w=256) at process.c:6344
>         deleted_pid = 5412
>         all_pids_are_fixnums = false
>         xpid = 21648
>         record_at_most_one_child = true
>         tail = 91890086

If that GDB session is still active, can you show the entire list in
deleted_pid_list?  The 'pp' command should be able to display it in a
human-readable format.

Did this problem happen again since the original report?  If it does
happen from time to time, I might ask you to run Emacs under GDB with
a couple of breakpoints in strategic places, because usually when
dead_child's handle is NULL, it is too late: the evidence of the crime
is already forgotten.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Fri, 09 Nov 2012 19:00:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: 12829 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Fri, 09 Nov 2012 18:59:43 +0000
> Did this problem happen again since the original report?  If it does
> happen from time to time, I might ask you to run Emacs under GDB
> with a couple of breakpoints in strategic places, because usually
> when dead_child's handle is NULL, it is too late: the evidence of
> the crime is already forgotten.

Sure. It happens frequently but not always.

> If that GDB session is still active, can you show the entire list in
> deleted_pid_list?  The 'pp' command should be able to display it in
> a human-readable format.

(gdb) pp deleted_pid_list
(5144 5412)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Fri, 09 Nov 2012 19:39:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Fri, 09 Nov 2012 21:38:08 +0200
> Date: Fri, 09 Nov 2012 18:59:43 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> 
> > Did this problem happen again since the original report?  If it does
> > happen from time to time, I might ask you to run Emacs under GDB
> > with a couple of breakpoints in strategic places, because usually
> > when dead_child's handle is NULL, it is too late: the evidence of
> > the crime is already forgotten.
> 
> Sure. It happens frequently but not always.

OK.  There;s only 1 place where the handle of the process is set to
NULL.  Here:

  static void
  reap_subprocess (child_process *cp)
  {
    if (cp->procinfo.hProcess)
      {
	/* Reap the process */
  #ifdef FULL_DEBUG
	/* Process should have already died before we are called.  */
	if (WaitForSingleObject (cp->procinfo.hProcess, 0) != WAIT_OBJECT_0)
	  DebPrint (("reap_subprocess: child fpr fd %d has not died yet!", cp->fd));
  #endif
	CloseHandle (cp->procinfo.hProcess);   <<<<<<<<<<<<<<<<<<<<<<<
	cp->procinfo.hProcess = NULL;

(One other place is when the process is launched, but I don't think
this is our case.)

So please put a breakpoint on this line, like this:

  (gdb) break w32proc.c:1096
  (gdb) commands
  > bt 6
  > p cp->pid
  > continue
  > end

In addition, please put a breakpoint here:

  static bool
  process_status_retrieved (pid_t desired, pid_t have, int *status)
  {
    if (have < 0)
      {
	/* Invoke waitpid only with a known process ID; do not invoke
	   waitpid with a nonpositive argument.  Otherwise, Emacs might
	   reap an unwanted process by mistake.  For example, invoking
	   waitpid (-1, ...) can mess up glib by reaping glib's subprocesses,
	   so that another thread running glib won't find them.  */
	do
	  have = waitpid (desired, status, WNOHANG | WUNTRACED);
	while (have < 0 && errno == EINTR);
      }

    return have == desired;  <<<<<<<<<<<<<<<<<<<<<<<<<<
  }

Like this:

  (gdb) process.c:6278 if have != desired
  (gdb) commands
  > p have
  > p desired
  > p status
  > continue
  > end

Then run Emacs as you normally would, and tell if these breakpoints
ever break, and if so, what do you see there.  The breakpoint commands
arrange for GDB to continue Emacs after it reports the values as
specified in the breakpoint commands.

Thanks.

> > If that GDB session is still active, can you show the entire list in
> > deleted_pid_list?  The 'pp' command should be able to display it in
> > a human-readable format.
> 
> (gdb) pp deleted_pid_list
> (5144 5412)

Interesting.  I need to think...




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Fri, 09 Nov 2012 20:17:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Fri, 09 Nov 2012 20:16:36 +0000
Ok this breakpoint 4 seems to have triggered just before the crash

(gdb) break process.c:6278 if have != desired
Breakpoint 4 at 0x101f310: file process.c, line 6278.
(gdb) commands
Type commands for breakpoint(s) 4, one per line.
End with a line saying just "end".
>p have
>p desired
>p status
>continue
>end


[New Thread 2900.0x1b98]

Breakpoint 3, reap_subprocess (cp=0x144aa98) at w32proc.c:1096
1096          cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aa98) at w32proc.c:1096
#1  0x01022d1b in sys_wait (status=0x0) at w32proc.c:1233
#2  0x010e03ab in wait_for_termination_1 (pid=8004, interruptible=0) at
sysdep.c:293
#3  0x010e03c7 in wait_for_termination (pid=8004) at sysdep.c:321
#4  0x0108a3a5 in Fcall_process (nargs=7, args=0x88b7c4) at callproc.c:854
#5  0x0100e1e9 in Ffuncall (nargs=8, args=0x88b7c0) at eval.c:2755

Lisp Backtrace:
"call-process" (0x88b7c4)
"apply" (0x88b908)
"process-file" (0x88bc24)
"apply" (0x88bd74)
"vc-git--call" (0x88c088)
"vc-git--empty-db-p" (0x88c3b0)
"vc-git-state" (0x88c7cc)
"apply" (0x88c7c8)
"vc-call-backend" (0x88cac8)
"vc-default-state-heuristic" (0x88ceec)
"apply" (0x88cee8)
"vc-call-backend" (0x88d1f4)
"vc-state-refresh" (0x88d508)
"vc-state" (0x88d808)
"vc-default-mode-line-string" (0x88db30)
"vc-git-mode-line-string" (0x88df4c)
"apply" (0x88df48)
"vc-call-backend" (0x88e248)
"vc-mode-line" (0x88e568)
"vc-find-file-hook" (0x88e8fc)
"run-hooks" (0x88e9c8)
"after-find-file" (0x88ece8)
"find-file-noselect-1" (0x88efe8)
"find-file-noselect" (0x88f30c)
"view-file" (0x88f60c)
"dired-view-file" (0x88f924)
"call-interactively" (0x88fb34)
$25 = 8004
[New Thread 2900.0x1268]
[New Thread 2900.0x7dc]
[New Thread 2900.0x63c]
[New Thread 2900.0x17a0]
[New Thread 2900.0x820]
[New Thread 2900.0xb4c]
[New Thread 2900.0x220]
[New Thread 2900.0x8b8]

Breakpoint 3, reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
1096          cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
#1  0x01022d26 in sys_wait (status=0x88f264) at w32proc.c:1236
#2  0x0101f2fb in process_status_retrieved (desired=8032, have=-1,
status=0x88f264) at process.c:6274
#3  0x0101f3be in record_child_status_change (pid=-1, w=256) at
process.c:6344
#4  0x0101f65d in handle_child_signal (sig=18) at process.c:6417
#5  0x010e0f64 in deliver_process_signal (sig=18, handler=0x101f643
<handle_child_signal>) at sysdep.c:1580
$26 = 7176

Breakpoint 4, process_status_retrieved (desired=8032, have=7176,
status=0x88f264) at process.c:6278
6278      return have == desired;
$27 = 7176
$28 = 8032
$29 = (int *) 0x88f264

Program received signal SIGTRAP, Trace/breakpoint trap.
0x762a321a in KERNELBASE!DeleteAce () from
C:\Windows\syswow64\KernelBase.dll
(gdb)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 08:28:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>,
	Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 10:27:10 +0200
> Date: Fri, 09 Nov 2012 20:16:36 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> CC: 12829 <at> debbugs.gnu.org
> 
> Ok this breakpoint 4 seems to have triggered just before the crash
> 
> (gdb) break process.c:6278 if have != desired
> Breakpoint 4 at 0x101f310: file process.c, line 6278.
> (gdb) commands
> Type commands for breakpoint(s) 4, one per line.
> End with a line saying just "end".
> >p have
> >p desired
> >p status
> >continue
> >end

Thanks, that figures.  Basically, the modified code that handles
demise of child processes is incompatible with the emulated 'wait'
function, because it does not support waiting for a process by its
PID.  I think we will have to rewrite 'sys_wait' to emulate 'waitpid',
although I'll try first to come up with a simpler band-aid.

Paul, are there other supported platforms that use 'wait' here?  If
there are, they are in danger of the same problem, because the new
record_child_status_change assumes 'waitpid' functionality with the
first argument non-negative.

> Breakpoint 3, reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
> 1096          cp->procinfo.hProcess = NULL;
> #0  reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
> #1  0x01022d26 in sys_wait (status=0x88f264) at w32proc.c:1236
> #2  0x0101f2fb in process_status_retrieved (desired=8032, have=-1,
> status=0x88f264) at process.c:6274
> #3  0x0101f3be in record_child_status_change (pid=-1, w=256) at
> process.c:6344
> #4  0x0101f65d in handle_child_signal (sig=18) at process.c:6417
> #5  0x010e0f64 in deliver_process_signal (sig=18, handler=0x101f643
> <handle_child_signal>) at sysdep.c:1580
> $26 = 7176
> 
> Breakpoint 4, process_status_retrieved (desired=8032, have=7176,
> status=0x88f264) at process.c:6278
> 6278      return have == desired;
> $27 = 7176
> $28 = 8032
> $29 = (int *) 0x88f264

Just so my understanding of the exact scenario is better, could you
please add "bt 10" to the commands of breakpoint 4, the one set in
process_status_retrieved, and again post the full transcript of the
GDB session leading to the crash?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 14:58:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: stephen_powell <at> optusnet.com.au
Cc: eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 16:56:47 +0200
> Date: Sat, 10 Nov 2012 10:27:10 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 12829 <at> debbugs.gnu.org
> 
> Thanks, that figures.  Basically, the modified code that handles
> demise of child processes is incompatible with the emulated 'wait'
> function, because it does not support waiting for a process by its
> PID.  I think we will have to rewrite 'sys_wait' to emulate 'waitpid',
> although I'll try first to come up with a simpler band-aid.

I'd still like to have the details as requested here (with the current
trunk code):

> Just so my understanding of the exact scenario is better, could you
> please add "bt 10" to the commands of breakpoint 4, the one set in
> process_status_retrieved, and again post the full transcript of the
> GDB session leading to the crash?

However in the meantime, I came up with the changes below, which seem
to work in my limited testing, and should fix the fundamental problem
that caused your crashes.  Could you please try these changes for a
while, and see if they give good results?  (You will have to re-run
configure.bat before compiling.)  If they do, I will then commit this
to the trunk.  TIA.

=== modified file 'nt/config.nt'
--- nt/config.nt	2012-11-05 14:30:32 +0000
+++ nt/config.nt	2012-11-10 12:02:26 +0000
@@ -959,7 +959,7 @@ along with GNU Emacs.  If not, see <http
 #undef HAVE_SYS_VLIMIT_H
 
 /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
+#define HAVE_SYS_WAIT_H 1
 
 /* Define to 1 if you have the <term.h> header file. */
 #undef HAVE_TERM_H

=== modified file 'nt/inc/ms-w32.h'
--- nt/inc/ms-w32.h	2012-10-19 19:25:18 +0000
+++ nt/inc/ms-w32.h	2012-11-10 12:06:16 +0000
@@ -185,15 +185,12 @@ extern char *getenv ();
 
 /* Subprocess calls that are emulated.  */
 #define spawnve sys_spawnve
-#define wait    sys_wait
 #define kill    sys_kill
 #define signal  sys_signal
 
 /* Internal signals.  */
 #define emacs_raise(sig) emacs_abort()
 
-extern int sys_wait (int *);
-
 /* termcap.c calls that are emulated.  */
 #define tputs   sys_tputs
 #define tgetstr sys_tgetstr

=== added file 'nt/inc/sys/wait.h'
--- nt/inc/sys/wait.h	1970-01-01 00:00:00 +0000
+++ nt/inc/sys/wait.h	2012-11-10 12:05:45 +0000
@@ -0,0 +1,33 @@
+/* A limited emulation of sys/wait.h on Posix systems.
+
+Copyright (C) 2012  Free Software Foundation, Inc.
+
+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/>.  */
+
+#ifndef INC_SYS_WAIT_H_
+#define INC_SYS_WAIT_H_
+
+#define WNOHANG    1
+#define WUNTRACED  2
+#define WSTOPPED   2	/* same as WUNTRACED */
+#define WEXITED    4
+#define WCONTINUED 8
+
+/* The various WIF* macros are defined in src/syswait.h.  */
+
+extern pid_t waitpid (pid_t, int *, int);
+
+#endif	/* INC_SYS_WAIT_H_ */

=== modified file 'src/sysdep.c'
--- src/sysdep.c	2012-11-05 03:18:32 +0000
+++ src/sysdep.c	2012-11-10 13:58:31 +0000
@@ -290,7 +290,7 @@ wait_for_termination_1 (pid_t pid, int i
   while (1)
     {
 #ifdef WINDOWSNT
-      wait (0);
+      waitpid (pid, NULL, 0);
       break;
 #else /* not WINDOWSNT */
       int status;

=== modified file 'src/w32proc.c'
--- src/w32proc.c	2012-11-05 03:18:32 +0000
+++ src/w32proc.c	2012-11-10 14:04:54 +0000
@@ -775,7 +775,6 @@ alarm (int seconds)
 /* Child process management list.  */
 int child_proc_count = 0;
 child_process child_procs[ MAX_CHILDREN ];
-child_process *dead_child = NULL;
 
 static DWORD WINAPI reader_thread (void *arg);
 
@@ -1028,9 +1027,6 @@ create_child (char *exe, char *cmdline, 
   if (cp->pid < 0)
     cp->pid = -cp->pid;
 
-  /* pid must fit in a Lisp_Int */
-  cp->pid = cp->pid & INTMASK;
-
   *pPid = cp->pid;
 
   return TRUE;
@@ -1106,55 +1102,110 @@ reap_subprocess (child_process *cp)
     delete_child (cp);
 }
 
-/* Wait for any of our existing child processes to die
-   When it does, close its handle
-   Return the pid and fill in the status if non-NULL.  */
+/* Wait for a child process specified by PID, or for any of our
+   existing child processes (if PID is nonpositive) to die.  When it
+   does, close its handle.  Return the pid of the process that died
+   and fill in STATUS if non-NULL.  */
 
-int
-sys_wait (int *status)
+pid_t
+waitpid (pid_t pid, int *status, int options)
 {
   DWORD active, retval;
   int nh;
-  int pid;
   child_process *cp, *cps[MAX_CHILDREN];
   HANDLE wait_hnd[MAX_CHILDREN];
+  DWORD timeout_ms;
+  int dont_wait = (options & WNOHANG) != 0;
 
   nh = 0;
-  if (dead_child != NULL)
+  /* According to Posix:
+
+     PID = -1 means status is requested for any child process.
+
+     PID > 0 means status is requested for a single child process
+     whose pid is PID.
+
+     PID = 0 means status is requested for any child process whose
+     process group ID is equal to that of the calling process.  But
+     since Windows has only a limited support for process groups (only
+     for console processes and only for the purposes of passing
+     Ctrl-BREAK signal to them), and since we have no documented way
+     of determining whether a given process belongs to our group, we
+     treat 0 as -1.
+
+     PID < -1 means status is requested for any child process whose
+     process group ID is equal to the absolute value of PID.  Again,
+     since we don't support process groups, we treat that as -1.  */
+  if (pid > 0)
     {
-      /* We want to wait for a specific child */
-      wait_hnd[nh] = dead_child->procinfo.hProcess;
-      cps[nh] = dead_child;
-      if (!wait_hnd[nh]) emacs_abort ();
-      nh++;
-      active = 0;
-      goto get_result;
+      int our_child = 0;
+
+      /* We are requested to wait for a specific child.  */
+      for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--)
+	{
+	  /* Some child_procs might be sockets; ignore them.  Also
+	     ignore subprocesses whose output is not yet completely
+	     read.  */
+	  if (CHILD_ACTIVE (cp)
+	      && cp->procinfo.hProcess
+	      && cp->pid == pid)
+	    {
+	      our_child = 1;
+	      break;
+	    }
+	}
+      if (our_child)
+	{
+	  if (cp->fd < 0 || (fd_info[cp->fd].flags & FILE_AT_EOF) != 0)
+	    {
+	      wait_hnd[nh] = cp->procinfo.hProcess;
+	      cps[nh] = cp;
+	      nh++;
+	    }
+	  else if (dont_wait)
+	    {
+	      /* PID specifies our subprocess, but its status is not
+		 yet available.  */
+	      return 0;
+	    }
+	}
+      if (nh == 0)
+	{
+	  /* No such child process, or nothing to wait for, so fail.  */
+	  errno = ECHILD;
+	  return -1;
+	}
     }
   else
     {
       for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--)
-	/* some child_procs might be sockets; ignore them */
-	if (CHILD_ACTIVE (cp) && cp->procinfo.hProcess
-	    && (cp->fd < 0 || (fd_info[cp->fd].flags & FILE_AT_EOF) != 0))
-	  {
-	    wait_hnd[nh] = cp->procinfo.hProcess;
-	    cps[nh] = cp;
-	    nh++;
-	  }
+	{
+	  if (CHILD_ACTIVE (cp)
+	      && cp->procinfo.hProcess
+	      && (cp->fd < 0 || (fd_info[cp->fd].flags & FILE_AT_EOF) != 0))
+	    {
+	      wait_hnd[nh] = cp->procinfo.hProcess;
+	      cps[nh] = cp;
+	      nh++;
+	    }
+	}
+      if (nh == 0)
+	{
+	  /* Nothing to wait on, so fail.  */
+	  errno = ECHILD;
+	  return -1;
+	}
     }
 
-  if (nh == 0)
-    {
-      /* Nothing to wait on, so fail */
-      errno = ECHILD;
-      return -1;
-    }
+  if (dont_wait)
+    timeout_ms = 0;
+  else
+    timeout_ms = 1000;	/* check for quit about once a second. */
 
   do
     {
-      /* Check for quit about once a second. */
       QUIT;
-      active = WaitForMultipleObjects (nh, wait_hnd, FALSE, 1000);
+      active = WaitForMultipleObjects (nh, wait_hnd, FALSE, timeout_ms);
     } while (active == WAIT_TIMEOUT);
 
   if (active == WAIT_FAILED)
@@ -1184,8 +1235,10 @@ get_result:
     }
   if (retval == STILL_ACTIVE)
     {
-      /* Should never happen */
+      /* Should never happen.  */
       DebPrint (("Wait.WaitForMultipleObjects returned an active process\n"));
+      if (pid > 0 && dont_wait)
+	return 0;
       errno = EINVAL;
       return -1;
     }
@@ -1199,6 +1252,8 @@ get_result:
   else
     retval <<= 8;
 
+  if (pid > 0 && active != 0)
+    emacs_abort ();
   cp = cps[active];
   pid = cp->pid;
 #ifdef FULL_DEBUG
@@ -1987,9 +2042,7 @@ count_children:
 	      DebPrint (("select calling SIGCHLD handler for pid %d\n",
 			 cp->pid));
 #endif
-	      dead_child = cp;
 	      sig_handlers[SIGCHLD] (SIGCHLD);
-	      dead_child = NULL;
 	    }
 	}
       else if (fdindex[active] == -1)





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 15:46:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: Eli Zaretskii <eliz <at> gnu.org>, eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 15:45:43 +0000
Start emacs, `M-x gnus', `RET' to select the first group, and then `SPC'
and `n' to page through messages.  Read about 20 before the crash.


[New Thread 5588.0x1f10]

Breakpoint 3, reap_subprocess (cp=0x144aa98) at w32proc.c:1096
1096	      cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aa98) at w32proc.c:1096
#1  0x01022d1b in sys_wait (status=0x0) at w32proc.c:1233
#2  0x010e03ab in wait_for_termination_1 (pid=8148, interruptible=0) at
sysdep.c:293
#3  0x010e03c7 in wait_for_termination (pid=8148) at sysdep.c:321
#4  0x0108a3a5 in Fcall_process (nargs=5, args=0x88a160) at callproc.c:854
#5  0x0100d0d1 in eval_sub (form=93146150) at eval.c:2111

Lisp Backtrace:
"call-process" (0x88a160)
"eq" (0x88a324)
"condition-case" (0x88a504)
"and" (0x88a634)
"eval" (0x88a7b0)
"custom-initialize-reset" (0x88aac8)
"custom-declare-variable" (0x88adc8)
"byte-code" (0x88b05c)
"require" (0x88b808)
"byte-code" (0x88ba8c)
"require" (0x88c248)
"byte-code" (0x88c4dc)
"require" (0x88cc88)
"byte-code" (0x88cf3c)
"require" (0x88d6e8)
"byte-code" (0x88d96c)
"require" (0x88e128)
"byte-code" (0x88e3ac)
"gnus-agentize" (0x88eb28)
"gnus-1" (0x88ee48)
"gnus" (0x88f1c4)
"call-interactively" (0x88f404)
"command-execute" (0x88f568)
"execute-extended-command" (0x88f864)
"call-interactively" (0x88fb34)
$19 = 8148
[New Thread 5588.0x15c8]

Breakpoint 3, reap_subprocess (cp=0x144aa98) at w32proc.c:1096
1096	      cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aa98) at w32proc.c:1096
#1  0x01022d1b in sys_wait (status=0x0) at w32proc.c:1233
#2  0x010e03ab in wait_for_termination_1 (pid=6076, interruptible=0) at
sysdep.c:293
#3  0x010e03c7 in wait_for_termination (pid=6076) at sysdep.c:321
#4  0x0108a3a5 in Fcall_process (nargs=6, args=0x88a444) at callproc.c:854
#5  0x0100e1e9 in Ffuncall (nargs=7, args=0x88a440) at eval.c:2755

Lisp Backtrace:
"call-process" (0x88a444)
"apply" (0x88a588)
"epg-configuration" (0x88a8ac)
"byte-code" (0x88ab0c)
"byte-code" (0x88af0c)
"defvar" (0x88b0a4)
"require" (0x88b808)
"byte-code" (0x88ba8c)
"require" (0x88c248)
"byte-code" (0x88c4dc)
"require" (0x88cc88)
"byte-code" (0x88cf3c)
"require" (0x88d6e8)
"byte-code" (0x88d96c)
"require" (0x88e128)
"byte-code" (0x88e3ac)
"gnus-agentize" (0x88eb28)
"gnus-1" (0x88ee48)
"gnus" (0x88f1c4)
"call-interactively" (0x88f404)
"command-execute" (0x88f568)
"execute-extended-command" (0x88f864)
"call-interactively" (0x88fb34)
$20 = 6076
[New Thread 5588.0xa54]

Breakpoint 3, reap_subprocess (cp=0x144aa98) at w32proc.c:1096
1096	      cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aa98) at w32proc.c:1096
#1  0x01022d1b in sys_wait (status=0x0) at w32proc.c:1233
#2  0x010e03ab in wait_for_termination_1 (pid=7660, interruptible=0) at
sysdep.c:293
#3  0x010e03c7 in wait_for_termination (pid=7660) at sysdep.c:321
#4  0x0108a3a5 in Fcall_process (nargs=6, args=0x88ac04) at callproc.c:854
#5  0x0100e1e9 in Ffuncall (nargs=7, args=0x88ac00) at eval.c:2755

Lisp Backtrace:
"call-process" (0x88ac04)
"apply" (0x88ad48)
"process-file" (0x88b068)
"shell-command-to-string" (0x88b2c0)
"string-match" (0x88b4f4)
"and" (0x88b624)
"condition-case" (0x88b804)
"if" (0x88b964)
"and" (0x88ba94)
"eval" (0x88bc10)
"custom-initialize-reset" (0x88bf28)
"custom-declare-variable" (0x88c228)
"byte-code" (0x88c4dc)
"require" (0x88cc88)
"byte-code" (0x88cf3c)
"require" (0x88d6e8)
"byte-code" (0x88d96c)
"require" (0x88e128)
"byte-code" (0x88e3ac)
"gnus-agentize" (0x88eb28)
"gnus-1" (0x88ee48)
"gnus" (0x88f1c4)
"call-interactively" (0x88f404)
"command-execute" (0x88f568)
"execute-extended-command" (0x88f864)
"call-interactively" (0x88fb34)
$21 = 7660
[New Thread 5588.0x1d80]
[New Thread 5588.0x1244]
[New Thread 5588.0x1d98]
[New Thread 5588.0x1d8c]
[New Thread 5588.0x6d0]

Breakpoint 3, reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
1096	      cp->procinfo.hProcess = NULL;
#0  reap_subprocess (cp=0x144aaf0) at w32proc.c:1096
#1  0x01022d26 in sys_wait (status=0x88f264) at w32proc.c:1236
#2  0x0101f2fb in process_status_retrieved (desired=5564, have=-1,
status=0x88f264) at process.c:6274
#3  0x0101f3be in record_child_status_change (pid=-1, w=256) at
process.c:6344
#4  0x0101f65d in handle_child_signal (sig=18) at process.c:6417
#5  0x010e0f64 in deliver_process_signal (sig=18, handler=0x101f643
<handle_child_signal>) at sysdep.c:1580
$22 = 820

Breakpoint 4, process_status_retrieved (desired=5564, have=820,
status=0x88f264) at process.c:6278
6278	  return have == desired;
#0  process_status_retrieved (desired=5564, have=820, status=0x88f264)
at process.c:6278
#1  0x0101f3be in record_child_status_change (pid=-1, w=256) at
process.c:6344
#2  0x0101f65d in handle_child_signal (sig=18) at process.c:6417
#3  0x010e0f64 in deliver_process_signal (sig=18, handler=0x101f643
<handle_child_signal>) at sysdep.c:1580
#4  0x0101f678 in deliver_child_signal (sig=18) at process.c:6423
#5  0x01023d1d in sys_select (nfds=6, rfds=0x88f6b4, wfds=0x0, efds=0x0,
timeout=0x88f6a4, ignored=0x0) at w32proc.c:1991
#6  0x0101cc65 in wait_reading_process_output (time_limit=28, nsecs=0,
read_kbd=-1, do_display=true, wait_for_cell=53553178,
    wait_proc=0x0, just_wait_proc=0) at process.c:4619
#7  0x010a786a in sit_for (timeout=112, reading=true, display_option=1)
at dispnew.c:5959
#8  0x01028df8 in read_char (commandflag=1, nmaps=8, maps=0x88f960,
prev_event=53553178, used_mouse_menu=0x88fa53, end_time=0x0)
    at keyboard.c:2668
#9  0x01032ea0 in read_key_sequence (keybuf=0x88fbd0, bufsize=30,
prompt=53553178, dont_downcase_last=false,
    can_return_switch_frame=true, fix_current_buffer=true) at
keyboard.c:9230
$23 = 820
$24 = 5564
$25 = (int *) 0x88f264

Program received signal SIGTRAP, Trace/breakpoint trap.
0x762a321a in KERNELBASE!DeleteAce () from
C:\Windows\syswow64\KernelBase.dll




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 16:11:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 18:09:51 +0200
> Date: Sat, 10 Nov 2012 15:45:43 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> 
> Start emacs, `M-x gnus', `RET' to select the first group, and then `SPC'
> and `n' to page through messages.  Read about 20 before the crash.

OK, thanks.  I think everything is clear now: this crash happens with
50% probability whenever there's more than one async subprocesses
monitored at the same time.

I think the changes I posted should fix that.  If not, let me know
what happens, and I will take it from there.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 18:04:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: eliz <at> gnu.org
Cc: eggert <at> cs.ucla.edu, stephen_powell <at> optusnet.com.au, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 18:03:16 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

> I think the changes I posted should fix that.

Patch applied. I have been reading mail for an hour with the patched
version and no crashes.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 18:36:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 20:34:56 +0200
> Date: Sat, 10 Nov 2012 18:03:16 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> CC: stephen_powell <at> optusnet.com.au, eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
> 
> Patch applied. I have been reading mail for an hour with the patched
> version and no crashes.

Thanks, this is good news.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 10 Nov 2012 21:45:01 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Stephen Powell <stephen_powell <at> optusnet.com.au>, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 10 Nov 2012 13:44:36 -0800
On 11/10/2012 12:27 AM, Eli Zaretskii wrote:
> Paul, are there other supported platforms that use 'wait' here?

No, waitpid is required by POSIX.1-1988 and has
been present on all GNUish and POSIXish platform
versions released since ~1990.  Nowadays we can
safely assume that waitpid is on every supported
platform other than bare Microsoft platforms
such as MSVC and mingw.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sun, 11 Nov 2012 03:51:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: stephen_powell <at> optusnet.com.au, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sun, 11 Nov 2012 05:50:02 +0200
> Date: Sat, 10 Nov 2012 13:44:36 -0800
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> CC: Stephen Powell <stephen_powell <at> optusnet.com.au>, 
>  12829 <at> debbugs.gnu.org
> 
> Nowadays we can safely assume that waitpid is on every supported
> platform other than bare Microsoft platforms such as MSVC and mingw.

Not for long.

Thanks, this means I can safely remove all the stuff for the case that
WNOHANG is not defined, when waitpid is available for Windows.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 17 Nov 2012 07:11:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stephen Powell <stephen_powell <at> optusnet.com.au>
Cc: eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 17 Nov 2012 09:09:08 +0200
> Date: Sat, 10 Nov 2012 18:03:16 +0000
> From: Stephen Powell <stephen_powell <at> optusnet.com.au>
> CC: stephen_powell <at> optusnet.com.au, eggert <at> cs.ucla.edu, 12829 <at> debbugs.gnu.org
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > I think the changes I posted should fix that.
> 
> Patch applied. I have been reading mail for an hour with the patched
> version and no crashes.

Any news?  Should I commit the changes?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 17 Nov 2012 15:34:02 GMT) Full text and rfc822 format available.

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

From: Stephen Powell <stephen_powell <at> optusnet.com.au>
To: eliz <at> gnu.org
Cc: eggert <at> cs.ucla.edu, stephen_powell <at> optusnet.com.au, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 17 Nov 2012 15:32:10 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

> Any news?  Should I commit the changes?

Sure, do it.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 17 Nov 2012 15:37:01 GMT) Full text and rfc822 format available.

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

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Stephen Powell <stephen_powell <at> optusnet.com.au>, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 17 Nov 2012 07:35:54 -0800
On 11/16/2012 11:09 PM, Eli Zaretskii wrote:
> Any news?  Should I commit the changes?

I don't see anything about it that would break things,
though I'm looking only at the non-Windows part.

The following change to wait_for_termination_1
would be simpler, assuming the Windows waitpid emulation
is good enough now.

=== modified file 'src/sysdep.c'
--- src/sysdep.c	2012-11-14 04:55:41 +0000
+++ src/sysdep.c	2012-11-17 15:33:25 +0000
@@ -289,10 +289,6 @@ wait_for_termination_1 (pid_t pid, int i
 {
   while (1)
     {
-#ifdef WINDOWSNT
-      wait (0);
-      break;
-#else /* not WINDOWSNT */
       int status;
       int wait_result = waitpid (pid, &status, 0);
       if (wait_result < 0)
@@ -306,7 +302,6 @@ wait_for_termination_1 (pid_t pid, int i
 	  break;
 	}
 
-#endif /* not WINDOWSNT */
       if (interruptible)
 	QUIT;
     }






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#12829; Package emacs. (Sat, 17 Nov 2012 15:43:02 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: stephen_powell <at> optusnet.com.au, 12829 <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 17 Nov 2012 17:40:51 +0200
> Date: Sat, 17 Nov 2012 07:35:54 -0800
> From: Paul Eggert <eggert <at> cs.ucla.edu>
> CC: Stephen Powell <stephen_powell <at> optusnet.com.au>, 
>  12829 <at> debbugs.gnu.org
> 
> On 11/16/2012 11:09 PM, Eli Zaretskii wrote:
> > Any news?  Should I commit the changes?
> 
> I don't see anything about it that would break things,
> though I'm looking only at the non-Windows part.

Thanks, I will install in a short while.

> The following change to wait_for_termination_1
> would be simpler, assuming the Windows waitpid emulation
> is good enough now.
> 
> === modified file 'src/sysdep.c'
> --- src/sysdep.c	2012-11-14 04:55:41 +0000
> +++ src/sysdep.c	2012-11-17 15:33:25 +0000
> @@ -289,10 +289,6 @@ wait_for_termination_1 (pid_t pid, int i
>  {
>    while (1)
>      {
> -#ifdef WINDOWSNT
> -      wait (0);
> -      break;
> -#else /* not WINDOWSNT */
>        int status;
>        int wait_result = waitpid (pid, &status, 0);
>        if (wait_result < 0)
> @@ -306,7 +302,6 @@ wait_for_termination_1 (pid_t pid, int i
>  	  break;
>  	}
>  
> -#endif /* not WINDOWSNT */
>        if (interruptible)
>  	QUIT;
>      }

Yes, I plan to do that, given the discussion about the "interruptible"
wait here.  The Windows emulation actually calls QUIT internally,
instead of returning with EINTR, but I don't think that matters in
this case.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 17 Nov 2012 16:53:02 GMT) Full text and rfc822 format available.

Notification sent to Stephen Powell <stephen_powell <at> optusnet.com.au>:
bug acknowledged by developer. (Sat, 17 Nov 2012 16:53:02 GMT) Full text and rfc822 format available.

Message #64 received at 12829-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: eggert <at> cs.ucla.edu, stephen_powell <at> optusnet.com.au
Cc: 12829-done <at> debbugs.gnu.org
Subject: Re: bug#12829: 24.3.50; emacs_abort () called from w32proc.c:1128
Date: Sat, 17 Nov 2012 18:50:43 +0200
> Date: Sat, 17 Nov 2012 17:40:51 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: stephen_powell <at> optusnet.com.au, 12829 <at> debbugs.gnu.org
> 
> > Date: Sat, 17 Nov 2012 07:35:54 -0800
> > From: Paul Eggert <eggert <at> cs.ucla.edu>
> > CC: Stephen Powell <stephen_powell <at> optusnet.com.au>, 
> >  12829 <at> debbugs.gnu.org
> > 
> > On 11/16/2012 11:09 PM, Eli Zaretskii wrote:
> > > Any news?  Should I commit the changes?
> > 
> > I don't see anything about it that would break things,
> > though I'm looking only at the non-Windows part.
> 
> Thanks, I will install in a short while.

Done as trunk revision 110922.  I'm closing the bug report.

> > The following change to wait_for_termination_1
> > would be simpler, assuming the Windows waitpid emulation
> > is good enough now.
> > 
> > === modified file 'src/sysdep.c'
> > --- src/sysdep.c	2012-11-14 04:55:41 +0000
> > +++ src/sysdep.c	2012-11-17 15:33:25 +0000
> > @@ -289,10 +289,6 @@ wait_for_termination_1 (pid_t pid, int i
> >  {
> >    while (1)
> >      {
> > -#ifdef WINDOWSNT
> > -      wait (0);
> > -      break;
> > -#else /* not WINDOWSNT */
> >        int status;
> >        int wait_result = waitpid (pid, &status, 0);
> >        if (wait_result < 0)
> > @@ -306,7 +302,6 @@ wait_for_termination_1 (pid_t pid, int i
> >  	  break;
> >  	}
> >  
> > -#endif /* not WINDOWSNT */
> >        if (interruptible)
> >  	QUIT;
> >      }
> 
> Yes, I plan to do that

Done as well.  I also removed the remaining fragments that catered to
systems without WNOHANG, as there are no such system anymore.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 16 Dec 2012 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 11 years and 146 days ago.

Previous Next


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