patch 8.2.5057: using gettimeofday() for timeout is very inefficient
Problem: Using gettimeofday() for timeout is very inefficient.
Solution: Set a platform dependent timer. (Paul Ollis, closes #10505)
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index 7dd8e23..91024b1 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -72,6 +72,7 @@
int mch_has_exp_wildcard(char_u *p);
int mch_has_wildcard(char_u *p);
int mch_rename(const char *src, const char *dest);
+int gpm_available(void);
int gpm_enabled(void);
int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result);
void setup_term_clip(void);
@@ -85,5 +86,6 @@
int xsmp_handle_requests(void);
void xsmp_init(void);
void xsmp_close(void);
-int gpm_available(void);
+void stop_timeout(void);
+const int *start_timeout(long msec);
/* vim: set ft=c : */
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index b3c85b7..706cbd6 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -83,5 +83,7 @@
int is_conpty_stable(void);
int get_conpty_fix_type(void);
void resize_console_buf(void);
-char * GetWin32Error(void);
+char *GetWin32Error(void);
+void stop_timeout(void);
+const int *start_timeout(long msec);
/* vim: set ft=c : */
diff --git a/src/proto/regexp.pro b/src/proto/regexp.pro
index 5503265..2ff3b25 100644
--- a/src/proto/regexp.pro
+++ b/src/proto/regexp.pro
@@ -1,4 +1,6 @@
/* regexp.c */
+void init_regexp_timeout(long msec);
+void disable_regexp_timeout(void);
int re_multiline(regprog_T *prog);
char_u *skip_regexp(char_u *startp, int delim, int magic);
char_u *skip_regexp_err(char_u *startp, int delim, int magic);
@@ -18,5 +20,5 @@
int vim_regexec_prog(regprog_T **prog, int ignore_case, char_u *line, colnr_T col);
int vim_regexec(regmatch_T *rmp, char_u *line, colnr_T col);
int vim_regexec_nl(regmatch_T *rmp, char_u *line, colnr_T col);
-long vim_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm, int *timed_out);
+long vim_regexec_multi(regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, int *timed_out);
/* vim: set ft=c : */