<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
On 09/01/2023 08:46, Arnaud Masson wrote:<br>
<blockquote type="cite" cite="mid:BYAPR15MB29656FCDA08CBDBB72F51E09C7FE9@BYAPR15MB2965.namprd15.prod.outlook.com">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}div.WordSection1
{page:WordSection1;}</style>
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US" lang="EN-US">Side note : it seems “more” preemptive time
sharing was added for goroutines in Go 1.14 to avoid the
kind of scheduling starvation we discussed:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US" lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US" lang="EN-US"><a href="https://medium.com/a-journey-with-go/go-asynchronous-preemption-b5194227371c" moz-do-not-send="true" class="moz-txt-link-freetext">https://medium.com/a-journey-with-go/go-asynchronous-preemption-b5194227371c</a><o:p></o:p></span></p>
<br>
</div>
</blockquote>
<br>
As I understand it, Go doesn't expose the equivalent of platform
threads so that may have been a forced move.<br>
<br>
For Project Loom, this is the "custom scheduler" topic where the
primitive for forced preemption is the primitive required to do time
sharing. It will take a bit of time to figure out if/how this might
be exposed, and time will tell if we really this with the default
scheduler.<br>
<br>
-Alan<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>