On Thursday, 24 March 2016 at 13:07:00 UTC, Johannes Pfau wrote:
I also had another look at MinGW-W64 some weeks ago but then
got distracted :-)
Here's a quick patch to get winpthreads working:
https://paste.gnome.org/pl3pqzcke
This only hooks up the gthreads API with winpthreads. But when
implementing this quick workaround, I realized there are two
open questions:
* We could probably use the standard windows gthread
implementation,
even if the GCC model is set to pthreads. AFAICS the only
place we
use gthreads is in rt.monitor for the class monitors and it
doesn't
matter if we use the windows API directly or the wrapper. We
could
probably even merge gcc/gthreads into the rt module, much of
gcc.gthreads isn't even used anymore.
* This patch doesn't expose the fact that a pthread emulation
layer is
available to user code (i.e. you can't use the
core.sys.posix.*
pthread modules). I don't think we need to expose this as we
have
cross-platform wrappers in core.thread/core.sync anyway.
So the main question is: can we simply ditch gcc.gthreads and
inline the code into rt.monitor?
Thanks for all this information and it seems your knowledge is
far beyond mine so I cannot answer your last question but from
what you explain maybe it could be a better option.
What I can tel you for now is your patch works and allowed me to
generate a gdc compilier.
Now I let you decide what is the best option.