2010/8/31 GhostlyDeath <[email protected]>

> Win32 has conditions, however it's Vista/2008 and on:
>
> http://msdn.microsoft.com/en-us/library/ms682052(VS.85).aspx<http://msdn.microsoft.com/en-us/library/ms682052%28VS.85%29.aspx>
>
> So it won't be available on lower end systems. Thread conditions are
> basically "wait until this thing happens" which is essentially the
> same thing as a mutex, kinda.
>
> #include <windows.h>
>
> volatile int did_something_happen =3D 0;
>
> DWORD x(void* arg)
> {
>    while (!did_something_happen)
>         Sleep(0);
>    printf("Happened\n");
>    return 0;
> }
>
> int main(int argc, char** argv)
> {
>    CreateThread(NULL, 0, x, NULL, 0);
>
>     Sleep(5000);
>
>     did_something_happen =3D 1;
>
>     Sleep(1000);
>
>     return 1;
> }
>
> I'd say the best way to do it with Win32 would be if you can add a
> non-visible static variable which contains the
> LoadLibrary("kernel32.dll") and then a call to get the thread
> condition function in that DLL, if it's non-null then use the Win32
> stuff, if it is NULL, then make your own thread condition. If you want
> threads to wake up from a call, the function setting the condition
> stuff (called from the calling thread) can add stuff to some structure
> of which condition to wake up on, then use the proper Win32
> ResumeThread/SuspendThread. If the suspended thread happens to wakeup,
> recheck the condition to see if it really happened and resume if it
> did.
>
>
I'd say that's mightily helpful, but I don't know mingw-w64's project stance
on Windows XP compatibility. Truth is though, for x64 at least, XP was never
really adopted and true x64 Windows only happened in Vista/2008/7. Is there
a way to have an option is GCC to compile it with Vista+ threading, and if
so, use this new API, which will tremendously ease the effort of getting the
gthread stuff in place?

Ruben
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to