Subject: bug#18705: 24.3.93; Hang in ns_select -> [NSApp run] -> oo

From: Jan Djärv <[email-masked]>
Date: Wed, 15 Oct 2014 19:50:52 +0200

Hello.

Cocoa does not allow you to disconnect and connect the GUI like X can.
So running a Cocoa compiled Emacs as --daemon does not make much sense.
You are seeing the consequence of this.

So basically, don't do this. :-)

	Jan D.

13 okt 2014 kl. 09:13 skrev Jim Radford <[email-masked]>:

> I often cannot connect to "emacs --daemon" with emacsclient because
> instead of select()ing on the appropriate sockets it's stuck in [NSApp
> run] waiting for an event which will never come.  Note at this time
> there are no Cocoa windows open (I don't use them) so no events will
> *ever* come (unless I, say, open and close the about box which triggers
> an escape from the hang).  Here's the backtrace when this occurs.
> 
>    frame #9: 0x00007fff940cc89b AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
>    frame #10: 0x00000001001a659f Emacs`-[EmacsApp run](self=0x0000000100a26910, _cmd=<unavailable>) + 223 at nsterm.m:4494
>    frame #11: 0x00000001001a5219 Emacs`ns_select(nfds=<unavailable>, readfds=0x00007fff5fbfea00, writefds=0x00007fff5fbfe980, exceptfds=<unavailable>, timeout=<unavailable>, sigmask=<unavailable>) + 809 at nsterm.m:3748
>    frame #12: 0x0000000100179811 Emacs`wait_reading_process_output(time_limit=<unavailable>, nsecs=<unavailable>, read_kbd=-1, do_display=true, wait_for_cell=4328534074, wait_proc=0x0000000000000000, just_wait_proc=<unavailable>) + 2209 at process.c:4601
>    frame #13: 0x00000001000c1ce4 Emacs`read_decoded_event_from_main_queue [inlined] kbd_buffer_get_event(kbp=<unavailable>, used_mouse_menu=<unavailable>, end_time=<unavailable>) + 807 at keyboard.c:3906
>    frame #14: 0x00000001000c19bd Emacs`read_decoded_event_from_main_queue [inlined] read_event_from_main_queue(end_time=<unavailable>, local_getcjmp=<unavailable>) + 1569 at keyboard.c:2246
>    frame #15: 0x00000001000c139c Emacs`read_decoded_event_from_main_queue(end_time=<unavailable>, local_getcjmp=<unavailable>, prev_event=<unavailable>, used_mouse_menu=<unavailable>) + 44 at keyboard.c:2310
>    frame #16: 0x00000001000c021e Emacs`read_char(commandflag=1, map=4322429222, prev_event=4328534074, used_mouse_menu=0x00007fff5fbff1ff, end_time=0x0000000000000000) + 5918 at keyboard.c:2895
>    frame #17: 0x00000001000bc9d3 Emacs`read_key_sequence(bufsize=<unavailable>, keybuf=<unavailable>, prompt=<unavailable>, dont_downcase_last=<unavailable>, can_return_switch_frame=<unavailable>, fix_current_buffer=<unavailable>, prevent_redisplay=<unavailable>) + 1859 at keyboard.c:9088
>    frame #18: 0x00000001000bc064 Emacs`command_loop_1 + 5188 at keyboard.c:1452
>    frame #19: 0x000000010013714b Emacs`internal_condition_case(bfun=0x00000001000bac20, handlers=<unavailable>, hfun=<unavailable>) + 251 at eval.c:1354
>    frame #20: 0x00000001000cc4ae Emacs`command_loop_2(ignore=<unavailable>) + 62 at keyboard.c:1177
>    frame #21: 0x0000000100136ae3 Emacs`internal_catch(tag=<unavailable>, func=0x00000001000cc470, arg=4328534074) + 243 at eval.c:1118
>    frame #22: 0x00000001000ba1ed Emacs`recursive_edit_1 [inlined] command_loop + 91 at keyboard.c:1156
>    frame #23: 0x00000001000ba192 Emacs`recursive_edit_1 + 130 at keyboard.c:777
>    frame #24: 0x00000001000ba39c Emacs`Frecursive_edit + 236 at keyboard.c:848
>    frame #25: 0x00000001000b8fec Emacs`main(argc=0, argv=<unavailable>) + 5836 at emacs.c:1646
>    frame #26: 0x00007fff928685fd libdyld.dylib`start + 1
> 
> In GNU Emacs 24.3.93.2 (x86_64-apple-darwin13.3.0, NS apple-appkit-1265.21)
> of 2014-09-20
> Windowing system distributor `Apple', version 10.3.1265
> Configured using:
> `configure --prefix=/tmp/emacs --with-ns'
> 
>