Mercurial > vim
diff src/os_unix.c @ 29187:87ad2de4fe41 v8.2.5113
patch 8.2.5113: timer becomes invalid after fork/exec, :gui gives errors
Commit: https://github.com/vim/vim/commit/c72e31dfcc013ae840cd7f8899f2430b7f6812c9
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 16 18:47:20 2022 +0100
patch 8.2.5113: timer becomes invalid after fork/exec, :gui gives errors
Problem: Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel
Dupras)
Solution: Delete the timer befor forking. (closes #10584)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 16 Jun 2022 20:00:03 +0200 |
parents | e921ecb232f9 |
children | 0af5fe160e4e |
line wrap: on
line diff
--- a/src/os_unix.c +++ b/src/os_unix.c @@ -8247,7 +8247,7 @@ xsmp_close(void) #endif // USE_XSMP #if defined(FEAT_RELTIME) || defined(PROTO) -# if defined(HAVE_TIMER_CREATE) +# if defined(HAVE_TIMER_CREATE) || defined(PROTO) /* * Implement timeout with timer_create() and timer_settime(). */ @@ -8331,6 +8331,19 @@ start_timeout(long msec) return &timeout_flag; } +/* + * To be used before fork/exec: delete any created timer. + */ + void +delete_timer(void) +{ + if (timer_created) + { + timer_delete(timer_id); + timer_created = FALSE; + } +} + # else /*