[M3devel] Win32 SuspendThread?
mika at async.caltech.edu
mika at async.caltech.edu
Sun Jan 19 21:05:48 CET 2014
"less worried" = "I think it works"?
I think the only threading that works in CM3 is user threading...
I tried to run CM3-compiled binaries through "valgrind" but got an
error that CM3 is using the same signal that valgrind does internally
(on AMD64_LINUX at least). I think this is easy to change in m3core
(yes?) but haven't gotten around to it...
valgrind has a threading checker called "helgrind"...
Mika
Jay writes:
>
>--Apple-Mail-79A8190D-B4F0-41F1-AA37-366ED17CF55A
>Content-Type: text/plain;
> charset=utf-8
>Content-Transfer-Encoding: quoted-printable
>
>For native I'm less worried now. For wow64 I'm still worried & hope to follo=
>w up further.
>
> - Jay
>
>On Jan 17, 2014, at 11:11 PM, "Coleburn, Randy" <rcolebur at SCIRES.COM> wrote:=
>
>
>> Jay:
>> =20
>> I=E2=80=99m very concerned about the threading not working properly on bot=
>h 32-bit and 64-bit Windows.
>> =20
>> The Thread Test program crashes for me on both platforms.
>> =20
>> I haven=E2=80=99t tried your new test program yet.
>> =20
>> --Randy
>> =20
>> From: jayk123 at hotmail.com [mailto:jayk123 at hotmail.com] On Behalf Of Jay K
>> Sent: Saturday, January 18, 2014 1:23 AM
>> To: m3devel
>> Subject: EXT:[M3devel] Win32 SuspendThread?
>> =20
>> This program also doesn't behave as expected, native, nothing to do with w=
>ow64.=20
>> Anyone else please confirm:=20
>> 1) my expectations -- it should never print anything
>> 2) their importance -- garbage collector depends on it =20
>> 3) their not being met -- stuff gets printed=20
>> This is in the CVS repository, scratch/wow64stack/sync2.cpp=20
>> I am following up further.=20
>> Maybe we should get cooperative suspend really going?=20
>> Thank you.
>> - Jay=20
>> =20
>> #include <stdio.h>
>> #include <windows.h>
>> volatile long value;
>> unsigned long __stdcall Thread(PVOID parameter)
>> {
>> while (1)
>> InterlockedIncrement(&value);
>> return 0;
>> }
>> int __cdecl main()
>> {
>> HANDLE thread =3D CreateThread(0, 0, Thread, 0, 0, 0);
>> UINT i =3D 0;
>> while (1)
>> {
>> i +=3D 1;
>> if (SuspendThread(thread) =3D=3D (DWORD)-1)
>> {
>> printf("suspend failed %X\n", GetLastError());
>> Sleep(1);
>> continue;
>> }
>> volatile long a =3D value;=20
>> volatile long b =3D value;
>> if (a !=3D b)
>> {
>> printf("%d %d %d %d\n", i, a, b, b - a);
>> }
>> ResumeThread(thread);
>> }
>> }
>
>--Apple-Mail-79A8190D-B4F0-41F1-AA37-366ED17CF55A
>Content-Type: text/html;
> charset=utf-8
>Content-Transfer-Encoding: quoted-printable
>
><html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
>utf-8"></head><body dir=3D"auto"><div>For native I'm less worried now. For w=
>ow64 I'm still worried & hope to follow up further.<br><br> - Jay</=
>div><div><br>On Jan 17, 2014, at 11:11 PM, "Coleburn, Randy" <<a href=3D"=
>mailto:rcolebur at SCIRES.COM">rcolebur at SCIRES.COM</a>> wrote:<br><br></div>=
><blockquote type=3D"cite"><div>
>
><meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii">=
>
><meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
><style><!--
>/* Font Definitions */
>@font-face
> {font-family:Calibri;
> panose-1:2 15 5 2 2 2 4 3 2 4;}
>@font-face
> {font-family:Tahoma;
> panose-1:2 11 6 4 3 5 4 4 2 4;}
>/* Style Definitions */
>p.MsoNormal, li.MsoNormal, div.MsoNormal
> {margin:0in;
> margin-bottom:.0001pt;
> font-size:12.0pt;
> font-family:"Times New Roman","serif";}
>a:link, span.MsoHyperlink
> {mso-style-priority:99;
> color:blue;
> text-decoration:underline;}
>a:visited, span.MsoHyperlinkFollowed
> {mso-style-priority:99;
> color:purple;
> text-decoration:underline;}
>p
> {mso-style-priority:99;
> mso-margin-top-alt:auto;
> margin-right:0in;
> mso-margin-bottom-alt:auto;
> margin-left:0in;
> font-size:12.0pt;
> font-family:"Times New Roman","serif";}
>p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
> {mso-style-priority:99;
> mso-style-link:"Balloon Text Char";
> margin:0in;
> margin-bottom:.0001pt;
> font-size:8.0pt;
> font-family:"Tahoma","sans-serif";}
>span.EmailStyle18
> {mso-style-type:personal-reply;
> font-family:"Calibri","sans-serif";
> color:#1F497D;}
>span.BalloonTextChar
> {mso-style-name:"Balloon Text Char";
> mso-style-priority:99;
> mso-style-link:"Balloon Text";
> font-family:"Tahoma","sans-serif";}
>.MsoChpDefault
> {mso-style-type:export-only;
> font-size:10.0pt;}
>@page WordSection1
> {size:8.5in 11.0in;
> margin:1.0in 1.0in 1.0in 1.0in;}
>div.WordSection1
> {page:WordSection1;}
>--></style><!--[if gte mso 9]><xml>
><o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
></xml><![endif]--><!--[if gte mso 9]><xml>
><o:shapelayout v:ext=3D"edit">
><o:idmap v:ext=3D"edit" data=3D"1" />
></o:shapelayout></xml><![endif]-->
>
>
><div class=3D"WordSection1">
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D">Jay:<o:p></o:p></span></p>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p=
>>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D">I=E2=80=99m very concerned a=
>bout the threading not working properly on both 32-bit and 64-bit Windows.<o=
>:p></o:p></span></p>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p=
>>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D">The Thread Test program cra=
>shes for me on both platforms.<o:p></o:p></span></p>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p=
>>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D">I haven=E2=80=99t tried you=
>r new test program yet.<o:p></o:p></span></p>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p=
>>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D">--Randy<o:p></o:p></span></=
>p>
><p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:"Cal=
>ibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p=
>>
><div>
><div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0=
>in 0in">
><p class=3D"MsoNormal" style=3D"margin-left:.5in"><b><span style=3D"font-siz=
>e:10.0pt;font-family:"Tahoma","sans-serif"">From:</span>=
></b><span style=3D"font-size:10.0pt;font-family:"Tahoma","san=
>s-serif""> <a href=3D"mailto:jayk123 at hotmail.com">jayk123 at hotmail.com</=
>a> [<a href=3D"mailto:jayk123 at hotmail.com">mailto:jayk123 at hotmail.com</a>]
><b>On Behalf Of </b>Jay K<br>
><b>Sent:</b> Saturday, January 18, 2014 1:23 AM<br>
><b>To:</b> m3devel<br>
><b>Subject:</b> EXT:[M3devel] Win32 SuspendThread?<o:p></o:p></span></p>
></div>
></div>
><p class=3D"MsoNormal" style=3D"margin-left:.5in"><o:p> </o:p></p>
><div>
><p class=3D"MsoNormal" style=3D"mso-margin-top-alt:0in;margin-right:0in;marg=
>in-bottom:12.0pt;margin-left:.5in">
><span style=3D"font-family:"Calibri","sans-serif""> =
>;This program also doesn't behave as expected, native, nothing to do with wo=
>w64.
><br>
> Anyone else please confirm: <br>
> 1) my expectations -- it should never print anything<br>
> 2) their importance -- garbage collector depends on it&nb=
>sp; <br>
> 3) their not being met -- stuff gets printed <br>
> This is in the CVS repository, scratch/wow64stack/sync2.cpp <br>
> I am following up further. <br>
> Maybe we should get cooperative suspend really going? <br>
>Thank you.<br>
> - Jay <br>
> <br>
>#include <stdio.h><br>
>#include <windows.h><br>
>volatile long value;<br>
>unsigned long __stdcall Thread(PVOID parameter)<br>
>{<br>
> while (1)<br>
> InterlockedIncrement(&value);<br>
> return 0;<br>
>}<br>
>int __cdecl main()<br>
>{<br>
> HANDLE thread =3D CreateThread(0, 0, Thread, 0, 0, 0);<br>
> UINT i =3D 0;<br>
> while (1)<br>
> {<br>
> i +=3D 1;<br>
> if (SuspendThread(thread) =3D=3D (DWORD)-1)<br>
> {<br>
> printf("suspend failed %X\n", GetLastError())=
>;<br>
> Sleep(1);<br>
> continue;<br>
> }<br>
> volatile long a =3D value; <br>
> volatile long b =3D value;<br>
> if (a !=3D b)<br>
> {<br>
> printf("%d %d %d %d\n", i, a, b, b - a);<br>
> }<br>
> ResumeThread(thread);<br>
> }<br>
>}<o:p></o:p></span></p>
></div>
></div>
>
>
></div></blockquote></body></html>=
>
>--Apple-Mail-79A8190D-B4F0-41F1-AA37-366ED17CF55A--
More information about the M3devel
mailing list