aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* defaults: disable 'fsync'Justin M. Keyes2018-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ref #6725 fsync() is very slow on some systems. And since the parent commit, Nvim is smarter about flushing files at certain times (e.g. CursorHold), regardless of whether 'fsync' is enabled. So it's less risky to disable 'fsync'. Profiling showed slow (2-4s) :write and :quit caused by fsync(): :quit shada_write_file(NULL, false); :write + fsync 0 0x00007f72da567b2d in fsync () at ../sysdeps/unix/syscall-template.S:84 1 0x0000000000638970 in uv__fs_fsync (req=<optimized out>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:150 2 uv__fs_work (w=<optimized out>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:953 3 0x0000000000639a70 in uv_fs_fsync (loop=<optimized out>, req=<optimized out>, file=41, cb=0x7f72da567b2d <fsync+45>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:1094 4 0x0000000000573694 in os_fsync (fd=41) at ../src/nvim/os/fs.c:631 5 0x00000000004ec9dc in buf_write (buf=<optimized out>, fname=<optimized out>, sfname=<optimized out>, start=1, end=1997, eap=0x7fffc864c570, append=<optimized out>, forceit=<optimized out>, reset_changed=<optimized out>, filtering=<optimized out>) at ../src/nvim/fileio.c:3387 6 0x00000000004b44ff in do_write (eap=0x7fffc864c570) at ../src/nvim/ex_cmds.c:1745 ... :write + nofsync 0 0x00007f72da567b2d in fsync () at ../sysdeps/unix/syscall-template.S:84 1 0x0000000000638970 in uv__fs_fsync (req=<optimized out>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:150 2 uv__fs_work (w=<optimized out>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:953 3 0x0000000000639a70 in uv_fs_fsync (loop=<optimized out>, req=<optimized out>, file=36, cb=0x7f72da567b2d <fsync+45>) at /home/vagrant/neovim/.deps/build/src/libuv/src/unix/fs.c:1094 4 0x0000000000573694 in os_fsync (fd=36) at ../src/nvim/os/fs.c:631 5 0x0000000000528f5a in mf_sync (mfp=0x7f72d8968d00, flags=5) at ../src/nvim/memfile.c:466 6 0x000000000052d569 in ml_preserve (buf=0x7f72d890f000, message=0) at ../src/nvim/memline.c:1659 7 0x00000000004ebadf in buf_write (buf=<optimized out>, fname=<optimized out>, sfname=<optimized out>, start=1, end=1997, eap=0x7fffc864c570, append=<optimized out>, forceit=<optimized out>, reset_changed=<optimized out>, filtering=<optimized out>) at ../src/nvim/fileio.c:3071 8 0x00000000004b44ff in do_write (eap=0x7fffc864c570) at ../src/nvim/ex_cmds.c:1745 ...
* IO: let 'fsync' option control more casesJustin M. Keyes2018-04-21
| | | | | | | | | | | Vim has the 'swapsync' option which we removed in 62d137ce0969. Instead let 'fsync' control swapfile-fsync. These cases ALWAYS force fsync (ignoring 'fsync' option): - Idle (CursorHold). - Exit caused by deadly signal. - SIGPWR signal. - Explicit :preserve command.
* IO: shada should respect 'fsync' optionJustin M. Keyes2018-04-21
| | | | | | | shada_write_file() is called on exit (:quit and friends), this can be very slow. Note: AFAICT Vim (do_viminfo()) does not appear to fsync() viminfo.
* terminal: do not call redraw_buf_later() (#8306)Justin M. Keyes2018-04-21
| | | fixes #8290
* test: "Command-line option -s": avoid indeterminism (#8305)Justin M. Keyes2018-04-21
| | | closes #8303
* test/util: throttle retry() (#8296)Justin M. Keyes2018-04-20
| | | | | | Avoid a hot loop in retry(), there's no need to retry more than 50/s. Also use luv.sleep() to implement sleep() instead of spinning the event-loop, so events are not silently discarded.
* doc: platform-specific config locations (#8297)Andy Russell2018-04-20
| | | Fixes #7374.
* Merge pull request #8291 from bfredl/ui_resizeBjörn Linse2018-04-19
|\ | | | | ui_events: correct wrong argument order in resize event
| * ui_events: correct wrong argument orderBjörn Linse2018-04-17
| |
* | Merge #8293 from justinmk/test-nodejsJustin M. Keyes2018-04-18
|\ \ | |/ |/| test: nodejs_spec: allow more time for nodejs init
| * test/util: retry(): also decorate non-string errorJustin M. Keyes2018-04-18
| |
| * test: nodejs_spec: allow more time for nodejs initJustin M. Keyes2018-04-18
|/
* Merge #8276 'startup: Make -s - read from stdin'Justin M. Keyes2018-04-17
|\
| * win: Fix reading from stdinb-r-o-c-k2018-04-14
| | | | | | | | | | | | | | | | * Reading from stdin on Windows is fixed in the same way as it was in #8267. * The file_read function was returning without filling the destination buffer when it was called with a non-blocking file descriptor.
| * Merge branch 'master' into s-dash-stdinb-r-o-c-k2018-04-14
| |\
| * | getchar: Move REMAP_… values into a enumZyX2017-12-03
| | |
| * | Merge branch 'master' into s-dash-stdinZyX2017-12-03
| |\ \
| * | | functests: Disable system(-s -) test on WindowsZyX2017-03-23
| | | | | | | | | | | | | | | | Assume something with system() if second test hangs as well. Assume something with reading stdin if not.
| * | | functests: Do not run termopen test on WindowsZyX2017-03-23
| | | |
| * | | main: Translate full -s error message, not part of itZyX2017-03-19
| | | |
| * | | unittests: Add tests for new fileio functionsZyX2017-03-19
| | | |
| * | | functests: Test -s errorsZyX2017-03-19
| | | |
| * | | os/fileio: Fix QB failureZyX2017-03-19
| | | |
| * | | *: Fix linter errorsZyX2017-03-19
| | | |
| * | | fileio,main: Do not restart syscall at EAGAIN when reading for -sZyX2017-03-19
| | | |
| * | | getchar: Use fileio instead of fdopenZyX2017-03-19
| | | | | | | | | | | | | | | | | | | | | | | | Problem: as fileio is cached and reads blocks this is going to wait until either EOF or reading enough characters to fill rbuffer. This is not good when reading user input from stdin as script.
| * | | main: Temporary fix assertion errorZyX2017-03-19
| | | | | | | | | | | | | | | | | | | | This variant uses `fdopen()` which is not standard, but it fixes problem on my system. In next commit `scriptin` will use `FileDescriptor*` from os/fileio in place of `FILE*`.
| * | | functests: Do not check stdout, it is different on WindowsZyX2017-03-19
| | | |
| * | | functests: Fix testlint errorsZyX2017-03-19
| | | |
| * | | functests: Use Neovim instance and system() in place of lua io.popenZyX2017-03-19
| | | |
| * | | functests: Make sure that line ending is LF and not CRLFZyX2017-03-19
| | | |
| * | | functests: Alter the order of checksZyX2017-03-19
| | | | | | | | | | | | | | | | Check whether `repeated_read_cmd` returned nil and did not actually run nvim or it did, but still returned nil for whatever reason.
| * | | tests: Fix repeated_popen_r usage, rename the functionZyX2017-03-19
| | | |
| * | | tests: Fix CI failuresZyX2017-03-19
| | | |
| * | | functests: Check that `-s` works as expectedZyX2017-03-19
| | | |
| * | | main: Make `-s -` read from stdinZyX2017-03-19
| | | |
* | | | test: tui_spec.lua: relax test (#8289)Justin M. Keyes2018-04-16
| | | | | | | | | | | | | | | | | | | | Sometimes an extra FocusGained/FocusLost event might trigger. This doesn't matter, we just want to test that the events were received in cmdline-mode.
* | | | startup: ignore -XJustin M. Keyes2018-04-16
| | | | | | | | | | | | | | | | closes #8285
* | | | terminal: resize to the max dimensions (#8249)Andrew Pyatkov2018-04-16
| | | | | | | | | | | | | | | | closes #8096
* | | | contrib: fix local.mk.example (#8286)Marco Hinz2018-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have two ways to disable third-party/ 1. make USE_BUNDLED_DEPS=OFF 2. cmake USE_BUNDLED=OFF The example used the make option in a cmake context.
* | | | Merge #8273 'job-control: avoid kill-timer race'Justin M. Keyes2018-04-16
|\ \ \ \
| * | | | job-control: children_kill_cb(): do not check elapsed timeJustin M. Keyes2018-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Don't check elapsed time in children_kill_cb(), it's already implied by the start-time of the timer itself. 2. Restart timer from children_kill_cb() for PTY jobs, to send SIGKILL after SIGTERM. There is an edge case where SIGKILL might follow SIGTERM too quickly, if jobstop() is called near the 2-second timer window. But this edge case is not worth code complication.
| * | | | job-control: one-shot timer instead of repeatingJustin M. Keyes2018-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before f31c26f1afb5 the timer was used to try SIGTERM *and* SIGKILL, so a repeating timer was needed. After f31c26f1afb5 process_stop() sends SIGTERM immediately, and the timer only sends SIGKILL. So we don't need a repeating timer. - Simplifies the logic: don't need to call uv_timer_stop() explicitly. - Avoids a problem: if process_stop() is called more than once in the 2-second window, the first on_process_exit() would call uv_timer_stop() which stops the timer for all stopped processes.
| * | | | job-control: mitigate process-kill raceJustin M. Keyes2018-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | children_kill_cb() is racey. One obvious problem is that process_close_handles() is *queued* by on_process_exit(), so when children_kill_cb() is invoked, the dead process might still be in the `loop->children` list. If the OS already reclaimed the dead PID, Nvim may try to SIGKILL it. Avoid that by checking `proc->status`. Vim doesn't have this problem because it doesn't attempt to kill processes that ignored SIGTERM after a timeout. closes #8269
| * | | | loop: remove `children_stop_requests`Justin M. Keyes2018-04-15
|/ / / / | | | | | | | | | | | | | | | | It serves no purpose because process_stop() is already guarded by `proc->stopped_time`.
* | | | Merge #8120 'test: win: prefer cmd.exe'Justin M. Keyes2018-04-15
|\ \ \ \
| * | | | test: win: enable jobpid() testsJan Edmund Lazo2018-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use ping to test job detach Use find.exe as an alternative to cat.exe Use nvim_get_proc to check pid
| * | | | fixup: ping.exe works with cmd.exe pipeJan Edmund Lazo2018-03-26
| | | | |
| * | | | Revert "test/win: use cmd.exe for test"Jan Edmund Lazo2018-03-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ae409b5042abdbec67305a063cf921ddffcce0c8. This PR (#8120) defaults to cmd.exe for job_spec.lua
| * | | | test: win: use find.exe /v "" as alternative cat -Jan Edmund Lazo2018-03-26
| | | | |