Mercurial > vim
view src/os_unixx.h @ 33353:b59205d0567e v9.0.1939
patch 9.0.1939: still a problem when processing LSP RPC requests
Commit: https://github.com/vim/vim/commit/b80ae6cec34639abfb1a7080fb633346a81a5770
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sun Sep 24 23:38:46 2023 +0200
patch 9.0.1939: still a problem when processing LSP RPC requests
Problem: still a problem when processing LSP RPC requests
Solution: When processing async LSP RPC requests, compare sequence
numbers only in response messages
A LSP request message can be sent to the language server either
synchronously (ch_evalexpr) or asynchronously (ch_sendexpr). In both
cases, when looking for response messages by using the sequence number,
LSP requests messages from the language server with the same sequence
number should not be used. Patch 9.0.1927 fixed this issue for
synchronous requests. This PR fixes the issue for asynchronous requests
and adds additional tests.
closes: #13158
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 24 Sep 2023 23:45:08 +0200 |
parents | 695b50472e85 |
children |
line wrap: on
line source
/* vi:set ts=8 sts=4 sw=4 noet: * * VIM - Vi IMproved by Bram Moolenaar * * Do ":help uganda" in Vim to read copying and usage conditions. * Do ":help credits" in Vim to see a list of people who contributed. */ /* * os_unixx.h -- include files that are only used in os_unix.c */ // Sun's sys/ioctl.h redefines symbols from termio world #if defined(HAVE_SYS_IOCTL_H) && !defined(SUN_SYSTEM) # include <sys/ioctl.h> #endif #ifndef USE_SYSTEM // use fork/exec to start the shell # if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT) # include <sys/wait.h> # endif # ifndef WEXITSTATUS # ifdef HAVE_UNION_WAIT # define WEXITSTATUS(stat_val) ((stat_val).w_T.w_Retcode) # else # define WEXITSTATUS(stat_val) (((stat_val) >> 8) & 0377) # endif # endif # ifndef WIFEXITED # ifdef HAVE_UNION_WAIT # define WIFEXITED(stat_val) ((stat_val).w_T.w_Termsig == 0) # else # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) # endif # endif #endif // !USE_SYSTEM #ifdef HAVE_STROPTS_H # ifdef sinix # define buf_T __system_buf_t__ # endif # include <stropts.h> # ifdef sinix # undef buf_T # endif #endif #ifdef HAVE_STRING_H # include <string.h> #endif #ifdef HAVE_SYS_STREAM_H # include <sys/stream.h> #endif #ifdef HAVE_SYS_UTSNAME_H # include <sys/utsname.h> #endif #ifdef HAVE_SYS_SYSTEMINFO_H // <sys/systeminfo.h> uses SYS_NMLN but it may not be defined (CrayT3E). # ifndef SYS_NMLN # define SYS_NMLN 32 # endif # include <sys/systeminfo.h> // for sysinfo #endif /* * We use termios.h if both termios.h and termio.h are available. * Termios is supposed to be a superset of termio.h. Don't include them both, * it may give problems on some systems (e.g. hpux). * I don't understand why we don't want termios.h for apollo. */ #if defined(HAVE_TERMIOS_H) && !defined(apollo) # include <termios.h> #else # ifdef HAVE_TERMIO_H # include <termio.h> # else # ifdef HAVE_SGTTY_H # include <sgtty.h> # endif # endif #endif #ifdef HAVE_SYS_PTEM_H # include <sys/ptem.h> // must be after termios.h for Sinix # ifndef _IO_PTEM_H // For UnixWare that should check for _IO_PT_PTEM_H # define _IO_PTEM_H # endif #endif // shared library access #if defined(HAVE_DLFCN_H) && defined(USE_DLOPEN) # if defined(__MVS__) && !defined (__SUSV3) // needed to define RTLD_LAZY (Anthony Giorgio) # define __SUSV3 # endif # include <dlfcn.h> #else # if defined(HAVE_DL_H) && defined(HAVE_SHL_LOAD) # include <dl.h> # endif #endif