0
0
mirror of https://github.com/vim/vim.git synced 2025-10-23 08:44:20 -04:00

patch 9.1.1748: macOS: Default scheduler priority too low

Problem:  macOS: Default scheduler priority too low
Solution: Explicitly set TASK_DEFAULT_APPLICATION scheduler priority
          to improve responsiveness (Luna Razzaghipour).

closes: #18120

Signed-off-by: Luna Razzaghipour <luna@xoria.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Luna Razzaghipour
2025-09-10 03:55:51 -04:00
committed by Christian Brabandt
parent 306a138172
commit 4bf0f6c1df
5 changed files with 21 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 09
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41621,6 +41621,7 @@ Platform specific~
- The Win32 GUI comes with better toolbar icons.
- Better fullscreen support for Haiku |os_haiku.txt|.
*new-other-9.2*
Other new features ~
------------------
@@ -41763,6 +41764,7 @@ Others: ~
Platform specific ~
- MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
absolute paths (to the current drive) and no longer relative.
- macOS: increase default scheduler priority to TASK_DEFAULT_APPLICATION.
*added-9.2*
Added ~

View File

@@ -1,4 +1,4 @@
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 08
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1381,7 +1381,7 @@ System | Status:~
Amiga (OS4, AROS & MorphOS): | still supported (?)
Haiku: | supported
Linux: | fully supported (on maintained versions)
Mac OS: | fully supported up until v10.6 (?)
macOS: | fully supported up until v10.6 (?)
MS-Windows 7, 8, 10, 11: | fully supported
OpenVMS: | supported
QNX: | still supported (?)

View File

@@ -46,6 +46,11 @@
#include <time.h>
#include <dirent.h>
/*
* Mach interface
*/
#include <mach/task.h>
/*
* MacOS specific #define
*/

View File

@@ -3676,6 +3676,15 @@ mch_early_init(void)
signal_stack = alloc(get_signal_stack_size());
init_signal_stack();
#endif
/*
* Inform the macOS scheduler that Vim renders UI, and so shouldnt have its
* threads quality of service classes clamped.
*/
#ifdef MACOS_X
integer_t policy = TASK_DEFAULT_APPLICATION;
task_policy_set(mach_task_self(), TASK_CATEGORY_POLICY, &policy, 1);
#endif
}
#if defined(EXITFREE) || defined(PROTO)

View File

@@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1748,
/**/
1747,
/**/