Hi!<div><br /></div><div><br /></div><div>I think additional information needs:</div><div><br /></div><div>1) What happened on pure 32bit Windows? </div><div>( and inside VM on Hyper-V? )</div><div><br /></div><div>2) What happened with AMD64_NT Modula-3 ?</div><div><br /></div><div><br /></div><div><br /></div><div>Best regards, Victor Miasnikov </div><div><br /><br /><div>05.06.2019, 08:38, "Jay K" <jayk123@hotmail.com>:</div><blockquote><div><div dir="ltr">
<div style="color:rgb( 0 , 0 , 0 );font-family:'calibri' , 'helvetica' , sans-serif;font-size:12pt">
SupendThread = GetThreadContext on wow64 make me nervous.<br />

<div>​</div>
<div>It doesn't really work as you might expect, and may or may​</div>
<div>not be viable.​</div>
<div>​</div>
<div>CoreCLR uses underdocumented flags with them, but isn't just​</div>
<div>looking for roots. It is looking for a context it can change.​</div>
<div>I therefore don't want to just copy it.​</div>
<div>Maybe if we look closer?​</div>
<div>​</div>
<div>The analogous code on PPC_DARWIN fails on x86. Obscure, I realize.​</div>
<div>​</div>
<div>Thoughts:​</div>
<div> 1. Ignore PPC_DARWIN? ​</div>
<div> 2. Find the larger truths around x86 context on wow64?  ​</div>
<div> 3. Deprecate anything under wow64? ​</div>
<div> 4. Developer a cooperative suspend model? ​</div>
<div>​</div>
<div>Let's delve into the last?​</div>
<div>I only understand it somewhat.​</div>
<div>​</div>
<div>Cooperative suspend involves no more signals and OS-level​</div>
<div>thread suspension, but polling, at function entry, and in loops.​</div>
<div>​</div>
<div>This is nice as it removes a bunch of platform-dependent code​</div>
<div>and helps debuggability (don't have to ignore those signals).​</div>
<div>​</div>
<div>How does cooperative suspend interact with calls out to C?​</div>
<div>And with callbacks?​</div>
<div>​</div>
<div>A thread that calls out to C, has to save some state (nonvolatile​</div>
<div>registers and stack pointer) and mark itself some how?​</div>
<div>​</div>
<div>and if there are callbacks? How does that work?​</div>
<div>The marking nests and unnests?​</div>
<div>​</div>
<div>As I understand the mainline Java implementation is cooperatively suspended.</div>
<div>So it must be possible/easy?</div>
<div><br />
</div>
<div> - Jay​</div>
<div>​</div>
<br />
</div>
</div></div><div><p>_______________________________________________<br />M3devel mailing list<br /><a class="09f7ddcd78d17c479368795f67fe4443goto-anchor" href="mailto:M3devel@elegosoft.com">M3devel@elegosoft.com</a><br /><a class="09f7ddcd78d17c479368795f67fe4443goto-anchor" href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a><br /></p></div></blockquote><div><br /></div><div><br /></div><div class="fac59074051ae5ed40c8811da5d24da6js-compose-signature"></div><div><br /></div></div>