diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-11-21 14:51:13 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-11-21 14:51:13 +0000 |
commit | eea32afdb83ae281a63152f7494f79ec7e45ff55 (patch) | |
tree | 78938a8c7f2d263f1d66a3c6293ea4c9af8ef3a0 /src/testdir/test_terminal.vim | |
parent | 7f0c4b418e01d6e056a74de2f22fcbad613b7591 (diff) |
patch 8.2.3640: freeze when calling term_wait() in a close callbackv8.2.3640
Problem: Freeze when calling term_wait() in a close callback.
Solution: Set a "closing" flag to tell term_wait() to return. (closes #9152)
Diffstat (limited to 'src/testdir/test_terminal.vim')
-rw-r--r-- | src/testdir/test_terminal.vim | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim index 62dfbf1050..8cdb42ae88 100644 --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -2058,5 +2058,22 @@ func Test_terminal_adds_jump() bwipe! endfunc +func Close_cb(ch, ctx) + call term_wait(a:ctx.bufnr) + let g:close_done = 'done' +endfunc + +func Test_term_wait_in_close_cb() + let g:close_done = '' + let ctx = {} + let ctx.bufnr = term_start('echo "HELLO WORLD"', + \ {'close_cb': {ch -> Close_cb(ch, ctx)}}) + + call WaitForAssert({-> assert_equal("done", g:close_done)}) + + unlet g:close_done + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab |