diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-02-13 21:02:40 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-13 21:02:40 +0800 |
| commit | 9c5ade9212d897db590aeb6a2a5340e73ffe44d0 (patch) | |
| tree | e80e7276533523f7a204e4810f141afc83c15865 /test/functional/lua/vim_spec.lua | |
| parent | a7a7cdbcda1f0ef5a29742aea973d2d1c0bfa9a0 (diff) | |
| download | rneovim-9c5ade9212d897db590aeb6a2a5340e73ffe44d0.tar.gz rneovim-9c5ade9212d897db590aeb6a2a5340e73ffe44d0.tar.bz2 rneovim-9c5ade9212d897db590aeb6a2a5340e73ffe44d0.zip | |
fix: wait() checks condition twice on each interval (#37837)
Problem: wait() checks condition twice on each interval.
Solution: Don't schedule the due callback. Also fix memory leak when
Nvim exits while waiting.
No test that the condition isn't checked twice, as testing for that can
be flaky when there are libuv events from other sources.
Diffstat (limited to 'test/functional/lua/vim_spec.lua')
| -rw-r--r-- | test/functional/lua/vim_spec.lua | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua index e31c215817..049398fc74 100644 --- a/test/functional/lua/vim_spec.lua +++ b/test/functional/lua/vim_spec.lua @@ -2379,6 +2379,15 @@ stack traceback: ) end) + it('does not leak when Nvim exits while waiting', function() + n.expect_exit(500, exec_lua, function() + vim.defer_fn(function() + vim.cmd('qall!') + end, 10) + vim.wait(10000) + end) + end) + it('plays nice with `not` when fails', function() eq( true, |