[M3devel] Win32 SuspendThread?
Coleburn, Randy
rcolebur at SCIRES.COM
Sat Jan 18 08:11:45 CET 2014
Jay:
I'm very concerned about the threading not working properly on both 32-bit and 64-bit Windows.
The Thread Test program crashes for me on both platforms.
I haven't tried your new test program yet.
--Randy
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?
This program also doesn't behave as expected, native, nothing to do with wow64.
Anyone else please confirm:
1) my expectations -- it should never print anything
2) their importance -- garbage collector depends on it
3) their not being met -- stuff gets printed
This is in the CVS repository, scratch/wow64stack/sync2.cpp
I am following up further.
Maybe we should get cooperative suspend really going?
Thank you.
- Jay
#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 = CreateThread(0, 0, Thread, 0, 0, 0);
UINT i = 0;
while (1)
{
i += 1;
if (SuspendThread(thread) == (DWORD)-1)
{
printf("suspend failed %X\n", GetLastError());
Sleep(1);
continue;
}
volatile long a = value;
volatile long b = value;
if (a != b)
{
printf("%d %d %d %d\n", i, a, b, b - a);
}
ResumeThread(thread);
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20140118/ee809938/attachment-0002.html>
More information about the M3devel
mailing list