terminal/src
Leonard Hecker f68324cd09
Fix output stuttering using a ticket lock (#10653)
`SRWLOCK`, as used by `std::shared_mutex`, is a inherently unfair mutex
and makes no guarantee whatsoever whether a thread may acquire the lock
in a timely manner. This is problematic for our renderer which relies on
being able to acquire the lock in a timely and predictable manner.
Drawing stalls of up to one minute have been observed in tests.

This issue can be solved with a primitive ticket lock, which is 10x
slower than a `SRWLOCK` but still sufficiently fast for our use case
(10M locks per second per thread). It's likely that any non-trivial lock
duration will diminish the difference to "negligible".

## Validation Steps Performed

* It still blends ✔️
2021-07-14 23:41:22 +00:00
..
api-ms-win-core-synch-l1-2-0 Introduce a api-ms-win-core-synch-l1-2-0 shim for Windows 7 (#10559) 2021-07-07 16:48:28 +00:00
buffer Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
cascadia Fix output stuttering using a ticket lock (#10653) 2021-07-14 23:41:22 +00:00
dep Move all wildcards into targets or expand them (#6406) 2020-06-08 14:01:47 -07:00
host Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
inc Fix output stuttering using a ticket lock (#10653) 2021-07-14 23:41:22 +00:00
interactivity Expose Text Attributes to UI Automation (#10336) 2021-07-09 23:21:35 +00:00
internal Implement Default Terminal (#7489) 2021-03-26 17:09:49 -05:00
propsheet Merged PR 5770253: [Git2Git] Merged PR 5760120: Add propsheet chooser to Windows 2021-03-10 01:19:04 +00:00
propslib Prevent crashes in Settings UI launch on OS versions before package management extensions (#10238) 2021-05-27 17:53:00 +00:00
renderer Expose Text Attributes to UI Automation (#10336) 2021-07-09 23:21:35 +00:00
server Skip accessibility notifier and all event calculations when we're in PTY mode (#10569) 2021-07-09 18:45:44 +00:00
staging Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
terminal Don't override success value when resetting mouse mode in hard reset (#10661) 2021-07-14 16:46:34 +00:00
testlist Reflect testlist change from OS 2021-03-29 15:24:43 -05:00
til Clean up KeyChordSerialization (#10654) 2021-07-14 21:22:24 +00:00
tools Upgrade Windows SDK to 19041 (#10118) 2021-05-20 16:04:25 +00:00
tsf Fix Korean IME to display a character being composed in conhost (#8632) 2021-01-04 21:05:24 +00:00
types Expose Text Attributes to UI Automation (#10336) 2021-07-09 23:21:35 +00:00
winconpty [Defapp] Use real HPCON for PTY management; Have Monarch always listen for connections (#10170) 2021-05-24 21:56:46 +00:00
common.build.post.props Add support for branch- and branding-based feature flagging (#10361) 2021-06-10 23:09:52 +00:00
common.build.pre.props Enable incremental linking for debug builds (#10342) 2021-06-04 23:52:49 +00:00
common.build.tests.props Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
common.pgo.compile.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
common.pgo.runtime.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
ConsolePerf.regions.xml Tab to spaces (#578) 2019-05-13 18:06:36 -07:00
ConsolePerf.wprp Set keyword flags on all tracelog events (#10098) 2021-05-14 23:14:26 +00:00
cppwinrt.build.post.props Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
cppwinrt.build.pre.props Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
dirs Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
features.xml Allow creating and editing unfocused appearances in the SUI (#10317) 2021-07-13 23:33:22 +00:00
project.inc Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
project.unittest.inc Merged PR 4915530: Reflect OS Build fixes on top of 58f5d7c7 2020-07-13 23:00:53 +00:00
StaticAnalysis.ruleset Fix SA for Visual Studio 16.8 (#8551) 2020-12-11 05:04:30 +00:00
Terminal.wprp Set keyword flags on all tracelog events (#10098) 2021-05-14 23:14:26 +00:00
unit.tests.x64.runsettings Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
unit.tests.x86.runsettings Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
wap-common.build.post.props Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
wap-common.build.pre.props Fix compilation with VS16.10 and later (#10208) 2021-05-26 20:11:38 +00:00