Does this mean that sit_for() needs to be rewritten to cope with concurrency? And if so, are there other functions that behave the same?
Thread 1 "emacs" received signal SIGABRT, Aborted.
0x00007ffff1d952b9 in raise (sig=6) at ../sysdeps/unix/sysv/linux/pt-raise.c:35
35 ../sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
(gdb) where
#0 0x00007ffff1d952b9 in raise (sig=6)
at ../sysdeps/unix/sysv/linux/pt-raise.c:35
#1 0x000000000055fd18 in terminate_due_to_signal (sig=6, backtrace_limit=40)
at emacs.c:394
#2 0x00000000005868ca in emacs_abort () at sysdep.c:2342
#3 0x0000000000665c44 in wait_reading_process_output (time_limit=30, nsecs=0,
read_kbd=-1, do_display=true, wait_for_cell=0, wait_proc=0x0,
just_wait_proc=0) at process.c:5460
#4 0x0000000000423f9c in sit_for (timeout=122, reading=true, display_option=1)
at dispnew.c:5763
#5 0x00000000005682bb in read_char (commandflag=1, map=54013811,
prev_event=0, used_mouse_menu=0x7fffffffdcf9, end_time=0x0)
at keyboard.c:2725
#6 0x0000000000575849 in read_key_sequence (keybuf=0x7fffffffded0,
bufsize=30, prompt=0, dont_downcase_last=false,
can_return_switch_frame=true, fix_current_buffer=true,
prevent_redisplay=false) at keyboard.c:9139
#7 0x0000000000564c41 in command_loop_1 () at keyboard.c:1376
#8 0x0000000000609508 in internal_condition_case (
bfun=0x564819 <command_loop_1>, handlers=19632, hfun=0x563fe0 <cmd_error>)
at eval.c:1336
#9 0x0000000000564520 in command_loop_2 (ignore=0) at keyboard.c:1118
#10 0x0000000000608db2 in internal_catch (tag=47040,
func=0x5644f7 <command_loop_2>, arg=0) at eval.c:1101
#11 0x00000000005644c2 in command_loop () at keyboard.c:1097
#12 0x0000000000563bbb in recursive_edit_1 () at keyboard.c:703
#13 0x0000000000563d37 in Frecursive_edit () at keyboard.c:774
#14 0x00000000005619ba in main (argc=1, argv=0x7fffffffe328) at emacs.c:1686
(gdb)